:root{--bg-cream:#ece0be;--bg-cream-2:#dfd0a4;--paper-shadow:#c7b68b;--shroom-red:#b86855;--shroom-red-deep:#8e4a40;--shroom-cap:#f4ecd4;--ink:#3a3226;--ink-50:#6e6253;--ink-30:#a29684;--leaf:#779c5c;--sky:#93b5c9;--sun:#d9a458;--r-sm:12px;--r-md:20px;--r-lg:28px;--r-pill:999px;--font-display:"Fraunces", "Noto Serif SC", ui-serif, serif;--font-body:"Outfit", "Noto Sans SC", system-ui, -apple-system, sans-serif;--font-hand:"Caveat", "Ma Shan Zheng", cursive;--shadow-card:0 6px 0 var(--paper-shadow), 0 10px 24px #2c241814;--shadow-btn:0 5px 0 var(--shroom-red-deep), 0 8px 16px #e2555540;--shadow-btn-leaf:0 5px 0 #3d8c3d, 0 8px 16px #5bae5b40}*{box-sizing:border-box}html,body{background:var(--bg-cream);height:100%;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior:none;touch-action:manipulation;margin:0;padding:0;font-size:17px}#root{flex-direction:column;min-height:100%;display:flex}button{cursor:pointer;font-family:inherit}.app{background:var(--bg-cream);flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden}.app:before{content:"";pointer-events:none;z-index:100;opacity:.04;mix-blend-mode:multiply;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence baseFrequency='0.85' numOctaves='3' seed='8'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .55 0'/></filter><rect width='220' height='220' filter='url(%23n)' opacity='1'/></svg>");position:fixed;inset:0}.topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--paper-shadow);z-index:10;background:#faefd9d9;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:14px 16px;display:grid;position:sticky;top:0}.topbar-back{width:40px;height:40px;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:background .15s,transform .1s;display:inline-flex}.topbar-back:hover{background:#c04b2d14}.topbar-back:active{background:#c04b2d2e;transform:scale(.9)}.topbar-back-spacer{width:40px}.brand{font-family:var(--font-display);color:var(--ink);align-items:center;gap:8px;font-size:20px;font-weight:600;display:flex}.brand .icon{width:28px;height:28px}.progress-mini{gap:6px;display:flex}.progress-mini .dot{background:var(--paper-shadow);border-radius:50%;width:10px;height:10px;transition:all .3s}.progress-mini .dot.active{background:var(--shroom-red);transform:scale(1.4)}.progress-mini .dot.done{background:var(--leaf)}.scene{flex-direction:column;flex:1;width:100%;max-width:720px;margin:0 auto;padding:32px 24px 40px;display:flex;position:relative}.scene-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-50);align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.scene-eyebrow:before{content:"";background:var(--shroom-red);border-radius:2px;width:32px;height:2px}.scene h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 16px;font-size:clamp(36px,7vw,52px);font-weight:600;line-height:1.1}.scene h1 em{color:var(--shroom-red);font-style:italic}.scene-ride h1 em{color:var(--current-line,var(--shroom-red))}.scene-ride .scene-eyebrow:before{background:var(--current-line,var(--shroom-red))}.scene .lead{color:var(--ink-50);max-width:520px;margin:0 0 32px;font-size:18px;line-height:1.6}.stage{border-radius:var(--r-lg);min-height:280px;box-shadow:inset 0 2px 0 #ffffff80, 0 4px 0 var(--paper-shadow), 0 8px 20px #2c241814;background:linear-gradient(#f4e4bd 0%,#faefd9 100%);flex:1;justify-content:center;align-items:center;margin-bottom:32px;padding:20px 24px;display:flex;position:relative;overflow:hidden}.stage.text-only{font-family:var(--font-hand);color:var(--ink-30);border:2px dashed var(--paper-shadow);background:var(--bg-cream-2);box-shadow:none;font-size:32px}.illu{width:100%;height:auto;max-height:280px;display:block}@keyframes coin-drop{0%{opacity:0;transform:translateY(-120px)}60%{opacity:1;transform:translateY(100px)}80%{transform:translate(-4px,100px)}to{opacity:0;transform:translateY(100px)}}@keyframes ticket-out{0%{transform:translateY(0)}to{transform:translateY(14px)}}@keyframes train-arrive{0%{transform:translate(280px)}85%{transform:translate(-30px)}to{transform:translate(-20px)}}.big-btn{font-family:var(--font-display);letter-spacing:-.01em;background:var(--shroom-red);color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-btn);-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;gap:12px;width:100%;max-width:480px;min-height:64px;padding:20px 32px;font-size:22px;font-weight:600;transition:transform .1s,box-shadow .1s;display:inline-flex}.big-btn:active{box-shadow:0 2px 0 var(--shroom-red-deep), 0 4px 8px #e2555533;transform:translateY(3px)}.big-btn .arrow{transition:transform .2s;display:inline-block}.big-btn:active .arrow{transform:translate(6px)}.big-btn.leaf{background:var(--leaf);box-shadow:var(--shadow-btn-leaf)}.big-btn.leaf:active{box-shadow:0 2px #3d8c3d,0 4px 8px #5bae5b33}.big-btn.ghost{color:var(--ink);border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);background:0 0}.big-btn.ghost:active{box-shadow:0 2px 0 var(--ink)}.btn-row{flex-direction:column;align-items:center;gap:12px;display:flex}.floor-panel{border-radius:var(--r-md);box-shadow:var(--shadow-card);background:#fff;margin-bottom:16px;padding:16px 18px}.floor-panel-label{font-family:var(--font-mono);letter-spacing:.18em;color:var(--ink-50);text-transform:uppercase;margin-bottom:10px;font-size:11px}.floor-row{gap:10px;display:flex}.floor-btn{background:var(--bg-cream-2);border-radius:var(--r-md);font-family:var(--font-display);color:var(--ink-50);cursor:pointer;-webkit-tap-highlight-color:transparent;border:2px solid #0000;flex:1;padding:18px 16px;font-size:18px;font-weight:700;transition:all .15s;position:relative}.floor-btn:disabled{cursor:not-allowed;opacity:.5}.floor-btn.target{color:var(--shroom-red);border-color:var(--shroom-red);box-shadow:0 4px 0 var(--shroom-red);background:#fff}.floor-btn.target:before{content:"👆";font-size:22px;animation:1.2s ease-in-out infinite pulse-finger;position:absolute;top:-8px;right:-4px}.floor-btn.target.pressed{background:var(--shroom-red);color:#fff;box-shadow:0 0 0 var(--shroom-red);transform:translateY(4px)}.floor-btn.target.pressed:before{display:none}@keyframes pulse-finger{0%,to{transform:translate(0)rotate(-10deg)}50%{transform:translateY(4px)rotate(-10deg)}}.lift-car.phase-closing{transform:translateY(0)}.lift-car.phase-descending{animation:3.6s linear forwards lift-down-anim}@keyframes lift-down-anim{0%{transform:translateY(0)}to{transform:translateY(50px)}}.lift-btn-blink{animation:1s ease-in-out infinite btn-blink}@keyframes btn-blink{0%,to{opacity:1;filter:drop-shadow(0 0 #e25555)}50%{opacity:.6;filter:drop-shadow(0 0 4px #e25555)}}.lift-btn-pressed{filter:drop-shadow(0 0 6px #f4b942)}.lift-btn-active{animation:.8s ease-in-out infinite btn-active}@keyframes btn-active{0%,to{filter:drop-shadow(0 0 #f4b942)}50%{filter:drop-shadow(0 0 6px #f4b942)}}.lift-int-doors .door-l,.lift-int-doors .door-r{transform-origin:50%;transform-box:fill-box;transition:transform .7s cubic-bezier(.4,0,.3,1)}.lift-int-doors.phase-closing .door-l{animation:1s ease-in-out both door-close-l}.lift-int-doors.phase-closing .door-r{animation:1s ease-in-out both door-close-r}@keyframes door-close-l{0%{transform:translate(-30px)}to{transform:translate(0)}}@keyframes door-close-r{0%{transform:translate(30px)}to{transform:translate(0)}}.lift-int-doors.open .door-l{transform:translate(-32px)}.lift-int-doors.open .door-r{transform:translate(32px)}.platform-peek{animation:.6s ease-out .2s both peek-in}@keyframes peek-in{0%{opacity:0}to{opacity:1}}.ding-flash{animation:.8s ease-out both ding}@keyframes ding{0%{opacity:0;transform:translateY(8px)scale(.8)}20%{opacity:1;transform:translateY(0)scale(1.3)}to{opacity:0;transform:translateY(-12px)scale(1)}}.lift-cabin-descending{animation:4s linear forwards cabin-descend}@keyframes cabin-descend{0%{transform:translateY(0)}to{transform:translateY(100px)}}.lift-counterweight{animation:4s linear forwards counterweight-rise}@keyframes counterweight-rise{0%{transform:translateY(0)}to{transform:translateY(-20px)}}.motor-spin{transform-origin:10px 10px;transform-box:fill-box;animation:.4s linear infinite motor-spin}@keyframes motor-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.lift-floor-display.rolling{animation:.4s ease-in-out floor-roll}@keyframes floor-roll{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.3;transform:translateY(2px)}}.stage-transfer{padding:12px}.transfer-illu .transfer-walker{transform-origin:50%;animation:2.6s cubic-bezier(.4,0,.6,1) infinite alternate corridor-walk}@keyframes corridor-walk{0%{transform:translate(0)}to{transform:translate(140px)}}.scene-avatar{padding-bottom:32px}.avatar-current{border-radius:var(--r-md);box-shadow:var(--shadow-card);background:#fff;align-items:center;gap:14px;margin-bottom:20px;padding:20px 22px;display:flex}.avatar-current .avatar-emoji{font-size:56px;line-height:1}.avatar-current .avatar-name{font-family:var(--font-display);border:none;border-bottom:2px dashed var(--paper-shadow);color:var(--ink);background:0 0;outline:none;flex:1;padding:6px 0;font-size:22px}.avatar-current .avatar-name:focus{border-bottom-color:var(--shroom-red)}.avatar-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;display:grid}.avatar-cell{border-radius:var(--r-md);box-shadow:var(--shadow-card);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#fff;border:3px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:14px 6px 10px;transition:transform .12s,border-color .18s;display:flex}.avatar-cell:active{transform:translateY(2px)}.avatar-cell.picked{border-color:var(--shroom-red);background:#fff8f0}.avatar-cell .ae{font-size:34px;line-height:1}.avatar-cell .al{font-family:var(--font-body);color:var(--ink-50);letter-spacing:.04em;font-size:11px}.player-strip{border-radius:var(--r-md);box-shadow:var(--shadow-card);background:#fff;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;display:flex}.player-strip .player-emoji{font-size:28px;line-height:1}.player-strip .player-text{font-family:var(--font-body);color:var(--ink-50);flex:1;font-size:14px}.player-strip .player-text strong{font-family:var(--font-display);color:var(--ink);margin-right:4px;font-size:16px;font-weight:600}.player-strip .player-change{font-family:var(--font-mono);color:var(--shroom-red);cursor:pointer;-webkit-tap-highlight-color:transparent;letter-spacing:.04em;background:#c04b2d14;border:none;border-radius:999px;padding:5px 11px;font-size:11px}.festival-banner{background:var(--festival-color,var(--shroom-red));color:#fff;font-family:var(--font-display);letter-spacing:.04em;z-index:9;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:600;display:flex;position:relative}.festival-banner .festival-emoji{font-size:18px}.festival-banner .festival-name{text-shadow:0 1px #00000026}.time-flavor{background:var(--bg-cream-2);color:var(--ink-50);font-family:var(--font-mono);letter-spacing:.04em;border-bottom:1px solid var(--paper-shadow);align-items:center;gap:8px;padding:6px 16px;font-size:11px;display:flex}.station-egg{border-radius:var(--r-md);border:2px solid var(--shroom-red);z-index:5;background:#fff;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;animation:1.6s cubic-bezier(.2,1.6,.4,1) both egg-pop;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 6px 18px #2c241840}.station-egg .station-egg-emoji{font-size:38px;line-height:1}.station-egg .station-egg-label{font-family:var(--font-display);color:var(--shroom-red);font-size:13px;font-weight:600}@keyframes egg-pop{0%{opacity:0;transform:scale(0)rotate(15deg)}15%{opacity:1;transform:scale(1.2)rotate(-3deg)}30%{opacity:1;transform:scale(1)rotate(0)}80%{opacity:1;transform:scale(1)rotate(0)}to{opacity:0;transform:scale(.4)rotate(20deg)}}.special-tag{font-family:var(--font-body);color:var(--ink);text-align:center;background:#ffffffeb;border-radius:999px;padding:8px 14px;font-size:12px;animation:.55s cubic-bezier(.2,1.4,.4,1) .4s both special-slide-up;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 2px 8px #2c24181f}@keyframes special-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.elevator-choose{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;display:grid}.elevator-card{border-radius:var(--r-md);box-shadow:var(--shadow-card);cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:center;background:#fff;border:3px solid #0000;flex-direction:column;align-items:center;gap:8px;padding:28px 20px;transition:transform .15s,border-color .2s;display:flex}.elevator-card:active{border-color:var(--shroom-red);background:#fff8f0;transform:translateY(3px)}.elevator-icon{width:80px;height:80px}.elevator-card .elevator-name{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;font-size:22px;font-weight:700}.elevator-card .elevator-hint{font-family:var(--font-body);color:var(--ink-50);font-size:13px;line-height:1.4}.stage-elevator{padding:0;overflow:hidden}@keyframes step-down{0%{opacity:0;transform:translate(-12px,-16px)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translate(0)}}.escalator-steps line{transform-origin:50%;transform-box:fill-box;animation:2.6s linear infinite step-down}.escalator-steps line:first-child{animation-delay:0s}.escalator-steps line:nth-child(2){animation-delay:.37s}.escalator-steps line:nth-child(3){animation-delay:.74s}.escalator-steps line:nth-child(4){animation-delay:1.11s}.escalator-steps line:nth-child(5){animation-delay:1.48s}.escalator-steps line:nth-child(6){animation-delay:1.85s}.escalator-steps line:nth-child(7){animation-delay:2.22s}.escalator-steps.done line{animation-play-state:paused}@keyframes rider-down{0%{transform:translate(-78px,-64px)}to{transform:translate(0)}}.escalator-rider{transform-origin:50%;transform-box:fill-box;animation:4.2s linear forwards rider-down}.escalator-rider.done{transform:translate(0)}@keyframes lift-down{0%{transform:translateY(0)}20%{transform:translateY(0)}85%{transform:translateY(50px)}to{transform:translateY(50px)}}.lift-car{animation:4.6s ease-in-out forwards lift-down}.lift-doors .door-l,.lift-doors .door-r{transition:transform .45s ease-out}.lift-doors.open .door-l{transform:translate(-28px)}.lift-doors.open .door-r{transform:translate(28px)}.city-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:24px;display:grid}.city-card{border-radius:var(--r-md);box-shadow:var(--shadow-card);cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:left;background:#fff;border:2.5px solid #0000;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 16px 14px;transition:transform .15s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.city-card:before{content:"";background:var(--city-theme,var(--shroom-red));height:4px;position:absolute;top:0;left:0;right:0}.city-card:active{transform:translateY(2px)}.city-card.current{border-color:var(--city-theme,var(--shroom-red));background:#fff8f0}.city-card .city-emoji{margin-bottom:4px;font-size:32px;line-height:1}.city-card .city-name{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;font-size:22px;font-weight:700}.city-card .city-tagline{font-family:var(--font-body);color:var(--city-theme,var(--ink-50));margin-bottom:4px;font-size:12px;font-weight:500;line-height:1.35}.city-card .city-en{font-family:var(--font-body);letter-spacing:.06em;color:var(--ink-30);margin-bottom:4px;font-size:11px}.city-card .city-meta{font-family:var(--font-mono);color:var(--ink-50);gap:6px;font-size:11px;display:flex}.city-card .city-visited{font-family:var(--font-mono);letter-spacing:.05em;color:var(--leaf);background:#5bae5b1f;border-radius:999px;margin-top:6px;padding:2px 8px;font-size:10px}.city-eyebrow{align-items:center;gap:12px;margin-bottom:14px;display:flex}.city-eyebrow:before{content:none}.city-back{font-family:var(--font-body);color:var(--shroom-red);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#c04b2d14;border:none;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.city-back:active{background:#c04b2d2e}.trip-strip{border-radius:var(--r-md);box-shadow:var(--shadow-card);font-family:var(--font-body);background:#fff;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:12px 14px;font-size:14px;display:flex}.trip-strip .strip-label{font-family:var(--font-mono);letter-spacing:.15em;background:var(--shroom-red);color:#fff;border-radius:3px;padding:2px 6px;font-size:10px}.trip-strip .strip-name{font-family:var(--font-display);color:var(--ink);font-size:17px;font-weight:600}.trip-strip .strip-arrow{color:var(--ink-30);margin:0 4px;font-size:18px}.trip-strip .strip-reset{color:var(--ink-50);background:var(--bg-cream-2);border-radius:var(--r-sm);border:none;margin-left:auto;padding:6px 10px;font-size:12px}.line-tabs{scrollbar-width:none;gap:6px;margin:0 -4px 12px;padding:4px 0 12px;display:flex;overflow-x:auto}.line-tabs::-webkit-scrollbar{display:none}.line-tab{border-radius:var(--r-pill);background:var(--bg-cream-2);color:var(--ink-50);font-family:var(--font-display);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;border:2px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.line-tab .dot{background:var(--line-color,#999);border-radius:50%;width:10px;height:10px}.line-tab small{font-family:var(--font-mono);color:var(--ink-30);font-size:11px;font-weight:400}.line-tab.active{color:var(--ink);border-color:var(--line-color,var(--ink));box-shadow:0 2px 0 var(--paper-shadow);background:#fff}.line-tab.active small{color:var(--ink-50)}.station-list{border-radius:var(--r-md);box-shadow:var(--shadow-card);background:#fff;flex:1;min-height:280px;max-height:50vh;margin-bottom:16px;padding:8px 0;overflow-y:auto}.station-row{cursor:pointer;text-align:left;width:100%;font-family:var(--font-body);-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:12px;padding:12px 16px;display:flex}.station-row:hover:not(.disabled),.station-row:active:not(.disabled){background:var(--bg-cream-2)}.station-row.disabled{opacity:.4;cursor:not-allowed}.station-row .row-rail{flex-direction:column;align-items:center;width:16px;height:100%;min-height:28px;display:flex;position:relative}.station-row .row-dot{z-index:1;border:2px solid #fff;border-radius:50%;width:12px;height:12px;margin-top:4px;box-shadow:0 0 0 1.5px}.station-row .row-line{width:3px;position:absolute;top:16px;bottom:-12px;left:50%;transform:translate(-50%)}.station-row .row-name{font-family:var(--font-display);color:var(--ink);flex-wrap:wrap;flex:1;align-items:center;gap:10px;font-size:17px;font-weight:500;display:flex}.station-row .row-interchange{gap:3px;display:inline-flex}.interchange-chip{width:22px;height:22px;font-family:var(--font-display);color:#fff;text-shadow:0 1px #0000002e;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.station-row .row-tag{font-family:var(--font-mono);letter-spacing:.15em;color:var(--ink-30);font-size:10px}.visited-strip{background:var(--bg-cream-2);border-radius:var(--r-pill);font-family:var(--font-body);color:var(--ink-50);align-self:flex-start;align-items:baseline;gap:8px;margin-top:auto;padding:10px 16px;font-size:13px;display:inline-flex}.visited-strip .visited-count{font-family:var(--font-display);color:var(--shroom-red);font-size:22px;font-weight:700}.visited-strip .visited-of{font-family:var(--font-mono);font-size:12px}.scene.home{padding-bottom:24px}.station-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:32px;display:grid}.station-card{border-radius:var(--r-md);text-align:left;box-shadow:var(--shadow-card);cursor:pointer;font-family:var(--font-body);-webkit-tap-highlight-color:transparent;background:#fff;border:3px solid #0000;padding:24px 20px;transition:transform .15s,border-color .2s}.station-card:active{transform:translateY(2px)}.station-card.selected{border-color:var(--shroom-red);background:#fff8f0}.station-card .emoji{margin-bottom:8px;font-size:36px;line-height:1;display:block}.station-card .name{font-family:var(--font-display);color:var(--ink);font-size:22px;font-weight:600}.station-card .ch{color:var(--ink-50);letter-spacing:.05em;margin-top:2px;font-size:13px;display:block}.route-mini{scrollbar-width:none;margin:0 -8px 16px;padding:6px 8px;overflow-x:auto}.route-mini::-webkit-scrollbar{display:none}.route-mini-strip{border-radius:var(--r-pill);box-shadow:var(--shadow-card);white-space:nowrap;background:#fff;align-items:center;gap:0;min-width:100%;padding:8px 12px;display:inline-flex}.route-mini-stop{font-family:var(--font-body);color:var(--ink-30);align-items:center;gap:4px;font-size:12px;display:inline-flex;position:relative}.route-mini-stop:not(:last-child):after{content:"";background:var(--paper-shadow);width:14px;height:2px;margin:0 4px;display:inline-block}.route-mini-stop .route-mini-dot{background:var(--paper-shadow);border-radius:50%;flex-shrink:0;width:8px;height:8px}.route-mini-stop.done{color:var(--leaf)}.route-mini-stop.done .route-mini-dot{background:var(--c)}.route-mini-stop.active{color:var(--ink);font-weight:700}.route-mini-stop.active .route-mini-dot{background:var(--c);width:12px;height:12px;box-shadow:0 0 0 3px #0000000f}.route-mini-xfer{color:var(--shroom-red);margin-left:2px}@media (width>=700px){.app[data-module=metro] .scene>.stage{flex:1 1 0;min-height:200px;margin-bottom:14px}.app[data-module=metro] .scene>.stage .illu{max-height:max(200px,100dvh - 460px)}.app[data-module=metro] .scene>.route-mini{margin-bottom:10px}.app[data-module=metro] .scene.home .city-eyebrow{margin-bottom:4px}.app[data-module=metro] .scene.home .city-back{min-height:40px;padding:6px 14px;font-size:14px}.app[data-module=metro] .scene.home .trip-strip{margin-bottom:10px;padding:8px 14px}.app[data-module=metro] .scene.home .trip-strip .strip-reset{min-height:40px;padding:6px 14px;font-size:14px}.app[data-module=metro] .line-tabs{flex-wrap:wrap;gap:8px;margin:0 0 10px;padding:2px 0 4px;overflow:visible}.app[data-module=metro] .line-tab{min-height:48px;padding:8px 16px;font-size:16px}.app[data-module=metro] .station-list{flex:1 1 0;min-height:220px;max-height:none;margin-bottom:10px}.app[data-module=metro] .station-row{min-height:52px;padding:10px 18px}.app[data-module=metro] .station-row .row-name{font-size:19px}.app[data-module=metro] .visited-strip{margin-top:0;padding:6px 14px}.app[data-module=metro] .city-grid{margin-bottom:8px}.app[data-module=metro] .elevator-card{gap:10px;padding:32px 20px}.app[data-module=metro] .elevator-icon{width:clamp(90px,16dvh,150px);height:clamp(90px,16dvh,150px)}.app[data-module=metro] .elevator-card .elevator-name{font-size:28px}.app[data-module=metro] .elevator-card .elevator-hint{font-size:15px}}@media (width>=700px) and (height<=860px){.app[data-module=metro] .city-grid{gap:10px}.app[data-module=metro] .city-card{gap:2px;padding:12px 14px 10px}.app[data-module=metro] .city-card .city-emoji{margin-bottom:2px;font-size:28px}.app[data-module=metro] .player-strip{margin-bottom:8px}}.passport{border-radius:var(--r-lg);box-shadow:var(--shadow-card);background:#fff;margin-bottom:32px;padding:32px 28px}.passport h3{font-family:var(--font-hand);color:var(--city-theme,var(--shroom-red));margin:0;font-size:32px;display:inline-block;transform:rotate(-2deg)}.passport-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.passport-count{font-family:var(--font-display);color:var(--city-theme,var(--shroom-red));letter-spacing:-.02em;font-size:28px;font-weight:700}.passport-count small{font-family:var(--font-mono);color:var(--ink-50);font-size:11px;font-weight:400}.passport-progress{background:var(--paper-shadow);border-radius:999px;height:6px;margin-top:16px;overflow:hidden}.passport-progress-fill{border-radius:999px;height:100%;transition:width .6s ease-out}.visited-more{font-family:var(--font-mono);letter-spacing:.04em;font-size:11px;font-weight:600;background:var(--paper-shadow)!important;color:var(--ink-50)!important}.story-card{border-radius:var(--r-md);box-shadow:var(--shadow-card);border-left:4px solid var(--city-theme,var(--shroom-red));background:linear-gradient(135deg,#fff,#fff8f0);gap:14px;margin-bottom:14px;padding:16px 18px;display:flex}.story-card .story-icon{flex-shrink:0;font-size:26px;line-height:1}.story-card .story-station{font-family:var(--font-display);color:var(--ink);margin-bottom:4px;font-size:17px;font-weight:700}.story-card .story-body{font-family:var(--font-body);color:var(--ink-50);font-size:14px;line-height:1.55}.quest-card{border-radius:var(--r-md);box-shadow:var(--shadow-card);border-left:4px solid var(--mustard);background:#fff;margin-bottom:14px;padding:14px 18px}.quest-card.done{border-left-color:var(--leaf);background:#f0f8f0}.quest-card .quest-label{font-family:var(--font-mono);letter-spacing:.18em;color:var(--ink-50);margin-bottom:6px;font-size:11px}.quest-card .quest-row{align-items:center;gap:8px;display:flex}.quest-card .quest-icon{background:var(--mustard);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:18px;font-weight:700;display:inline-flex}.quest-card.done .quest-icon{background:var(--leaf)}.quest-card .quest-text{font-family:var(--font-display);color:var(--ink);font-size:16px;font-weight:600}.quest-card .quest-bonus{font-family:var(--font-mono);color:var(--leaf);letter-spacing:.05em;margin-top:6px;font-size:11px}.title-card{background:linear-gradient(135deg, var(--theme,#c04b2d)15, #fff);border-radius:var(--r-md);box-shadow:var(--shadow-card);justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:14px 18px;display:flex}.title-card .title-left{align-items:center;gap:12px;display:flex}.title-card .title-emoji{font-size:36px;line-height:1}.title-card .title-name{font-family:var(--font-display);color:var(--ink);font-size:20px;font-weight:700}.title-card .title-progress{font-family:var(--font-body);color:var(--ink-50);font-size:12px}.title-card .title-next{text-align:right}.title-card .title-next-label{font-family:var(--font-mono);color:var(--ink-30);letter-spacing:.1em;font-size:10px}.title-card .title-next-name{font-family:var(--font-display);color:var(--ink);font-size:14px;font-weight:600}.title-card .title-next-rem{font-family:var(--font-body);color:var(--shroom-red);margin-top:2px;font-size:11px}.map-section{border-radius:var(--r-md);box-shadow:var(--shadow-card);background:#fff;margin-bottom:14px;padding:12px 14px 6px}.map-section .map-label{font-family:var(--font-display);color:var(--ink);justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:14px;font-weight:600;display:flex}.map-section .map-count{font-family:var(--font-mono);color:var(--shroom-red);letter-spacing:.04em;font-size:12px}.china-map{width:100%;height:auto;display:block}.china-map.compact{max-height:180px}.share-card-wrap{border-radius:var(--r-md);box-shadow:var(--shadow-card);background:#fff;margin:12px 0 18px;padding:8px}.share-card-label{text-align:center;font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-50);margin:4px 0 8px;font-size:10px}.share-card-svg{border-radius:var(--r-sm);width:100%;height:auto;display:block}.done-hero{justify-content:center;align-items:center;min-height:180px;margin:8px 0 24px;display:flex;position:relative}.done-stamp{border:4px solid var(--stamp-color,var(--shroom-red));opacity:0;background:#fff;border-radius:50%;flex-direction:column;align-items:center;gap:4px;padding:22px 28px 18px;transition:transform .55s cubic-bezier(.2,1.6,.4,1),opacity .4s;display:flex;transform:rotate(-6deg)scale(.5);box-shadow:0 8px 20px #2c24181f}.done-hero.boom .done-stamp{opacity:1;transform:rotate(-6deg)scale(1)}.done-stamp-emoji{font-size:48px;line-height:1}.done-stamp-cn{font-family:var(--font-hand);color:var(--stamp-color,var(--shroom-red));margin-top:2px;font-size:20px}.done-stamp-name{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;font-size:22px;font-weight:700}.done-fireworks{pointer-events:none;position:absolute;inset:0}.firework{opacity:0;font-size:22px;position:absolute}.done-hero.boom .firework{animation:1.4s ease-out forwards firework-pop}.firework.f1{color:#e25555;top:10%;left:18%;animation-delay:.15s!important}.firework.f2{color:#f4b942;top:30%;right:14%;animation-delay:.3s!important}.firework.f3{color:#5bae5b;bottom:18%;left:22%;animation-delay:.45s!important}.firework.f4{color:#7bc4e8;bottom:30%;right:18%;animation-delay:.2s!important}.firework.f5{color:#c99fcd;top:8%;right:30%;animation-delay:.4s!important}.firework.f6{color:#ff850d;bottom:8%;left:45%;animation-delay:.55s!important}@keyframes firework-pop{0%{opacity:0;transform:scale(0)rotate(0)}40%{opacity:1;transform:scale(1.4)rotate(120deg)}80%{opacity:1;transform:scale(.9)rotate(220deg)}to{opacity:0;transform:scale(.4)rotate(360deg)}}.badge-first{background:var(--mustard);color:var(--ink);font-family:var(--font-mono);letter-spacing:.1em;vertical-align:middle;border-radius:999px;margin-left:12px;padding:3px 10px;font-size:11px;display:inline-block}.visited-list{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.visited-pill{background:var(--bg-cream-2);border-radius:var(--r-pill);font-family:var(--font-body);align-items:center;gap:6px;padding:6px 12px 6px 8px;font-size:14px;display:inline-flex}.visited-pill-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.visited-pill-name{font-family:var(--font-display);color:var(--ink);font-weight:500}.visited-empty{color:var(--ink-50);text-align:center;padding:16px;font-style:italic}.passport .stamps{grid-template-columns:repeat(5,1fr);gap:10px;margin-top:20px;display:grid}.passport .stamp{aspect-ratio:1;background:var(--bg-cream-2);border:2px dashed var(--ink-30);color:var(--ink-30);border-radius:50%;justify-content:center;align-items:center;font-size:28px;display:flex}.passport .stamp.collected{background:var(--shroom-red);color:#fff;border:2px solid var(--shroom-red-deep);animation:.45s cubic-bezier(.2,1.5,.4,1) both stamp-in;transform:rotate(-8deg)}@keyframes stamp-in{0%{opacity:0;transform:rotate(40deg)scale(2.5)}60%{opacity:1;transform:rotate(-8deg)scale(1.05)}to{transform:rotate(-8deg)scale(1)}}.done-main,.done-side,.done-share{display:contents}@media (width>=700px){.app:not([data-module=hub]) .scene.scene-done{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-areas:"eb eb""main share""side side";align-content:start;align-items:start;gap:10px 18px;max-width:1140px;display:grid}.scene-done>.scene-eyebrow{grid-area:eb;margin-bottom:0}.scene-done .done-main{grid-area:main;min-width:0;display:block}.scene-done .done-side{grid-area:side;grid-template-columns:1fr 1fr;align-items:start;gap:14px;min-width:0;display:grid}.scene-done .done-share{flex-direction:column;grid-area:share;gap:10px;min-width:0;display:flex}.scene-done .done-hero{min-height:0;margin:4px 0 8px}.scene-done .done-stamp{gap:2px;padding:12px 22px 10px}.scene-done .done-stamp-emoji{font-size:38px}.scene-done .done-stamp-name{font-size:20px}.scene-done .story-card{margin-bottom:10px;padding:10px 14px}.scene-done .story-card .story-body{font-size:13px;line-height:1.45}.scene-done .quest-card{margin-bottom:10px;padding:10px 14px}.scene-done .title-card{margin-bottom:0;padding:10px 14px}.scene-done .map-section{margin-bottom:0;padding:10px 12px 4px}.scene-done .china-map{max-height:30dvh}.scene-done .passport{margin-bottom:0;padding:14px 18px}.scene-done .passport h3{font-size:24px}.scene-done .passport-count{font-size:22px}.scene-done .visited-list{gap:6px;max-height:22dvh;margin-top:8px;overflow-y:auto}.scene-done .visited-pill{padding:4px 10px 4px 7px;font-size:13px}.scene-done .passport-progress{margin-top:10px}.scene-done .share-card-wrap{margin:0;padding:6px}.scene-done .share-card-label{margin:2px 0 4px}.scene-done .share-card-svg{width:auto;max-width:100%;min-height:180px;max-height:calc(100dvh - 690px);margin:0 auto}.scene-done .done-share .btn-row{gap:10px}.scene-done .done-share .big-btn{max-width:none;min-height:56px;padding:12px 20px;font-size:19px}}@media (width>=700px) and (aspect-ratio>=1){.app:not([data-module=hub]) .scene.scene-done{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.85fr);grid-template-areas:"eb eb eb""main side share"}.scene-done .done-side{grid-template-columns:1fr;gap:10px}.scene-done .china-map{max-height:26dvh}.scene-done .share-card-svg{max-height:calc(100dvh - 470px)}}.foot{text-align:center;color:var(--ink-30);padding:16px 20px 24px;font-size:12px}.foot a{color:var(--ink-50);border-bottom:1px dashed var(--ink-30);text-decoration:none}@media (width<=600px){.scene{padding:24px 20px 32px}.scene h1{font-size:clamp(32px,8vw,40px)}.scene .lead{font-size:16px}.station-grid{gap:10px}.station-card{padding:18px 16px}.big-btn{padding:18px 24px;font-size:20px}.passport .stamps{gap:6px}}.eye-care-banner{color:#f4ecd4;letter-spacing:.08em;-webkit-user-select:none;user-select:none;background:linear-gradient(#9dae82 0%,#7b9263 100%);border-bottom:1px solid #3a32262e;justify-content:center;align-items:center;gap:8px;padding:6px 14px;font-size:12px;display:flex}.eye-care-icon{font-size:14px;line-height:1}.eye-care-text{letter-spacing:.06em;font-weight:500}.build-tag{letter-spacing:.04em;opacity:.85;background:#f4ecd433;border-radius:999px;margin-left:12px;padding:1px 8px;font-family:ui-monospace,monospace;font-size:10px}@media (width<=400px){.build-tag{display:none}}@media (width<=600px){.eye-care-banner{padding:5px 12px;font-size:11px}}.big-back-btn{background:var(--paper,#faefd9);border:2px solid var(--ink-90,#2c2418);width:max-content;max-width:calc(100% - 40px);font:inherit;color:var(--ink-90,#2c2418);cursor:pointer;box-shadow:0 3px 0 var(--ink-90,#2c2418);border-radius:999px;align-items:center;gap:10px;margin:14px auto 4px;padding:12px 22px;font-size:16px;font-weight:600;transition:background .15s,transform .1s,box-shadow .15s;display:flex}.big-back-btn:hover{background:color-mix(in srgb, var(--paper) 80%, var(--ink-90) 8%);box-shadow:0 4px 0 var(--ink-90,#2c2418);transform:translateY(-1px)}.big-back-btn:active{box-shadow:0 1px 0 var(--ink-90,#2c2418);transform:translateY(2px)}.big-back-arrow{font-size:22px;line-height:1}.big-back-text{letter-spacing:.02em}@media (width<=600px){.big-back-btn{width:auto;margin:10px 20px 4px;padding:14px 18px;font-size:15px}.big-back-arrow{font-size:20px}}.scene.hub{padding-top:30px}.hub-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:28px 0 24px;display:grid}.hub-card{border:2px solid var(--ink-15);background:var(--paper);cursor:pointer;font:inherit;text-align:left;--card-theme:#c04b2d;border-radius:18px;flex-direction:column;align-items:flex-start;gap:8px;padding:26px 22px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:relative}.hub-card:before{content:"";background:linear-gradient(135deg, color-mix(in srgb, var(--card-theme) 12%, transparent), transparent 60%);pointer-events:none;border-radius:18px;position:absolute;inset:0}.hub-card:hover{border-color:var(--card-theme);box-shadow:0 12px 28px -10px color-mix(in srgb, var(--card-theme) 35%, transparent);transform:translateY(-4px)}.hub-card:active{transform:translateY(-1px)}.hub-card .hub-card-emoji{font-size:44px;line-height:1}.hub-card .hub-card-name{font-family:var(--font-display,"Newsreader", serif);color:var(--ink-90);letter-spacing:-.01em;font-size:24px;font-weight:600}.hub-card .hub-card-tag{color:var(--ink-50);font-size:13px;line-height:1.55}.hub-card .hub-card-cta{color:var(--card-theme);letter-spacing:.02em;margin-top:6px;font-size:13px;font-weight:600}.hub-card .hub-card-badge{color:var(--ink-50);background:var(--paper-80,#f4e4bd);letter-spacing:.04em;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600;position:absolute;top:12px;right:12px}.hub-card-soon{opacity:.55;cursor:not-allowed}.hub-card-soon:hover{box-shadow:none;border-color:var(--ink-15);transform:none}.hub-privacy{text-align:center;color:var(--ink-50);letter-spacing:.06em;opacity:.7;margin-top:30px;padding:12px 16px;font-size:12px}.hub-privacy p{margin:0}.hub-section{margin-top:30px}.hub-section-head{margin-bottom:14px}.hub-section-title{font-family:var(--font-display,"Fraunces", serif);color:var(--ink,#3a3226);letter-spacing:-.01em;margin:0 0 4px;font-size:22px;font-weight:600}.hub-section-desc{color:var(--ink-50);letter-spacing:.02em;margin:0;font-size:13px}.hub-card-badge.new{background:var(--leaf,#779c5c);color:#f4ecd4;font-weight:700}.hub-extras{text-align:center;margin-top:28px}.hub-extra-link{border:1.5px dashed var(--ink-30);color:var(--ink-50);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:10px 24px;font-size:14px;transition:all .15s}.hub-extra-link:hover{background:color-mix(in srgb, var(--paper-shadow) 50%, transparent);color:var(--ink,#3a3226)}.scene-lookdo{padding-top:14px}.lookdo-levels{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:24px;display:grid}.lookdo-level-card{background:var(--paper,#ece0be);border:2px solid var(--paper-shadow,#c7b68b);cursor:pointer;font:inherit;text-align:left;border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:20px 18px;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex}.lookdo-level-card:hover{border-color:var(--shroom-red,#b86855);transform:translateY(-2px);box-shadow:0 6px 18px #3a32261a}.lookdo-level-card .lvl-code{font-family:var(--font-display,"Fraunces", serif);color:var(--shroom-red,#b86855);font-size:36px;font-weight:700;line-height:1}.lookdo-level-card .lvl-name{color:var(--ink,#3a3226);font-size:18px;font-weight:600}.lookdo-level-card .lvl-desc{color:var(--ink-50);font-size:13px;line-height:1.5}.lookdo-prompt{justify-content:center;align-items:center;min-height:60px;margin:30px 0 20px;display:flex}.lookdo-status{font-family:var(--font-display,"Fraunces", serif);color:var(--ink,#3a3226);text-align:center;letter-spacing:-.01em;margin:0;font-size:22px;font-weight:500}.lookdo-status strong{color:var(--shroom-red,#b86855);font-weight:700}.lookdo-status.correct{color:var(--leaf,#779c5c)}.lookdo-status.wrong{color:var(--ink-50)}.lookdo-buttons{grid-template-columns:repeat(2,1fr);gap:18px;margin:20px 0 12px;display:grid}.lookdo-color-btn{aspect-ratio:2;font-family:var(--font-display,"Fraunces", serif);cursor:pointer;letter-spacing:.04em;text-shadow:0 2px 4px #0000002e;border:3px solid #0003;border-radius:16px;font-size:28px;font-weight:700;transition:transform .12s,box-shadow .12s,opacity .12s;box-shadow:0 6px #0000002e,0 10px 22px #0000001f}.lookdo-color-btn:active:not(:disabled){transform:translateY(5px);box-shadow:0 1px #0000002e,0 4px 10px #0000001a}.lookdo-color-btn:disabled{opacity:.65;cursor:not-allowed}.scene-log{padding-top:14px}.log-overview{grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0;display:grid}.log-stat{background:var(--paper,#ece0be);border:1px solid var(--paper-shadow,#c7b68b);text-align:center;border-radius:12px;padding:18px 12px}.log-stat-num{font-family:var(--font-display,"Fraunces", serif);color:var(--ink,#3a3226);font-size:38px;font-weight:700;line-height:1}.log-stat-label{color:var(--ink-50);letter-spacing:.08em;margin-top:6px;font-size:12px}.log-level-grid,.log-day-list{flex-direction:column;gap:8px;margin-top:8px;display:flex}.log-level-row,.log-day{background:var(--paper,#ece0be);border:1px solid var(--paper-shadow,#c7b68b);border-radius:10px;justify-content:space-between;padding:12px 16px;font-size:14px;display:flex}.log-level-name{color:var(--ink,#3a3226)}.log-level-stats{color:var(--ink,#3a3226);font-weight:500}.log-day-date{color:var(--ink-50)}.log-day-data{color:var(--ink,#3a3226)}.log-day.empty{opacity:.45}.log-tip{background:color-mix(in srgb, var(--paper) 70%, var(--ink-90) 6%);border-left:3px solid var(--leaf,#779c5c);color:var(--ink-50);border-radius:4px;margin-top:28px;padding:16px 18px;font-size:14px;line-height:1.6}.log-tip p{margin:0}.log-tip strong{color:var(--ink,#3a3226)}@media (width<=600px){.lookdo-color-btn{font-size:22px}.log-overview{gap:8px}.log-stat-num{font-size:30px}.log-stat{padding:14px 8px}}.hub-footer-note{background:color-mix(in srgb, var(--paper) 75%, var(--ink-90) 6%);border-left:3px solid var(--ink-30);border-radius:4px;margin-top:20px;padding:14px 16px}.hub-footer-note p{color:var(--ink-50);margin:0;font-size:13px;font-style:italic;line-height:1.6}.brand-emoji{margin-right:4px;font-size:24px;line-height:1}.scene-lift{padding-top:14px}.lift-shell-wrap{flex-direction:column;align-items:center;gap:16px;margin:16px 0 20px;display:flex}.lift-display{background:linear-gradient(#1a2a1a 0%,#0d1a0d 100%);border:3px solid #3a3226;border-radius:10px;justify-content:center;align-items:center;gap:12px;min-width:160px;padding:12px 20px;display:flex;box-shadow:inset 0 2px 8px #00000080,0 4px 10px #00000026}.lift-display-screen{background:#050d05;border:1px solid #2a1f0e;border-radius:4px;justify-content:center;align-items:center;min-width:100px;height:60px;display:flex}.lift-floor-num{color:#0f6;letter-spacing:4px;text-shadow:0 0 8px #00ff66b3,0 0 14px #0f66;font-family:Courier New,monospace;font-size:52px;font-weight:700;line-height:1}.lift-arrows{flex-direction:column;gap:6px;display:flex}.lift-arrow{color:#2a3a2a;font-size:22px;line-height:1;transition:color .2s,text-shadow .2s}.lift-arrow.active{color:#0f6;text-shadow:0 0 8px #0f6c;animation:.8s ease-in-out infinite liftArrowBlink}@keyframes liftArrowBlink{0%,to{opacity:1}50%{opacity:.4}}.lift-svg{filter:drop-shadow(0 12px 22px #0000002e);width:clamp(220px,70vw,320px);height:auto}.lift-doors .lift-door{transform-origin:50%;transition:transform 1.1s cubic-bezier(.65,0,.35,1)}.lift-doors.closed .lift-door-left,.lift-doors.closed .lift-door-right{transform:translate(0)}.lift-doors.open .lift-door-left{transform:translate(-98px)}.lift-doors.open .lift-door-right{transform:translate(98px)}.lift-doors.open .lift-door-seam{opacity:0}.lift-doors.closed .lift-door-seam{opacity:1}.lift-panel{background:linear-gradient(#dfd0a4 0%,#c8b68a 100%);border:2px solid #3a3226;border-radius:14px;max-width:420px;margin:16px auto 0;padding:16px 18px;box-shadow:0 4px #8a7559,0 8px 20px #0000001f}.lift-panel-title{text-align:center;font-family:var(--font-display,"Fraunces", serif);color:var(--ink,#3a3226);letter-spacing:.18em;opacity:.6;margin-bottom:12px;font-size:13px}.lift-panel-grid{flex-direction:column;gap:8px;display:flex}.lift-panel-row{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.lift-floor-btn{aspect-ratio:1;width:100%;color:var(--ink,#3a3226);font-family:var(--font-display,"Fraunces", serif);cursor:pointer;background:#ece0be;border:2px solid #6e6253;border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:600;transition:all .15s;display:flex;box-shadow:0 2px #8a7559}.lift-floor-btn:hover:not(:disabled){background:var(--shroom-red,#b86855);color:#f4ecd4;transform:translateY(-1px);box-shadow:0 3px #8e4a40}.lift-floor-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #8a7559}.lift-floor-btn.current{background:var(--leaf,#779c5c);color:#f4ecd4;cursor:not-allowed;border-color:#5c7f44;box-shadow:0 2px #5c7f44,inset 0 0 10px #0000002e}.lift-floor-btn:disabled:not(.current){opacity:.4;cursor:not-allowed}.lift-panel-hint{text-align:center;color:var(--ink-50);margin-top:10px;font-size:12px;font-style:italic}.lift-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}@media (width<=600px){.lift-svg{width:240px}.lift-floor-num{font-size:42px}.lift-display{min-width:140px;padding:10px 16px}.lift-floor-btn{font-size:16px}.lift-panel{padding:12px 14px}}@media (width>=700px){.scene-lift .lift-shell-wrap{gap:12px;margin:8px 0 12px}.scene-lift .lift-panel{width:100%;margin-top:0}.scene-lift .lift-actions .big-btn{width:auto;min-width:220px}}@media (width>=700px) and (aspect-ratio>=1){.app:not([data-module=hub]) .scene.scene-lift{grid-template:"eb eb""h1 h1""lead lead""shell side"1fr/minmax(0,1fr) minmax(0,1fr);column-gap:32px;max-width:1040px;display:grid}.scene-lift>.scene-eyebrow{grid-area:eb}.scene-lift>h1{grid-area:h1}.scene-lift>.lead{grid-area:lead}.scene-lift>.lift-shell-wrap{grid-area:shell;align-self:start;margin:0}.scene-lift>.lift-panel,.scene-lift>.lift-actions{grid-area:side;align-self:center;margin:0}.scene-lift>.lift-actions{flex-direction:column;align-items:stretch}.scene-lift>.lift-actions .big-btn{width:100%;max-width:none}.scene-lift .lift-svg,.scene-lift-inside .lift-svg{width:clamp(200px,109.091dvh - 360px,340px)}.scene-lift .lift-panel{justify-self:center;max-width:440px}}.scene-traffic{--phase-color:#d9322e;padding-top:20px}.traffic-toggle{background:var(--ink-90,#2c2418);border-radius:999px;gap:6px;margin:0 auto 20px;padding:4px;display:inline-flex}.mode-pill{color:var(--paper-80,#f4e4bd);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:8px 18px;font-size:14px;font-weight:500;transition:background .18s,color .18s}.mode-pill.active{background:var(--paper,#faefd9);color:var(--ink-90,#2c2418)}.traffic-stage{justify-content:center;align-items:center;gap:28px;margin:24px 0 28px;padding:20px 0;display:flex}.traffic-illu{filter:drop-shadow(0 12px 22px #0000002e);width:160px;height:auto}.traffic-illu .lamp.on circle:first-child,.signal-svg .lamp.on circle:first-child{transform-origin:50%;animation:1.4s ease-in-out infinite lampPulse}.traffic-stand-row{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:18px;margin:20px 0 16px;padding:16px 8px;display:flex}.signal-stand{flex-direction:column;align-items:center;gap:6px;display:flex}.signal-svg{filter:drop-shadow(0 6px 14px #0000002e);width:64px;height:auto}.signal-label{flex-direction:column;align-items:center;gap:2px;display:flex}.signal-symbol{color:var(--ink-90,#2c2418);font-size:22px;font-weight:700;line-height:1}.signal-name{letter-spacing:.08em;color:var(--ink-50);font-size:12px}.traffic-countdown.big{margin:8px auto 12px}.phase-strip{justify-content:center;gap:8px;margin:10px 0 16px;display:flex}.phase-dot{border:1.5px solid var(--ink-30);background:var(--paper);width:28px;height:28px;color:var(--ink-50);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:600;transition:all .18s;display:flex}.phase-dot.done{background:var(--ink-30);color:var(--paper);border-color:var(--ink-30)}.phase-dot.active{background:var(--phase-color,#2ba84a);color:#fff;border-color:var(--phase-color,#2ba84a);box-shadow:0 0 0 4px color-mix(in srgb, var(--phase-color) 25%, transparent);transform:scale(1.15)}@keyframes lampPulse{0%,to{opacity:1;filter:drop-shadow(0 0 4px var(--phase-color))}50%{opacity:.88;filter:drop-shadow(0 0 12px var(--phase-color))}}.traffic-countdown{font-family:var(--font-display,"Newsreader", serif);flex-direction:column;justify-content:center;align-items:center;line-height:1;display:flex}.countdown-num{letter-spacing:-.04em;font-size:clamp(80px,18vw,120px);font-weight:600;animation:1s ease-in-out countTick}.countdown-unit{color:var(--ink-50);letter-spacing:.1em;margin-top:6px;font-size:20px}@keyframes countTick{0%{opacity:.8;transform:scale(1.08)}20%{opacity:1;transform:scale(1)}to{opacity:1;transform:scale(1)}}.traffic-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:4px;display:flex}.traffic-tip{background:color-mix(in srgb, var(--paper) 75%, var(--ink-90) 6%);border-left:3px solid var(--phase-color);border-radius:4px;margin-top:24px;padding:14px 18px}.traffic-tip p{color:var(--ink-50);margin:0;font-size:13px;font-style:italic;line-height:1.55}@media (width<=600px){.traffic-stage{gap:16px}.traffic-illu{width:130px}.countdown-num{font-size:clamp(72px,22vw,100px)}.hub-card{padding:22px 18px}.hub-card .hub-card-emoji{font-size:38px}.hub-card .hub-card-name{font-size:22px}.traffic-stand-row{gap:10px}.signal-svg{width:50px}.signal-symbol{font-size:18px}.phase-dot{width:24px;height:24px;font-size:11px}}@media (width>=700px){.scene-traffic .traffic-stand-row{gap:24px;margin:8px 0;padding:8px}.scene-traffic .signal-svg{width:clamp(64px,30dvh - 210px,96px)}.scene-traffic .traffic-countdown.big{margin:4px auto 6px}.scene-traffic .phase-strip{margin:6px 0 12px}.scene-traffic .traffic-tip{margin-top:14px;padding:10px 14px}}@media (width>=700px) and (aspect-ratio>=1){.app:not([data-module=hub]) .scene.scene-traffic{grid-template:"eb eb""h1 h1""lead lead""stands count""stands strip""stands actions""stands tip"1fr/minmax(0,1.1fr) minmax(0,1fr);align-content:start;column-gap:28px;max-width:1080px;display:grid}.scene-traffic>.scene-eyebrow{grid-area:eb}.scene-traffic>h1{grid-area:h1}.scene-traffic>.lead{grid-area:lead}.scene-traffic>.traffic-stand-row{flex-wrap:nowrap;grid-area:stands;align-self:center;margin:0}.scene-traffic>.traffic-countdown{grid-area:count}.scene-traffic>.phase-strip{grid-area:strip}.scene-traffic>.traffic-actions{flex-direction:column;grid-area:actions;align-items:stretch}.scene-traffic>.traffic-actions .big-btn{max-width:none}.scene-traffic>.traffic-tip{grid-area:tip;align-self:start}.scene-traffic .signal-svg{width:clamp(70px,26dvh - 98.8px,104px)}.scene-traffic .countdown-num{font-size:clamp(72px,13dvh,112px)}}.scene-bus{padding-top:20px}.scene-bus h1 em{color:#c9822e;font-style:normal}.scene-bus h1 small{color:var(--ink-60,#6e6253);font-size:.5em;font-weight:500}.bus-remind{color:#d9322e;animation:.9s ease-in-out infinite busRemindBlink}@keyframes busRemindBlink{50%{opacity:.45}}.bus-stage{width:100%;max-width:560px;height:220px;margin:18px auto 10px;position:relative;overflow:hidden}.bus-road{opacity:.85;background:#4a4238 repeating-linear-gradient(90deg,#4a4238 0 40px,#4a4238 40px 48px,#e8d9b0 48px 64px,#4a4238 64px);border-radius:6px;height:26px;position:absolute;bottom:0;left:0;right:0}.bus-stopsign{z-index:2;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:22px;left:18px}.bus-stopsign-board{color:#fdf6e3;background:#2c6e8a;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:8px 14px;font-size:13px;display:flex;box-shadow:0 6px 14px #0003}.bus-stopsign-board b{font-size:15px}.bus-stopsign-board small{opacity:.85;font-size:11px}.bus-stopsign-pole{background:#6e6253;border-radius:3px;width:6px;height:64px}.bus-vehicle{z-index:1;width:300px;transition:transform 1.6s cubic-bezier(.22,.9,.36,1);position:absolute;bottom:14px}.bus-vehicle-far{left:30%;right:auto;transform:translate(100vw)}.bus-vehicle-in{left:30%;transform:translate(0)}.bus-svg{filter:drop-shadow(0 10px 18px #0003);width:100%;height:auto}.bus-farebox{justify-content:center;gap:34px;margin:26px 0;font-size:64px;display:flex}.farebox-slot,.farebox-reader{background:var(--paper,#faefd9);border:3px solid #c9822e;border-radius:18px;justify-content:center;align-items:center;width:120px;height:120px;display:flex;box-shadow:0 10px 22px #0000001f}.bus-window{background:linear-gradient(#bfe3ee 0 55%,#dce8c8 55% 78%,#c9b98a 78%);border-radius:18px;width:100%;max-width:560px;height:190px;margin:14px auto;position:relative;overflow:hidden;box-shadow:inset 0 0 0 10px #8a5a1d,inset 0 0 0 14px #e8a33d,0 12px 24px #00000024}.bus-sky{font-size:26px;position:absolute;top:10px;left:0;right:0}.bus-cloud{position:absolute}.bus-cloud.c1{left:12%}.bus-cloud.c2{top:16px;left:64%}.bus-scenery{gap:44px;width:200%;font-size:52px;display:flex;position:absolute;bottom:34px;left:0}.bus-window-moving .bus-scenery{animation:7s linear infinite busScroll}.bus-window-moving .bus-cloud.c1{animation:16s linear infinite busCloud}.bus-window-moving .bus-cloud.c2{animation:22s linear infinite busCloud}@keyframes busScroll{to{transform:translate(-50%)}}@keyframes busCloud{to{transform:translate(-420px)}}.bus-routeline{justify-content:space-between;width:100%;max-width:620px;margin:22px auto 8px;padding:0 8px;display:flex;position:relative}.bus-routeline-track,.bus-routeline-fill{border-radius:3px;height:5px;position:absolute;top:8px;left:3%}.bus-routeline-track{background:#e3d3ac;right:3%}.bus-routeline-fill{background:#c9822e;max-width:94%;transition:width .8s}.bus-stopdot{z-index:1;flex-direction:column;align-items:center;gap:5px;width:12.5%;display:flex;position:relative}.bus-stopdot .dot{background:var(--paper,#faefd9);border:3px solid #c9ae7a;border-radius:50%;width:16px;height:16px}.bus-stopdot.passed .dot{background:#c9822e;border-color:#c9822e}.bus-stopdot.here .dot{background:#fff3b8;border-color:#c9822e;animation:1.4s ease-in-out infinite busHere;box-shadow:0 0 0 5px #c9822e40}@keyframes busHere{50%{box-shadow:0 0 0 9px #c9822e1f}}.bus-stopdot .stopname{color:var(--ink-60,#6e6253);writing-mode:vertical-rl;letter-spacing:1px;min-height:64px;font-size:11px}.bus-stopdot.goal .stopname{color:#c9822e;font-weight:700}.bus-stopdot .goalflag{font-size:14px;position:absolute;top:-20px}.bus-actions{justify-content:center;margin-top:18px;display:flex}.bus-actions-row{gap:18px}.bus-bell{z-index:30;cursor:pointer;color:#fff;background:#d9322e;border:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:116px;height:116px;font-size:16px;font-weight:700;transition:transform .1s,box-shadow .1s;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 8px #9a1f1c,0 14px 26px #00000038}.bus-bell:active{transform:translateY(6px);box-shadow:0 2px #9a1f1c,0 6px 14px #0003}.bus-bell-icon{font-size:40px}.bus-bell-pressed{cursor:default;background:#7a8a6e;box-shadow:0 2px #55614c,0 6px 12px #00000029}.bus-bell-urgent{animation:.7s ease-in-out infinite busBellUrgent}@keyframes busBellUrgent{50%{transform:scale(1.08)}}.bus-done-emoji{text-align:center;margin:26px 0 6px;font-size:56px}@media (width<=600px){.bus-stage{height:190px}.bus-vehicle{width:240px}.bus-window{height:160px}.bus-scenery{gap:34px;font-size:42px}.bus-stopdot .stopname{min-height:56px;font-size:10px}.bus-bell{width:100px;height:100px;font-size:14px;bottom:14px;right:14px}.bus-bell-icon{font-size:32px}.farebox-slot,.farebox-reader{width:96px;height:96px;font-size:48px}}.scene-airport{padding-top:20px}.scene-airport h1 em{color:#4f86a8;font-style:normal}.air-actions{justify-content:center;margin-top:20px;display:flex}.air-blink{animation:.9s ease-in-out infinite busRemindBlink}.air-shake{animation:.45s airShake}@keyframes airShake{20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}.air-dest-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.air-dest-card{background:var(--shroom-cap);border-radius:var(--r-md);box-shadow:var(--shadow-card);cursor:pointer;font-family:var(--font-body);color:var(--ink);border:3px solid #4f86a8;flex-direction:column;align-items:center;gap:4px;padding:18px 8px 14px;transition:transform .12s;display:flex;position:relative}.air-dest-card:active{transform:translateY(3px)}.air-dest-emoji{font-size:48px;line-height:1.1}.air-dest-name{font-family:var(--font-display);font-size:22px;font-weight:600}.air-dest-code{color:var(--ink-50);letter-spacing:.04em;font-size:12px}.air-dest-been{color:#fff;background:var(--leaf);border-radius:var(--r-pill);padding:2px 8px;font-size:11px;font-weight:700;position:absolute;top:8px;right:8px}.air-suitcase{width:100%;height:auto;display:block}.air-bag-pick{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.air-bag-btn{background:var(--shroom-cap);border:2px solid var(--paper-shadow);border-radius:var(--r-md);box-shadow:var(--shadow-card);cursor:pointer;font-family:var(--font-body);color:var(--ink);flex-direction:column;align-items:center;gap:6px;padding:14px 10px;font-size:16px;font-weight:600;display:flex}.air-bag-btn svg{width:72px}.air-counter{width:100%;max-width:520px;height:230px;margin:0 auto;position:relative;overflow:hidden}.air-belt{background:repeating-linear-gradient(90deg,#4a4238 0 14px,#6e6253 14px 28px);border-radius:9px;height:18px;animation:.8s linear infinite airBelt;position:absolute;bottom:30px;left:0;right:0}@keyframes airBelt{to{background-position:28px 0}}.air-scale-bag{width:110px;transition:transform 2s ease-in;position:absolute;bottom:46px;left:18%}.air-scale-bag-away{transform:translate(520px)}.air-scale-screen{color:#9fe0a8;text-align:center;background:#1f2a33;border-radius:12px;flex-direction:column;align-items:center;min-width:130px;padding:10px 14px;font-family:ui-monospace,Menlo,monospace;font-size:18px;display:flex;position:absolute;top:10px;right:6%}.air-scale-num{font-size:40px;font-weight:700;line-height:1.1}.air-scale-ok{font-family:var(--font-body);color:#ffe9a8;font-size:14px}.air-pass{width:100%;max-width:440px;box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--ink);background:#fff9e8;border:2px solid #4f86a8;border-radius:16px;margin:8px auto;overflow:hidden}.air-pass-head{color:#fff;background:#4f86a8;justify-content:space-between;align-items:center;padding:8px 16px;font-size:14px;display:flex}.air-pass-head b{letter-spacing:.06em;font-size:18px}.air-pass-route{border-bottom:2px dashed #c9b98a;justify-content:space-around;align-items:center;padding:12px 16px 6px;display:flex}.air-pass-route div{flex-direction:column;align-items:center;display:flex}.air-pass-route b{font-family:var(--font-display);font-size:30px;line-height:1}.air-pass-route small{color:var(--ink-50);font-size:13px}.air-pass-plane{color:#4f86a8;font-size:26px}.air-pass-grid{grid-template-columns:1.6fr 1fr 1fr;gap:8px;padding:10px 16px 12px;display:grid}.air-pass-grid div{flex-direction:column;display:flex}.air-pass-grid small{color:var(--ink-50);font-size:11px}.air-pass-grid b{font-size:17px}.air-pass-seat{color:#c8553d;font-size:24px!important}.air-pass-print .air-pass{animation:1.1s ease-out airPrint}@keyframes airPrint{0%{opacity:0;clip-path:inset(0 0 100%);transform:translateY(-40px)}to{clip-path:inset(0)}}.air-pass-mini .air-pass{margin:-10px auto;transform:scale(.86)}.air-xray{background:#16242e;border:6px solid #6e6253;border-radius:18px;width:100%;max-width:480px;margin:0 auto;padding:14px}.air-xray-label{color:#7fd1e0;letter-spacing:.12em;margin-bottom:10px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.air-xray-bag{border:3px dashed #7fd1e066;border-radius:26px;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px;transition:transform 1.4s ease-out;display:grid;transform:translate(-110%)}.air-xray-bag.on{transform:translate(0)}.air-xray-item{cursor:pointer;filter:grayscale()brightness(1.3)sepia()hue-rotate(150deg)saturate(3);background:0 0;border:none;border-radius:14px;padding:10px 0;font-size:50px;line-height:1}.air-xray-item:active{background:#7fd1e026}.air-door-stage{border-bottom:8px solid #c7b68b;border-radius:0 0 6px 6px;width:100%;max-width:480px;height:220px;margin:0 auto;position:relative;overflow:hidden}.air-door{z-index:2;border:16px solid #8a95a0;border-bottom:none;border-radius:16px 16px 0 0;width:130px;height:190px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.air-door-light{background:#d9a458;border-radius:5px;width:26px;height:10px;position:absolute;top:-13px;left:50%;transform:translate(-50%)}.air-door.green .air-door-light{background:#5ec46a;box-shadow:0 0 14px #5ec46a}.air-walker{z-index:1;flex-direction:column;align-items:center;transition:left 1.5s ease-in-out;display:flex;position:absolute;bottom:10px;left:6%}.air-walker.through{left:70%}.air-walker-arms{margin-bottom:-10px;font-size:34px}.air-walker-face{font-size:64px;line-height:1}.air-bin{opacity:.8;font-size:30px;position:absolute;top:4px;left:4px}.air-bin span{font-size:22px}.air-board{color:#ffd66b;background:#1f2a33;border-radius:14px;width:100%;max-width:520px;margin:0 auto;padding:10px 12px;font-family:ui-monospace,Menlo,monospace}.air-board-head,.air-board-row{grid-template-columns:1.1fr 1fr .9fr 1fr;gap:6px;padding:7px 6px;font-size:16px;display:grid}.air-board-head{color:#93b5c9;border-bottom:1px solid #3a4a56;font-size:12px}.air-board-row.gone{opacity:.45}.air-board-row.mine{background:#ffd66b24;border-radius:8px;font-weight:700}.air-board-row.boarding .st{color:#6be07a;animation:.9s ease-in-out infinite busRemindBlink}.air-gate-window{background:linear-gradient(#bfe3ee 0 62%,#8e9aa3 62%);border-radius:18px;width:100%;max-width:520px;height:170px;margin:14px auto 0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 8px #6e6253}.air-gate-plane{width:300px;position:absolute;bottom:14px;left:6%}.air-plane-svg{width:100%;height:auto}.air-gate-truck{font-size:36px;animation:6s ease-in-out infinite alternate airTruck;position:absolute;bottom:12px;right:8%}@keyframes airTruck{to{transform:translate(-90px)}}.air-bridge{align-items:center;width:100%;max-width:520px;margin:20px auto;display:flex}.air-bridge-tube{background:repeating-linear-gradient(90deg,#d6cdb6 0 36px,#c4b99c 36px 40px);border:4px solid #8a95a0;border-right:none;border-radius:14px 0 0 14px;flex:1;height:120px;position:relative;overflow:hidden}.air-bridge-walker{font-size:56px;animation:2.1s ease-in-out forwards airBridgeWalk;position:absolute;bottom:14px;left:4%}@keyframes airBridgeWalk{to{left:78%}}.air-bridge-door{background:#f4ecd4;border:4px solid #4f86a8;border-radius:20px;justify-content:center;align-items:center;width:90px;height:140px;font-size:44px;display:flex}.air-cabin{background:#ede5cf;border:3px solid #c7b68b;border-radius:60px 60px 18px 18px;width:100%;max-width:360px;margin:10px auto 0;padding:14px 16px}.air-cabin-row{grid-template-columns:1fr 1fr 34px 1fr 1fr;align-items:center;gap:8px;margin-bottom:8px;display:grid}.air-cabin-head{color:var(--ink-50);text-align:center;margin-bottom:4px;font-size:12px}.air-row-no{text-align:center;color:var(--ink-50);font-size:13px;font-weight:700}.air-seat{cursor:pointer;color:#fff;height:50px;font-family:var(--font-body);background:#7a9bb4;border:none;border-radius:12px 12px 6px 6px;font-size:15px;font-weight:700;box-shadow:0 4px #4f6e86}.air-seat:active{transform:translateY(2px);box-shadow:0 2px #4f6e86}.air-seat.mine{background:#d9a458;font-size:28px;box-shadow:0 4px #a77a35}@media (orientation:landscape) and (width>=900px) and (height>=600px){.scene.scene-airport.air-phase-seat{grid-template-rows:repeat(5,auto) 1fr;grid-template-columns:minmax(0,1fr) minmax(0,400px);align-items:start;column-gap:32px;max-width:1040px;display:grid}.air-phase-seat>*{grid-column:1}.air-phase-seat>.air-cabin{grid-area:1/2/-1;align-self:center;margin-top:0}.air-phase-seat .air-pass-mini .air-pass{margin:8px 0;transform:none}.air-phase-seat .air-actions{justify-content:flex-start}}.air-porthole{border:16px solid #e9e2cf;border-radius:46%/40%;width:100%;max-width:380px;height:300px;margin:0 auto;position:relative;overflow:hidden;box-shadow:inset 0 0 0 4px #c7b68b,0 12px 26px #00000029}.air-sky{background:linear-gradient(#8ec5e0,#cfe8f2);transition:background 2s;position:absolute;inset:0}.air-fly-cruise .air-sky{background:linear-gradient(#3f7cac,#9ccbe3)}.air-clouds{justify-content:space-around;width:200%;font-size:46px;transition:transform 2.5s;display:flex;position:absolute;top:18%;left:0;transform:translateY(-160%)}.air-clouds span:nth-child(2n){margin-top:60px;font-size:60px}.air-fly-takeoff .air-clouds{transition-delay:2.2s;transform:translateY(0)}.air-fly-cruise .air-clouds{animation:7s linear infinite airDrift;transform:translateY(20%)}.air-fly-descend .air-clouds{transform:translateY(-200%)}@keyframes airDrift{0%{margin-left:0}to{margin-left:-100%}}.air-ground{background:linear-gradient(#a9c98a,#7fa466);justify-content:space-around;align-items:flex-start;width:200%;height:42%;padding-top:8px;font-size:40px;display:flex;position:absolute;bottom:0;left:0}.air-fly-taxi .air-ground{animation:10s linear infinite airTaxi}.air-fly-takeoff .air-ground{animation:4.5s ease-in forwards airTakeoff}.air-fly-cruise .air-ground{transform:translateY(140%)}.air-fly-descend .air-ground{animation:4.5s ease-out forwards airDescend}.air-fly-landed .air-ground{transform:translate(-50%)}@keyframes airTaxi{to{transform:translate(-50%)}}@keyframes airTakeoff{0%{transform:translate(0)}45%{transform:translate(-30%)rotate(0)}to{transform:translate(-50%,150%)rotate(-8deg)}}@keyframes airDescend{0%{transform:translate(-20%,150%)rotate(4deg)}to{transform:translate(-50%)rotate(0)}}.air-runway{background:#5a5248;border-top:3px solid #e8d9b0;height:16%;transition:transform 1.5s ease-in;position:absolute;bottom:0;left:0;right:0}.air-runway:after{content:"";background:repeating-linear-gradient(90deg,#f4ecd4 0 26px,#0000 26px 50px);height:5px;position:absolute;top:45%;left:0;right:0}.air-fly-taxi .air-runway:after{animation:1.4s linear infinite airRunway}.air-fly-takeoff .air-runway:after{animation:.3s linear infinite airRunway}.air-fly-takeoff .air-runway{transition-delay:2s;transform:translateY(200%)}.air-fly-cruise .air-runway,.air-fly-descend .air-runway{transform:translateY(200%)}@keyframes airRunway{to{background-position:-50px 0}}.air-wing{z-index:2;clip-path:polygon(0 38%,100% 78%,96% 100%,0 100%);filter:drop-shadow(0 -2px #2c4a5c);background:linear-gradient(170deg,#dde7ee 0 55%,#a9bcca 55%);width:66%;height:64px;position:absolute;bottom:14%;left:-6%}.air-drinks{justify-content:center;gap:14px;margin-top:18px;display:flex}.air-drink-btn{cursor:pointer;background:var(--shroom-cap);border-radius:var(--r-md);width:96px;box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--ink);border:2px solid #4f86a8;flex-direction:column;align-items:center;gap:4px;padding:12px 0;font-size:15px;font-weight:600;display:flex}.air-drink-btn span{font-size:40px}.air-tray{text-align:center;margin-top:14px;font-size:44px}.air-carousel{width:100%;max-width:560px;height:170px;margin:10px auto;position:relative;overflow:hidden}.air-carousel-track{gap:26px;width:max-content;animation:14s linear infinite airCarousel;display:flex;position:absolute;bottom:34px;left:0}.air-carousel-track.paused{animation-play-state:paused}@keyframes airCarousel{to{transform:translate(-50%)}}.air-carousel-bag{cursor:pointer;background:0 0;border:none;width:104px;padding:0}.air-carousel-bag.got{filter:drop-shadow(0 0 10px #ffd66b);transition:transform .3s;transform:translateY(-16px)scale(1.1)}.air-carousel-belt{background:repeating-linear-gradient(90deg,#4a4238 0 22px,#5e554a 22px 26px);border-radius:13px;height:26px;position:absolute;bottom:14px;left:0;right:0}.air-done-emoji{text-align:center;margin:20px 0 6px;font-size:56px}.air-stamps{text-align:center;width:100%;max-width:440px;margin:18px auto 0}.air-stamps-title{color:var(--ink-50);letter-spacing:.04em;margin-bottom:10px;font-size:14px}.air-stamps-row{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.air-stamp{border:2px dashed var(--paper-shadow);color:var(--ink-30);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 0;display:flex}.air-stamp b{font-size:26px}.air-stamp small{font-size:11px}.air-stamp.on{color:var(--ink);background:var(--shroom-cap);border:2px solid #4f86a8}@media (width<=600px){.air-dest-grid{grid-template-columns:repeat(2,1fr);gap:10px}.air-bag-pick{grid-template-columns:repeat(2,1fr)}.air-xray-item{font-size:42px}.air-gate-plane{width:240px}.air-porthole{height:250px}.air-stamps-row{grid-template-columns:repeat(3,1fr)}.air-board-head,.air-board-row{font-size:14px}}.scene-color{padding-top:20px}.scene-color h1 em{color:#c0588a;font-style:normal}.scene-color h1 em.color-rainbow{background:linear-gradient(90deg,#d9463b,#ee8a2e,#f2c230,#5ba84a,#3b7fd0,#8a5bc4);color:#0000;-webkit-background-clip:text;background-clip:text}.color-menu-back{border-radius:var(--r-pill);background:var(--shroom-cap);color:#c0588a;font-family:var(--font-body);cursor:pointer;border:2px solid #c0588a;align-self:flex-start;margin:-4px 0 10px;padding:8px 16px;font-size:15px;font-weight:700}.color-mode-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.color-mode-card{cursor:pointer;background:var(--shroom-cap);border-radius:var(--r-md);box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--ink);border:3px solid #c0588a;flex-direction:column;align-items:center;gap:4px;padding:22px 10px 18px;display:flex}.color-mode-card:active{transform:translateY(3px)}.color-mode-emoji{font-size:50px;line-height:1.1}.color-mode-name{font-family:var(--font-display);font-size:24px;font-weight:600}.color-mode-tag{color:var(--ink-50);font-size:13px}.color-pots{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px;display:grid}.color-pot{cursor:pointer;border:2px solid var(--paper-shadow);font-family:var(--font-body);color:var(--ink);background:#ede5cf;border-radius:16px 16px 22px 22px;flex-direction:column;align-items:center;gap:6px;padding:10px 4px 8px;transition:transform .15s;display:flex}.color-pot-paint{background:var(--c);border:3px solid #3a32268c;border-radius:50%;width:58px;height:58px;box-shadow:inset 0 -6px #0000001f,inset 0 5px #ffffff59}.color-pot-name{font-size:15px;font-weight:700}.color-pot.sel{border-color:var(--ink);box-shadow:0 6px 0 var(--paper-shadow);transform:translateY(-6px)}.color-splash{background:var(--c);border:4px solid #3a322666;border-radius:58% 42% 54% 46%/48% 56% 44% 52%;width:170px;height:150px;margin:0 auto}.color-examples{justify-content:center;gap:18px;min-height:64px;margin:10px 0 0;font-size:48px;display:flex}.color-examples span{animation:.4s both colorPop}.color-examples span:nth-child(2){animation-delay:.12s}.color-examples span:nth-child(3){animation-delay:.24s}.color-examples-hint{opacity:.5;font-size:36px}.color-splash.on{animation:.45s cubic-bezier(.3,1.6,.5,1) colorPop}@keyframes colorPop{0%{transform:scale(.4)rotate(-20deg)}}.color-target-chip{border-radius:var(--r-pill);background:var(--c);color:#fff;text-shadow:0 1px 2px #00000073;border:3px solid #3a322659;padding:2px 16px;font-style:normal;display:inline-block}.color-target-chip.light{color:var(--ink);text-shadow:none}.color-found-dots{justify-content:center;gap:10px;margin:-14px 0 16px;display:flex}.color-found-dots span{border:3px dashed var(--paper-shadow);border-radius:50%;width:22px;height:22px}.color-found-dots span.on{background:var(--c);border:3px solid #3a322666;animation:.4s colorPop}.color-things{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.color-thing{cursor:pointer;background:var(--shroom-cap);border:3px solid var(--paper-shadow);border-radius:var(--r-md);font-family:var(--font-body);color:var(--ink);flex-direction:column;align-items:center;gap:2px;padding:12px 4px 10px;display:flex;position:relative}.color-thing-emoji{font-size:50px;line-height:1.15}.color-thing-name{font-size:14px;font-weight:600}.color-thing.found{border-color:var(--c);box-shadow:0 0 0 4px var(--c);animation:.4s colorPop}.color-thing.found:after{content:"✓";background:var(--leaf);color:#fff;border-radius:50%;width:24px;height:24px;font-size:15px;font-weight:700;line-height:24px;position:absolute;top:6px;right:8px}.color-mix-row{justify-content:center;margin:4px 0 8px;display:flex}.color-bowl{background:#f4ecd4;border:6px solid #8a7a5e;border-top-width:10px;border-radius:0 0 120px 120px/0 0 130px 130px;width:240px;height:130px;position:relative;overflow:hidden}.color-bowl-liquid{background:linear-gradient(90deg, var(--a) 50%, var(--b) 50%);position:absolute;inset:28% 0 0;overflow:hidden}.color-bowl-liquid.stir{background:var(--a)}.color-bowl-liquid.stir:before{content:"";background:conic-gradient(var(--a) 0 12.5%, var(--b) 0 25%, var(--a) 0 37.5%, var(--b) 0 50%, var(--a) 0 62.5%, var(--b) 0 75%, var(--a) 0 87.5%, var(--b) 0);width:420px;height:420px;margin:-210px 0 0 -210px;animation:.7s linear infinite colorSwirl;position:absolute;top:50%;left:50%}.color-bowl-liquid.stir:after{content:"";background:var(--out);opacity:0;animation:2.4s ease-in forwards colorBlend;position:absolute;inset:0}@keyframes colorSwirl{to{transform:rotate(360deg)}}@keyframes colorBlend{30%{opacity:0}to{opacity:1}}.color-spoon{z-index:2;font-size:44px;animation:.7s ease-in-out infinite alternate colorSpoon;position:absolute;top:4px;left:50%}@keyframes colorSpoon{0%{transform:translate(-60px)rotate(-20deg)}to{transform:translate(20px)rotate(20deg)}}.color-equation{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin:8px 0;font-size:17px;font-weight:700;display:flex}.color-equation b{color:var(--ink-50);margin:0 6px;font-size:24px}.color-equation .sw{background:var(--c);border:2px solid #3a322680;border-radius:50%;width:26px;height:26px}.color-equation .sw.big{width:36px;height:36px}.color-pots-mix{width:100%;max-width:440px;margin-top:12px;margin-left:auto;margin-right:auto}.color-pots-mix .color-pot-paint{box-shadow:inset 0 -6px #0000001f,inset 0 5px #ffffff59,0 0 0 2px #fff9e8}.color-palette{flex-wrap:wrap;justify-content:center;gap:10px;margin:-8px 0 14px;display:flex}.color-swatch{cursor:pointer;background:var(--c);border:3px solid #3a322673;border-radius:50%;width:46px;height:46px;transition:transform .15s}.color-swatch.sel{box-shadow:0 0 0 4px var(--bg-cream), 0 0 0 7px var(--ink);transform:scale(1.18)}.color-picture{width:100%;max-width:440px;height:auto;margin:0 auto;display:block}.color-region{cursor:pointer;transition:fill .25s}.color-paint-actions{flex-wrap:wrap;gap:14px}@media (width>=700px) and (height>=600px){.color-swatch{width:52px;height:52px}.color-mode-paint .color-picture{max-width:min(440px,106.667dvh - 416px)}}@media (orientation:landscape) and (width>=900px) and (height>=600px){.scene.scene-color.color-mode-paint{grid-template-rows:repeat(6,auto) 1fr;grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;column-gap:28px;max-width:1120px;display:grid}.color-mode-paint>*{grid-column:2}.color-mode-paint>.color-picture{grid-area:1/1/-1;align-self:center;max-width:min(100%,106.667dvh - 117.333px)}.color-mode-paint .color-menu-back{justify-self:start}.color-mode-paint .color-palette{justify-content:flex-start;gap:14px;margin:4px 0 8px}.color-mode-paint .color-paint-actions{flex-direction:column;justify-content:flex-start;margin-top:12px}}@media (width<=600px){.color-pot-paint{width:48px;height:48px}.color-pots{gap:8px}.color-pots-mix{gap:8px 6px;margin-top:10px}.color-pots-mix .color-pot{gap:4px;padding:8px 2px 6px}.color-pots-mix .color-pot-paint{width:42px;height:42px}.color-pots-mix .color-pot.sel{transform:translateY(-4px)}.color-thing-emoji{font-size:42px}.color-splash{width:140px;height:110px}.color-examples{min-height:56px;margin-top:6px;font-size:42px}.color-swatch{width:40px;height:40px}}.scene-talk{padding-top:20px}.scene-talk h1 em{color:#d08a3c;font-style:normal}.talk-back{color:#d08a3c;border-color:#d08a3c}.talk-groups{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.talk-group-card{cursor:pointer;background:var(--shroom-cap);border-radius:var(--r-md);box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--ink);border:3px solid #d08a3c;flex-direction:column;align-items:center;gap:4px;padding:20px 6px 16px;display:flex}.talk-group-card:active{transform:translateY(3px)}.talk-group-emoji{font-size:46px;line-height:1.1}.talk-group-name{font-family:var(--font-display);font-size:21px;font-weight:600}.talk-group-tag{color:var(--ink-50);font-size:12px}.talk-privacy{color:var(--ink-50);text-align:center;margin-top:20px;font-size:13px}.talk-progress{justify-content:center;gap:8px;margin-bottom:14px;display:flex}.talk-progress span{background:#e3d3ac;border-radius:50%;width:12px;height:12px}.talk-progress span.done{background:#d08a3c}.talk-progress span.now{background:#fff3b8;box-shadow:0 0 0 3px #d08a3c}.talk-card{border-radius:var(--r-lg);width:100%;max-width:440px;box-shadow:var(--shadow-card);cursor:pointer;font-family:var(--font-body);color:var(--ink);background:#fff9e8;border:3px solid #d08a3c;flex-direction:column;align-items:center;gap:10px;margin:0 auto;padding:22px 16px 14px;animation:.35s colorPop;display:flex}.talk-pic{flex-wrap:wrap;justify-content:center;gap:8px;line-height:1.1;display:flex}.talk-card-word .talk-pic{font-size:96px}.talk-card-sentence .talk-pic{font-size:70px}.talk-card-talk .talk-pic{background:#eaf3f7;border:2px dashed #93b5c9;border-radius:16px;gap:10px;width:100%;padding:14px 10px;font-size:50px}.talk-text{font-family:var(--font-display);text-align:center;font-size:30px;font-weight:600;line-height:1.3}.talk-card-word .talk-text{letter-spacing:.1em;font-size:44px}.talk-card-talk .talk-text{font-size:22px}.talk-listen{color:var(--ink-50);font-size:13px}.talk-mic-row{justify-content:center;align-items:center;margin:22px 0 6px;display:flex;position:relative}.talk-mic{cursor:pointer;color:#fff;width:116px;height:116px;font-family:var(--font-body);background:#d9322e;border:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:15px;font-weight:700;transition:transform .1s,box-shadow .1s;display:flex;position:relative;box-shadow:0 8px #9a1f1c,0 14px 26px #0003}.talk-mic:active{transform:translateY(6px);box-shadow:0 2px #9a1f1c}.talk-mic-icon{font-size:40px;line-height:1}.talk-mic.on{animation:1s ease-in-out infinite talkPulse}@keyframes talkPulse{50%{box-shadow:0 8px #9a1f1c,0 0 0 14px #d9322e2e}}.talk-mic-ring{background:conic-gradient(#d9322e var(--p,0%), #d9322e26 0);animation:talkRing var(--rec-ms) linear forwards;border-radius:50%;position:absolute;inset:-9px;-webkit-mask:radial-gradient(circle,#0000 62px,#000 63px);mask:radial-gradient(circle,#0000 62px,#000 63px)}@property --p{syntax:"<percentage>";inherits:false;initial-value:0%}@keyframes talkRing{to{--p:100%}}.talk-level{align-items:center;gap:5px;height:60px;display:flex;position:absolute;left:calc(50% + 78px)}.talk-level span{transform-origin:50%;background:#d08a3c;border-radius:4px;width:8px;height:60px;transition:transform 80ms linear}.talk-hint{text-align:center;color:var(--ink-50);margin:8px 0 0;font-size:15px}.talk-actions-row{flex-wrap:wrap;gap:14px}@media (orientation:landscape) and (width>=900px) and (height<=780px){.talk-progress{margin-bottom:8px}.talk-card{gap:6px;padding:14px 16px 10px}.talk-card-word .talk-pic{font-size:76px}.talk-card-sentence .talk-pic{font-size:60px}.talk-mic-row{margin:12px 0 4px}.talk-actions-row{margin-top:12px}}@media (width<=600px){.talk-groups{gap:8px}.talk-group-name{font-size:18px}.talk-card-word .talk-pic{font-size:80px}.talk-card-sentence .talk-pic{font-size:56px}.talk-card-talk .talk-pic{font-size:40px}.talk-text{font-size:26px}.talk-mic{width:104px;height:104px}.talk-mic-ring{-webkit-mask:radial-gradient(circle,#0000 56px,#000 57px);mask:radial-gradient(circle,#0000 56px,#000 57px)}.talk-level{left:calc(50% + 70px)}}.app:not([data-module=hub]){min-height:100dvh}.app:not([data-module=hub]) .topbar{grid-template-columns:auto 1fr auto;min-height:56px;padding:6px 12px}.app:not([data-module=hub]) .topbar .brand{justify-content:center;font-size:18px}.app:not([data-module=hub]) .topbar .big-back-btn{white-space:nowrap;max-width:46vw;min-height:44px;box-shadow:0 2px 0 var(--ink-90,#2c2418);gap:6px;margin:0;padding:6px 14px;font-size:14px}.app:not([data-module=hub]) .topbar .big-back-arrow{font-size:18px}.app:not([data-module=hub]) .topbar .big-back-text{text-overflow:ellipsis;overflow:hidden}.app:not([data-module=hub]) .scene{padding-top:10px;padding-bottom:12px}.app:not([data-module=hub]) .scene-eyebrow{margin-bottom:4px;font-size:12px}.app:not([data-module=hub]) .scene h1{margin-top:2px;margin-bottom:6px;font-size:clamp(24px,3.4vh,38px)}.app:not([data-module=hub]) .scene .lead{margin-bottom:12px;font-size:15px;line-height:1.5}@media (width<=600px){.app:not([data-module=hub]) .topbar .big-back-text{text-overflow:ellipsis;white-space:nowrap;max-width:9em;overflow:hidden}}.color-pot{box-shadow:0 4px 0 var(--paper-shadow), 0 10px 14px -8px #46321459, inset 0 1px 0 #fff;background:repeating-linear-gradient(90deg,#6e4b1e0f 0 1px,#0000 1px 19px),linear-gradient(#f3ebd6,#e6dabd)}.color-pot-paint,.color-pots-mix .color-pot-paint{background:radial-gradient(ellipse at 34% 28%, #ffffffbf 0 9%, #fff0 24%), radial-gradient(circle at 50% 56%, #0000 52%, #00000042 100%), var(--c);border:3px solid #ffffffbf;box-shadow:0 0 0 2px #7869508c,inset 0 4px 6px #0000002e,0 3px 4px #3a281840}.color-pot.sel{box-shadow:0 6px 0 var(--paper-shadow), 0 14px 18px -8px #46321473}.color-splash{background:radial-gradient(ellipse at 32% 26%, #fff9 0 7%, #fff0 20%), radial-gradient(ellipse at 60% 70%, #0000 45%, #0003 100%), var(--c);border:none;box-shadow:inset -8px -12px #0000001a,inset 6px 8px #ffffff29,0 14px 18px -10px #3a281873}.color-bowl{background:linear-gradient(#fffdf7,#efe8d8);border:6px solid #f4efe3;border-top:10px solid #7fa3c4;box-shadow:0 0 0 2px #cdbf9f,inset 0 -10px 18px #503c1e1a,0 14px 18px -8px #3c281459}.color-bowl-liquid{box-shadow:inset 0 8px 10px #0000001f}.color-bowl-liquid::selection{background:0 0}.color-equation .sw{background:radial-gradient(circle at 34% 30%, #fff9 0 12%, #fff0 30%), var(--c);border:2px solid #fffc;box-shadow:0 0 0 1.5px #3a322666,0 2px 3px #3a281840}.color-swatch{background:radial-gradient(ellipse at 34% 28%, #ffffffb3 0 10%, #fff0 26%), radial-gradient(circle at 50% 56%, #0000 55%, #00000038 100%), var(--c);border:3px solid #ffffffbf;box-shadow:0 0 0 1.5px #3a322673,0 3px 5px #3a28184d}.color-picture{background:radial-gradient(circle at 25% 30%,#9678500f 0 1px,#0000 1.5px) 0 0/8px 8px,#fffdf7;border-radius:18px;box-shadow:0 0 0 1px #78644640,0 14px 22px -10px #46321459}.color-thing{box-shadow:0 4px 0 var(--paper-shadow), 0 10px 14px -8px #4632144d}.lookdo-color-btn{border:3px solid #ffffff8c;position:relative;overflow:hidden}.lookdo-color-btn:before{content:"";pointer-events:none;border-radius:inherit;background:linear-gradient(160deg,#ffffff57 0%,#ffffff0f 42%,#0000 55%,#00000024 100%),radial-gradient(circle at 30% 30%,#ffffff14 0 1px,#0000 1.5px) 0 0/7px 7px;position:absolute;inset:0}.talk-card{background:radial-gradient(circle at 20% 15%,#fffc,#fff0 45%),linear-gradient(170deg,#fffbef,#f6ebcf);box-shadow:0 6px #e3c690,0 18px 26px -12px #6e461466}.talk-mic{background:radial-gradient(at 36% 26%,#ffffff73 0 10%,#fff0 32%),radial-gradient(circle at 50% 60%,#e5433d 0 55%,#c42925 100%)}.color-bowl-liquid.done{background:radial-gradient(ellipse 60% 18% at 40% 10%, #ffffff73, #fff0 70%), radial-gradient(ellipse at 50% 30%, #0000 50%, #0000002e 100%), var(--out)}.scene.mride-scene{flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(260px,29vw,340px);gap:18px;max-width:none;min-height:0;margin:0;padding:10px 16px 14px;display:grid}.mride-scene h1{overflow-wrap:anywhere;margin-bottom:10px;font-size:clamp(26px,3.1vw,38px)}.mride-scene h1 em{color:color-mix(in srgb, var(--current-line,var(--shroom-red)) 72%, #3a3226)}.mride-scene .lead{margin-bottom:18px;font-size:17px;line-height:1.55}.mride-scene .scene-eyebrow{flex-wrap:wrap}.mride-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;background:#ece0be;border-radius:26px;position:relative;overflow:hidden}.mride-stage>.pixi-stage{inset:0;position:absolute!important}.mride-stage .route-mini{z-index:3;border-radius:var(--r-pill);margin:0;padding:0;position:absolute;bottom:8px;left:10px;right:10px}.mride-stage .route-mini-strip{background:#fffbf0f0;padding:9px 16px;box-shadow:0 3px #c7b68bcc,0 6px 14px #2c24181f}.mride-stage .route-mini-stop{font-size:14px}.mride-stage .route-mini-stop.active{font-size:16px}.mride-stage .station-egg{z-index:4;top:10px;right:12px}.mride-stage .special-tag{z-index:4;padding:6px 14px;font-size:14px;inset:10px auto auto 12px}.mride-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:4px 2px;display:flex}.mride-actions{flex-direction:column;align-items:stretch;gap:12px;display:flex}.mride-actions .big-btn{width:100%;min-height:72px}.mride-actions .big-btn .arrow:empty{display:none}@media (aspect-ratio<=1){.scene.mride-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:14px}.mride-panel{justify-content:flex-start}.mride-scene .lead{margin-bottom:14px}}@media (aspect-ratio>=1) and (height<=720px){.mride-scene h1{font-size:clamp(24px,2.8vw,34px)}.mride-scene .lead{margin-bottom:14px;font-size:16px}}.scene.tla-scene{flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(260px,29vw,340px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.tla-scene .scene-eyebrow:before{background:var(--phase-color)}.tla-scene h1{margin-bottom:8px;font-size:clamp(28px,3.3vw,40px)}.tla-scene .lead{min-height:3em;margin-bottom:10px;font-size:17px;line-height:1.5}.tla-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;background:#e2d6b4;border-radius:26px;position:relative;overflow:hidden}.tla-stage>.pixi-stage{inset:0;position:absolute!important}.tla-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:4px 2px;display:flex}.tla-count-row{align-items:center;gap:14px;margin-bottom:12px;display:flex}.tla-countdown{flex-direction:row;align-items:baseline;gap:4px;min-width:96px}.tla-countdown .countdown-num{font-size:clamp(56px,10dvh,84px)}.tla-countdown .countdown-unit{margin-top:0;font-size:18px}.tla-strip{flex-wrap:wrap;justify-content:flex-start;gap:7px;margin:0}.tla-actions{flex-direction:column;align-items:stretch;gap:12px;display:flex}.tla-actions .big-btn{width:100%;max-width:none;min-height:64px}.tla-tip{margin-top:12px;padding:8px 12px}.tla-tip p{font-size:12.5px;line-height:1.5}@media (height<=760px) and (aspect-ratio>=1){.tla-scene h1{margin-bottom:6px;font-size:clamp(26px,3vw,34px)}.tla-scene .lead{margin-bottom:6px;font-size:16px}.tla-count-row{margin-bottom:8px}.tla-actions{gap:10px}.tla-tip{margin-top:10px}}@media (aspect-ratio<=1){.scene.tla-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:14px}.tla-panel{justify-content:flex-start}.tla-scene .lead{min-height:0}.tla-actions{flex-direction:row}.tla-actions>*{flex:1}}.scene.lpa-scene{--lpa:#c9822e;--lpa-deep:#8a5a1d;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(280px,31vw,360px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.lpa-scene .scene-eyebrow:before{background:var(--lpa)}.lpa-scene h1{margin-bottom:10px;font-size:clamp(28px,3.3vw,40px)}.lpa-scene h1 em{color:var(--lpa-deep)}.lpa-scene .lead{margin-bottom:18px;font-size:17px;line-height:1.55}.lpa-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;background:#e9ddbe;border-radius:26px;position:relative;overflow:hidden}.lpa-stage>.pixi-stage{inset:0;position:absolute!important}.lpa-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:4px 2px;display:flex}.lpa-actions{flex-direction:column;align-items:stretch;gap:12px;display:flex}.lpa-actions .big-btn{width:100%}.lpa-picking h1{margin-bottom:4px}.lpa-picking .lead{margin-bottom:10px;font-size:16px}.lpa-cop{background:repeating-linear-gradient(90deg,#ffffff12 0 1px,#0000 1px 4px),linear-gradient(100deg,#a9a497 0%,#e4e1d8 38%,#c4c0b5 60%,#a29d91 100%);border:2px solid #6f6a60;border-radius:20px;padding:12px 14px 10px;box-shadow:0 5px #6f6a60,0 12px 24px #2c241829,inset 0 1px #ffffff80}.lpa-cop-title{text-align:center;letter-spacing:.2em;color:#4a453c;margin-bottom:8px;font-size:13px;font-weight:700}.lpa-cop-grid{direction:rtl;grid-template-columns:repeat(4,1fr);justify-items:center;gap:8px 10px;display:grid}.lpa-floor-btn{width:64px;height:64px;font-family:"DIN Alternate", "Menlo", var(--font-display), monospace;color:#4a453c;-webkit-tap-highlight-color:transparent;direction:ltr;background:radial-gradient(circle at 38% 32%,#fff 0%,#edeae2 45%,#c9c4b8 100%);border:3px solid #8f897c;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:24px;font-weight:800;transition:transform 80ms,box-shadow .15s,background .15s,color .15s;display:flex;box-shadow:0 3px #7b766b,inset 0 -3px 6px #00000014}.lpa-floor-btn:active:not(:disabled){color:#7a3e08;background:radial-gradient(circle at 40% 35%,#fff6de 0%,#ffd27a 55%,#e7a640 100%);border-color:#e7a640;transform:translateY(2px)scale(.96);box-shadow:0 1px #7b766b,0 0 18px 6px #ffbe5abf}.lpa-floor-btn.current,.lpa-floor-btn:disabled{color:#b7852e;opacity:1;background:radial-gradient(circle at 40% 35%,#fff8e6 0%,#f3ddb0 70%);border-color:#d9a458;box-shadow:0 3px #a97e3a,0 0 0 3px #d9a4584d}.lpa-cop-hint{text-align:center;color:#4a453c;opacity:.8;margin-top:6px;font-size:12px}@media (height<=720px) and (aspect-ratio>=1){.lpa-cop-grid{gap:6px 10px}.lpa-cop{padding:10px 12px 8px}.lpa-picking .scene-eyebrow{margin-bottom:4px}}@media (aspect-ratio<=1){.scene.lpa-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:14px}.lpa-panel{justify-content:flex-start}.lpa-scene .lead{margin-bottom:14px}.lpa-actions{flex-direction:row}.lpa-actions>*{flex:1}.lpa-cop-grid{grid-template-columns:repeat(5,1fr);gap:8px 12px}}.lpa-actions .big-btn .arrow:empty{display:none}.scene.bpa-scene{--bpa:#c9822e;--bpa-deep:#8a5a1d;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(260px,29vw,340px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.bpa-scene h1{margin-bottom:10px;font-size:clamp(28px,3.3vw,40px)}.bpa-scene h1 em{color:var(--bpa-deep)}.bpa-scene h1 small{color:var(--ink-50);font-size:.55em;font-weight:500}.bpa-scene .lead{margin-bottom:18px;font-size:17px;line-height:1.55}.bpa-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;background:#ece0be;border-radius:26px;position:relative;overflow:hidden}.bpa-actions .big-btn{width:100%}.bpa-actions .big-btn .arrow:empty{display:none}.bpa-left{color:var(--bpa-deep);background:#f1e3bf;border-radius:999px;margin-left:8px;padding:1px 10px;font-size:14px;font-weight:700;display:inline-block}.bpa-remind{font-style:normal;animation:1s ease-in-out infinite bpaBlink}@keyframes bpaBlink{50%{opacity:.55}}.bpa-bell{min-height:76px;font-family:var(--font-display);color:#fff;background:var(--shroom-red);box-shadow:0 6px 0 var(--shroom-red-deep), 0 10px 20px #b868554d;-webkit-tap-highlight-color:transparent;border:none;border-radius:999px;justify-content:center;align-items:center;gap:14px;padding:14px 22px;font-size:22px;font-weight:700;transition:transform .1s,box-shadow .1s,background .2s;display:flex}.bpa-bell:active{box-shadow:0 2px 0 var(--shroom-red-deep);transform:translateY(4px)}.bpa-bell-dot{background:radial-gradient(circle at 35% 35%,#f6c3b2,#c9503c 70%);border-radius:50%;width:30px;height:30px;box-shadow:0 0 0 4px #ffffff59}.bpa-bell.pressed{color:var(--ink);background:#d9a458;box-shadow:0 3px #a97e3a,0 0 26px #ff9a7a8c}.bpa-bell.pressed .bpa-bell-dot{background:radial-gradient(circle at 35% 35%,#ffe3d6,#e2735c 70%);box-shadow:0 0 14px 4px #ff8c6ecc}.bpa-bell.urgent{animation:.9s ease-in-out infinite bpaPulse}@keyframes bpaPulse{50%{box-shadow:0 6px 0 var(--shroom-red-deep), 0 0 0 10px #d9a45859;transform:scale(1.06)}}@media (aspect-ratio<=1){.scene.bpa-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:14px}.bpa-panel{justify-content:flex-start}.bpa-scene .lead{margin-bottom:14px}.bpa-actions{flex-direction:row}.bpa-actions>*{flex:1}}.scene.apa-scene{--apa:#4f86a8;--apa-deep:#2f5b75;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(260px,29vw,340px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.apa-scene .scene-eyebrow:before{background:var(--apa)}.apa-scene h1{margin-bottom:8px;font-size:clamp(26px,3.1vw,38px)}.apa-scene h1 em{color:var(--apa-deep);font-style:normal}.apa-scene .lead{margin-bottom:14px;font-size:16px;line-height:1.55}.apa-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;background:#ece0be;border-radius:26px;position:relative;overflow:hidden}.apa-stage>.pixi-stage{inset:0;position:absolute!important}.apa-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:4px 2px;display:flex}.apa-actions{flex-direction:column;align-items:stretch;gap:12px;display:flex}.apa-actions:empty{display:none}.apa-actions .big-btn{width:100%}.apa-actions .big-btn .arrow:empty{display:none}.apa-blink{font-style:normal;animation:.9s ease-in-out infinite apaBlink}@keyframes apaBlink{50%{opacity:.5}}.apa-hint{color:var(--apa-deep);background:#e1eaee;border-radius:999px;align-self:flex-start;align-items:center;gap:8px;margin-bottom:4px;padding:8px 16px 8px 12px;font-size:16px;font-weight:700;display:inline-flex}.apa-hint-hand{font-size:22px;animation:1.1s ease-in-out infinite apaPoke;display:inline-block}@keyframes apaPoke{50%{transform:translate(-4px,-5px)}}.apa-dest-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.apa-dest-card{text-align:left;background:var(--shroom-cap);border:3px solid var(--apa);min-height:76px;box-shadow:0 4px 0 var(--paper-shadow);cursor:pointer;font-family:var(--font-body);color:var(--ink);-webkit-tap-highlight-color:transparent;border-radius:18px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;padding:8px 10px;transition:transform .1s,box-shadow .1s;display:grid;position:relative}.apa-dest-card:active{box-shadow:0 1px 0 var(--paper-shadow);transform:translateY(3px)}.apa-dest-emoji{grid-row:1/3;font-size:34px;line-height:1}.apa-dest-name{font-family:var(--font-display);font-size:21px;font-weight:700;line-height:1.1}.apa-dest-code{color:var(--ink-50);letter-spacing:.02em;white-space:nowrap;font-size:11.5px}.apa-dest-been{color:#fff;background:var(--leaf);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;position:absolute;top:-8px;right:-6px}.apa-weight{color:var(--ink-50);flex-wrap:wrap;align-items:baseline;gap:6px;font-size:20px;font-weight:700;display:flex}.apa-weight b{font-family:var(--font-display);color:var(--apa-deep);font-variant-numeric:tabular-nums;font-size:44px}.apa-weight span{background:var(--leaf);color:#fff;border-radius:999px;margin-left:6px;padding:3px 12px;font-size:15px}.apa-ticket{border:2px solid var(--apa);color:var(--ink-50);background:#fbf6ea;border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:12px;padding:10px 14px;font-size:15px;display:flex}.apa-ticket b{color:var(--ink);font-size:18px}.apa-ticket-seat b{color:#8e4a40;font-size:24px}.apa-stamps{border:2px dashed var(--paper-shadow);background:#fbf6ea;border-radius:16px;margin-bottom:14px;padding:10px 12px}.apa-stamps-title{color:var(--ink-50);margin-bottom:8px;font-size:14px;font-weight:700}.apa-stamps-row{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.apa-stamp{color:var(--ink-30);background:#efe6cc;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;display:flex}.apa-stamp b{font-size:22px;line-height:1.1}.apa-stamp small{white-space:nowrap;font-size:11px}.apa-stamp.on{color:var(--apa-deep);box-shadow:inset 0 0 0 2px var(--apa);background:#dde9ee}@media (aspect-ratio>=1) and (width<=1100px){.apa-stamps-row{grid-template-columns:repeat(3,1fr)}}@media (aspect-ratio>=1) and (height<=760px){.apa-scene .lead{margin-bottom:10px;font-size:15px}.apa-dest-card{min-height:70px}}@media (aspect-ratio<=1){.scene.apa-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:14px}.apa-panel{justify-content:flex-start}.apa-scene .lead{margin-bottom:10px}.apa-dest-grid{grid-template-columns:repeat(3,1fr)}.apa-actions{flex-direction:row}.apa-actions>*{flex:1}}.rail-scene{--rail:#3e8c84;--rail-deep:#2c625d;--rail-pale:#dce9e3;--rail-led:#f2b45a;padding-top:20px}.rail-scene h1 em{color:var(--rail);font-style:normal}.rail-scene .scene-eyebrow:before{background:var(--rail)}.rail-scene .lead{margin-bottom:20px}.rail-actions{justify-content:center;margin-top:20px;display:flex}.rail-blink{animation:.9s ease-in-out infinite railBlink}@keyframes railBlink{50%{opacity:.45}}.rail-shake{animation:.45s railShake}@keyframes railShake{20%,60%{transform:translate(-7px)}40%,80%{transform:translate(7px)}}.rail-note{color:var(--ink-50);text-align:center;margin:12px 0 0;font-size:14px}.rail-dest-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (width<=360px){.rail-dest-grid{grid-template-columns:repeat(2,1fr)}}.rail-dest-card{background:var(--shroom-cap);border:3px solid var(--rail);border-radius:var(--r-md);box-shadow:var(--shadow-card);color:var(--ink);font-family:var(--font-body);-webkit-tap-highlight-color:transparent;flex-direction:column;align-items:center;gap:3px;padding:16px 6px 12px;transition:transform .12s;display:flex;position:relative}.rail-dest-card:active{transform:translateY(3px)}.rail-dest-emoji{font-size:44px;line-height:1.1}.rail-dest-name{font-family:var(--font-display);font-size:22px;font-weight:600}.rail-dest-time{color:var(--rail-deep);font-size:12px;font-weight:600}.rail-dest-land{color:var(--ink-50);font-size:11px}.rail-dest-been{color:#fff;background:var(--leaf);border-radius:var(--r-pill);padding:2px 7px;font-size:11px;font-weight:700;position:absolute;top:6px;right:6px}.rail-ticket-machine{text-align:center;width:100%;max-width:420px;color:var(--ink-50);background:var(--bg-cream-2);border:2px dashed var(--paper-shadow);border-radius:var(--r-md);margin:10px auto;padding:28px;font-size:18px}.rail-ticket-machine span{font-size:30px;animation:.8s infinite railBlink;display:inline-block}.rail-ticket-print .rail-ticket{animation:1s ease-out railPrint}@keyframes railPrint{0%{opacity:0;clip-path:inset(0 0 100%);transform:translateY(-30px)}to{clip-path:inset(0)}}.rail-ticket{border:2px solid var(--rail);width:100%;max-width:440px;box-shadow:var(--shadow-card);color:var(--ink);font-family:var(--font-body);background:#e7f0ea;border-radius:16px;margin:8px auto;position:relative;overflow:hidden}.rail-ticket-head{background:var(--rail);color:#fff;justify-content:space-between;align-items:center;padding:7px 14px;font-size:14px;display:flex}.rail-ticket-route{text-align:center;border-bottom:2px dashed #a9c4ba;grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;padding:12px 12px 8px;display:grid}.rail-ticket-route>div{flex-direction:column;align-items:center;display:flex}.rail-ticket-route b{font-family:var(--font-display);font-size:22px;line-height:1.15}.rail-ticket-route small{color:var(--ink-50);font-size:11px}.rail-ticket-train b{color:var(--rail-deep);letter-spacing:.04em;font-size:20px!important}.rail-ticket-train span{color:var(--rail);letter-spacing:-.1em;font-size:13px}.rail-ticket-grid{grid-template-columns:1fr 1fr;gap:8px 12px;padding:10px 16px 12px;display:grid}.rail-ticket-grid div{flex-direction:column;display:flex}.rail-ticket-grid small{color:var(--ink-50);font-size:11px}.rail-ticket-grid b{font-size:17px}.rail-hl{color:#b8553d;font-family:var(--font-display);font-size:24px!important}.rail-ticket-used{color:#b86855;opacity:.8;border:3px solid #b86855;border-radius:50%;justify-content:center;align-items:center;width:66px;height:66px;font-size:15px;font-weight:800;animation:.4s ease-out railStampIn;display:flex;position:absolute;bottom:10px;right:12px;transform:rotate(-16deg)}@keyframes railStampIn{0%{opacity:0;transform:rotate(-16deg)scale(2)}}.rail-noe{background:var(--shroom-cap);border-radius:var(--r-md);width:100%;max-width:440px;box-shadow:var(--shadow-card);text-align:center;margin:14px auto 0;padding:12px 14px;animation:.4s ease-out railPop}@keyframes railPop{0%{opacity:0;transform:scale(.85)}}.rail-noe-title{margin-bottom:8px;font-weight:700}.rail-noe-row{justify-content:center;gap:8px;display:flex}.rail-noe-l{width:40px;height:44px;font-family:var(--font-display);background:var(--rail-pale);border:2px solid var(--rail);border-radius:10px 10px 6px 6px;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:inline-flex;position:relative}.rail-noe-l.win{background:#f3dda8}.rail-noe-l.no{opacity:.35;background:0 0;border-style:dashed}.rail-noe-l.no:after{content:"";background:#b86855;height:3px;position:absolute;top:50%;left:4px;right:4px;transform:rotate(-35deg)}.rail-noe-hint{color:var(--ink-50);margin-top:8px;font-size:14px}.rail-idgate{flex-direction:column;align-items:center;gap:14px;display:flex}.rail-cam{background:#1f2a33;border:4px solid #6e6253;border-radius:50%;justify-content:center;align-items:center;width:84px;height:84px;display:flex;position:relative;overflow:hidden}.rail-cam-face{filter:grayscale(.6)brightness(.6);font-size:44px;transition:filter .4s}.rail-cam.on .rail-cam-face{filter:none}.rail-cam.on:after{content:"";background:#7fe0b0;height:3px;animation:.9s ease-in-out infinite alternate railScan;position:absolute;left:0;right:0}@keyframes railScan{0%{top:10%}to{top:88%}}.rail-cam-ok{background:var(--leaf);color:#fff;z-index:2;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-weight:800;display:flex;position:absolute;bottom:4px;right:4px}.rail-gate{border-radius:var(--r-md);background:#cfc3a3;grid-template-columns:1fr 120px 1fr;align-items:center;gap:6px;width:100%;max-width:360px;padding:12px;display:grid;box-shadow:inset 0 -6px #b3a57f}.rail-gate-flap{background:#b86855;border-radius:8px;height:16px;transition:transform .5s}.rail-gate-flap.l{transform-origin:0;grid-area:1/1}.rail-gate-flap.r{transform-origin:100%;grid-area:1/3}.rail-gate.open .rail-gate-flap{background:var(--leaf);transform:scaleX(.08)}.rail-gate-reader{background:#3a3f44;border:3px solid #6e6253;border-radius:12px;grid-area:1/2;justify-content:center;align-items:center;height:86px;display:flex}.rail-idcard-slot{border:2px dashed #7fe0b099;border-radius:8px;justify-content:center;align-items:center;width:100px;height:64px;display:flex}.rail-idcard-slot.placed{border-color:#7fe0b0}.rail-idcard-slot .rail-idcard{animation:.5s ease-out railCardIn;transform:scale(.8)}@keyframes railCardIn{0%{transform:translateY(120px)scale(.8)}}.rail-idcard{border:2px solid var(--rail);background:linear-gradient(135deg,#eaf2ee,#d2e4dc);border-radius:10px;flex-shrink:0;align-items:center;gap:8px;width:120px;height:76px;padding:8px;display:flex}.rail-idcard-face{background:#fff9e8;border-radius:6px;justify-content:center;align-items:center;width:40px;height:48px;font-size:26px;display:flex}.rail-idcard-lines{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.rail-idcard-lines b{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.rail-idcard-lines i{background:#3e8c8459;border-radius:2px;height:4px}.rail-idcard-btn{background:var(--shroom-cap);border:3px solid var(--rail);border-radius:var(--r-md);box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--rail-deep);-webkit-tap-highlight-color:transparent;flex-direction:column;align-items:center;gap:8px;padding:14px 22px;font-size:17px;font-weight:700;animation:1.4s ease-in-out infinite railBob;display:flex}.rail-idcard-btn .rail-idcard{margin:6px 0;transform:scale(1.15)}@keyframes railBob{50%{transform:translateY(-6px)}}.rail-board{color:#e8e0c8;background:#1f2a2a;border:5px solid #6e6253;border-radius:14px;width:100%;max-width:520px;margin:0 auto;padding:10px 10px 8px;font-family:ui-monospace,Menlo,monospace}.rail-board-title{color:var(--rail-led);letter-spacing:.12em;font-size:13px;font-family:var(--font-body);margin-bottom:6px;font-weight:700}.rail-board-row{border-top:1px solid #ffffff14;grid-template-columns:1.05fr 1.3fr .95fr .8fr 1.2fr;gap:4px;padding:6px 4px;font-size:13px;display:grid}.rail-board-row.head{color:#8fa8a4;font-size:11px;font-family:var(--font-body);border-top:none}.rail-board-row.gone{opacity:.45}.rail-board-row.mine{color:#fff;background:#3e8c8447;border-radius:6px;font-weight:700}.rail-board-row.boarding .st{color:#7fe0b0;animation:.9s infinite railBlink}.rail-board-row .st{white-space:nowrap}.rail-hall{border-bottom:6px solid #c7b68b;justify-content:center;align-items:flex-end;gap:10px;max-width:520px;margin:14px auto 0;padding:14px 10px 10px;font-size:30px;display:flex;position:relative}.rail-hall-me{font-size:38px;animation:1.6s ease-in-out infinite railBob}.rail-checkgate{color:#fff;background:#6e6253;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700;position:absolute;top:-6px;right:6px}.rail-checkgate.open{background:var(--leaf)}.rail-car-chip{background:var(--rail);color:#fff;border-radius:var(--r-pill);box-shadow:0 4px 0 var(--rail-deep);flex-wrap:wrap;align-self:center;align-items:center;gap:8px;margin:-4px 0 12px;padding:8px 16px;display:flex}.rail-car-chip b{font-family:var(--font-display);font-size:30px;line-height:1}.rail-car-chip small{opacity:.85;text-align:center;width:100%;margin-top:-2px;font-size:12px}.rail-platform{--car-h:46px;--nose-h:36px;border-radius:var(--r-md);width:100%;max-width:420px;box-shadow:var(--shadow-card);background:#d9cdae;grid-template-columns:92px 1fr;margin:0 auto;display:grid;position:relative;overflow:hidden}.rail-train-v{z-index:1;pointer-events:none;background-color:#0000;background-image:linear-gradient(90deg,#0000 12px,#8a7f70 12px 16px,#0000 16px calc(100% - 16px),#8a7f70 calc(100% - 16px) calc(100% - 12px),#0000 calc(100% - 12px)),repeating-linear-gradient(#6e6253 0 10px,#5e5345 10px 14px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:auto,auto;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box;flex-direction:column;align-items:stretch;padding:0 12px;display:flex;position:relative}.rail-platform.coming .rail-train-v>*{animation:3.2s cubic-bezier(.2,.7,.3,1) both railArrive}@keyframes railArrive{0%{transform:translateY(-640px)}}.rail-nose{height:var(--nose-h);background:var(--shroom-cap);border:2px solid var(--rail-deep);position:relative}.rail-nose.top{border-bottom:none;border-radius:50% 50% 6px 6px/95% 95% 6px 6px}.rail-nose.bottom{border-top:none;border-radius:6px 6px 50% 50%/6px 6px 95% 95%}.rail-nose:after{content:"";background:#3a4a4e;border-radius:6px;height:10px;position:absolute;left:30%;right:30%}.rail-nose.top:after{top:11px}.rail-nose.bottom:after{bottom:11px}.rail-vcar{height:var(--car-h);background:linear-gradient(90deg, var(--shroom-cap) 0 16%, var(--rail) 16% 26%, var(--shroom-cap) 26% 74%, var(--rail) 74% 84%, var(--shroom-cap) 84%);border-left:2px solid var(--rail-deep);border-right:2px solid var(--rail-deep);border-top:2px solid #2c625d59;justify-content:center;align-items:center;display:flex;position:relative}.rail-vcar-no{font-family:var(--font-display);color:var(--rail-deep);font-size:15px;font-weight:700}.rail-panto{background:#6e6253;width:24px;height:3px;margin-left:-12px;position:absolute;top:6px;left:50%}.rail-vdoor{background:#3a4a4e;border-radius:2px;width:6px;height:18px;position:absolute;bottom:8px;right:-4px}.rail-vcar.mine{background:linear-gradient(90deg, #fff3cf 0 16%, var(--rail) 16% 26%, #fff3cf 26% 74%, var(--rail) 74% 84%, #fff3cf 84%)}.rail-vcar.mine .rail-vdoor{background:#7fe0b0;height:24px;box-shadow:0 0 10px #7fe0b0}.rail-plat-rows{padding-top:var(--nose-h);padding-bottom:var(--nose-h);background-image:radial-gradient(circle,#00000014 1.5px,#0000 2px);background-size:14px 14px;border-left:10px solid #e0b84a;flex-direction:column;display:flex}.rail-plat-row{height:var(--car-h);-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-top:1px dashed #3a32262e;align-items:center;gap:12px;width:100%;padding:0 14px;display:flex}.rail-plat-row:active{background:#3e8c841f}.rail-plat-mark{border:3px solid var(--rail);min-width:62px;font-family:var(--font-display);color:var(--rail-deep);text-align:center;background:#f4ecd4b3;border-radius:10px;padding:0 10px;font-size:22px;font-weight:700}.rail-plat-mark:before{content:"◀ ";vertical-align:middle;font-size:12px}.rail-platform.coming .rail-plat-mark{opacity:.5}.rail-plat-row.mine .rail-plat-mark{background:var(--rail);color:#fff}.rail-plat-me{font-size:30px;animation:.6s ease-in-out 3 railHop}@keyframes railHop{50%{transform:translate(-8px,-8px)}}.rail-rack{width:100%;max-width:420px;min-height:44px;color:var(--ink-50);background:repeating-linear-gradient(90deg,#0000 0 14px,#3e8c841f 14px 16px);border:2px dashed #a9c4ba;border-radius:12px;align-items:center;gap:10px;margin:0 auto 8px;padding:6px 14px;font-size:13px;display:flex}.rail-rack.full{border-style:solid;border-color:var(--rail)}.rail-rack-bag{font-size:28px;animation:.6s ease-out railLift}@keyframes railLift{0%{transform:translateY(160px)scale(1.3)}}.rail-cabin{border-radius:var(--r-md);width:100%;max-width:420px;box-shadow:var(--shadow-card);background:#efe5cb;margin:0 auto;padding:10px 8px}.rail-cabin-row{grid-template-columns:10px repeat(3,1fr) 38px repeat(2,1fr) 10px;align-items:center;gap:5px;margin-bottom:6px;display:grid}.rail-cabin-head{text-align:center;color:var(--rail-deep);font-size:14px;font-weight:700}.rail-cabin-head span:first-child,.rail-cabin-head span:last-child{font-size:10px}.rail-aisle{color:var(--ink-30);font-size:11px!important}.rail-win{background:linear-gradient(#b9d3dc,#93b5c9);border-radius:4px;align-self:stretch}.rail-row-no{text-align:center;color:var(--ink-30);font-size:12px;font-weight:700}.rail-seat{background:var(--rail-pale);border:2px solid var(--rail);height:46px;color:var(--rail-deep);font-family:var(--font-display);-webkit-tap-highlight-color:transparent;border-radius:12px 12px 6px 6px;font-size:17px;font-weight:700;box-shadow:0 3px #2c625d59}.rail-seat:active{transform:translateY(2px)}.rail-seat.mine{background:#f3dda8;border-color:#c9822e;font-size:24px}.rail-bag-btn{background:var(--shroom-cap);border:3px solid var(--rail);border-radius:var(--r-md);box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--rail-deep);flex-direction:column;align-items:center;gap:4px;padding:12px 30px;font-size:17px;font-weight:700;animation:1.4s ease-in-out infinite railBob;display:inline-flex}.rail-bag-btn span{font-size:50px;line-height:1.1}.rail-led{white-space:nowrap;width:100%;max-width:520px;color:var(--rail-led);text-shadow:0 0 6px #f2b45a99;background:#1f2a2a;border:3px solid #4a4238;border-radius:8px;margin:0 auto 10px;padding:6px 0;font-family:ui-monospace,Menlo,monospace;font-size:14px;overflow:hidden}.rail-led-text{padding-left:100%;animation:14s linear infinite railMarquee;display:inline-block}@keyframes railMarquee{to{transform:translate(-100%)}}.rail-window{width:100%;max-width:520px;height:200px;box-shadow:inset 0 0 0 2px #3a322640, var(--shadow-card);border:10px solid #e6dab8;border-radius:28px;margin:0 auto;position:relative;overflow:hidden}.rail-sky{background:linear-gradient(#c7dce3 0%,#e9eee2 70%);position:absolute;inset:0}.rail-strip{white-space:nowrap;will-change:transform;display:flex;position:absolute;left:0}.rail-strip.far{opacity:.8;font-size:36px;bottom:40%}.rail-strip.far span{margin:0 20px}.rail-ground{height:44%;transition:background .6s;position:absolute;bottom:0;left:0;right:0}.rail-strip.near{font-size:30px;transition:opacity .5s;bottom:4%}.rail-strip.near span{margin:0 14px}.rail-strip.poles{top:8px;bottom:16%}.rail-strip.poles i{background:#5a5248;border-radius:3px 3px 0 0;width:6px;height:100%;margin-right:150px;display:block}.rail-wire{background:#5a5248;height:2px;position:absolute;top:16px;left:0;right:0}.ev-bridge .rail-ground{background:repeating-linear-gradient(170deg,#86b3c2 0 12px,#9cc3cf 12px 22px)!important}.ev-bridge .rail-strip.near{opacity:0}.rail-truss{pointer-events:none;background:repeating-linear-gradient(60deg,#0000 0 46px,#6e6253e6 46px 52px),repeating-linear-gradient(-60deg,#0000 0 46px,#6e6253e6 46px 52px);border-top:8px solid #6e6253;border-bottom:8px solid #6e6253;animation:.3s linear infinite railTruss;position:absolute;inset:20px 0 22%}@keyframes railTruss{to{background-position:-104px 0,-104px 0}}.rail-window-tag{border-radius:var(--r-pill);color:var(--rail-deep);background:#f4ecd4eb;padding:3px 10px;font-size:13px;font-weight:700;position:absolute;top:30px;left:12px}.rail-tunnel{background:#1e1c1a;animation:.5s ease-out railFade;position:absolute;inset:0;overflow:hidden}@keyframes railFade{0%{opacity:0}}.rail-tunnel i{background:#f2b45a;border-radius:2px;width:60px;height:4px;animation:.45s linear infinite railStreak;position:absolute;left:100%;box-shadow:0 0 10px #f2b45a}.rail-tunnel i:first-child{top:30%}.rail-tunnel i:nth-child(2){animation-delay:.15s;top:55%}.rail-tunnel i:nth-child(3){animation-delay:.3s;top:78%}@keyframes railStreak{to{left:-80px}}.rail-cabin-strip{background:#e6dab8;border-radius:14px;justify-content:center;align-items:center;gap:18px;width:100%;max-width:520px;margin:8px auto 0;padding:6px;transition:background .4s;display:flex}.rail-cabin-strip.lit{background:#f3dda8}.rail-lamp{background:#cfc3a3;border-radius:5px;width:26px;height:10px;transition:all .4s}.rail-cabin-strip.lit .rail-lamp{background:#fff1c2;box-shadow:0 0 14px 4px #ffe196e6}.rail-me{font-size:34px}.rail-tray{background:#cfc3a3;border-radius:6px;justify-content:center;align-items:center;min-width:50px;height:34px;font-size:24px;display:flex}.rail-dash{gap:10px;width:100%;max-width:520px;margin:10px auto 0;display:flex}.rail-speed{color:#9fe0a8;background:#1f2a2a;border-radius:14px;flex:none;justify-content:center;align-items:baseline;gap:6px;min-width:130px;padding:6px 12px;font-family:ui-monospace,Menlo,monospace;display:flex}.rail-speed b{text-align:right;min-width:3ch;font-size:40px;line-height:1.1}.rail-speed small{color:#8fa8a4;font-size:12px}.rail-ladder{background:var(--shroom-cap);box-shadow:var(--shadow-card);border-radius:14px;flex:1;justify-content:space-around;align-items:center;display:flex}.rail-ladder span{opacity:.3;filter:grayscale();flex-direction:column;align-items:center;font-size:26px;transition:all .3s;display:flex}.rail-ladder span.on{opacity:1;filter:none;transform:scale(1.1)}.rail-ladder small{color:var(--ink-50);font-size:11px;font-weight:700}.rail-route{width:100%;max-width:520px;color:var(--ink-50);align-items:center;gap:10px;margin:16px auto 0;font-size:13px;font-weight:700;display:flex}.rail-route>span{white-space:nowrap}.rail-route-track{background:#d8cba8;border-radius:4px;flex:1;height:8px;position:relative}.rail-route-fill{background:var(--rail);border-radius:4px;height:100%;transition:width 2.5s}.rail-route-train{font-size:22px;transition:left 2.5s;position:absolute;top:50%;transform:translate(-50%,-62%)scaleX(-1)}.rail-cart-lead{text-align:center;align-self:center;margin:14px 0 8px}.rail-snacks{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:420px;margin:0 auto;display:grid}.rail-snack-btn{background:var(--shroom-cap);border:2px solid var(--paper-shadow);border-radius:var(--r-md);box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--ink);flex-direction:column;align-items:center;gap:4px;padding:12px 6px;font-size:16px;font-weight:600;display:flex}.rail-snack-btn span{font-size:40px}.rail-done-emoji{text-align:center;margin-bottom:4px;font-size:60px;animation:.5s ease-out railPop}.rail-map{background:var(--shroom-cap);border-radius:var(--r-md);width:100%;max-width:440px;box-shadow:var(--shadow-card);margin:16px auto 0;padding:12px}.rail-map-title{text-align:center;color:var(--rail-deep);margin-bottom:4px;font-weight:700}.rail-map-svg{width:100%;height:auto;display:block}.rail-map-now circle{transform-box:fill-box;transform-origin:50%;animation:1.2s ease-in-out infinite railPulse}@keyframes railPulse{50%{transform:scale(1.15)}}@media (orientation:landscape) and (width>=900px) and (height>=600px){.scene.rail-scene.rail-phase-done{grid-template-rows:repeat(6,auto) 1fr;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:32px;max-width:1080px;display:grid}.rail-phase-done>*{grid-column:1}.rail-phase-done>.rail-map{grid-area:1/2/-1;align-self:center;max-width:min(100%,113.333dvh - 146px)}.rail-phase-done .rail-done-emoji{text-align:left;font-size:48px}.rail-phase-done .rail-ticket{margin-left:0}.rail-phase-done .rail-actions{justify-content:flex-start;margin-top:14px}}@media (orientation:portrait) and (width>=600px) and (height>=900px){.rail-phase-done .rail-map{max-width:min(440px,113.333dvh - 792px)}}@media (orientation:landscape) and (width>=900px) and (height<=780px){.rail-seat{height:42px}.rail-cabin-row{margin-bottom:5px}.rail-window{height:176px}.rail-route{margin-top:12px}}.scene.rpa-scene{flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(270px,29vw,340px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.rpa-scene .scene-eyebrow:before{background:var(--rail)}.scene.rpa-scene h1{margin-bottom:8px;font-size:clamp(26px,3.2vw,38px)}.rpa-scene h1 em{color:var(--rail-deep)}.scene.rpa-scene .lead{margin-bottom:12px;font-size:16px;line-height:1.5}.rpa-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;background:#ece0be;border-radius:26px;position:relative;overflow:hidden}.rpa-stage>.pixi-stage{inset:0;position:absolute!important}.rpa-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:4px 2px;display:flex}.rpa-actions{flex-direction:column;align-items:stretch;gap:12px;margin-top:8px;display:flex}.rpa-actions:empty{display:none}.rpa-actions .big-btn{width:100%}.rpa-hint{background:var(--rail-pale);color:var(--rail-deep);text-align:center;border-radius:16px;margin:4px 0 0;padding:10px 14px;font-size:16px;font-weight:700;animation:1.6s ease-in-out infinite railBob}.rpa-panel .rail-ticket{max-width:100%;margin:4px 0}.rpa-panel .rail-ticket-route b{font-size:20px}.rpa-panel .rail-ticket-machine{margin:4px 0;padding:20px}.rpa-idcard-btn{align-self:center;min-height:64px}.rpa-bag-btn{align-self:stretch;min-height:64px}.rpa-car-chip{align-self:flex-start;margin:2px 0 10px}.rpa-car-chip b{font-size:34px}.rpa-panel .rail-note{text-align:left;font-size:15px}.rpa-seatcard{gap:10px;margin-bottom:6px;display:flex}.rpa-seatcard span{background:var(--shroom-cap);border:3px solid var(--rail);box-shadow:var(--shadow-card);border-radius:14px;flex-direction:column;flex:1;align-items:center;padding:6px 8px;display:flex}.rpa-seatcard b{font-family:var(--font-display);color:var(--rail-deep);font-size:30px;line-height:1.1}.rpa-seatcard small{color:var(--ink-50);font-size:12px;font-weight:700}.rpa-panel .rail-led{margin:0 0 10px}.rpa-panel .rail-dash{margin:0}.rpa-panel .rail-speed{min-width:120px}.rpa-panel .rail-route{margin:12px 0 0}.rpa-panel .rail-cart-lead{margin:12px 0 8px;font-size:16px}.rpa-panel .rail-snacks{gap:10px}.rpa-panel .rail-snack-btn{min-height:84px;padding:8px 4px}.rpa-panel .rail-snack-btn span{font-size:34px}@media (orientation:landscape) and (height<=780px){.scene.rpa-scene h1{margin-bottom:6px;font-size:clamp(24px,3vw,32px)}.scene.rpa-scene .lead{margin-bottom:8px;font-size:15px}.rpa-panel .rail-ticket-route{padding:8px 10px 6px}.rpa-panel .rail-ticket-grid{gap:4px 10px;padding:6px 14px 8px}.rpa-panel .rail-hl{font-size:20px!important}}@media (aspect-ratio<=1){.scene.rpa-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:12px}.rpa-panel{justify-content:flex-start}.rpa-actions{flex-direction:row}.rpa-actions>*{flex:1}.rpa-panel .rail-ticket{max-width:440px}.rpa-phase-done .rpa-panel,.rpa-phase-ticket .rpa-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:16px;display:grid}.rpa-phase-done .rpa-panel>*,.rpa-phase-ticket .rpa-panel>*{grid-column:1}.rpa-phase-done .rpa-panel>.rail-ticket,.rpa-phase-ticket .rpa-panel>.rail-ticket-print,.rpa-phase-ticket .rpa-panel>.rail-ticket-machine{grid-area:1/2/span 4;align-self:center}.rpa-phase-ride .rpa-panel .rail-cart-lead{display:none}}.scene.bpa-scene{--bpa:#6f95c9;--bpa-deep:#4e77ae;--bpa-soft:#dce6f2;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(270px,29vw,340px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.bpa-scene .scene-eyebrow{margin-bottom:0}.bpa-scene .scene-eyebrow:before{background:var(--bpa)}.bpa-scene h1{margin:0 0 8px;font-size:clamp(26px,3.1vw,38px)}.bpa-scene h1 em{color:var(--bpa-deep);font-style:normal}.bpa-scene .lead{min-height:1.5em;margin:0 0 14px;font-size:16.5px;line-height:1.55}.bpa-char{background:var(--bpa);border-radius:50%;place-items:center;width:1.3em;height:1.3em;display:inline-grid;color:var(--shroom-cap)!important}.bpa-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;background:#e4eeea;border-radius:26px;position:relative;overflow:hidden}.bpa-stage>.pixi-stage{inset:0;position:absolute!important}.bpa-scrub{cursor:grab;box-shadow:0 0 0 3px var(--bpa), 0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a}.bpa-scrub:active{cursor:grabbing}.bpa-tapable{cursor:pointer}.bpa-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:4px 2px;display:flex}.bpa-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:44px;margin-bottom:8px;display:flex}.bpa-back{border-radius:var(--r-pill);background:var(--shroom-cap);border:2px solid var(--bpa);min-height:44px;color:var(--bpa-deep);font-family:var(--font-body);cursor:pointer;white-space:nowrap;padding:8px 14px;font-size:15px;font-weight:700}.bpa-mode-grid{grid-template-columns:1fr;gap:12px;margin-bottom:4px;display:grid}.bpa-mode-card{text-align:left;cursor:pointer;background:var(--shroom-cap);border:3px solid var(--bpa);min-height:88px;box-shadow:0 5px 0 var(--paper-shadow);font-family:var(--font-body);color:var(--ink);-webkit-tap-highlight-color:transparent;border-radius:22px;align-items:center;gap:14px;padding:12px 16px;transition:transform .1s,box-shadow .1s;display:flex}.bpa-mode-card:active{box-shadow:0 2px 0 var(--paper-shadow);transform:translateY(3px)}.bpa-mode-emoji{flex:none;font-size:46px;line-height:1}.bpa-mode-text{flex-direction:column;gap:2px;min-width:0;display:flex}.bpa-mode-name{font-family:var(--font-display);font-size:23px;font-weight:700}.bpa-mode-tag{color:var(--ink-50);font-size:13px}.bpa-log{color:var(--ink-50);margin:12px 0 0;font-size:15px}.bpa-log b{color:var(--bpa-deep);font-size:20px}.bpa-steps{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.bpa-step{background:var(--bg-cream-2);filter:grayscale(.8);opacity:.55;border-radius:50%;place-items:center;width:38px;height:38px;font-size:20px;transition:all .3s;display:grid}.bpa-step.on{opacity:1;filter:none;background:var(--bpa-soft);box-shadow:0 0 0 3px var(--bpa);transform:scale(1.1)}.bpa-step.done{opacity:1;filter:none;background:var(--shroom-cap);box-shadow:0 0 0 2px var(--leaf)}.bpa-rhyme{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.bpa-chip{background:var(--bg-cream-2);width:38px;height:38px;color:var(--ink-30);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:19px;font-weight:700;transition:all .3s;display:grid}.bpa-chip.on{background:var(--bpa);color:var(--shroom-cap);box-shadow:0 3px 0 var(--bpa-deep);transform:scale(1.15)}.bpa-chip.done{background:var(--shroom-cap);color:var(--leaf);box-shadow:0 0 0 2px var(--leaf)}.bpa-hint{border:2px dashed var(--bpa-soft);color:var(--ink-50);text-align:center;background:#fffdf6b3;border-radius:18px;margin-bottom:12px;padding:12px 14px;font-size:15.5px}.bpa-meter{background:var(--bg-cream-2);border-radius:var(--r-pill);height:10px;margin-top:8px;overflow:hidden}.bpa-meter i{background:linear-gradient(90deg, #8fb3d9, var(--bpa));border-radius:inherit;height:100%;transition:width .15s;display:block}.bpa-actions{flex-direction:column;align-items:stretch;gap:12px;display:flex}.bpa-actions:empty{display:none}.bpa-actions .big-btn{width:100%;min-height:70px;padding:16px 20px}.bpa-done-box{flex-direction:column;gap:12px;display:flex}.bpa-done-box .bpa-log{margin:0 0 2px}@media (aspect-ratio>=1) and (height<=760px){.bpa-scene h1{font-size:clamp(24px,2.8vw,34px)}.bpa-scene .lead{margin-bottom:10px;font-size:15.5px}.bpa-actions .big-btn{min-height:64px;padding:14px 18px}.bpa-mode-card{min-height:78px;padding:10px 14px}.bpa-steps,.bpa-rhyme{margin-bottom:8px}.bpa-step,.bpa-chip{width:34px;height:34px;font-size:17px}.bpa-hint{margin-bottom:10px;padding:10px 12px}}@media (aspect-ratio<=1){.scene.bpa-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:12px}.bpa-panel{justify-content:flex-start}.bpa-scene .lead{margin-bottom:10px}.bpa-actions{flex-flow:wrap}.bpa-actions>*{flex:1 1 0}.bpa-done-box{flex-flow:wrap;width:100%}.bpa-done-box .bpa-log{flex:100%}.bpa-done-box .big-btn{flex:1 1 0}.bpa-mode-grid{grid-template-columns:1fr 1fr}}.scene-size{--size:#c47a8a;--size-deep:#9e5b6a;--size-soft:#f1dce0;padding-top:14px}.scene-size .scene-eyebrow:before{background:var(--size)}.scene-size h1{margin-bottom:6px;font-size:clamp(30px,5.4vw,42px)}.scene-size h1 em{color:var(--size-deep);font-style:normal}.scene-size .lead{margin-bottom:14px}.scene-size .lead.size-lead{min-height:1.6em;font-size:17px}.size-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:4px;display:flex}.size-head h1{margin:0}.size-back{border-radius:var(--r-pill);background:var(--shroom-cap);border:2px solid var(--size);min-height:44px;color:var(--size-deep);font-family:var(--font-body);cursor:pointer;flex:none;padding:8px 18px;font-size:15px;font-weight:700}.size-mode-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;display:grid}.size-mode-card{cursor:pointer;background-image:linear-gradient(#ffffff8c,#fff0 60%);background:var(--shroom-cap);border:3px solid var(--size);border-radius:var(--r-md);min-height:170px;box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--ink);-webkit-tap-highlight-color:transparent;flex-direction:column;align-items:center;gap:4px;padding:20px 10px 18px;display:flex}.size-mode-card:active{transform:translateY(3px)}.size-mode-icon{width:84px;height:84px}.size-mode-name{font-family:var(--font-display);font-size:24px;font-weight:600}.size-mode-tag{color:var(--ink-50);font-size:13px}.size-stage,.size-lesson{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;width:100%;max-width:640px;min-height:300px;max-height:calc(100dvh - 300px);margin:0 auto;display:block}.size-lesson{min-height:0;max-height:52vh}.size-stage.size-live{touch-action:none}.size-mat-label{font-family:var(--font-display);fill:#a9b087;letter-spacing:.3em;font-size:30px}.size-slot-bg{fill:#0000}.size-slot-live{cursor:pointer}.size-slot-live .size-slot-bg{fill:#c47a8a1f;stroke:var(--size);stroke-width:3px;stroke-dasharray:9 7;animation:1.2s linear infinite sizeDash}.size-slot-other{cursor:pointer;opacity:.7}.size-slot-dim{opacity:.4}.size-slot-empty{fill:#785f371f;stroke:#785f374d;stroke-width:1.5px;stroke-dasharray:5 4}.size-mini-in{animation:.5s both sizeFadeIn}@keyframes sizeDash{to{stroke-dashoffset:-32px}}@keyframes sizeFadeIn{0%{opacity:0}}.size-spot{fill:#e8a5b31f;stroke:#c48593;stroke-width:2px;stroke-dasharray:7 6}.size-line{stroke:#8e6a3c;stroke-width:3px;stroke-dasharray:10 7;stroke-linecap:round;opacity:.6}.size-returning .size-fixed{opacity:0;transition:opacity .6s}.size-p{transition:transform .32s cubic-bezier(.3,.7,.4,1),opacity .6s}.size-returning .size-p{transition:transform .7s ease-in,opacity .7s ease-in}.size-p.size-drag{transition:none}.size-lift{transform:translateY(-8px)}.size-p.size-walker{transition:transform .36s ease-in-out}.size-wob{transform-origin:0 0;animation:.9s ease-in-out sizeWobble}.size-wob-loop{animation:1.4s ease-in-out infinite sizeWobble}@keyframes sizeWobble{0%,to{transform:rotate(0)}15%{transform:rotate(-9deg)}35%{transform:rotate(8deg)}55%{transform:rotate(-6deg)}75%{transform:rotate(4deg)}}.size-in{transform-origin:0 0;animation:.5s cubic-bezier(.3,1.3,.5,1) both sizeIn}@keyframes sizeIn{0%{opacity:0;transform:translateY(-50px)scale(.6)}}.size-hop{transform-origin:0 0;animation:.36s ease-out sizeHop}@keyframes sizeHop{0%{transform:translateY(0)}45%{transform:translateY(-16px)}to{transform:translateY(0)}}.size-halo{fill:#fff4c859;stroke:#e9b949;stroke-width:4px;animation:1s ease-in-out infinite sizePulse}@keyframes sizePulse{50%{opacity:.45}}.size-les-item{cursor:pointer}.size-les-hit{fill:#0000}.size-les-item.asking .size-les-hit{fill:#f4ecd459;stroke:var(--size);stroke-width:3px;stroke-dasharray:10 8;animation:1.2s linear infinite sizeDash}.size-les-glow{fill:#e9b94900;transition:fill .25s}.size-les-item.hi .size-les-glow{fill:#e9b94973}.size-les-piece{transform-origin:0 0;transition:transform .25s}.size-les-item.hi .size-les-piece{transform:translateY(-10px)}.size-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:16px;display:flex}.size-actions>.big-btn{flex:220px}.size-actions-row{flex-wrap:wrap;gap:10px;width:100%;max-width:660px;display:flex}.size-actions-row .big-btn{flex:170px;gap:8px;min-width:0;padding:16px 12px;font-size:19px}@media (orientation:landscape) and (width>=900px){.app .scene-size{max-width:1140px}.size-work{grid-template-columns:minmax(0,1fr) minmax(240px,300px);align-items:center;column-gap:20px;display:grid}.size-work .size-stage{max-width:none;height:calc(100dvh - 176px);min-height:0;max-height:none}.size-work .size-lesson{max-width:none;max-height:calc(100dvh - 176px)}.size-work .size-actions{flex-flow:column;align-items:stretch;margin-top:0}.size-work .size-actions>.big-btn{flex:none}.size-work .size-actions-row{flex-direction:column}.size-work .size-actions-row .big-btn{flex:none}}@media (width<=600px){.scene-size h1{font-size:28px}.scene-size .lead.size-lead{font-size:15px}.size-head{gap:10px}.size-mode-grid{grid-template-columns:1fr}.size-mode-card{text-align:left;flex-direction:row;gap:14px;min-height:0;padding:12px 16px}.size-mode-card .size-mode-icon{flex:none;width:64px;height:64px}.size-mode-name{font-size:22px}}.scene-count{--count:#b8893a;--count-deep:#8c6524;--count-soft:#efe0bd;--rod-red:#c0513f;--rod-blue:#4d6fa3;--counter:#b9503e;--ribbon:#b9503e;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;padding-top:20px}.scene-count .scene-eyebrow:before{background:var(--count)}.scene-count h1 em{color:var(--count-deep);font-style:normal}.scene-count h1.count-title{margin:0 0 4px;font-size:clamp(28px,5vw,36px)}.count-lead{color:var(--ink-50);min-height:3em;margin:0 0 10px;font-size:16px;line-height:1.5}.count-head{flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 4px;display:flex}.count-head h1.count-title{margin:0}.count-back{border-radius:var(--r-pill);background:var(--shroom-cap);border:2px solid var(--count);min-height:44px;color:var(--count-deep);font-family:var(--font-body);cursor:pointer;flex:none;margin:0;padding:8px 16px;font-size:15px;font-weight:700}.count-shelf{border-radius:var(--r-md);box-shadow:var(--shadow-card);background:linear-gradient(#e9d8af,#dcc597);grid-template-columns:repeat(3,1fr);gap:14px;padding:16px 14px 30px;display:grid;position:relative}.count-shelf:after{content:"";border-radius:0 0 var(--r-md) var(--r-md);background:linear-gradient(#b98d52,#9a7140);height:16px;position:absolute;bottom:0;left:0;right:0}.count-shelf-item{cursor:pointer;background:var(--shroom-cap);border:3px solid var(--count);border-radius:var(--r-md);min-height:190px;box-shadow:0 5px 0 var(--paper-shadow);font-family:var(--font-body);color:var(--ink);flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;padding:16px 8px 14px;display:flex}.count-shelf-item:active{box-shadow:0 2px 0 var(--paper-shadow);transform:translateY(3px)}.count-shelf-item.returned{animation:1.2s 2 countReturned}@keyframes countReturned{0%,to{box-shadow:0 5px 0 var(--paper-shadow)}50%{box-shadow:0 5px 0 var(--paper-shadow), 0 0 0 6px #779c5c73}}.count-shelf-name{font-family:var(--font-display);font-size:22px;font-weight:600}.count-shelf-tag{color:var(--ink-50);text-align:center;font-size:13px}.count-mini{justify-content:center;align-items:flex-end;height:78px;display:flex}.count-mini.rods{flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:4px}.count-mini.rods .count-rod-bar{height:10px}.count-mini.rods .count-rod-bar:first-child{width:16px}.count-mini.rods .count-rod-bar:nth-child(2){width:32px}.count-mini.rods .count-rod-bar:nth-child(3){width:48px}.count-mini.rods .count-rod-bar:nth-child(4){width:64px}.count-mini.rods .count-rod-bar:nth-child(5){width:80px}.count-mini.spindle{background:var(--count);border-radius:6px;gap:3px;height:auto;padding:4px}.count-mini-comp{background:#f3e6c6;border-radius:3px;flex-direction:column;align-items:center;width:22px;height:64px;display:flex}.count-mini-comp b{font-size:12px;line-height:16px}.count-mini-comp>span{gap:1px;margin-top:auto;padding-bottom:3px;display:flex}.count-mini-comp .count-spindle{width:3px;height:34px}.count-mini.cards{align-items:flex-start;gap:6px}.count-mini-lane{flex-direction:column;align-items:center;gap:4px;width:22px;display:flex}.count-mini-lane b{background:#fbf4e0;border:1.5px solid #cdb88a;border-radius:4px;place-items:center;width:22px;height:26px;font-size:14px;display:grid}.count-mini-lane>span{flex-wrap:wrap;justify-content:center;gap:2px;width:20px;display:flex}.count-mini-lane .count-counter{width:8px;height:8px;position:static}.count-mat{border-radius:var(--r-md);box-shadow:inset 0 0 0 3px #b8893a47, var(--shadow-card);background:repeating-linear-gradient(0deg,#ffffff0d 0 2px,#0000 2px 5px),repeating-linear-gradient(90deg,#785a280a 0 2px,#0000 2px 5px),#e3d1a5;padding:12px;animation:.45s both countUnroll;position:relative}@keyframes countUnroll{0%{opacity:0;transform:translateY(14px)scaleY(.96)}}.count-mat-tag{color:var(--ink-50);letter-spacing:.1em;pointer-events:none;font-size:12px;position:absolute;top:4px;right:8px}.count-actions{justify-content:center;margin-top:14px;display:flex}.count-rods-inner{container-type:inline-size}.count-rods-inner>*{--u:calc(100cqw / 10.8);--rh:clamp(30px, calc(100cqw / 10.8 * .64), 40px);--rh2:clamp(36px, calc(100cqw / 10.8 * .74), 46px)}.count-rodmat{height:calc(var(--rh2) * var(--rows) + 18px);border-bottom:2px dashed #6e625347;border-radius:12px;margin-bottom:12px;padding-top:18px;position:relative}.count-rodmat.over{background:#ffffff40}.count-rod{width:calc(var(--u) * var(--v));height:var(--rh);touch-action:none;cursor:grab;align-items:center;display:flex;position:relative}.count-rod.loose{height:var(--rh2);left:calc(var(--u) * var(--x));top:calc(18px + var(--rh2) * var(--row) + var(--dy));transform:rotate(var(--rot));position:absolute}.count-rod.dragging{opacity:.2}.count-rod.sel .count-rod-bar{outline:3px solid var(--count-deep);outline-offset:3px}.count-rod.wobble .count-rod-bar{animation:1.8s ease-in-out infinite countWobble}.count-rod-bar{border-radius:3px;width:100%;height:70%;display:flex;overflow:hidden;box-shadow:0 3px #3a322640}.count-seg{flex:1;place-items:center;display:grid;position:relative}.count-seg em{font-style:normal;font-weight:700;font-size:clamp(11px, calc(var(--u) * .3), 17px);color:#fbf4e0;font-family:var(--font-body)}.count-seg.done{filter:brightness(1.12)saturate(1.1)}.count-seg.next{animation:1s ease-in-out infinite countSegPulse}@keyframes countSegPulse{50%{box-shadow:inset 0 0 0 3px #fbf4e0}}.count-stair{padding-top:18px;position:relative}.count-stair.ok{padding-top:0}.count-stair-row{height:var(--rh);background:repeating-linear-gradient(90deg, #6e625329 0 1px, transparent 1px var(--u)) 0 0 / calc(var(--u) * 10 + 1px) 100% no-repeat;border-left:4px solid #a77b45;position:relative}.count-stair-row.over{background-color:#ffffff59}.count-stair-row.can{background-color:#ffffff29}.count-rod.counting{cursor:pointer}.count-rod-num{font-family:var(--font-display);font-weight:700;font-size:clamp(16px, calc(var(--u) * .42), 24px);color:var(--count-deep);animation:.3s both countPop;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}@keyframes countPop{0%{opacity:0;transform:translateY(-50%)scale(.3)}}.count-boxes{gap:10px;display:grid}.count-box{background:linear-gradient(#c9a063,#b8893a);border-radius:12px;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:8px;display:grid;box-shadow:0 4px #8c6524}.count-comp{cursor:pointer;touch-action:manipulation;background:#f3e6c6;border-radius:8px;flex-direction:column;align-items:center;height:150px;padding-top:2px;transition:box-shadow .2s;display:flex;position:relative;box-shadow:inset 0 3px 6px #3a322633;container-type:inline-size}.count-comp.over{background:#fff7e2}.count-comp.nudge{animation:.6s 2 countNudge}@keyframes countNudge{50%{box-shadow:inset 0 6px 10px #462d0f47, 0 0 0 4px var(--leaf)}}.count-comp.wobble{animation:1.8s ease-in-out infinite countWobble}.count-comp-label{font-family:var(--font-display);color:var(--ink);font-size:30px;font-weight:700;line-height:1.2}.count-comp.enough .count-comp-label{color:var(--leaf)}.count-comp-sp{touch-action:none;cursor:grab;justify-content:center;align-items:flex-end;height:96px;display:flex;position:absolute;bottom:6px;left:3px;right:3px}.count-comp-sp .count-spindle{width:min(9px, calc((100cqw - 12px) / var(--n) - 2px));flex:none;height:80px;margin:0 1px;animation:.22s both countDropIn}@keyframes countDropIn{0%{opacity:0;transform:translateY(-16px)}}.count-comp-sp.tied{cursor:pointer}.count-comp-sp.tied .count-spindle{transform:rotate(calc(var(--i) * 2.2deg));transform-origin:50%;margin:0 -1.5px;transition:transform .3s;animation:none}.count-ribbon{background:var(--ribbon);border-radius:3px;width:min(70%,54px);height:9px;animation:.35s both countTie;position:absolute;top:44%;left:50%;transform:translate(-50%);box-shadow:0 1px #3a32264d}.count-ribbon b{border:3px solid var(--ribbon);border-radius:50%;width:14px;height:10px;position:absolute;top:-9px}.count-ribbon b:first-child{left:calc(50% - 15px);transform:rotate(-20deg)}.count-ribbon b:last-child{left:calc(50% + 1px);transform:rotate(20deg)}@keyframes countTie{0%{opacity:0;transform:translate(-50%)scaleX(.2)}}.count-comp.zero:after{content:"空";color:var(--ink-30);font-size:13px;position:absolute;bottom:40px}.count-spindle{background:linear-gradient(90deg,#9c6f3c,#e6c590 45%,#b58850);border-radius:50%;width:9px;height:76px;display:block;box-shadow:0 1px 1px #3a322640}.count-spindle.lying{width:7px;height:60px;transform:rotate(var(--rot));position:absolute}.count-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;min-height:64px;margin:10px 0;display:flex}.count-tool{border-radius:var(--r-pill);cursor:pointer;border:3px solid var(--count);background:var(--shroom-cap);min-height:56px;color:var(--count-deep);font-family:var(--font-body);box-shadow:0 4px 0 var(--paper-shadow);padding:0 20px;font-size:18px;font-weight:700}.count-tool:active{box-shadow:0 2px 0 var(--paper-shadow);transform:translateY(2px)}.count-tool.main{background:var(--count);color:var(--shroom-cap);box-shadow:0 4px 0 var(--count-deep)}.count-tool:disabled{opacity:.4;cursor:default}.count-basket,.count-dish{touch-action:none;cursor:grab}.count-basket{background:repeating-linear-gradient(45deg,#ffffff1a 0 7px,#0000 7px 14px),repeating-linear-gradient(-45deg,#5a3c141f 0 7px,#0000 7px 14px),#c79c5e;border-radius:18px 18px 70px 70px/18px 18px 46px 46px;width:100%;max-width:520px;height:150px;margin:0 auto;position:relative;box-shadow:inset 0 8px #a77b45,0 5px #8c6524}.count-basket.over,.count-dish.over{filter:brightness(1.08)}.count-basket.left{animation:1.4s ease-in-out infinite countGlow}.count-basket.empty{cursor:default;opacity:.75}@keyframes countGlow{50%{box-shadow:inset 0 9px #a77b45,0 5px #85601f,0 0 0 7px #d9a4588c}}.count-basket-in{pointer-events:none;position:absolute;inset:12px 18px 34px}.count-basket-count{border-radius:var(--r-pill);white-space:nowrap;color:var(--ink-50);pointer-events:none;background:#f4ecd4eb;padding:2px 12px;font-size:14px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.count-basket-count b{color:var(--ink);font-size:17px}.count-lanes{grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;display:grid}.count-lane{flex-direction:column;display:flex;container-type:inline-size}.count-slot{border:2px dashed #6e625359;border-radius:10px;height:80px;position:relative}.count-slot.filled{border-color:#0000}.count-slot.can{background:#fff3}.count-slot.over{background:#fff6}.count-card{width:100%;height:100%;font-family:var(--font-display);color:var(--ink);touch-action:none;cursor:grab;background:#fbf4e0;border:2px solid #cdb88a;border-radius:10px;place-items:center;font-size:clamp(26px,5vw,36px);font-weight:700;display:grid;box-shadow:0 3px #cdb88a}.count-card.fixed{cursor:pointer;touch-action:manipulation}.count-card.sel{outline:3px solid var(--count-deep);outline-offset:2px}.count-card.dragging{opacity:.2}.count-card.wobble{animation:1.8s ease-in-out infinite countWobble}.count-card.nudge{animation:.6s 2 countCardNudge}@keyframes countCardNudge{50%{outline:3px solid var(--leaf);outline-offset:2px}}.count-card.loose{width:62px;height:80px;transform:translate(var(--dx), var(--dy)) rotate(var(--rot))}.count-pile{border-top:2px dashed #6e625347;border-radius:14px;grid-template-rows:repeat(2,96px);grid-template-columns:repeat(5,1fr);place-items:center;margin-top:14px;padding:18px 8px 4px;display:grid;position:relative}.count-pile.over{background:#ffffff40}.count-col{--cs:min(26px, 40cqw);--cr:calc(var(--cs) + 5px);cursor:pointer;touch-action:manipulation;min-height:calc(var(--pairs) * var(--cr) + 40px);border-radius:10px;margin-top:8px;position:relative}.count-col.sel{background:#ffffff47}.count-col.over{background:#ffffff73}.count-col-in{height:calc(var(--pairs) * var(--cr));touch-action:none;cursor:grab;position:absolute;top:6px;left:0;right:0}.count-counter{width:var(--cs,26px);height:var(--cs,26px);background:radial-gradient(circle at 35% 30%, #d98069, var(--counter) 68%);border-radius:50%;display:block;position:absolute;box-shadow:0 2px #3a32264d}.count-col .count-counter{top:calc(var(--r) * var(--cr));transition:left .25s;animation:.2s both countDropIn}.count-counter.l{left:calc(50% - var(--cs) - 2px)}.count-counter.r{left:calc(50% + 2px)}.count-counter.lone{left:calc(50% - var(--cs) / 2)}.count-counter.loose{width:24px;height:24px;transform:translate(-50%,-50%)}.count-oe-line{background:repeating-linear-gradient(180deg, var(--ink-50) 0 6px, transparent 6px 10px);width:3px;height:calc(var(--len) * var(--cr) + 4px);transform-origin:top;pointer-events:none;border-radius:2px;animation:.9s both countLine;position:absolute;top:2px;left:calc(50% - 1.5px)}.count-oe-line.odd:after{content:"";background:var(--ink-50);border-radius:2px;width:15px;height:3px;position:absolute;bottom:-2px;left:-6px}@keyframes countLine{0%{transform:scaleY(0)}}.count-oe-chip{border-radius:var(--r-pill);white-space:nowrap;animation:.3s both countChip;animation-delay:var(--d);pointer-events:none;padding:2px 8px;font-size:14px;font-weight:700;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.count-oe-chip.odd{background:var(--count-soft);color:var(--count-deep)}.count-oe-chip.even{color:#4f6e3a;background:#dde7d2}@keyframes countChip{0%{opacity:0;transform:translate(-50%)scale(.4)}}.count-dish{width:100%;max-width:380px;height:136px;box-shadow:0 5px 0 var(--paper-shadow);background:radial-gradient(at 50% 40%,#fbf4e0,#e6d6ae);border:5px solid #cdb88a;border-radius:50%;margin:0 auto;position:relative}.count-dish.empty{cursor:default}.count-dish-in{pointer-events:none;position:absolute;inset:14px 30px 30px}.count-ghost{z-index:1000;pointer-events:none;filter:drop-shadow(0 8px 8px #2c24184d);justify-content:center;align-items:center;display:flex;position:fixed;transform:scale(1.05)}.count-ghost .count-rod-bar{height:70%}.count-ghost .count-spindle{width:9px;height:76px}.count-ghost .count-counter{width:28px;height:28px;position:static}@keyframes countWobble{0%,to{transform:rotate(0)}25%{transform:rotate(-1.2deg)translateY(-1px)}75%{transform:rotate(1.2deg)translateY(1px)}}@media (orientation:landscape) and (width>=900px){.app .scene-count{max-width:1140px}.count-lead{min-height:1.5em}.count-rods-inner:has(>.count-rodmat){grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.count-rods-inner:has(>.count-rodmat)>*{--u:calc((100cqw - 20px) / 2 / 10.8)}.count-rods-inner:has(>.count-rodmat)>.count-rodmat{border-bottom:0;border-right:2px dashed #6e625347;border-radius:12px 0 0 12px;margin-bottom:0}.count-boxes{grid-template-columns:1fr 1fr}}@media (orientation:landscape) and (width>=900px) and (height<=760px){.count-slot{height:64px}.count-card.loose{width:56px;height:70px}.count-pile{grid-template-rows:repeat(2,84px)}}@media (width<=600px){.count-shelf{grid-template-columns:1fr}.count-shelf-item{min-height:150px}.count-comp{height:128px}.count-comp-label{font-size:24px}.count-comp-sp{height:84px}.count-comp-sp .count-spindle{height:70px}.count-lanes{grid-template-columns:repeat(5,minmax(0,1fr));row-gap:12px}.count-pile{grid-template-rows:repeat(2,92px)}.count-tool{padding:0 16px;font-size:16px}}@media (prefers-reduced-motion:reduce){.count-rod.wobble .count-rod-bar,.count-comp.wobble,.count-card.wobble,.count-basket.left{animation:none}}.count-shelf{box-shadow:inset 0 2px 0 #ffffff80, inset 0 -18px 24px -18px #5a3c142e, var(--shadow-card);background:repeating-linear-gradient(92deg,#7852240f 0 2px,#0000 2px 23px,#7852240a 23px 24px,#0000 24px 41px),linear-gradient(#eeddb4,#dcc294)}.count-shelf:after{background:linear-gradient(#c9985c,#a97b45 60%,#8e6537);box-shadow:inset 0 1px #ffe2b499}.count-shelf-item{box-shadow:0 5px 0 var(--paper-shadow), 0 10px 18px -10px #5a3c1459;background:linear-gradient(#fffbf0,#f6ecd3)}.count-mat{box-shadow:inset 0 0 0 3px #b8893a38, inset 0 0 28px #78551e1f, var(--shadow-card);background:radial-gradient(circle at 20% 30%,#ffffff14 0 1px,#0000 1.5px) 0 0/9px 9px,radial-gradient(circle at 70% 60%,#6e501e12 0 1px,#0000 1.5px) 0 0/11px 11px,linear-gradient(160deg,#e9d9b0,#dcc797)}.count-mat:before{content:"";border-radius:calc(var(--r-md) - 5px);pointer-events:none;border:1.6px dashed #fff9e8bf;position:absolute;inset:7px}.count-rod-bar{border-radius:5px;overflow:hidden;box-shadow:0 3px #3a281847,0 7px 10px -4px #3a28184d}.count-seg{box-shadow:inset -1px 0 #0000001f}.count-seg.red{background:linear-gradient(#e07a64 0%,#c9553f 38%,#b3452f 78%,#933624 100%)}.count-seg.blue{background:linear-gradient(#7d9ccb 0%,#5677ac 38%,#466598 78%,#364f7a 100%)}.count-seg:before{content:"";pointer-events:none;background:linear-gradient(#ffffff73,#fff0);border-radius:4px;height:16%;position:absolute;top:10%;left:6%;right:6%}.count-seg em{text-shadow:0 1px 1px #00000059}.count-stair-row{border-left:5px solid #9c6f3c;box-shadow:inset 2px 0 #c49664}.count-box{background:repeating-linear-gradient(90deg,#5a371414 0 1px,#0000 1px 17px,#ffe6be0f 17px 19px,#0000 19px 31px),linear-gradient(#cfa466,#b58640 70%,#a47736);box-shadow:0 4px #85601f,0 10px 16px -8px #462d0f73,inset 0 2px #ffe6be73}.count-comp{background:linear-gradient(#e9d7ae,#f5e8ca 30%,#f3e4c2);box-shadow:inset 0 6px 10px #462d0f47,inset 0 -2px #ffffff80}.count-comp.sel{box-shadow:inset 0 6px 10px #462d0f47, 0 0 0 4px var(--shroom-cap);background:#faf0d8}.count-comp-label{text-shadow:0 1px #ffffffb3}.count-spindle{background:linear-gradient(#fff0 0 46%,#78502340 46% 49%,#fff0 49%),linear-gradient(90deg,#8e6232 0%,#c59a5e 22%,#f0d6a4 42%,#ddb97f 62%,#a67a42 100%);border-radius:50%/9%;box-shadow:1px 2px 2px #3a281847}.count-ribbon{background:linear-gradient(#e0705c,#b9503e 55%,#943a2a);box-shadow:0 2px 2px #3a28184d}.count-ribbon b{border-color:#c65a46}.count-basket{background:repeating-linear-gradient(0deg,#5a370f38 0 2px,#0000 2px 12px),repeating-linear-gradient(90deg,#ffebc32e 0 9px,#5a370f24 9px 11px,#0000 11px 20px),linear-gradient(#d6ae70,#be9050 60%,#a87c40);box-shadow:inset 0 9px #a77b45,inset 0 14px 16px -6px #462d0f66,0 5px #85601f,0 12px 18px -10px #462d0f73}.count-card{text-shadow:0 1px #fff;background:linear-gradient(170deg,#fffcf2,#f7edd3);border:1.5px solid #d6c293;box-shadow:0 3px #cdb88a,0 8px 12px -6px #5a411959,inset 0 1px #fff}.count-card.enough{border-color:var(--leaf);box-shadow:0 3px 0 var(--leaf), 0 8px 12px -6px #5a41194d}.count-counter{background:radial-gradient(circle at 34% 28%,#ffdcc8d9 0 9%,#ffdcc800 26%),radial-gradient(circle,#c85a44 0 58%,#a9412d 64%,#d06c55 70%,#9c3b28 100%);box-shadow:0 2px #461e1459,0 4px 6px -2px #3a281859}.count-dish{box-shadow:inset 0 6px 12px #785f3238, 0 0 0 1px #cdb88a, 0 5px 0 var(--paper-shadow), 0 12px 18px -10px #5a411966;background:radial-gradient(at 38% 30%,#ffffffe6 0 8%,#fff0 30%),radial-gradient(at 50% 45%,#fffdf6,#efe3c6 70%,#e2d2aa);border:6px solid #e9ddc0}.count-ghost{filter:drop-shadow(0 12px 10px #2c241852);transform:scale(1.06)rotate(-1.5deg)}.scene.ppa-scene{--pour:#4e9aae;--pour-deep:#3a7a8c;--pour-soft:#d6e8ec;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(270px,29vw,340px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.ppa-scene .scene-eyebrow{margin-bottom:0}.ppa-scene .scene-eyebrow:before{background:var(--pour)}.ppa-scene h1{margin:0 0 8px;font-size:clamp(26px,3.1vw,38px)}.ppa-scene h1 em{color:var(--pour-deep);font-style:normal}.ppa-scene .lead.ppa-lead{min-height:3.1em;margin:0 0 14px;font-size:16.5px;line-height:1.55}.ppa-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#efe4c8;border-radius:26px;position:relative;overflow:hidden}.ppa-stage>.pixi-stage{inset:0;position:absolute!important}.ppa-live{touch-action:none;cursor:grab;box-shadow:0 6px 0 var(--paper-shadow), 0 0 0 3px var(--pour), 0 14px 30px #2c24181a}.ppa-live:active{cursor:grabbing}.ppa-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:4px 2px;display:flex}.ppa-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:44px;margin-bottom:8px;display:flex}.ppa-back{border-radius:var(--r-pill);background:var(--shroom-cap);border:2px solid var(--pour);min-height:44px;color:var(--pour-deep);font-family:var(--font-body);cursor:pointer;white-space:nowrap;padding:8px 14px;font-size:15px;font-weight:700}.ppa-modes{grid-template-columns:1fr;gap:12px;display:grid}.ppa-mode{text-align:left;cursor:pointer;background:var(--shroom-cap);border:3px solid var(--pour-soft);min-height:80px;box-shadow:0 5px 0 var(--paper-shadow);font-family:var(--font-body);color:var(--ink);-webkit-tap-highlight-color:transparent;border-radius:22px;align-items:center;gap:14px;padding:10px 16px;transition:transform .1s,box-shadow .1s;display:flex}.ppa-mode:active{box-shadow:0 2px 0 var(--paper-shadow);transform:translateY(3px)}.ppa-mode.is-back{border-color:var(--leaf)}.ppa-mode-icon{background:linear-gradient(#e8c996,#d8b27c);border-radius:16px;flex:none;place-items:center;width:52px;height:52px;font-size:28px;line-height:1;display:grid;box-shadow:inset 0 -4px #a9804e}.ppa-icon-pour:before{content:"💧"}.ppa-icon-spoon:before{content:"🥄"}.ppa-icon-tongs:before{content:"🟠";font-size:24px}.ppa-mode-text{flex-direction:column;gap:2px;min-width:0;display:flex}.ppa-mode-name{font-family:var(--font-display);font-size:23px;font-weight:700}.ppa-mode-tag{color:var(--ink-50);font-size:13.5px}.ppa-mode.is-back .ppa-mode-tag{color:var(--leaf);font-weight:700}.ppa-cycle{grid-template-columns:1fr 1fr;gap:6px;margin:0 0 16px;padding:0;list-style:none;display:grid}.ppa-cycle li{background:var(--bg-cream-2);color:var(--ink-30);border-radius:14px;align-items:center;gap:7px;padding:6px 10px;font-size:15px;font-weight:700;transition:all .3s;display:flex}.ppa-cycle li b{background:#fff9;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:12px;display:grid}.ppa-cycle li.on{background:var(--pour);color:var(--shroom-cap);box-shadow:0 3px 0 var(--pour-deep)}.ppa-cycle li.on b{background:#ffffff40}.ppa-cycle li.done{background:var(--shroom-cap);color:var(--leaf);box-shadow:0 0 0 2px var(--leaf)}.ppa-cycle li.done b{background:var(--leaf);color:#fff;font-size:0}.ppa-cycle li.done b:before{content:"✓";font-size:13px}.ppa-actions{flex-direction:column;align-items:stretch;gap:12px;display:flex}.ppa-actions:empty{display:none}.ppa-actions .big-btn{width:100%;max-width:none;min-height:70px;padding:16px 20px}.ppa-hold{border-radius:var(--r-pill);background:var(--shroom-cap);min-height:76px;color:var(--pour-deep);border:3px solid var(--pour);box-shadow:0 6px 0 var(--pour-deep);font-family:var(--font-display);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:12px;padding:14px 22px;font-size:22px;font-weight:700;transition:transform .1s,box-shadow .1s,background .2s;display:flex}.ppa-hold.holding{background:var(--pour);color:var(--shroom-cap);box-shadow:0 2px 0 var(--pour-deep);transform:translateY(4px)}.ppa-hold-drop{background:radial-gradient(circle at 35% 40%,#e6f4f7 0 18%,#8fc0cf 40%,#4e9aae 100%);border-radius:50% 0 50% 50%;flex:none;width:22px;height:22px;transform:rotate(-45deg);box-shadow:0 2px #3a7a8c66}.ppa-hold.holding .ppa-hold-drop{animation:.6s ease-in-out infinite ppaDrip}@keyframes ppaDrip{50%{transform:rotate(-45deg)translate(3px,-3px)scale(.9)}}@media (aspect-ratio>=1) and (height<=760px){.ppa-scene h1{font-size:clamp(24px,2.8vw,34px)}.ppa-scene .lead.ppa-lead{margin-bottom:10px;font-size:15.5px}.ppa-actions .big-btn{min-height:64px;padding:14px 18px}.ppa-mode{min-height:72px}.ppa-cycle{margin-bottom:12px}}@media (aspect-ratio<=1){.scene.ppa-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:12px}.ppa-panel{justify-content:flex-start}.ppa-scene .lead.ppa-lead{min-height:0;margin-bottom:10px}.ppa-modes{grid-template-columns:repeat(3,1fr);gap:10px}.ppa-mode{text-align:center;flex-direction:column;gap:6px;padding:10px 8px}.ppa-cycle{grid-template-columns:repeat(4,1fr)}.ppa-cycle li{justify-content:center;padding:6px 4px;font-size:14px}.ppa-actions{flex-flow:wrap}.ppa-actions>*{flex:1 1 0}}.scene-sound{--snd:#8c6fa8;--snd-deep:#6c5288;--snd-soft:#e6dcee;--lid-red:#b86855;--lid-red-deep:#8e4a40;--lid-blue:#6f8fb0;--lid-blue-deep:#4f6e8e;--wood:#d9bc8f;--wood-2:#c7a571;--wood-deep:#9c7c4e;--cyl-w:64px;--cyl-h:92px;--cyl-cell:76px;padding-top:20px}.scene-sound .scene-eyebrow:before{background:var(--snd)}.scene-sound h1{margin-bottom:8px}.scene-sound h1 em{color:var(--snd-deep);font-style:normal}.scene-sound .lead.sound-lead{min-height:3.2em;margin-bottom:14px}.sound-head{flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:6px;display:flex}.scene-sound .sound-head h1{margin:0}.sound-back{border-radius:var(--r-pill);background:var(--shroom-cap);border:2px solid var(--snd);min-height:44px;color:var(--snd-deep);font-family:var(--font-body);cursor:pointer;flex:none;margin:0;padding:8px 16px;font-size:15px;font-weight:700}.sound-mode-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.sound-mode-card{cursor:pointer;background:var(--shroom-cap);border:3px solid var(--snd);border-radius:var(--r-md);box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--ink);flex-direction:column;align-items:center;gap:4px;padding:26px 10px 20px;display:flex}.sound-mode-card:active{transform:translateY(3px)}.sound-mode-emoji{letter-spacing:-4px;font-size:40px;line-height:1.3}.sound-mode-name{font-family:var(--font-display);font-size:24px;font-weight:600}.sound-mode-tag{color:var(--ink-50);font-size:13px}.sound-menu-shelf{opacity:.9;pointer-events:none;margin-top:28px}.sound-shelf-stage{background:var(--shroom-cap);border:3px solid var(--snd-soft);border-radius:var(--r-md);width:100%;max-width:520px;box-shadow:var(--shadow-card);margin:0 auto;padding:18px 16px 0;position:relative;overflow:hidden}.sound-table{background:linear-gradient(#e4d2ae,#d8c194);border-top:3px solid #cdb384;height:70px;margin:20px -16px 0}.sound-shelf{flex-direction:column;align-items:center;display:flex}.sound-shelf-boxes{justify-content:center;gap:18px;padding:0 8px;display:flex}.sound-plank{background:linear-gradient(180deg, var(--wood-2), var(--wood-deep));border-radius:4px;width:100%;height:16px;box-shadow:0 5px #5a462840}.sound-box{background:linear-gradient(180deg, var(--wood), var(--wood-2));border:3px solid var(--wood-deep);cursor:pointer;-webkit-tap-highlight-color:transparent;border-bottom-width:5px;border-radius:10px 10px 4px 4px;place-items:center;width:150px;height:84px;padding:10px;transition:transform .8s cubic-bezier(.5,-.2,.4,1.2),opacity .8s;display:grid}.sound-box:disabled{cursor:default}.sound-box.red{border-top:12px solid var(--lid-red)}.sound-box.blue{border-top:12px solid var(--lid-blue)}.sound-box-lids{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.sound-box-lids i{border:2px solid #3a322640;border-radius:50%;width:26px;height:26px}.sound-shelf-stage.shelf .sound-box:not(:disabled){animation:2.4s ease-in-out infinite soundInvite}@keyframes soundInvite{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.sound-box.away{transform:translateY(96px)scale(1.08)}.sound-shelf-stage.home .sound-box{animation:.9s both soundHome}@keyframes soundHome{0%{transform:translateY(96px)scale(1.08)}to{transform:none}}.sound-shelf-stage.done .sound-plank{box-shadow:0 5px #5a462840,0 0 0 4px #8c6fa840}.sound-options{flex-wrap:wrap;justify-content:center;gap:10px 18px;margin:16px 0 4px;display:flex}.sound-chips{background:var(--bg-cream-2);border-radius:var(--r-pill);gap:6px;padding:4px;display:inline-flex}.sound-chip{border-radius:var(--r-pill);min-width:76px;min-height:48px;color:var(--ink-50);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;padding:0 16px;font-size:17px;font-weight:700}.sound-chip.on{background:var(--shroom-cap);color:var(--snd-deep);box-shadow:0 0 0 2px var(--snd)}.sound-work{border-radius:var(--r-md);width:100%;box-shadow:var(--shadow-card);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:linear-gradient(#efe3c6,#e6d5b0);margin:0 auto;padding:12px 12px 18px;position:relative}.sound-boxes-open{justify-content:center;gap:14px;margin-bottom:12px;display:flex}.sound-openbox{--hole:18px;background:linear-gradient(180deg, var(--wood-2), var(--wood));border:3px solid var(--wood-deep);border-radius:8px;gap:4px;padding:7px 9px;display:grid}.sound-openbox.red{border-left:8px solid var(--lid-red)}.sound-openbox.blue{border-left:8px solid var(--lid-blue)}.sound-openbox i{background:#5a462859;border-radius:50%;width:18px;height:18px;transition:background .25s;box-shadow:inset 0 2px 3px #00000040}.sound-openbox.hot{box-shadow:0 0 0 4px #8c6fa859}.sound-board{position:relative}.sound-board-pair{justify-content:center;align-items:flex-start;gap:14px;display:flex}.sound-col{border-radius:var(--r-sm);background:#f4ecd48c;flex-direction:column;gap:10px;padding:8px;display:flex}.sound-row{align-items:center;gap:8px;display:flex}.sound-cell,.sound-slot,.sound-spot{width:var(--cyl-cell);height:calc(var(--cyl-h) + 12px);place-items:center;display:grid;position:relative}.sound-slot{cursor:pointer;background:#f4ecd480;border:3px dashed #8c6fa873;border-radius:14px;transition:background .2s,border-color .2s}.sound-slot.ready{border-color:var(--snd);background:#e6dceecc}.sound-slot-hint{color:var(--ink-30);pointer-events:none;font-size:13px;font-weight:600}.sound-gone{display:block}.sound-pool{border-radius:var(--r-sm);min-width:0;max-width:360px;min-height:calc(var(--cyl-h) + 30px);border:3px solid #0000;flex-wrap:wrap;flex:1;place-content:flex-start center;gap:6px 10px;padding:10px 6px 18px;transition:border-color .2s;display:flex}.sound-pool.row{max-width:none;margin-bottom:8px}.sound-pool.empty{min-height:64px}.sound-pool.empty .sound-spot{display:none}.sound-pool.ready{cursor:pointer;border-style:dashed;border-color:#8c6fa873}.sound-board-grade{flex-direction:column;align-items:center;display:flex}.sound-scale{width:100%;max-width:560px;color:var(--snd-deep);align-items:flex-end;gap:8px;margin:2px 0 8px;font-size:15px;font-weight:700;display:flex}.sound-scale span{flex:none}.sound-wedge{background:var(--snd-soft);clip-path:polygon(0 88%,100% 0,100% 100%,0 100%);border-radius:3px;flex:1;height:22px}.sound-scale.down .sound-wedge{clip-path:polygon(0 0,100% 88%,100% 100%,0 100%)}.sound-slots{justify-content:center;gap:6px;display:grid}.sound-row.lift,.sound-slot.lift,.sound-spot.lift{z-index:40}.sound-cyl{z-index:1;width:var(--cyl-w);height:var(--cyl-h);touch-action:none;cursor:grab;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0;transition:transform .15s,filter .15s;position:relative}.sound-cyl.held{filter:drop-shadow(0 8px 6px #2c241840);z-index:50;transform:scale(1.06)}.sound-cyl.dragging{cursor:grabbing;z-index:60;transition:none}.sound-cyl.sel{filter:drop-shadow(0 0 0 var(--snd)) drop-shadow(0 0 6px #8c6fa8e6)}.sound-cyl.to-box{cursor:pointer;animation:1.8s ease-in-out infinite soundBob}@keyframes soundBob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.sound-cyl-in{pointer-events:none;display:block;position:absolute;inset:0}.sound-cyl-in.wig0{animation:.5s soundWigA}.sound-cyl-in.wig1{animation:.5s soundWigB}@keyframes soundWigA{0%,to{transform:rotate(0)}17%,50%,83%{transform:rotate(-9deg)translateY(-3px)}33%,67%{transform:rotate(9deg)translateY(-3px)}}@keyframes soundWigB{0%,to{transform:rotate(0)}17%,50%,83%{transform:rotate(-9deg)translateY(-3px)}33%,67%{transform:rotate(9deg)translateY(-3px)}}.sound-lid{z-index:2;border-radius:10px 10px 6px 6px;height:22%;position:absolute;top:0;left:4%;right:4%;box-shadow:inset 0 -4px #00000026}.sound-lid:after{content:"";background:inherit;border-radius:5px 5px 2px 2px;height:9px;position:absolute;top:-5px;left:36%;right:36%}.sound-body{border:2px solid var(--wood-deep);background:repeating-linear-gradient(90deg,#9c7c4e1a 0 3px,#0000 3px 9px),linear-gradient(90deg,#c7a571 0%,#e6cfa6 35%,#d9bc8f 70%,#be9b66 100%);border-radius:6px 6px 12px 12px;position:absolute;inset:17% 8% 0}.sound-bottom{aspect-ratio:1;border:3px solid var(--wood-deep);background:radial-gradient(circle,#e9d5ae 0 30%,#dcc194 31% 55%,#d3b584 56%);border-radius:50%;animation:.45s both soundFlip;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.sound-cyl.red .sound-bottom{box-shadow:0 0 0 4px var(--lid-red)}.sound-cyl.blue .sound-bottom{box-shadow:0 0 0 4px var(--lid-blue)}@keyframes soundFlip{0%{transform:translateY(-50%)scaleY(.1)}to{transform:translateY(-50%)scaleY(1)}}.sound-dot{border:1.5px solid #3a322659;border-radius:50%;width:22%;height:22%;position:absolute;transform:translate(-50%,-50%)}.sound-actions{flex-direction:column;align-items:center;gap:12px;margin-top:18px;display:flex}.sound-btn-pair{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.sound-tidy{cursor:pointer;min-height:48px;color:var(--ink-50);font-family:var(--font-body);text-underline-offset:4px;background:0 0;border:none;padding:8px 18px;font-size:15px;text-decoration:underline}@media (width>=700px){.scene-sound{--cyl-w:70px;--cyl-h:100px;--cyl-cell:84px}.sound-btn-pair{flex-direction:row;justify-content:center}.sound-btn-pair .big-btn{max-width:300px}.scene-sound .lead.sound-lead{min-height:1.6em;margin-bottom:10px}.sound-board-pair{flex-direction:column;align-items:center;gap:10px}.sound-board-pair .sound-col{flex-direction:row;gap:8px}.sound-board-pair .sound-row{flex-direction:column;gap:6px}.sound-board-pair .sound-pool{width:100%;max-width:none;padding-bottom:12px}.sound-board-pair .sound-pool.empty{min-height:48px}.sound-openbox{padding:5px 9px}.sound-boxes-open{margin-bottom:8px}.sound-actions{gap:6px;margin-top:12px}}@media (orientation:landscape) and (width>=900px){.app .scene-sound{max-width:1140px}.sound-board-pair{flex-direction:row;justify-content:center;align-items:flex-start;gap:18px}.sound-board-pair .sound-pool{width:auto;max-width:400px}.sound-shelf-stage{max-width:560px}}@media (width<=600px){.scene-sound{--cyl-w:56px;--cyl-h:80px;--cyl-cell:58px;padding-left:12px;padding-right:12px}.sound-work{padding:10px 4px 14px}.sound-board-pair{gap:6px}.sound-col{gap:8px;padding:6px}.sound-row{gap:6px}.sound-slots{gap:1px}.sound-box{width:128px}.sound-box-lids i{width:22px;height:22px}.sound-openbox{--hole:14px;gap:3px}.sound-openbox i{width:14px;height:14px}}@media (prefers-reduced-motion:reduce){.sound-box,.sound-cyl-in,.sound-cyl.to-box,.sound-bottom,.sound-shelf-stage .sound-box{transition:none!important;animation:none!important}}.sound-plank{background:repeating-linear-gradient(90deg,#5a3c1914 0 1px,#0000 1px 29px,#ffebc81f 29px 31px,#0000 31px 53px),linear-gradient(#d3ac74,#b98d55 55%,#9c7443);box-shadow:inset 0 1.5px #ffeccdb3,0 5px #5a462838,0 12px 16px -10px #46321473}.sound-table{background:repeating-linear-gradient(178deg,#7855230f 0 2px,#0000 2px 13px),linear-gradient(#e8d7b2,#d6be8e);border-top:3px solid #c9ae7d;box-shadow:inset 0 6px 10px -6px #5a411959}.sound-box{background:repeating-linear-gradient(90deg,#6e4b1e14 0 1px,#0000 1px 17px,#ffeecd1f 17px 19px,#0000 19px 33px),linear-gradient(#e3c89a,#c9a672);box-shadow:inset 0 2px #fff0d299,0 8px 12px -6px #46321473}.sound-box-lids i{border:none;box-shadow:inset 0 -3px #0000002e,0 2px 2px #3a28184d}.sound-box.red .sound-box-lids i{background:radial-gradient(circle at 35% 30%,#e39a86 0 12%,#c9705c 40%,#a9584a 100%)}.sound-box.blue .sound-box-lids i{background:radial-gradient(circle at 35% 30%,#a9c2dc 0 12%,#7f9fc0 40%,#5d7d9e 100%)}.sound-work{box-shadow:inset 0 0 0 3px #9c7c4e2e, inset 0 0 26px #78551e1f, var(--shadow-card);background:radial-gradient(circle at 30% 30%,#ffffff17 0 1px,#0000 1.5px) 0 0/9px 9px,radial-gradient(circle at 70% 60%,#6e501e12 0 1px,#0000 1.5px) 0 0/12px 12px,linear-gradient(165deg,#f1e5c9,#e3d0a6)}.sound-work:before{content:"";border-radius:calc(var(--r-md) - 5px);pointer-events:none;border:1.6px dashed #fffaeccc;position:absolute;inset:7px}.sound-openbox{background:repeating-linear-gradient(90deg,#6e4b1e14 0 1px,#0000 1px 15px),linear-gradient(#cfa96f,#ddbe8c);box-shadow:inset 0 3px 6px #462d0f4d,0 4px 8px -4px #46321466}.sound-openbox i{background:radial-gradient(circle at 50% 60%,#3c28128c,#5a411e59);box-shadow:inset 0 3px 4px #00000059}.sound-openbox.red i.in{background:radial-gradient(circle at 35% 30%,#e39a86 0 15%,#c9705c 50%,#a9584a);box-shadow:0 1px 1px #00000040}.sound-openbox.blue i.in{background:radial-gradient(circle at 35% 30%,#a9c2dc 0 15%,#7f9fc0 50%,#5d7d9e);box-shadow:0 1px 1px #00000040}.sound-col,.sound-slot{box-shadow:inset 0 2px 5px #5a41191f}.sound-body{background:linear-gradient(#fff0 0 30%,#7855282e 30% 32%,#fff0 32% 70%,#7855282e 70% 72%,#fff0 72%),repeating-linear-gradient(90deg,#8c693c14 0 2px,#0000 2px 7px),linear-gradient(90deg,#ae8a55 0%,#d8b985 18%,#f1ddb6 36%,#e2c696 58%,#c7a571 82%,#a8844f 100%);border:1.5px solid #8e6e42;box-shadow:0 6px 8px -4px #3a281866}.sound-lid{box-shadow:inset 0 -4px #0000002e,0 2px 3px #3a281840}.sound-lid:before{content:"";pointer-events:none;background:linear-gradient(90deg,#ffffff8c,#fff0);border-radius:6px;height:22%;position:absolute;top:24%;left:14%;right:40%}.sound-cyl.red .sound-lid{background:linear-gradient(90deg,#a9584a 0%,#d07c68 30%,#e39a86 42%,#c9705c 65%,#94493c 100%)}.sound-cyl.blue .sound-lid{background:linear-gradient(90deg,#5d7d9e 0%,#86a6c6 30%,#a9c2dc 42%,#7f9fc0 65%,#4f6e8e 100%)}.sound-bottom{background:radial-gradient(circle,#0000 0 18%,#966e3c2e 19% 20%,#0000 21% 33%,#966e3c29 34% 35%,#0000 36% 49%,#966e3c24 50% 51%,#0000 52%),radial-gradient(circle at 42% 38%,#f2e0bc,#e2c99c 60%,#d1b080);border:2.5px solid #8e6e42}.sound-dot{border:none;box-shadow:inset 0 -2px #0000002e,0 1px 1px #3a281859}.sound-dot:after{content:"";background:#ffffff8c;border-radius:50%;width:34%;height:30%;position:absolute;top:18%;left:22%}.scene-hanzi{--hz:#a0705a;--hz-deep:#7a4e3a;--hz-soft:#eadbc4;--hz-sand:#cdb08a;--hz-ink:#4e3224;--hz-glow:#e7a04e;--hz-grid:#d49a86;padding-top:20px}.scene-hanzi .scene-eyebrow:before{background:var(--hz)}.scene-hanzi h1{margin-bottom:8px}.scene-hanzi h1 em{color:var(--hz-deep);font-style:normal}.scene-hanzi .lead.hanzi-lead{min-height:1.6em;margin-bottom:14px}.hanzi-lead b{color:var(--hz-deep)}.hanzi-head{flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:6px;display:flex}.scene-hanzi .hanzi-head h1{margin:0}.hanzi-back{border-radius:var(--r-pill);background:var(--shroom-cap);border:2px solid var(--hz);min-height:44px;color:var(--hz-deep);font-family:var(--font-body);cursor:pointer;align-self:flex-start;margin:-4px 0 10px;padding:8px 16px;font-size:15px;font-weight:700}.hanzi-mode-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.hanzi-mode-card{cursor:pointer;background:var(--shroom-cap);border:3px solid var(--hz);border-radius:var(--r-md);box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--ink);flex-direction:column;align-items:center;gap:4px;padding:26px 10px 20px;display:flex}.hanzi-mode-card:active{transform:translateY(3px)}.hanzi-mode-emoji{font-size:54px;line-height:1.1}.hanzi-mode-name{font-family:var(--font-display);font-size:24px;font-weight:600}.hanzi-mode-tag{color:var(--ink-50);letter-spacing:.1em;font-size:14px}.hanzi-shelf{border-radius:var(--r-md);box-shadow:inset 0 -10px 0 #a9845a, var(--shadow-card);background:linear-gradient(#d9be94 0%,#c9a677 100%);grid-template-columns:repeat(5,1fr);gap:12px;padding:16px 14px 22px;display:grid}.hanzi-card{aspect-ratio:3/4;cursor:pointer;background:#f6eeda;border:none;border-radius:12px;justify-content:center;align-items:center;padding:8px 6px 20px;transition:transform .15s;display:flex;position:relative;box-shadow:0 4px #a9845a,0 6px 10px #2c24181f}.hanzi-card:active{transform:translateY(3px)scale(.97)}.hanzi-card .hanzi-glyph{width:100%;height:auto}.hanzi-card-pic{text-align:center;font-size:16px;line-height:1;position:absolute;bottom:3px;left:0;right:0}.hanzi-card-mark{background:var(--leaf);color:#0000;border-radius:50%;width:10px;height:10px;font-size:0;position:absolute;top:5px;right:6px}.hanzi-card.returned{animation:.5s ease-out hanziReturn}@keyframes hanziReturn{0%{opacity:.3;transform:translateY(-26px)}to{opacity:1;transform:none}}.hanzi-glyph{display:block}.hanzi-glyph.sand path{fill:var(--hz-sand)}.hanzi-glyph.ink path{fill:var(--hz-ink)}.hanzi-title{align-items:baseline;gap:14px;display:flex}.hanzi-title-char{font-family:"Noto Serif SC", var(--font-display);color:var(--hz-deep)}.hanzi-title-py{font-family:var(--font-body);color:var(--ink-50);letter-spacing:.04em;font-size:.6em;font-weight:500}.hanzi-head .hanzi-back{flex:none;margin:0}.hanzi-board{aspect-ratio:1;border:3px solid var(--hz-soft);border-radius:var(--r-md);width:min(100%,600px,100dvh - 470px);min-width:min(100%,300px);box-shadow:var(--shadow-card);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:contain;background:#f8f1de;margin:0 auto;position:relative}.hanzi-board.phase-tracing{border-color:var(--hz);cursor:crosshair}.hanzi-svg{width:100%;height:100%;display:block}.hanzi-grid-frame{fill:none;stroke:var(--hz-grid);stroke-width:6px}.hanzi-grid-line{stroke:var(--hz-grid);stroke-width:4px;stroke-dasharray:22 18;opacity:.75}.hanzi-ghost path{fill:var(--hz-sand)}.phase-intro .hanzi-ghost{animation:2.6s both hanziGhostIn}@keyframes hanziGhostIn{0%,45%{opacity:0}to{opacity:1}}.hanzi-ink-stroke{fill:none;stroke:var(--hz-ink);stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:var(--L) var(--L);stroke-dashoffset:0;animation:.35s ease-out both hanziDraw}.hanzi-ink-stroke.auto{animation-duration:1s;animation-timing-function:ease-in-out}.hanzi-ink-fill{fill:var(--hz-ink);animation:.2s .3s both hanziFadeIn}.hanzi-ink-fill.auto{animation-delay:.95s}@keyframes hanziDraw{0%{stroke-dashoffset:var(--L)}to{stroke-dashoffset:0}}.hanzi-demo-stroke{fill:none;stroke:var(--hz-glow);stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:var(--L) var(--L);opacity:.85;animation:1s ease-in-out both hanziDraw,1.8s ease-in-out infinite hanziGlow}@keyframes hanziGlow{0%,to{opacity:.85}50%{opacity:.45}}.hanzi-guide{animation:.3s both hanziFadeIn}@keyframes hanziFadeIn{0%{opacity:0}to{opacity:1}}.hanzi-start{fill:#d2663a;stroke:#fff6e6;stroke-width:8px}.hanzi-start-halo{fill:#d2663a;opacity:.25;transform-box:fill-box;transform-origin:50%;animation:1.4s ease-out infinite hanziHalo}@keyframes hanziHalo{0%{opacity:.45;transform:scale(.7)}to{opacity:0;transform:scale(1.6)}}.hanzi-arrow{fill:none;stroke:#d2663a;stroke-width:14px;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.hanzi-trail{fill:none;stroke:#8e4a40;stroke-opacity:.45;stroke-width:64px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.hanzi-pic{pointer-events:none;place-items:center;font-size:min(54vw,330px);line-height:1;animation:2.8s ease-in-out both hanziMorph;display:grid;position:absolute;inset:0}@keyframes hanziMorph{0%{opacity:0;filter:blur();transform:scale(.6)}15%{opacity:1;transform:scale(1)}45%{opacity:1;filter:blur();transform:scale(1)}90%,to{opacity:0;filter:blur(6px);transform:scale(.55)}}.hanzi-sticks{flex-direction:column;align-items:center;gap:min(9vw,56px);display:flex}.hanzi-sticks i{background:linear-gradient(#c99a62,#9c6e3e);border-radius:99px;width:min(56vw,360px);height:min(5vw,30px);display:block;box-shadow:0 4px #7a5230}.hanzi-strokes{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.hanzi-stroke-chip{border-radius:var(--r-pill);background:var(--bg-cream-2);color:var(--ink-50);font-family:var(--font-body);padding:6px 12px;font-size:16px;font-weight:600;transition:all .25s}.hanzi-stroke-chip.on{background:var(--hz-glow);color:#fff;transform:scale(1.08);box-shadow:0 3px #b87430}.hanzi-stroke-chip.done{background:var(--shroom-cap);color:var(--hz-ink);box-shadow:0 0 0 2px var(--hz)}.hanzi-actions{justify-content:center;min-height:8px;margin-top:16px;display:flex}.hanzi-done-btns{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;max-width:640px;display:flex}.hanzi-done-btns .big-btn{flex:220px}.hanzi-passes{text-align:center;color:var(--ink-50);margin:10px 0 0;font-size:15px}.hanzi-passes b{color:var(--hz-deep)}.hanzi-tp-dots{justify-content:center;gap:10px;margin-bottom:14px;display:flex}.hanzi-tp-dots span{background:var(--bg-cream-2);width:30px;height:30px;color:var(--ink-30);border-radius:50%;place-items:center;font-size:15px;font-weight:700;display:grid}.hanzi-tp-dots span.on{background:var(--hz);color:var(--shroom-cap)}.hanzi-tp-dots span.done{background:var(--shroom-cap);color:var(--hz);box-shadow:0 0 0 2px var(--hz)}.hanzi-tp-big{aspect-ratio:1;border:3px solid var(--hz-soft);border-radius:var(--r-md);width:min(80%,380px);box-shadow:var(--shadow-card);cursor:pointer;background:#f6eeda;margin:0 auto;padding:22px;animation:.35s both hanziFadeIn;display:block;position:relative}.hanzi-tp-big.still{cursor:default}.hanzi-tp-big .hanzi-glyph{width:100%;height:100%}.hanzi-tp-py{text-align:center;color:var(--hz-deep);font-size:26px;font-weight:600;animation:.4s both hanziFadeIn;position:absolute;bottom:8px;left:0;right:0}.hanzi-tp-row{grid-template-columns:repeat(3,1fr);gap:14px;width:100%;max-width:540px;margin:0 auto;display:grid}.hanzi-tp-card{aspect-ratio:1;border:3px solid var(--hz-soft);border-radius:var(--r-md);box-shadow:var(--shadow-card);cursor:pointer;background:#f6eeda;padding:14px;transition:all .2s}.hanzi-tp-card:active{transform:translateY(3px)}.hanzi-tp-card.found{border-color:var(--leaf);box-shadow:0 0 0 4px #779c5c59, var(--shadow-card)}.hanzi-tp-card .hanzi-glyph{width:100%;height:100%}.hanzi-credit{text-align:center;color:var(--ink-30);margin:28px 0 0;font-size:11px;line-height:1.5}@media (orientation:landscape) and (width>=900px){.app .scene-hanzi{max-width:1140px}.hanzi-work{justify-content:center;align-items:center;gap:28px;display:flex}.hanzi-work .hanzi-board{flex:none;width:min(640px,100dvh - 230px);margin:0}.hanzi-side{flex-direction:column;flex:0 340px;gap:14px;min-width:240px;display:flex}.hanzi-side .hanzi-strokes,.hanzi-side .hanzi-actions{margin-top:0}.hanzi-side .hanzi-done-btns{flex-flow:column}.hanzi-side .hanzi-done-btns .big-btn{flex:none;max-width:none}.hanzi-side .hanzi-passes{margin:0}.scene-hanzi .hanzi-credit{margin-top:8px}.hanzi-shelf{width:100%;max-width:min(900px,150dvh - 375px);margin:0 auto}.hanzi-tp-big{width:min(80%,380px,100dvh - 420px)}}@media (width<=600px){.hanzi-shelf{grid-template-columns:repeat(4,1fr);gap:9px;padding:12px 10px 18px}.hanzi-card-pic{font-size:13px}.hanzi-stroke-chip{padding:5px 10px;font-size:14px}}@media (prefers-reduced-motion:reduce){.hanzi-start-halo,.hanzi-demo-stroke,.hanzi-card.returned{animation:none}}.hanzi-shelf{box-shadow:inset 0 2px 0 #fff0d499, inset 0 -10px 0 #a9845a, var(--shadow-card);background:repeating-linear-gradient(91deg,#6e481e12 0 1px,#0000 1px 21px,#ffecc81f 21px 23px,#0000 23px 47px),linear-gradient(#dec398 0%,#c9a677 100%)}.hanzi-card{background:radial-gradient(circle at 25% 20%,#ffffffb3,#fff0 55%),linear-gradient(170deg,#fbf5e6,#f1e6cb);box-shadow:0 4px #a9845a,0 10px 14px -6px #2c241847,inset 0 0 0 1px #a9845a40}.hanzi-board{background:radial-gradient(circle at 20% 30%,#966e3c0d 0 1px,#0000 1.5px) 0 0/7px 7px,radial-gradient(circle at 70% 70%,#ffffff80 0 1px,#0000 1.5px) 0 0/9px 9px,linear-gradient(160deg,#fcf7ea,#f3ead2);border-color:#b98f5e;box-shadow:0 0 0 5px #d2ae7b,0 0 0 7px #a57b49,0 14px 22px -8px #46321459}.hanzi-board.phase-tracing{border-color:#a57b49;box-shadow:0 0 0 5px #d2ae7b,0 0 0 7px #a57b49,0 0 0 11px #e7a04e47,0 14px 22px -8px #46321459}.hanzi-grid-frame{stroke:#d08a74}.hanzi-grid-line{stroke:#d08a74;opacity:.6}.scene-shape{--shape:#5f8f6a;--shape-deep:#466e50;--shape-soft:#d9e4d2;--shape-wood:#d9b77a;--shape-wood-deep:#b08a4e;--shape-hole:#8c6a3c;--shape-blue:#5b7faa;--shape-blue-deep:#3f5f86;--shape-metal:#c98e88;--shape-metal-deep:#9e6660;padding-top:20px}.scene-shape .scene-eyebrow:before{background:var(--shape)}.scene-shape h1{margin-bottom:6px;font-size:clamp(30px,6vw,44px)}.scene-shape h1 em{color:var(--shape-deep);font-style:normal}.scene-shape .lead.shape-lead{min-height:1.6em;color:var(--ink-50);margin:0 0 12px;font-size:16px}.shape-head{flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:6px;display:flex}.scene-shape .shape-head h1{margin:0}.shape-back{border-radius:var(--r-pill);background:var(--shroom-cap);border:2px solid var(--shape);min-height:44px;color:var(--shape-deep);font-family:var(--font-body);cursor:pointer;flex:none;margin:0;padding:8px 16px;font-size:15px;font-weight:700}.shape-mode-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.shape-mode-card{cursor:pointer;background:var(--shroom-cap);border:3px solid var(--shape);border-radius:var(--r-md);box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--ink);flex-direction:column;align-items:center;gap:4px;padding:26px 10px 20px;display:flex}.shape-mode-card:active{transform:translateY(3px)}.shape-mode-emoji{font-size:54px;line-height:1.1}.shape-mode-name{font-family:var(--font-display);font-size:24px;font-weight:600}.shape-mode-tag{color:var(--ink-50);text-align:center;font-size:13px}.shape-actions{flex-direction:column;align-items:center;gap:12px;margin-top:16px;display:flex}.shape-btn-row{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;max-width:640px;display:flex}.shape-btn-row .big-btn{flex:220px}.shape-actions{margin-top:12px}.shape-shelf-card,.shape-board-card,.shape-paper-card{background:var(--shroom-cap);border:3px solid var(--shape-soft);border-radius:var(--r-md);width:100%;box-shadow:var(--shadow-card);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0 auto;padding:8px;position:relative}.shape-shelf-svg{cursor:pointer;width:100%;height:auto;display:block}.shape-shelf-label{font-family:var(--font-display);fill:var(--ink-50);font-size:26px}.shape-shelf-tray{animation:2.4s ease-in-out infinite shapeNudge}@keyframes shapeNudge{0%,to{transform:translate(90px,64px)scale(.7)}50%{transform:translate(90px,56px)scale(.7)}}.shape-board-card{border-color:var(--shape);padding:6px}.shape-board{touch-action:none;width:100%;height:auto;min-height:280px;max-height:calc(100dvh - 330px);display:block;overflow:visible}.shape-grain{fill:none;stroke:#966e3c2e;stroke-width:2px}.shape-hole-rim{fill:none;stroke:#6e5230;stroke-width:3px}.shape-mat-label{fill:#7e8f72;letter-spacing:.2em;pointer-events:none;font-size:18px}.shape-piece{cursor:grab;transition:transform .32s cubic-bezier(.3,.8,.4,1)}.shape-piece.no-anim{cursor:grabbing;transition:none}.shape-piece-body{transition:transform .2s,opacity .25s}.shape-piece-body.lifted{transform:translate(-2px,-3px)}.shape-piece-body.dragging{transform:translate(-3px,-6px)scale(1.04)}.shape-piece-body.hover{transform:translate(-3px,-8px)scale(1.03)}.shape-piece-body.sel{transform:translate(-3px,-6px)scale(1.05)}.shape-piece-body.homed{animation:.5s shapeSettle}.shape-piece-body.dim{opacity:.4}.shape-piece-face{fill:var(--shape-blue);stroke:var(--shape-blue-deep);stroke-width:2.5px;stroke-linejoin:round}.shape-piece-shine{fill:none;stroke:#ffffff2e;stroke-width:3px;pointer-events:none}.shape-piece-glow{fill:none;stroke:#efd38a;stroke-width:14px;stroke-linejoin:round;animation:1.4s ease-in-out infinite shapeGlow}.shape-piece-ring{fill:none;stroke:var(--shroom-cap);stroke-width:4px;stroke-dasharray:8 6;stroke-linejoin:round}.shape-board.naming .shape-piece{cursor:pointer}@keyframes shapeSettle{0%{transform:scale(1.06)}60%{transform:scale(.98)}to{transform:scale(1)}}@keyframes shapeGlow{0%,to{opacity:.55}50%{opacity:1}}.shape-frame-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.shape-frame-btn{background:var(--shroom-cap);border:3px solid var(--shape-soft);border-radius:var(--r-md);min-height:56px;box-shadow:var(--shadow-card);font-family:var(--font-display);color:var(--ink);flex-direction:column;align-items:center;gap:6px;padding:10px;font-size:18px;display:flex}.shape-frame-btn:active{transform:translateY(3px)}.shape-frame-btn svg{width:100%;height:auto;display:block}.shape-pen-slots{justify-content:center;gap:14px;margin-bottom:16px;display:flex}.shape-pen-slot{border-radius:var(--r-pill);background:var(--bg-cream-2);color:var(--ink-50);align-items:center;gap:8px;padding:8px 16px;font-weight:700;display:inline-flex}.shape-pen-slot.on{background:var(--shroom-cap);box-shadow:0 0 0 3px var(--shape);color:var(--ink)}.shape-pen-slot i{background:var(--c);border:2px dashed var(--ink-30);border-radius:50%;width:28px;height:28px}.shape-pencils{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.shape-pencil{cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;width:58px;height:150px;padding:0;transition:transform .2s;display:flex}.shape-pencil-tip{border-bottom:34px solid #e8d3a6;border-left:16px solid #0000;border-right:16px solid #0000;width:0;height:0;position:relative}.shape-pencil-tip:after{content:"";border-left:6px solid #0000;border-right:6px solid #0000;border-bottom:13px solid var(--c);width:0;height:0;position:absolute;top:0;left:-6px}.shape-pencil-body{background:var(--c);border-radius:0 0 8px 8px;flex:1;width:32px;box-shadow:inset -6px 0 #0000001f}.shape-pencil.sel{transform:translateY(-14px)}.shape-pencil.sel .shape-pencil-body{box-shadow:inset -6px 0 0 #0000001f, 0 0 0 3px var(--shroom-cap), 0 0 0 6px var(--shape)}.shape-paper-card{border-color:var(--shape);min-width:min(100%,300px);max-width:min(560px,100dvh - 400px);padding-bottom:26px}.shape-paper{width:100%;height:auto;max-height:calc(100vh - 170px);display:block}.shape-paper.drawing{touch-action:none;cursor:crosshair}.shape-guide{fill:none;stroke:#3a322614;stroke-width:2px}.shape-ink{fill:none;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;opacity:.92}.shape-ink.fill{stroke-width:4px}.shape-metal-edge{fill:none;stroke:var(--shape-metal-deep);stroke-width:3px}.shape-frame-off{pointer-events:none;animation:.9s forwards shapeFrameOff}@keyframes shapeFrameOff{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px,-60px)}}.shape-meter{background:var(--bg-cream-2);border-radius:var(--r-pill);pointer-events:none;height:8px;position:absolute;bottom:10px;left:22%;right:22%;overflow:hidden}.shape-meter i{background:var(--c,var(--shape));border-radius:inherit;height:100%;transition:width .15s;display:block}.shape-gallery{margin-top:20px}.shape-gallery-title{text-align:center;color:var(--ink-50);margin-bottom:8px;font-size:14px}.shape-gallery-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.shape-thumb{border-radius:var(--r-sm);width:88px;height:88px;box-shadow:0 3px 0 var(--paper-shadow);background:#fbf6e8}@media (orientation:landscape) and (width>=900px){.app .scene-shape{max-width:1140px}.shape-layout{grid-template-columns:minmax(0,1fr) minmax(240px,300px);align-items:center;column-gap:20px;display:grid}.shape-layout>.shape-work{grid-area:1/1/span 2}.shape-layout>.shape-actions{grid-area:1/2;align-items:stretch;margin-top:0}.shape-layout>.shape-gallery{grid-area:2/2;align-self:start;margin-top:0}.shape-layout .shape-btn-row{flex-flow:column}.shape-layout .shape-btn-row .big-btn{flex:none}.shape-layout .shape-actions .big-btn{max-width:none}.shape-board-card{width:fit-content;max-width:100%}.shape-board{width:auto;max-width:100%;height:calc(100dvh - 214px);min-height:0;max-height:none}.shape-shelf-card{max-width:min(100%,181.818dvh - 381.818px)}.shape-paper-card{width:min(100%,100dvh - 216px);max-width:none}.shape-paper{max-height:none}.shape-frame-grid{grid-template-columns:repeat(6,1fr);grid-column:1/span 2!important}}@media (width<=480px){.shape-pencil{width:44px;height:120px}.shape-frame-btn{padding:6px;font-size:15px}.shape-thumb{width:72px;height:72px}}.shape-tray{fill:url(#shTray);stroke:#a88148;stroke-width:3.5px}.shape-grain{stroke:#825a2833;stroke-width:1.6px}.shape-hole{fill:url(#shHole)}.shape-hole-rim{stroke:#f2dcae;stroke-opacity:.55;stroke-width:2px}.shape-mat{fill:url(#shMat);stroke:#a9b998;stroke-width:2.5px;stroke-dasharray:none}.shape-piece-face{fill:url(#shBlue);stroke:#355580;stroke-width:2px}.shape-piece-shine{stroke:#ffffff52;stroke-width:2.5px}.shape-piece-shadow{fill:#32281942}.shape-knob{fill:url(#shBrass);stroke:#7c5c20;stroke-width:1.6px}.shape-knob-stem{fill:#3c280f73}.shape-knob-hi{fill:#fffcebd9}.shape-metal{fill:url(#shMetal);stroke:#9a625c;stroke-width:2.5px}.shape-metal-edge{stroke:#8e5852;stroke-width:2.5px}.shape-sheet{fill:url(#shPaper)}.map-scene{--map:#7c8f4e;--map-deep:#56663a;--map-ocean:#93b5c9;--map-ocean-deep:#7a9db3;--map-wood:#b58a5a;padding-top:20px}.map-scene h1{margin-bottom:8px}.map-scene h1 em{color:var(--map);font-style:normal}.map-scene .scene-eyebrow:before{background:var(--map)}.map-scene .lead{margin-bottom:14px}.map-lead{min-height:1.6em;font-size:17px!important}.map-water-word{color:#4f86a8}.map-head{flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:6px;display:flex}.map-scene .map-head h1{margin:0}.map-menu-back{border-radius:var(--r-pill);background:var(--shroom-cap);border:2px solid var(--map);min-height:44px;color:var(--map-deep);font-family:var(--font-body);cursor:pointer;flex:none;margin:0;padding:8px 16px;font-size:15px;font-weight:700}.map-shelf{padding:4px 0 0;position:relative}.map-mode-grid{z-index:1;grid-template-columns:repeat(2,1fr);gap:14px;display:grid;position:relative}.map-mode-card{cursor:pointer;background:var(--shroom-cap);border:3px solid var(--map);border-radius:var(--r-md);box-shadow:var(--shadow-card);font-family:var(--font-body);color:var(--ink);-webkit-tap-highlight-color:transparent;flex-direction:column;align-items:center;gap:4px;padding:22px 10px 18px;display:flex}.map-mode-card:active{transform:translateY(3px)}.map-mode-emoji{font-size:50px;line-height:1.1}.map-mode-name{font-family:var(--font-display);font-size:24px;font-weight:600}.map-mode-tag{color:var(--ink-50);text-align:center;font-size:13px}.map-shelf-plank{background:linear-gradient(#c49a68, var(--map-wood));border-radius:6px;height:16px;margin:12px -6px 0;box-shadow:0 5px #8e6a42,0 10px 18px #2c24181f}.map-credit{color:var(--ink-30);text-align:center;margin:18px 0 0;font-size:12px}.map-board-wrap{box-shadow:inset 0 2px 0 #ffffff59, var(--shadow-card);background:#d9c89c;border-radius:22px;margin:0 -8px;padding:8px}.map-svg{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;height:auto;display:block;overflow:visible}.map-ocean{fill:var(--map-ocean);stroke:#6f90a5;stroke-width:2px}.map-cont-shape{stroke:#3a3226;stroke-width:1.2px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.map-land{cursor:pointer;transition:filter .3s}.map-land path{stroke:#7a5a34;stroke-width:1px;vector-effect:non-scaling-stroke}.map-land.on{filter:brightness(1.12)drop-shadow(0 0 6px #fff0c8e6)}.map-slot{fill:var(--map-ocean-deep);stroke:#f4ecd4;stroke-width:1.6px;stroke-dasharray:5 4;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .3s}.map-slot.hint{fill:#6a8fa6}.map-mat rect{fill:#cdb98a;stroke:#b8a270;stroke-width:2px;stroke-dasharray:2 6}.map-mat text{fill:#9a865a;letter-spacing:.3em;font-size:20px;font-family:var(--font-body)}.map-piece{cursor:grab;touch-action:none;transition:transform .5s cubic-bezier(.3,.8,.3,1)}.map-piece.dragging{cursor:grabbing;transition:none}.map-piece.dragging .map-piece-body,.map-piece.sel .map-piece-body{filter:url(#map-lift)}.map-piece.sel .map-cont-shape{stroke:#fff8e4;stroke-width:3px}.map-piece.placed{cursor:default;pointer-events:none}.map-piece-hit{fill:#0000}.map-knob circle{fill:#8e4a40;stroke:#5e3029;stroke-width:1px;vector-effect:non-scaling-stroke}.map-knob .map-knob-hi{fill:#ffffff73;stroke:none}.map-piece.nudge .map-piece-body{transform-box:fill-box;transform-origin:50%;animation:.45s mapNudge}@keyframes mapNudge{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.map-cont{cursor:pointer;transition:opacity .3s,filter .3s}.map-cont>path{transform-box:fill-box;transform-origin:50%;transition:transform .3s}.map-cont.dim{opacity:.4}.map-cont.cand .map-cont-shape{stroke:#fff8e4;stroke-width:2px}.map-cont.lift{filter:url(#map-lift)}.map-cont.lift>path{transform:translateY(-4px)scale(1.04)}.map-cont.lift .map-cont-shape{stroke:#fff8e4;stroke-width:3px}.map-hit{fill:none;stroke:#0000;stroke-width:26px;pointer-events:stroke}.map-label rect{fill:#3a3226d1}.map-label text{fill:#fff8e4;font-size:24px;font-weight:700;font-family:var(--font-body)}.map-home{cursor:pointer}.map-home-hit{fill:#0000}.map-home-dot{fill:#b86855;stroke:#fff8e4;stroke-width:3px;transform-box:fill-box;transform-origin:50%;animation:1.8s ease-in-out infinite mapPulse}.map-home-emoji{font-size:28px}.map-home-tag rect{fill:#fff8e4;stroke:#b86855;stroke-width:2px}.map-home-tag text{fill:#8e4a40;font-size:19px;font-weight:700;font-family:var(--font-body)}@keyframes mapPulse{50%{transform:scale(1.35)}}.map-who-card{text-align:center;background:var(--shroom-cap);border:3px solid var(--map);border-radius:var(--r-md);width:100%;max-width:520px;box-shadow:var(--shadow-card);margin:16px auto 0;padding:14px 16px;animation:.35s ease-out mapCardIn}@keyframes mapCardIn{0%{opacity:0;transform:translateY(10px)}}.map-who-name{font-family:var(--font-display);background:var(--c);color:#3a3226;border-radius:var(--r-pill);border:2px solid #3a322640;margin-bottom:8px;padding:4px 18px;font-size:24px;font-weight:600;display:inline-block}.map-who-animals{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.map-who-animal{background:#ede5cf;border-radius:16px;flex-direction:column;align-items:center;min-width:88px;padding:8px 6px;display:flex}.map-who-animal span{font-size:48px;line-height:1.1}.map-who-animal small{color:var(--ink);font-size:15px;font-weight:600}.map-who-we{color:var(--map-deep);margin-top:10px;font-weight:700}.map-who-hint{color:var(--ink-50);padding:14px 0;font-size:17px}.map-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;display:flex}.map-board-wrap{width:min(100% + 16px, calc((100dvh - 330px) * var(--ar,2) + 16px));align-self:center}.map-actions .big-btn{flex:220px}@media (orientation:landscape) and (width>=900px){.app .map-scene{max-width:1140px}.map-layout{justify-content:center;align-items:center;gap:20px;display:flex}.map-board-wrap{min-width:0;width:min(100%, calc((100dvh - 236px) * var(--ar,2) + 16px));flex:0 auto;margin:0}.map-side{flex-direction:column;flex:0 0 280px;gap:14px;display:flex}.map-side:empty{display:none}.map-side .map-who-card{margin:0;padding:12px 10px}.map-side .map-who-animal{min-width:72px}.map-side .map-actions{flex-flow:column;margin-top:0}.map-side .map-actions .big-btn{flex:none;max-width:none}.map-scene .map-credit{margin-top:8px}}@media (width<=480px){.map-board-wrap{border-radius:16px;margin:0 -12px;padding:5px}.map-who-animal{min-width:76px}.map-who-animal span{font-size:40px}}.map-board-wrap{background:repeating-linear-gradient(91deg,#6e481e12 0 1px,#0000 1px 23px,#ffecc81f 23px 25px,#0000 25px 49px),linear-gradient(#e2cc9c,#c9ab74);box-shadow:inset 0 2px #fff5dc99,inset 0 -3px #78552840,0 14px 22px -10px #46321466}.map-ocean{fill:url(#map-oceanG);stroke:#5f8299}.map-knob circle{fill:url(#map-brass);stroke:#7c5c20}.map-knob .map-knob-hi{fill:#fffcebcc}.map-shelf-plank{background:repeating-linear-gradient(90deg, #5a3c1914 0 1px, transparent 1px 29px, #ffebc81f 29px 31px, transparent 31px 53px), linear-gradient(#d1a671, var(--map-wood))}.scene.dsa-scene{--dress:#a97897;--dress-deep:#86566f;--dress-soft:#e6d3dc;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(270px,29vw,340px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.dsa-scene .scene-eyebrow{margin-bottom:0}.dsa-scene .scene-eyebrow:before{background:var(--dress)}.dsa-scene h1{margin:0 0 8px;font-size:clamp(28px,3.3vw,40px)}.dsa-scene h1 em{color:var(--dress-deep);font-style:normal}.dsa-scene .lead.dsa-lead{min-height:3.1em;margin:0 0 14px;font-size:16.5px;line-height:1.55}.dsa-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#e6d7b4;border-radius:26px;position:relative;overflow:hidden}.dsa-stage.dsa-live{touch-action:none}.dsa-stage>.pixi-stage{inset:0;position:absolute!important}.dsa-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:4px 2px;display:flex}.dsa-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:44px;margin-bottom:8px;display:flex}.dsa-back{border-radius:var(--r-pill);background:var(--shroom-cap);border:2px solid var(--dress);min-height:44px;color:var(--dress-deep);font-family:var(--font-body);cursor:pointer;-webkit-tap-highlight-color:transparent;padding:8px 16px;font-size:15px;font-weight:700}.dsa-levels{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.dsa-levels li{border:2px solid var(--dress-soft);color:var(--ink);background:#fffdf6a6;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:7px 14px;font-size:16px;display:flex}.dsa-levels li b{font-family:var(--font-display);font-weight:600}.dsa-levels li.is-back{border-color:var(--leaf)}.dsa-levels li.is-back b:after{content:" ✓";color:var(--leaf)}.dsa-dots{letter-spacing:3px;color:var(--dress);white-space:nowrap;font-size:10px}.dsa-dots i{color:var(--bg-cream-2);font-style:normal}.dsa-cycle{flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0;list-style:none;display:flex}.dsa-cycle li{border-radius:var(--r-pill);background:var(--bg-cream-2);color:var(--ink-30);padding:5px 12px;font-size:14px;font-weight:700;transition:all .3s}.dsa-cycle li.on{background:var(--dress);color:var(--shroom-cap);box-shadow:0 3px 0 var(--dress-deep)}.dsa-cycle li.done{background:var(--shroom-cap);color:var(--leaf);box-shadow:0 0 0 2px var(--leaf)}.dsa-cycle li.done:before{content:"✓ "}.dsa-actions{flex-direction:column;align-items:stretch;gap:12px;min-height:76px;display:flex}.dsa-actions .big-btn{width:100%}@media (aspect-ratio<=1){.scene.dsa-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:12px}.dsa-panel{justify-content:flex-start}.dsa-scene .lead.dsa-lead{min-height:0;margin-bottom:10px}.dsa-levels{flex-flow:wrap}.dsa-levels li{flex:30%;padding:6px 10px;font-size:15px}.dsa-actions{flex-direction:row;min-height:72px}.dsa-actions>*{flex:1}}@media (orientation:landscape) and (height<=720px){.dsa-scene h1{font-size:clamp(26px,3vw,34px)}.dsa-scene .lead.dsa-lead{font-size:15.5px}.dsa-levels li{padding:5px 12px}}.scene.tpa-scene{--tpa:#c89a3a;--tpa-deep:#8f6b22;--tpa-pale:#f1e3bf;--tpa-screen:#fbf5e6;--tpa-line:#e2d2a8;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(300px,31vw,380px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.tpa-scene .scene-eyebrow{margin-bottom:6px}.tpa-scene .scene-eyebrow:before{background:var(--tpa)}.tpa-scene h1{margin:0 0 6px;font-size:clamp(26px,3vw,36px)}.tpa-scene h1 em{color:var(--tpa-deep)}.tpa-scene .lead{margin:0 0 12px;font-size:16px;line-height:1.5}.tpa-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;background:#ece0be;border-radius:26px;position:relative;overflow:hidden}.tpa-stage>.pixi-stage{inset:0;position:absolute!important}.tpa-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:2px;display:flex}.tpa-actions{flex-direction:column;align-items:stretch;gap:12px;margin-top:12px;display:flex}.tpa-actions .big-btn{width:100%;max-width:none}.tpa-note{border:2px dashed var(--tpa-line);min-height:64px;color:var(--ink-50);text-align:center;border-radius:18px;justify-content:center;align-items:center;padding:0 12px;font-size:15px;font-weight:700;display:flex}.tpa-car{width:100%;height:auto;display:block}.tpa-phone{width:100%;box-shadow:0 6px 0 var(--paper-shadow), 0 16px 30px #2c24182e, inset 0 0 0 2px #ffffff14;background:linear-gradient(160deg,#5a4e42,#3f362c);border-radius:34px;padding:8px}.tpa-phone.mini{border-radius:26px;padding:6px}.tpa-screen{background:var(--tpa-screen);border-radius:27px;flex-direction:column;padding-bottom:10px;display:flex;overflow:hidden}.tpa-phone.mini .tpa-screen{border-radius:21px}.tpa-apphead{font-family:var(--font-display);color:var(--tpa-deep);background:linear-gradient(180deg, #fff8e6, var(--tpa-screen));border-bottom:1px solid #efe4c6;align-items:center;gap:8px;padding:9px 14px 8px;font-size:17px;font-weight:700;display:flex}.tpa-logo{flex-shrink:0;width:28px;height:28px}.tpa-apphead-dot{background:#e7dcc0;border-radius:4px;width:34px;height:8px;margin-left:auto}.tpa-here{color:var(--ink);background:#efe5cb;border-radius:16px;align-items:center;gap:10px;margin:10px 12px 0;padding:10px 12px;font-size:16px;display:flex}.tpa-here-pin{font-size:24px;display:inline-block}.tpa-here-pin.locating{animation:.6s ease-in-out infinite alternate tpaBob}@keyframes tpaBob{to{transform:translateY(-6px)}}.tpa-app-q{font-family:var(--font-display);color:var(--ink);margin:10px 16px 8px;font-size:20px;font-weight:700}.tpa-dest-grid{grid-template-columns:repeat(2,1fr);gap:8px;padding:0 12px;display:grid}.tpa-dest{border:2px solid var(--tpa-line);min-height:84px;color:var(--ink);box-shadow:0 4px 0 var(--tpa-line);-webkit-tap-highlight-color:transparent;background:#fffbef;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:transform .1s;display:flex}.tpa-dest:active{box-shadow:0 1px 0 var(--tpa-line);transform:translateY(3px)}.tpa-dest-emoji{font-size:34px;line-height:1.1}.tpa-dest-name{font-size:16px;font-weight:700}.tpa-route-chip{min-height:64px;color:var(--ink);text-align:left;-webkit-tap-highlight-color:transparent;background:#fffbef;border:2px dashed #d8c697;border-radius:16px;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 12px;padding:6px 12px;font-size:15px;font-weight:700;display:flex}.tpa-route-arrow{color:var(--tpa)}.tpa-route-chip small{color:var(--ink-50);background:#efe5cb;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:12px;font-weight:700}.tpa-types{grid-template-columns:1fr 1fr;gap:8px;padding:0 10px;display:grid}.tpa-type{text-align:left;min-height:72px;color:var(--ink);box-shadow:0 3px 0 var(--tpa-line);-webkit-tap-highlight-color:transparent;background:#fffbef;border:3px solid #0000;border-radius:16px;flex-direction:row;align-items:center;gap:6px;padding:6px 8px 6px 6px;transition:border-color .15s,background .15s,transform .1s;display:flex}.tpa-type:active{transform:translateY(2px)}.tpa-type:last-child{grid-column:1/-1}.tpa-type:last-child .tpa-type-art{width:96px}.tpa-type.on{border-color:var(--tpa);box-shadow:0 3px 0 var(--tpa), 0 0 0 4px #c89a3a2e;background:#fff3d2}.tpa-type-art{flex-shrink:0;width:40%;max-width:84px}.tpa-type-body{flex-direction:column;gap:1px;min-width:0;display:flex}.tpa-type-name{font-size:16px;font-weight:800;line-height:1.2}.tpa-type-badge{color:var(--tpa-deep);font-size:12px;font-weight:700;line-height:1.25}.tpa-type-icons{color:var(--ink-50);font-size:12px;font-weight:700}.tpa-searching{flex-direction:column;align-items:center;gap:6px;padding:18px 12px 8px;display:flex}.tpa-searching b{color:var(--tpa-deep);font-size:18px}.tpa-searching small{color:var(--ink-50);font-size:14px;font-weight:700}.tpa-radar{justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:relative}.tpa-radar i{border:3px solid var(--tpa);border-radius:50%;animation:1.6s ease-out infinite tpaRadar;position:absolute;inset:20px}.tpa-radar i+i{animation-delay:.8s}.tpa-radar span{font-size:44px;animation:.5s ease-in-out infinite alternate tpaBob;position:relative}@keyframes tpaRadar{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.6)}}.tpa-eta{text-align:center;color:var(--tpa-deep);background:#efe5cb;border-radius:14px;margin:10px 12px 0;padding:8px 12px;font-size:17px;font-weight:800}.tpa-eta.here{color:#fbf5e6;background:#4a4036;animation:.35s ease-out tpaDrop}@keyframes tpaDrop{0%{opacity:0;transform:translateY(12px)}}.tpa-driver{border:2px solid var(--tpa-line);background:#fffbef;border-radius:18px;grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;margin:10px 12px 0;padding:10px 12px;animation:.35s ease-out tpaDrop;display:grid}.tpa-driver-face{background:var(--tpa-pale);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:34px;display:flex}.tpa-driver-info{flex-direction:column;gap:2px;font-size:14px;display:flex}.tpa-driver-info b{font-size:18px}.tpa-driver-info span{color:var(--ink-50);align-items:center;gap:6px;font-weight:700;display:flex}.tpa-swatch{border:2px solid #3a322659;border-radius:5px;width:16px;height:16px;display:inline-block}.tpa-driver-art{grid-column:1/-1;justify-self:center;width:62%;max-width:190px}.tpa-driver-plate{border-top:1px dashed var(--tpa-line);grid-column:1/-1;justify-content:center;align-items:center;gap:10px;padding-top:6px;display:flex}.tpa-driver-plate small{color:var(--ink-50);font-size:14px;font-weight:700}.tpa-plate{letter-spacing:.04em;white-space:nowrap;font-variant-numeric:tabular-nums;border:2px solid;border-radius:6px;align-items:center;gap:1px;padding:2px 8px;font-size:15px;font-weight:800;line-height:1.3;display:inline-flex}.tpa-plate.blue{color:#f4ecd4;background:#3f6690;border-color:#d9e2ea;box-shadow:0 0 0 1.5px #3f6690}.tpa-plate.green{color:#26332a;background:linear-gradient(#f4f1e4 0%,#a9cfa2 100%);border-color:#6e9a6a}.tpa-plate.big{border-radius:8px;padding:3px 12px;font-size:24px}.tpa-plate-dot{opacity:.8;margin:0 2px}.tpa-ref{flex-direction:column;align-items:center;gap:8px;padding:10px 14px 4px;display:flex}.tpa-ref-label{color:var(--tpa-deep);background:var(--tpa-pale);border-radius:999px;align-self:flex-start;padding:2px 10px;font-size:13px;font-weight:800}.tpa-ref-art{width:72%;max-width:230px}.tpa-ref .tpa-plate.big{padding:4px 16px;font-size:30px}.tpa-ref small{color:var(--ink-50);font-size:15px;font-weight:700}.tpa-nav{color:#fbf5e6;background:#4a4036;border-radius:14px;margin:10px 12px;padding:10px 14px;font-size:17px;font-weight:800;transition:background .3s}.tpa-nav.red{background:#8e4a40}.tpa-progress{align-items:center;gap:8px;padding:6px 14px 0;font-size:22px;display:flex}.tpa-progress-track{background:var(--tpa-line);border-radius:5px;flex:1;height:10px;position:relative}.tpa-progress-fill{background:var(--tpa);border-radius:5px;height:100%;transition:width 2.5s linear}.tpa-progress-car{width:54px;transition:left 2.5s linear;position:absolute;top:50%;transform:translate(-50%,-78%)}.tpa-ride-who{color:var(--ink-50);justify-content:space-between;padding:10px 14px 0;font-size:15px;font-weight:800;display:flex}.tpa-bill{flex-direction:column;gap:8px;padding:10px 12px 0;display:flex}.tpa-bill-row{font-size:16px;font-weight:700}.tpa-bill-row.small{color:var(--ink-50);font-size:14px}.tpa-paybtn{background:var(--tpa);color:#fffbef;min-height:64px;box-shadow:0 4px 0 var(--tpa-deep);-webkit-tap-highlight-color:transparent;border:none;border-radius:16px;font-size:18px;font-weight:800}.tpa-paybtn:active{box-shadow:0 1px 0 var(--tpa-deep);transform:translateY(3px)}.tpa-paid{background:var(--leaf);color:#fff;border-radius:16px;justify-content:center;align-items:center;min-height:64px;font-size:18px;font-weight:800;display:flex}.tpa-done-emoji{margin:0 0 2px;font-size:34px;line-height:1.1}.tpa-trip{background:var(--shroom-cap);border:3px solid var(--tpa);box-shadow:0 4px 0 var(--paper-shadow);border-radius:18px;overflow:hidden}.tpa-trip-head{background:var(--tpa);color:#fffbef;justify-content:space-between;padding:6px 12px;font-size:14px;font-weight:800;display:flex}.tpa-trip-body{grid-template-columns:96px 1fr;align-items:center;gap:10px;padding:8px 12px;display:grid}.tpa-trip-info{flex-direction:column;gap:3px;min-width:0;display:flex}.tpa-trip-info div{align-items:center;gap:8px;display:flex}.tpa-trip-info small{color:var(--ink-50);flex-shrink:0;width:28px;font-size:12px}.tpa-trip-info b{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.tpa-trip-info .tpa-plate{padding:1px 6px;font-size:13px}.tpa-trip-checks{flex-wrap:wrap;gap:4px;padding:0 12px 8px;display:flex}.tpa-trip-checks span{color:#fff;background:var(--leaf);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700}.tpa-collect{background:var(--bg-cream-2);border-radius:18px;margin-top:10px;padding:8px}.tpa-collect-title{font-family:var(--font-display);margin:0 0 6px 4px;font-size:15px;font-weight:700}.tpa-collect-grid{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.tpa-collect-item{background:var(--shroom-cap);opacity:.45;filter:grayscale(.9);border-radius:12px;flex-direction:column;align-items:center;gap:1px;min-width:0;padding:4px 2px 6px;display:flex}.tpa-collect-item.on{opacity:1;filter:none}.tpa-collect-item.now{box-shadow:0 0 0 3px var(--tpa)}.tpa-collect-item span{white-space:nowrap;font-size:12px;font-weight:800}.tpa-collect-item small{color:var(--ink-50);white-space:nowrap;font-size:10px}.tpa-collect-art{width:100%;max-width:70px}@media (aspect-ratio>=1) and (height<=780px){.tpa-scene .scene-eyebrow{display:none}.tpa-scene .lead{margin-bottom:10px}}@media (aspect-ratio>=1) and (height<=720px){.tpa-scene h1{font-size:28px}.tpa-scene .lead{margin-bottom:8px;font-size:15px}.tpa-dest{min-height:72px}.tpa-dest-emoji{font-size:30px}}@media (aspect-ratio<=1){.scene.tpa-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:12px}.tpa-stage{min-height:260px}.tpa-panel{justify-content:flex-start}.tpa-scene .scene-eyebrow{display:none}.tpa-scene .lead{margin-bottom:8px}.tpa-dest-grid{grid-template-columns:repeat(3,1fr)}.tpa-dest{min-height:72px}.tpa-types{grid-template-columns:repeat(3,1fr)}.tpa-type{flex-direction:column;align-items:stretch}.tpa-type:last-child{grid-column:auto}.tpa-type-art,.tpa-type:last-child .tpa-type-art{align-self:center;width:78%;max-width:110px}.tpa-p-done .tpa-trip,.tpa-p-done .tpa-collect{max-width:560px}.tpa-wait-row{display:grid}}.scene.mpa-scene{--mk:#7e9a45;--mk-deep:#5c7431;--mk-pale:#e6ebcb;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(280px,29vw,350px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.mpa-scene .scene-eyebrow{margin-bottom:4px}.mpa-scene .scene-eyebrow:before{background:var(--mk)}.mpa-scene h1{margin:0 0 6px;font-size:clamp(26px,3vw,36px)}.mpa-scene h1 em{color:var(--mk-deep)}.mpa-scene .lead{color:var(--ink-50);margin:0 0 12px;font-size:16px;line-height:1.5}.mpa-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;background:#f4ecd4;border-radius:26px;position:relative;overflow:hidden}.mpa-stage>.pixi-stage{inset:0;position:absolute!important}.mpa-stage canvas{touch-action:none!important}.mpa-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:2px;display:flex}.mpa-actions{flex-direction:column;align-items:stretch;gap:12px;margin-top:12px;display:flex}.mpa-actions .big-btn{width:100%;max-width:none;min-height:64px;padding:14px 22px}.mpa-note{min-height:64px;color:var(--ink-50);text-align:center;border:2px dashed #d9cfa8;border-radius:18px;justify-content:center;align-items:center;padding:0 12px;font-size:15px;font-weight:700;display:flex}.mpa-pic{object-fit:contain;vertical-align:middle;width:1em;height:1em;display:inline-block}.mpa-pic.emo{width:auto;height:auto;line-height:1}.mpa-list{cursor:pointer;width:100%;box-shadow:0 4px 0 var(--paper-shadow), 0 10px 22px #2c24181a;font-family:var(--font-body);color:var(--ink);text-align:left;background:#fbf6e6;border:none;border-radius:8px 8px 16px 16px;flex-direction:column;gap:2px;padding:12px 14px 12px 16px;display:flex;position:relative;transform:rotate(-.8deg)}.mpa-list:before{content:"";background:var(--mk);width:64px;height:16px;box-shadow:0 2px 0 var(--mk-deep);border-radius:6px;margin-left:-32px;position:absolute;top:-9px;left:50%}.mpa-list.pulse{animation:1.4s ease-in-out infinite mpaPulse}@keyframes mpaPulse{50%{box-shadow:0 4px 0 var(--paper-shadow), 0 0 0 6px #7e9a4559}}.mpa-list-head{color:var(--mk-deep);justify-content:space-between;align-items:center;font-size:15px;font-weight:800;display:flex}.mpa-list-ear{color:var(--ink-50);font-size:13px;font-weight:700}.mpa-list-row{grid-template-columns:34px 1fr auto 26px;align-items:center;gap:8px;min-height:52px;display:grid}.mpa-list-row+.mpa-list-row{border-top:1px dashed #7e9a4559}.mpa-list-num{background:var(--mk);color:#fff;width:32px;height:32px;font-family:var(--font-display);border-radius:50%;place-items:center;font-size:19px;display:grid}.mpa-list-pics{flex-wrap:wrap;gap:0;font-size:clamp(34px,5.2vh,44px);line-height:1;display:flex}.mpa-list-name{color:var(--ink-50);font-size:14px;font-weight:700}.mpa-list-tick{color:var(--mk-deep);font-size:24px;font-weight:800}.mpa-carriers{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mpa-carrier{background:var(--shroom-cap);border:3px solid var(--mk);border-radius:var(--r-md);min-height:120px;box-shadow:0 5px 0 var(--paper-shadow);color:var(--ink);cursor:pointer;font-size:19px;font-weight:800;font-family:var(--font-body);flex-direction:column;align-items:center;gap:4px;padding:12px 8px;display:flex}.mpa-carrier:active{box-shadow:0 2px 0 var(--paper-shadow);transform:translateY(3px)}.mpa-carrier .mpa-pic{font-size:72px}.mpa-mini{border-radius:var(--r-sm);cursor:pointer;min-height:64px;box-shadow:0 3px 0 var(--paper-shadow);font-family:var(--font-body);color:var(--ink);background:#fbf6e6;border:none;flex-wrap:wrap;justify-content:space-around;align-items:center;gap:6px;margin-bottom:10px;padding:6px 10px;display:flex}.mpa-mini-item{border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;display:flex;position:relative}.mpa-mini-item .mpa-pic{font-size:40px}.mpa-mini-item.done{background:#7e9a452e}.mpa-mini-tick{color:#fff;background:var(--mk);border-radius:50%;place-items:center;width:20px;height:20px;font-size:13px;display:grid;position:absolute;top:-2px;right:-2px}.mpa-dots{gap:3px;display:inline-flex}.mpa-dots i{border:2px solid var(--mk);border-radius:50%;width:10px;height:10px}.mpa-dots i.on{background:var(--mk)}.mpa-signs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mpa-sign{cursor:pointer;background:var(--shroom-cap);border:3px solid var(--c);min-height:64px;color:var(--ink);box-shadow:0 4px 0 var(--paper-shadow);font-family:var(--font-body);border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:4px 6px;display:flex}.mpa-sign.on{background:var(--c);color:#fff;box-shadow:0 2px 0 var(--paper-shadow);transform:translateY(2px)}.mpa-sign-ic{font-size:28px;display:flex}.mpa-sign-name{font-size:15px;font-weight:800}.mpa-count{flex-wrap:wrap;gap:8px;display:flex}.mpa-count i{border:3px dashed #c9be98;border-radius:50%;width:26px;height:26px}.mpa-count i.on{border:3px solid var(--mk);background:var(--mk);box-shadow:inset 0 0 0 4px #fbf6e6}.mpa-paychoice{grid-template-columns:1fr 1fr;gap:12px;display:grid}.mpa-paybtn{background:var(--shroom-cap);border:3px solid var(--mk);border-radius:var(--r-md);cursor:pointer;min-height:120px;box-shadow:0 5px 0 var(--paper-shadow);color:var(--ink);font-size:18px;font-weight:800;font-family:var(--font-body);flex-direction:column;align-items:center;gap:6px;padding:12px 8px;display:flex}.mpa-paybtn>span:first-child{font-size:48px;line-height:1.1}.mpa-paybtn:active{box-shadow:0 2px 0 var(--paper-shadow);transform:translateY(3px)}.mpa-coin{color:#6e5620;width:48px;height:48px;font-size:22px;font-weight:800;font-family:var(--font-display);background:radial-gradient(circle at 35% 30%,#f2e3a6,#c9a74e 70%);border:2px solid #a88838;border-radius:50%;place-items:center;display:inline-grid}.mpa-paybtn .mpa-coin{width:56px;height:56px;font-size:26px!important}.mpa-coins{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.mpa-coin.empty{color:#a89a72;background:0 0;border:3px dashed #b5a77f}.mpa-switch{border-radius:var(--r-pill);border:2px solid var(--mk);background:var(--shroom-cap);min-height:56px;color:var(--mk-deep);cursor:pointer;font-size:16px;font-weight:800;font-family:var(--font-body);padding:6px 16px}@media (aspect-ratio>=1) and (height<=720px){.mpa-scene .lead{margin-bottom:8px;font-size:15px}.mpa-list-row{min-height:46px}.mpa-list-pics{font-size:34px}}@media (aspect-ratio<=1){.scene.mpa-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:12px}.mpa-panel{justify-content:flex-start}.mpa-scene h1{margin-bottom:2px;font-size:28px}.mpa-scene .lead{margin-bottom:8px}.mpa-actions{flex-direction:row;margin-top:8px}.mpa-actions>*{flex:1}.mpa-at-home .mpa-panel,.mpa-at-done .mpa-panel{grid-template-columns:1fr minmax(220px,34%);align-items:center;column-gap:16px;display:grid}.mpa-at-home .mpa-panel>:not(.mpa-list):not(.mpa-actions),.mpa-at-done .mpa-panel>:not(.mpa-list):not(.mpa-actions){grid-column:1/-1}.mpa-at-home .mpa-actions,.mpa-at-done .mpa-actions{margin-top:0}.mpa-at-shop .mpa-panel{grid-template-columns:1fr 1fr;align-items:start;column-gap:12px;display:grid}.mpa-at-shop .mpa-panel>.scene-eyebrow,.mpa-at-shop .mpa-panel>h1,.mpa-at-shop .mpa-panel>.lead,.mpa-at-shop .mpa-actions{grid-column:1/-1}.mpa-at-shop .mpa-mini{height:100%;margin-bottom:0}.mpa-signs{grid-template-columns:1fr 1fr}.mpa-paychoice{flex:1}.mpa-paybtn{min-height:90px}}.scene.dpa-scene{--doc:#5e9c7a;--doc-deep:#3f7a5c;--doc-soft:#d6e6da;flex:auto;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(270px,29vw,340px);gap:18px;max-width:none;min-height:0;margin:0;padding:12px 16px 14px;display:grid}.dpa-scene .scene-eyebrow{margin-bottom:0}.dpa-scene .scene-eyebrow:before{background:var(--doc)}.dpa-scene h1{margin:0 0 8px;font-size:clamp(26px,3.1vw,38px)}.dpa-scene h1 em{color:var(--doc-deep);font-style:normal}.dpa-scene .lead{min-height:1.5em;margin:0 0 14px;font-size:16.5px;line-height:1.55}.dpa-stage{min-width:0;min-height:0;box-shadow:0 6px 0 var(--paper-shadow), 0 14px 30px #2c24181a;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;background:#ece0be;border-radius:26px;position:relative;overflow:hidden}.dpa-stage>.pixi-stage{inset:0;position:absolute!important}.dpa-panel{flex-direction:column;justify-content:center;min-width:0;min-height:0;padding:4px 2px;display:flex}.dpa-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:44px;margin-bottom:8px;display:flex}.dpa-back{border-radius:var(--r-pill);background:var(--shroom-cap);border:2px solid var(--doc);min-height:44px;color:var(--doc-deep);font-family:var(--font-body);cursor:pointer;white-space:nowrap;padding:8px 14px;font-size:15px;font-weight:700}.dpa-actions{flex-direction:column;align-items:stretch;gap:12px;display:flex}.dpa-actions:empty{display:none}.dpa-actions .big-btn{width:100%;min-height:70px;padding:16px 20px}.dpa-wait{color:var(--ink-50);text-align:center;border:2px dashed var(--doc-soft);background:#fffdf699;border-radius:18px;margin:0;padding:14px 12px;font-size:16.5px}.dpa-steps{flex-wrap:nowrap;gap:5px;margin-bottom:10px;display:flex}.dpa-step{background:var(--bg-cream-2);filter:grayscale(.8);opacity:.55;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:18px;transition:all .3s;display:grid}.dpa-step.on{opacity:1;filter:none;background:var(--doc-soft);box-shadow:0 0 0 3px var(--doc);transform:scale(1.1)}.dpa-step.done{opacity:1;filter:none;background:var(--shroom-cap);box-shadow:0 0 0 2px var(--leaf)}.dpa-mode-grid{grid-template-columns:1fr;gap:12px;margin-bottom:12px;display:grid}.dpa-mode-card{text-align:left;cursor:pointer;background:var(--shroom-cap);border:3px solid var(--doc);min-height:88px;box-shadow:0 5px 0 var(--paper-shadow);font-family:var(--font-body);color:var(--ink);-webkit-tap-highlight-color:transparent;border-radius:22px;align-items:center;gap:14px;padding:12px 16px;transition:transform .1s,box-shadow .1s;display:flex}.dpa-mode-card:active{box-shadow:0 2px 0 var(--paper-shadow);transform:translateY(3px)}.dpa-mode-emoji{flex:none;font-size:48px;line-height:1}.dpa-mode-text{flex-direction:column;gap:2px;min-width:0;display:flex}.dpa-mode-name{font-family:var(--font-display);font-size:23px;font-weight:700}.dpa-mode-tag{color:var(--ink-50);font-size:13px}.dpa-note{color:var(--ink-50);margin:10px 0 0;font-size:12.5px;line-height:1.55}.dpa-book{background:var(--shroom-cap);border:2px dashed var(--doc);border-radius:18px;margin-bottom:12px;padding:8px 10px}.dpa-book-title{color:var(--doc-deep);margin-bottom:6px;font-size:13.5px;font-weight:700;display:block}.dpa-book-row{flex-wrap:wrap;gap:5px;max-height:108px;display:flex;overflow:hidden}.dpa-book.compact .dpa-book-row{max-height:50px}.dpa-mini{border:2px solid var(--sun);background:#fff8e4;border-radius:50%;align-content:center;place-items:center;width:46px;height:46px;font-size:21px;line-height:1;display:grid}.dpa-mini small{color:var(--ink-50);margin-top:1px;font-size:8.5px}.dpa-mini.fresh{animation:.6s cubic-bezier(.3,1.6,.5,1) both dpaStick}@keyframes dpaStick{0%{opacity:0;transform:scale(2.2)rotate(-20deg)}}.dpa-book-empty{color:var(--ink-50);margin:0 0 8px;font-size:14px}.dpa-pad{grid-template-rows:repeat(3,72px);grid-template-columns:repeat(3,72px);justify-content:center;gap:8px;margin:0 0 14px;display:grid}.dpa-arrow{border:3px solid var(--doc);background:var(--shroom-cap);color:var(--doc-deep);box-shadow:0 5px 0 var(--paper-shadow);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:22px;place-items:center;font-size:34px;font-weight:700;transition:transform .1s,box-shadow .1s;display:grid}.dpa-arrow:active{box-shadow:0 2px 0 var(--paper-shadow);transform:translateY(3px)}.dpa-arrow:disabled{opacity:.45}.dpa-arrow-up{grid-area:1/2}.dpa-arrow-left{grid-area:2/1}.dpa-arrow-right{grid-area:2/3}.dpa-arrow-down{grid-area:3/2}.dpa-arrow.hint{border-color:var(--sun);background:#fff1c8;animation:.9s ease-in-out infinite dpaHint}@keyframes dpaHint{50%{transform:scale(1.1)}}.dpa-pad-mid{color:var(--ink-50);grid-area:2/2;place-items:center;font-size:17px;font-weight:700;display:grid}.dpa-tray{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.dpa-tool{touch-action:none;cursor:grab;background:var(--shroom-cap);border:3px solid var(--doc-soft);min-height:86px;box-shadow:0 4px 0 var(--paper-shadow);font-family:var(--font-body);color:var(--ink);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 4px;display:flex}.dpa-tool.used{border-color:var(--doc);background:#eef5ec}.dpa-tool.on{border-color:var(--sun);transform:translateY(-3px)}.dpa-tool-emoji{font-size:34px;line-height:1.1}.dpa-tool-name{font-size:13.5px;font-weight:700}.dpa-ghost{z-index:50;pointer-events:none;font-size:54px;position:fixed;transform:translate(-50%,-60%)}@media (aspect-ratio>=1) and (height<=760px){.dpa-scene h1{font-size:clamp(24px,2.8vw,34px)}.dpa-scene .lead{margin-bottom:10px;font-size:15.5px}.dpa-pad{grid-template-rows:repeat(3,66px);grid-template-columns:repeat(3,66px);margin-bottom:10px}.dpa-actions .big-btn{min-height:64px;padding:14px 18px}.dpa-mode-card{min-height:78px;padding:10px 14px}.dpa-mode-emoji{font-size:42px}.dpa-steps{margin-bottom:6px}.dpa-step{width:32px;height:32px;font-size:16px}}@media (aspect-ratio<=1){.scene.dpa-scene{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:12px}.dpa-panel{justify-content:flex-start}.dpa-scene .lead{margin-bottom:10px}.dpa-actions{flex-flow:wrap}.dpa-actions>*{flex:1 1 0}.dpa-mode-grid{grid-template-columns:1fr 1fr}.dpa-tray{grid-template-columns:repeat(5,1fr)}.dpa-pad{grid-template-rows:repeat(3,68px);grid-template-columns:repeat(3,68px)}.dpa-panel-row{gap:12px;display:flex}}
