:root{--bg:#f4f4f2;--panel:#fff;--ink:#1d1d1b;--muted:#6b6b66;--line:#d4d4cf;--accent:#1d1d1b;--bad:#a3261b;--good:#1f6b3a}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:16px/1.45 system-ui,sans-serif}#root{max-width:860px;margin:0 auto;padding:16px}h1,h2,h3{margin:0 0 8px;line-height:1.2}h1{font-size:22px}button{font:inherit;border:1px solid var(--accent);background:var(--panel);min-height:40px;color:var(--ink);cursor:pointer;border-radius:6px;padding:8px 12px}button.primary{background:var(--accent);color:#fff}button:disabled{opacity:.45;cursor:default}button.link{min-height:0;color:var(--muted);background:0 0;border:0;padding:2px 4px;font-size:14px;text-decoration:underline}input,textarea,select{font:inherit;border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:6px;padding:8px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grow{flex:200px}.hud{flex-wrap:wrap;align-items:baseline;gap:16px;margin-bottom:8px;font-size:14px;display:flex}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:12px;display:flex}.tabs button[aria-pressed=true]{background:var(--accent);color:#fff}.tag{border:1px dashed var(--muted);color:var(--muted);border-radius:99px;padding:2px 8px;font-size:12px}.error{border-color:var(--bad);color:var(--bad)}.notice{border-color:var(--good)}.map{background:#eaeae6;border-radius:6px;width:100%;height:auto;max-height:45vh;display:block}.map .place{cursor:pointer}.map .locked{cursor:not-allowed;opacity:.4}.line:last-child{border-bottom:0}.bubble.player{color:#fff;background:#1d1d1b;margin-left:auto}.fix{border-left:3px solid var(--bad);background:#fbf1ef;max-width:85%;margin:4px 0 4px auto;padding:4px 8px;font-size:14px}.placeholder{border:1px dashed var(--muted);width:120px;height:90px;color:var(--muted);text-align:center;place-items:center;padding:4px;font-size:12px;display:grid}.options{gap:8px;display:grid}.options button{text-align:left}.options button[aria-pressed=true]{background:var(--accent);color:#fff}.stats{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.stats b{font-size:22px;display:block}.option-tr{margin-top:2px;display:block}.options button{min-height:48px}.retry-note{color:var(--bad);margin:8px 0 0;font-size:14px}.hud{gap:4px 12px;font-size:13px}@media (width<=700px){#root{padding:12px 12px 88px}.panel{padding:12px}.tabs{z-index:10;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--line);flex-wrap:nowrap;margin:0;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.tabs button{flex:none;padding:8px 10px;font-size:14px}}.note-button{right:12px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:30;background:var(--panel);border-radius:50%;place-items:center;width:44px;height:44px;min-height:0;padding:0;display:grid;position:fixed;box-shadow:0 1px 6px #00000040}.note-button svg{fill:none;width:22px;height:22px;stroke:var(--ink);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.note-toast{left:50%;bottom:calc(128px + env(safe-area-inset-bottom));z-index:40;background:var(--ink);color:#fff;white-space:nowrap;border-radius:99px;padding:8px 14px;font-size:14px;position:fixed;transform:translate(-50%)}.note-picker{z-index:50;cursor:crosshair;background:#e0261b14;border:0;border-radius:0;justify-content:center;align-items:flex-start;width:100%;height:100%;display:flex;position:fixed;inset:0}.note-picker span{margin-top:calc(16px + env(safe-area-inset-top));background:var(--ink);color:#fff;border-radius:99px;padding:8px 14px;font-size:14px}.note-sheet{z-index:60;background:var(--panel);padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));position:fixed;inset:0;overflow-y:auto}.note-sheet>*{max-width:560px;margin-left:auto;margin-right:auto}.note-sheet textarea{width:100%;font:inherit;border:1px solid var(--line);border-radius:6px;padding:8px}.note-label{margin:12px auto 4px;font-size:14px;font-weight:600;display:block}.note-kinds{flex-wrap:wrap;gap:8px;display:flex}.note-kinds button[aria-pressed=true]{background:var(--accent);color:#fff}.note-shot{align-items:flex-start;gap:12px;margin-top:12px;display:flex}.note-shot img{border:1px solid var(--line);border-radius:4px;width:120px;height:auto}.note-point{overflow-wrap:anywhere;margin-top:6px;font-size:13px}.note-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.note-row{align-items:flex-start;gap:12px;display:flex}.note-row img{border:1px solid var(--line);border-radius:4px;flex:none;width:72px;height:auto}@font-face{font-family:Fraunces;font-weight:600;src:url(/fonts/fraunces-600.woff2)format("woff2");font-display:swap}@font-face{font-family:Instrument;font-weight:400;src:url(/fonts/instrument-sans-400.woff2)format("woff2");font-display:swap}@font-face{font-family:Instrument;font-weight:600;src:url(/fonts/instrument-sans-600.woff2)format("woff2");font-display:swap}:root{--bg:#f3dabc;--panel:#fbf8ec;--cream:#f2eedb;--ink:#171306;--muted:#5f5a48;--line:#d9c9a8;--accent:#2e351f;--coral:#e98466;--teal:#5b8a95;--amber:#b3790a;--bad:#9c3418;--good:#2e351f;--press:cubic-bezier(.22, 1, .36, 1)}body{background:var(--bg);color:var(--ink);font:400 16.5px/1.38 Instrument,system-ui,sans-serif}#root{max-width:480px;padding:0 12px 96px}h1,h2,h3{letter-spacing:-.01em;text-wrap:balance;font-family:Fraunces,Georgia,serif;font-weight:600}h1{font-size:40px;line-height:1.02}h2{font-size:23px}h3{font-size:17px}small,.muted{color:var(--muted)}b{font-weight:600}button{border:1.5px solid var(--ink);background:var(--panel);color:var(--ink);min-height:44px;box-shadow:0 3px 0 var(--ink);transition:transform .18s var(--press), box-shadow .18s var(--press), background-color .18s var(--press);border-radius:14px;padding:9px 14px}button:active:not(:disabled){box-shadow:0 0 0 var(--ink);transform:translateY(3px)}button.primary,.options button[aria-pressed=true],.note-kinds button[aria-pressed=true],.tabs button[aria-pressed=true]{background:var(--accent);color:var(--cream);border-color:var(--ink)}button.primary small,.options button[aria-pressed=true] small,.tabs button[aria-pressed=true] small{color:var(--cream)}button:disabled{opacity:.5;box-shadow:none}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2.5px solid var(--teal);outline-offset:2px}button.link{box-shadow:none;min-height:0;color:var(--muted);background:0 0;border:0}input,textarea,select{border:1.5px solid var(--ink);background:var(--panel);color:var(--ink);min-height:44px;font:inherit;border-radius:12px;padding:9px 12px}input::placeholder,textarea::placeholder{color:var(--muted)}.panel{background:var(--cream);border:0;border-radius:18px;margin-bottom:12px;padding:16px}.line{border-bottom:1px solid var(--line);padding:10px 0}.row{gap:8px}.options{gap:10px}.options button{min-height:52px;padding:10px 14px;font-size:16.5px;line-height:1.25}.option-tr{font-size:14px}.retry-note{color:var(--bad);font-weight:600}.error{border:1.5px solid var(--bad);color:var(--bad)}.notice{background:var(--accent);color:var(--cream);border-radius:14px;padding:12px 14px;font-weight:600}.title{padding:28px 4px 12px}.title p{max-width:30ch;margin:8px 0 0;font-size:17px}.cities{grid-template-columns:1fr 1fr}.options .city{text-align:center;flex-direction:column;gap:8px;padding:8px;font-size:15px;font-weight:600;display:flex}.city .art{background:var(--bg);border-radius:9px;height:96px;display:block;overflow:hidden}.city img{width:100%;height:auto;margin-top:-8%;display:block}.stage{top:calc(62px + env(safe-area-inset-top));z-index:5;background:var(--bg);justify-content:center;height:clamp(140px,23vh,210px);margin:0 -12px;display:flex;position:sticky;overflow:hidden}.stage .art{height:100%;display:block}.stage img{width:auto;max-width:none;height:135%;margin-top:-3%;display:block}.stage .art-missing{background:var(--line);border-radius:55px 55px 0 0;width:110px;height:calc(100% - 16px);margin-top:16px}.stage-leave{min-height:36px;box-shadow:0 2px 0 var(--ink);border-radius:99px;padding:4px 12px;font-size:14px;position:absolute;bottom:10px;right:10px}.sheet{border-radius:18px 18px 0 0;min-height:64vh;margin:0 -12px;padding:14px 14px 20px}.sheet .muted{margin:4px 0 8px;font-size:14px}.bubble{background:var(--panel);border-radius:16px;max-width:92%;margin:8px 0;padding:10px 13px}.bubble small{color:var(--muted)}.bubble.player{background:var(--accent);color:var(--cream)}.bubble.player small{color:var(--cream)}.bubble .link{color:var(--ink);background:var(--bg);border-radius:8px;padding:2px 6px;font-size:15px}.fix{background:var(--panel);border-left:4px solid var(--coral);color:var(--ink);border-radius:0 10px 10px 0;padding:7px 10px;font-size:14.5px}.map{background:var(--bg);border-radius:0;max-width:none;max-height:none;margin:0 -12px 12px;position:relative}.map .art{display:block}.map img{width:100%;height:auto;display:block}.map .art-missing{height:110vw;max-height:500px}.pin{white-space:nowrap;min-height:36px;box-shadow:0 2px 0 var(--ink);border-radius:99px;padding:4px 11px;font-size:14px;font-weight:600;position:absolute;transform:translate(-50%,-50%)}.pin:active:not(:disabled){box-shadow:none;transform:translate(-50%,calc(2px - 50%))}.pin-here{background:var(--accent);color:var(--cream)}.pin-mission:after{content:"";background:var(--coral);border:1.5px solid var(--ink);vertical-align:0;border-radius:50%;width:9px;height:9px;margin-left:6px;display:inline-block}.pin:disabled{background:var(--line);opacity:1;color:var(--muted)}.place{padding-top:12px}.place-art{float:right;background:var(--bg);border-radius:12px;width:128px;margin:0 0 8px 10px;display:block;overflow:hidden}.place-art img{width:100%;height:auto;display:block}.place-art.art-missing{height:0;margin:0}.person{align-items:flex-start;gap:12px;display:flex}.face{border:1.5px solid var(--ink);background:var(--bg);border-radius:50%;flex:none;width:60px;height:60px;display:block;overflow:hidden}.face img{width:100%;height:auto;display:block}.scene-list{gap:8px;margin-top:8px;display:grid}.scene-list button{text-align:left}.word-art{background:var(--bg);border-radius:14px;width:180px;height:180px;margin:0 auto 10px;display:block;overflow:hidden}.word-art img{width:100%;height:auto;display:block}.word-art.art-missing{background:var(--line)}.words{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.word{background:var(--bg);text-align:center;overflow-wrap:anywhere;border-radius:12px;padding:6px;font-size:14px;line-height:1.2}.word .art{border-radius:8px;margin-bottom:4px;display:block;overflow:hidden}.word img{width:100%;height:auto;display:block}.word small{display:block}.stats{grid-template-columns:1fr 1fr}.stats b{font:600 26px/1.1 Fraunces,Georgia,serif}.stats>div{font-size:13.5px}.note-button{border:1.5px solid var(--ink);box-shadow:0 2px 0 var(--ink);background:var(--panel)}.note-sheet{background:var(--cream)}@media (prefers-reduced-motion:reduce){button{transition:none}}:root{--ease:cubic-bezier(.22, 1, .36, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--nav-h:calc(66px + env(safe-area-inset-bottom))}html{-webkit-text-size-adjust:100%}body{touch-action:manipulation;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button{-webkit-user-select:none;user-select:none;cursor:pointer}.icon{vertical-align:-.22em;flex:none;display:inline-block}#root{padding-bottom:calc(var(--nav-h) + 16px)}.grow{flex:1 1 0;min-width:0}.round{width:42px;height:42px;min-height:0;box-shadow:0 2px 0 var(--ink);border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}.round:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.round.small{width:30px;height:30px;box-shadow:none;border-width:1px}.round[aria-pressed=true]{background:var(--coral)}.big{justify-content:center;align-items:center;gap:8px;width:100%;min-height:56px;font-size:18px;font-weight:600;display:flex}.icon-btn{flex:none;place-items:center;width:52px;padding:0;display:inline-grid}button.primary:disabled{background:var(--panel);color:var(--muted)}.link{align-items:center;gap:5px;font-size:14px;text-decoration:none;display:inline-flex}.hud{z-index:8;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;background:var(--bg);color:var(--ink);flex-wrap:nowrap;align-items:center;gap:12px;margin:0 -12px;font-size:14px;display:flex;position:sticky;top:0}.lvl{align-items:center;display:flex}.lvl-badge{z-index:1;background:var(--accent);width:34px;height:34px;color:var(--cream);border:1.5px solid var(--ink);border-radius:50%;place-items:center;font:600 17px/1 Fraunces,Georgia,serif;display:grid;position:relative}.xp{border:1.5px solid var(--ink);background:var(--panel);border-left:0;border-radius:0 99px 99px 0;width:62px;height:12px;margin-left:-6px;padding-left:6px;display:block;overflow:hidden}.xp i{background:var(--coral);height:100%;transition:width .6s var(--ease);display:block}.stat{align-items:center;gap:4px;display:inline-flex}.stat b{font-variant-numeric:tabular-nums;font-size:16px}.pop{animation:pop .34s var(--spring);display:inline-block}@keyframes pop{0%{transform:scale(1.5)}to{transform:none}}.nav{z-index:10;width:100%;max-width:480px;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:var(--cream);border-top:1.5px solid var(--ink);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav button{min-height:54px;box-shadow:none;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:3px 0;display:flex}.nav button:active:not(:disabled){transform:none}.nav-icon{width:50px;height:30px;transition:background-color .2s var(--ease), transform .28s var(--spring);border-radius:99px;place-items:center;display:grid;position:relative}.nav button[aria-pressed=true] .nav-icon{background:var(--bg);transform:translateY(-1px)scale(1.08)}.nav button:active .nav-icon{transform:scale(.88)}.nav-label{white-space:nowrap;font-size:11.5px;line-height:1.1}.nav button[aria-pressed=true] .nav-label{font-weight:600}.badge{background:var(--coral);border:1.5px solid var(--ink);text-align:center;border-radius:99px;min-width:17px;height:17px;padding:0 4px;font-size:10.5px;font-weight:600;line-height:14px;position:absolute;top:-3px;right:2px}.world{background:var(--bg);margin:0 -12px;transition:transform .32s cubic-bezier(.5,0,.75,0),opacity .3s ease-in;position:relative;container-type:inline-size}.world.zooming{opacity:0;transform:scale(2.3)}.world>.art{display:block}.world img{width:100%;height:auto;display:block}.world-hits,.life,.world-pins{position:absolute;inset:0}.world-hits{z-index:1}.life{z-index:2;pointer-events:none;overflow:hidden}.world-pins{z-index:3;pointer-events:none}.hit{aspect-ratio:1;width:26%;min-height:0;box-shadow:none;background:0 0;border:0;border-radius:50%;padding:0;position:absolute;transform:translate(-50%,-50%)}.hit:active:not(:disabled){background:#fbf8ec2e;transform:translate(-50%,-50%)}.life-svg{width:100%;height:100%;position:absolute;inset:0}.tappable{pointer-events:auto;cursor:pointer}.flow{fill:none;stroke:#dcebea;stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:11 47 19 71;opacity:.42;animation:11s linear infinite flow}@keyframes flow{to{stroke-dashoffset:-296px}}.pond-ring{fill:none;stroke:#e9f2ec;stroke-width:1.6px;opacity:0;animation:4.8s ease-out infinite ring}@keyframes ring{0%{opacity:0;transform:scale(.25)}18%{opacity:.55}to{opacity:0;transform:scale(1.5)}}.ripple{fill:none;stroke:#f5faf6;stroke-width:2.4px;animation:1.2s ease-out both ripple}@keyframes ripple{0%{opacity:.9;transform:scale(.1)}to{opacity:0;transform:scale(1.9)}}.smoke{fill:#f7f2e4;opacity:0;animation:4.8s ease-out infinite smoke}@keyframes smoke{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:.55}to{opacity:0;transform:translate(16px,-42px)scale(2)}}.birds{animation:38s linear infinite birds}@keyframes birds{0%{transform:translate(-70px,150px)}55%,to{transform:translate(820px,44px)}}.bird{transform-box:fill-box;transform-origin:50%;animation:.38s ease-in-out infinite alternate flap}@keyframes flap{0%{scale:1}to{scale:1 .4}}.life-cars{position:absolute;inset:0;container-type:inline-size}.car{min-height:0;box-shadow:none;opacity:0;will-change:transform;background:0 0;border:0;border-radius:0;padding:0;position:absolute;top:0;left:0}.car:active:not(:disabled){box-shadow:none}.car img{filter:drop-shadow(1px 3px 2px #281e1473);width:100%;height:auto;display:block}.cloud,.cloud-shadow{left:0;top:var(--top);width:var(--size);animation:linear infinite drift;position:absolute}.cloud{z-index:2;min-height:0;box-shadow:none;pointer-events:auto;opacity:.94;background:0 0;border:0;border-radius:40%;padding:0}.cloud:active:not(:disabled){box-shadow:none}.cloud img{width:100%;height:auto;display:block}.cloud.puff img{animation:cloud-puff .5s var(--spring)}@keyframes cloud-puff{0%{transform:scale(1)}40%{opacity:.6;transform:scale(1.22,.82)}to{opacity:1;transform:scale(1)}}.cloud-shadow{z-index:1;aspect-ratio:1.7;background:radial-gradient(closest-side,#281e0a33,#281e0a00);border-radius:50%;margin-top:16%}@keyframes drift{0%{transform:translate(-120%)}to{transform:translate(460%)}}.pin{pointer-events:auto;transition:background-color .25s var(--ease), color .25s var(--ease);align-items:center;gap:4px;display:inline-flex}.pin-mission{animation:1.9s ease-in-out infinite bob}@keyframes bob{0%,to{translate:0}50%{translate:0 -4px}}.pin-mission:before{content:"";border-radius:inherit;border:2px solid var(--coral);pointer-events:none;animation:1.9s ease-out infinite halo;position:absolute;inset:-2px}@keyframes halo{0%{opacity:.95;transform:scale(1)}to{opacity:0;transform:scale(1.35,1.7)}}.pin-mission:after{display:none}.pin-locked{background:var(--line);color:var(--muted)}.shake{animation:shake .4s var(--ease)}@keyframes shake{0%,to{translate:0}20%{translate:-6px}40%{translate:5px}60%{translate:-3px}80%{translate:2px}}.pawn{z-index:1;background:var(--coral);border:2px solid var(--ink);width:22px;height:22px;transition:left .5s var(--ease), top .5s var(--ease);border-radius:50% 50% 50% 4px;margin:-40px 0 0 -11px;position:absolute;rotate:-45deg;box-shadow:inset -3px 3px #ffffff47}.pawn:after{content:"";background:var(--panel);border:1.5px solid var(--ink);border-radius:50%;width:8px;height:8px;position:absolute;top:5px;left:5px}.next-card{bottom:calc(var(--nav-h) + 8px);z-index:7;text-align:left;background:var(--panel);width:100%;box-shadow:0 4px 0 var(--ink);animation:rise .45s var(--spring) .1s both;border-radius:18px;align-items:center;gap:12px;margin:-34px 0 12px;padding:8px 10px 8px 8px;display:flex;position:sticky}.next-card:active:not(:disabled){box-shadow:none;transform:translateY(4px)}.next-text{flex-direction:column;flex:1 1 0;min-width:0;line-height:1.22;display:flex}.next-text b{font:600 18px/1.15 Fraunces,Georgia,serif}.next-text small{font-size:13px}.next-go{background:var(--accent);width:46px;height:46px;color:var(--cream);border-radius:50%;flex:none;place-items:center;display:grid}.next-card:not(:active) .next-go{animation:2.2s ease-in-out 1.2s infinite nudge}@keyframes nudge{0%,70%,to{transform:none}82%{transform:translate(4px)}}.next-empty{box-shadow:none;border:1.5px dashed var(--line);justify-content:center;padding:14px}.face-icon{place-items:center;display:grid}.place{animation:rise .32s var(--ease) both;padding-top:14px}.person-row{clear:both;padding:10px 0 4px}.person{align-items:center}.scene-list{margin-top:10px}.scene-list button{align-items:center;gap:8px;width:100%;font-weight:600;display:flex}.scene-done{color:var(--muted);box-shadow:0 1px 0 var(--line);border-color:var(--line);background:0 0;font-weight:400!important}.scene-shell{z-index:9;width:100%;max-width:480px;height:var(--vvh,100dvh);background:var(--cream);flex-direction:column;display:flex;position:fixed;top:0;left:50%;overflow:hidden;transform:translate(-50%)}.scene-in{animation:scene-in .32s var(--ease) both}@keyframes scene-in{0%{opacity:0}to{opacity:1}}.scene-head{padding:calc(8px + env(safe-area-inset-top)) 12px 6px;background:var(--bg);flex:none;align-items:center;gap:10px;display:flex}.scene-title{text-align:center;flex-direction:column;line-height:1.1;display:flex}.scene-title b{white-space:nowrap;text-overflow:ellipsis;font:600 17px/1.12 Fraunces,Georgia,serif;overflow:hidden}.scene-title small{font-size:12.5px}.scene-progress{background:var(--line);border-radius:99px;flex:none;height:7px;margin:2px 0 8px;overflow:hidden}.scene-progress i{background:var(--coral);height:100%;transition:width .5s var(--ease);border-radius:99px;display:block}.scene-shell>.scene-progress{border-radius:0;height:5px;margin:0}.stage{background:var(--bg);flex:none;height:clamp(116px,23vh,200px);margin:0;position:relative;top:auto;overflow:hidden}.stage .stage-place{opacity:.92;width:92px;height:auto;animation:rise .5s var(--ease) .1s both;position:absolute;bottom:4px;left:6px}.stage .stage-place img{width:100%;height:auto;margin:0;display:block}.stage-body{animation:stage-up .5s var(--spring) both;justify-content:center;display:flex;position:absolute;inset:0}.stage-breath{transform-origin:50% 100%;height:100%;animation:3.8s ease-in-out infinite breathe}.talking .stage-breath{animation:.34s ease-in-out infinite alternate talk}.stage-breath .art{height:100%;display:block}.stage-breath img{width:auto;max-width:none;height:135%;margin-top:-3%;display:block}.mood-in img{animation:mood .28s var(--spring)}@keyframes mood{0%{transform:scale(1.05,.95)}to{transform:none}}@keyframes stage-up{0%{transform:translateY(24%)}to{transform:none}}@keyframes breathe{0%,to{transform:none}50%{transform:scale(1.012,1.018)}}@keyframes talk{0%{transform:rotate(-.7deg)}to{transform:rotate(.7deg)translateY(-2px)}}.stage-body.nod{animation:nod .55s var(--spring)}.stage-body.shake{animation:head-shake .5s var(--ease)}@keyframes nod{0%,to{transform:none}35%{transform:translateY(5%)scale(1.03)}70%{transform:translateY(-1%)}}@keyframes head-shake{0%,to{transform:none}25%{transform:translate(-3%)rotate(-1.5deg)}60%{transform:translate(2.5%)rotate(1deg)}}.log{-webkit-overflow-scrolling:touch;flex:1 1 0;min-height:0;padding:10px 14px 6px;overflow-y:auto}.goal{color:var(--muted);align-items:flex-start;gap:6px;padding:2px 2px 6px;font-size:14px;display:flex}.line-wrap.me{flex-direction:column;align-items:flex-end;display:flex}.bubble{border-radius:4px 16px 16px;flex:0 auto;width:fit-content;min-width:0;max-width:none;margin:0;padding:9px 13px 10px;position:relative}.bubble.player{border-radius:16px 4px 16px 16px}.bubble.typing{margin:6px 0}.line-row{align-items:flex-end;gap:4px;max-width:100%;margin:6px 0;display:flex}.line-wrap.me .line-row{flex-direction:row-reverse}.line-tools{flex:none;gap:0;display:flex}.say{width:34px;height:34px;min-height:0;box-shadow:none;color:var(--ink);vertical-align:middle;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.say:active:not(:disabled){box-shadow:none;transform:scale(.88)}.say-on{background:var(--coral);animation:.9s ease-in-out infinite alternate say-pulse}@keyframes say-pulse{0%{transform:scale(1)}to{transform:scale(1.1)}}.gloss .say{color:var(--cream)}.fix .say{width:28px;height:28px;margin:-4px 0}.review-head{flex-wrap:nowrap}.review-head h2{margin:0}.who{font-size:12px;line-height:1.3;display:block}.bubble-in{animation:bubble-in .26s var(--spring) both;transform-origin:0 100%}.line-wrap.me .bubble-in{transform-origin:100% 100%}@keyframes bubble-in{0%{opacity:0;transform:scale(.86)translateY(8px)}to{opacity:1;transform:none}}.bubble-wrong{box-shadow:inset 0 0 0 2px var(--coral);animation:shake .4s var(--ease);background:var(--panel)!important;color:var(--ink)!important}.w{cursor:pointer;border-radius:4px}.w:active{background:var(--bg)}.w-key{-webkit-text-decoration:underline dotted var(--coral) 2px;text-decoration:underline dotted var(--coral) 2px;text-underline-offset:3px}.chunk{white-space:nowrap}.fresh .chunk{animation:word-in .24s var(--ease) both;animation-delay:calc(var(--i) * 28ms);display:inline-block}@keyframes word-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.bubble-tr{border-top:1px dashed var(--line);color:var(--muted);animation:rise .24s var(--ease) both;margin-top:5px;padding-top:5px;font-size:14.5px}.gloss{background:var(--accent);width:fit-content;max-width:92%;color:var(--cream);animation:bubble-in .22s var(--spring) both;border-radius:14px;align-items:center;gap:10px;margin:2px 0 8px;padding:7px 8px 7px 12px;font-size:15px;display:flex}.gloss b{display:block}.gloss span{opacity:.9;display:block}.gloss .link{color:var(--cream);padding:2px 0;text-decoration:underline}.gloss .round{background:var(--accent);color:var(--cream);border-color:var(--cream)}.gloss-saved{opacity:.85;align-items:center;gap:4px;margin-top:2px;font-size:12px;display:flex}.gloss b small{opacity:.85;font-weight:400}.gloss-art{background:var(--bg);border-radius:9px;flex:none;width:44px;height:44px;display:block;overflow:hidden}.gloss-art img{width:100%;height:auto;display:block}.typing{padding:8px 14px 10px}.dots{gap:5px;padding:4px 0 1px;display:inline-flex}.dots i{background:var(--muted);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite dot}.dots i:nth-child(2){animation-delay:.14s}.dots i:nth-child(3){animation-delay:.28s}@keyframes dot{0%,60%,to{opacity:.45;transform:none}30%{opacity:1;transform:translateY(-5px)}}.loading{place-items:center;min-height:60vh;display:grid}.fix-in{animation:rise .3s var(--ease) both}.fix{width:fit-content;max-width:94%}.dock{padding:8px 12px calc(10px + env(safe-area-inset-bottom));background:var(--cream);border-top:1px solid var(--line);flex:none;position:relative}.dock:empty{display:none}.answers{gap:8px}.answers .answer{text-align:left;min-height:48px;padding:8px 14px}.answers.waiting .answer{opacity:.35;pointer-events:none}.answers.ready .rise{animation:rise .3s var(--spring) both;animation-delay:calc(var(--i) * 55ms)}.answer.chosen{background:var(--accent);color:var(--cream);box-shadow:none;transform:translateY(3px)}.answer.crossed{box-shadow:none;text-decoration:line-through;opacity:.45!important}.dock-tools{justify-content:space-between;gap:8px;padding-top:6px;display:flex}.dock-tools .link{min-height:30px;padding:2px}.write{flex-wrap:nowrap;margin-top:8px}.dock .write{margin-top:0}.retry-note{animation:rise .25s var(--ease) both;margin:0 0 6px}.hint{color:var(--muted);animation:rise .3s var(--ease) both;align-items:center;gap:5px;margin:0 0 6px;font-size:13.5px;display:flex}.keyboard .stage{display:none}.rise{animation:rise .3s var(--spring) both;animation-delay:calc(var(--i,0) * 55ms)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.scene-end{max-height:62vh;animation:rise .4s var(--spring) both;overflow-y:auto}.scene-end h2{text-align:center;margin:0 0 4px}.tally{justify-content:center;gap:18px;margin-bottom:6px;font-size:15px;display:flex}.tally span{align-items:center;gap:5px;display:inline-flex}.tally b{font-variant-numeric:tabular-nums;font:600 22px/1 Fraunces,Georgia,serif}.scene-end .words{justify-content:center;gap:8px;margin:6px 0 10px;display:flex;overflow-x:auto}.scene-end .word{flex:0 0 84px;font-size:13px}.flip-in{animation:flip-in .5s var(--spring) both;animation-delay:calc(.75s + var(--i) * .15s)}@keyframes flip-in{0%{opacity:0;transform:rotateY(90deg)scale(.8)}to{opacity:1;transform:none}}.end-actions{align-items:center;gap:8px;display:flex}.toast{top:calc(10px + env(safe-area-inset-top));z-index:40;background:var(--accent);width:calc(100% - 24px);max-width:456px;color:var(--cream);border:1.5px solid var(--ink);box-shadow:0 4px 0 var(--ink);animation:toast 3s var(--ease) both;border-radius:16px;align-items:center;gap:10px;padding:11px 14px;font-weight:600;display:flex;position:fixed;left:50%}@keyframes toast{0%{transform:translate(-50%,-140%)}10%,90%{transform:translate(-50%)}to{transform:translate(-50%,-140%)}}.float-text{z-index:45;background:var(--coral);border:1.5px solid var(--ink);pointer-events:none;animation:float-up .95s var(--ease) both;border-radius:99px;padding:3px 11px;font-size:15px;font-weight:600;position:fixed;transform:translate(-50%)}@keyframes float-up{0%{opacity:0;translate:0 8px;scale:.7}20%{opacity:1;scale:1.08}to{opacity:0;translate:0 -66px;scale:1}}.overlay{z-index:35;background:#17130680;place-items:center;padding:24px;animation:.25s both scene-in;display:grid;position:fixed;inset:0}.level-card{text-align:center;background:var(--cream);border:1.5px solid var(--ink);width:100%;max-width:340px;box-shadow:0 6px 0 var(--ink);animation:card-in .55s var(--spring) both;border-radius:26px;padding:26px 20px 20px}@keyframes card-in{0%{opacity:0;transform:scale(.6)translateY(30px)}to{opacity:1;transform:none}}.level-card p b{margin-left:4px}.level-badge{background:var(--coral);border:2px solid var(--ink);width:96px;height:96px;box-shadow:0 5px 0 var(--ink);animation:pop .6s var(--spring) .15s both;border-radius:50%;place-items:center;margin:0 auto 12px;font:600 50px/1 Fraunces,Georgia,serif;display:grid}.confetti{z-index:36;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti i{border:1px solid #17130680;border-radius:3px;animation:linear both fall;position:absolute;top:-24px}@keyframes fall{to{transform:translate(var(--drift), 105vh) rotate(var(--spin))}}.welcome{padding-bottom:20px}.wizard-head{padding:calc(14px + env(safe-area-inset-top)) 52px 14px 2px;align-items:center;gap:12px;display:flex}.steps{flex:1 1 0;gap:6px;display:flex}.steps i{background:var(--line);height:7px;transition:background-color .3s var(--ease);border-radius:99px;flex:1 1 0}.steps i.on{background:var(--coral)}.wizard{animation:wizard-in .3s var(--ease) both}@keyframes wizard-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}.wizard h2{margin-bottom:12px}.name-row{flex-wrap:nowrap}.wizard-go{margin:14px 0 0}.cities small{margin-top:-6px;font-weight:400;display:block}.resume{margin-bottom:12px}.resume-main{text-align:left;border-radius:18px;align-items:center;gap:12px;width:100%;padding:8px 14px 8px 8px;display:flex}.resume-main b{font:600 22px/1.1 Fraunces,Georgia,serif;display:block}.resume-main small{color:var(--cream);opacity:.85;display:block}.resume-art{background:var(--bg);border-radius:12px;flex:none;width:64px;height:64px;display:block;overflow:hidden}.resume-art img{width:100%;height:auto;display:block}.others{margin-top:10px}.others summary{cursor:pointer;color:var(--muted);padding:8px 2px;font-size:14.5px}.others-list{gap:8px;display:grid}.others-list button{text-align:left}.tab-in{animation:rise .26s var(--ease) both}.mission{text-align:left;border-radius:16px;align-items:center;gap:10px;width:100%;margin-top:10px;padding:9px 12px 9px 9px;display:flex}.mission-icon{background:var(--bg);border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.mission-text b{line-height:1.2;display:block}.rewards{color:var(--muted);gap:10px;margin-top:3px;font-size:13px;display:flex}.rewards span{align-items:center;gap:3px;display:inline-flex}.shop-item{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.shop-item button{align-items:center;gap:5px;display:inline-flex}.inline-stat{align-items:center;gap:4px;font-family:Instrument,sans-serif;font-size:15px;display:inline-flex}.empty{text-align:center;justify-items:center;gap:6px;padding:34px 16px;display:grid}.empty p{margin:0}.chip{border-radius:99px;align-items:center;gap:6px;display:inline-flex}.phone-head{margin-bottom:8px}.phone-head h2{margin:0;line-height:1.1}.sub-back{margin:2px 0 10px}.tiles{grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 12px;display:grid}.tile{border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:16px 4px;font-size:14px;font-weight:600;display:flex}.toggle{text-align:left;width:100%;box-shadow:none;background:0 0;border:0;align-items:center;gap:10px;padding:8px 2px;display:flex}.toggle:active:not(:disabled){transform:none}.switch{border:1.5px solid var(--ink);background:var(--line);width:46px;height:27px;transition:background-color .2s var(--ease);border-radius:99px;padding:2px;display:block}.switch i{background:var(--panel);border:1.5px solid var(--ink);width:20px;height:20px;transition:transform .24s var(--spring);border-radius:50%;display:block}.toggle[aria-checked=true] .switch{background:var(--coral)}.toggle[aria-checked=true] .switch i{transform:translate(19px)}.sound-board{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sound-board+.sound-board{margin-top:14px}.sound-board button[aria-pressed=true]{background:var(--coral)}.sound-board button{min-height:40px;padding:6px 8px;font-size:14px}.stats>div{flex-direction:column;gap:2px;display:flex}.write-card{background:var(--panel);border:1.5px solid var(--ink);box-shadow:0 4px 0 var(--ink);text-align:center;animation:wizard-in .26s var(--ease) both;border-radius:20px;flex-direction:column;align-items:center;gap:10px;padding:16px 14px 18px;display:flex}.write-card .word-art{border-radius:16px;width:170px;height:170px;margin:0;display:block;overflow:hidden}.write-card .word-art img{width:100%;height:auto;display:block}.write-answer{align-items:center;gap:4px;font:600 28px/1.15 Fraunces,Georgia,serif;display:inline-flex}.write-prompt{font:600 22px/1.2 Fraunces,Georgia,serif}.write-word{flex-wrap:nowrap;width:100%}.write-word input{text-align:center;font-size:18px}.write-result{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.write-result>small{font-size:15px;font-weight:600}.write-result .big{margin-top:8px}.listen-song{align-items:center;gap:8px;margin:2px 0 10px;display:inline-flex}.line-head{align-items:center;gap:6px;display:flex}.line-now b{color:var(--coral-ink,var(--accent))}.test{animation:rise .26s var(--ease) both}.test-item{animation:wizard-in .28s var(--ease) both}.test-q{font-size:18px}.test-progress{margin-bottom:10px}.note-button{top:calc(11px + env(safe-area-inset-top));opacity:.88;z-index:30;width:36px;height:36px;bottom:auto;right:112px}html:has(.scene-shell) .note-button{top:calc(66px + env(safe-area-inset-top));right:10px}html:has(.welcome) .note-button{right:12px}.note-button svg{width:18px;height:18px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.life{display:none}.world.zooming{transform:none}}.start-point{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.start-point small{color:var(--muted);font-weight:400}.start-note{margin:12px 0 0;font-size:13.5px}.mic-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;display:flex}.mic{text-align:left;align-items:center;gap:6px;max-width:100%;min-height:42px;padding:6px 14px;display:inline-flex}.mic-on{background:var(--coral);animation:.9s ease-in-out infinite alternate say-pulse}.mic-off{font-size:13.5px}.mic-problem{flex-basis:100%;margin:0}.veil{border:1.5px dashed var(--ink);min-height:40px;box-shadow:none;text-align:left;background:0 0;align-items:center;gap:6px;padding:6px 10px;font-size:14.5px;display:inline-flex}.say-slow{font-size:14px;font-weight:700}.order-line{background:var(--panel);border-radius:12px;min-height:48px;padding:10px 12px;font-size:17px;font-weight:600}.order-pieces{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.order-pieces button{min-height:44px;padding:6px 12px}.order-pieces button[aria-pressed=true]{opacity:.35}.summary-card{max-height:86vh;overflow-y:auto}.summary-score{width:auto;min-width:72px;padding:0 12px}.summary-list{text-align:left;gap:8px;margin:12px 0;display:grid}.after-card{text-align:left;gap:12px;display:grid}.after-card h2{margin:0}.proposal{margin-bottom:12px}.proposal p{margin:0 0 10px}.segments{gap:6px;margin:6px 0 8px;display:flex}.segments button{text-align:center;flex:1;min-height:44px;padding:6px 4px;font-size:14px}.segments button[aria-pressed=true]{background:var(--accent);color:var(--cream);border-color:var(--ink)}.settings h3{margin:10px 0 0}.giver{color:var(--muted);font-weight:400}.contacts{border-top:1.5px dashed var(--ink);margin-top:18px;padding-top:12px}.contacts h3{margin:0}.contact{opacity:.7;align-items:center;margin-top:8px}.contact>div{flex:1}
