:root{--paper:#f4ede0;--card:#fffaf0;--ink:#2b2723;--ink-2:#5d564d;--ink-3:#94897b;--rule:#ddd1bd;--ochre:#c08a2a;--ochre-d:#8f6418;--live:#2c7a5f;--warn:#b5523b;--sepia:#95643a;--serif:"Fraunces", "Iowan Old Style", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, Consolas, monospace;--hand:"Caveat", "Segoe Print", cursive;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}body{background:var(--paper);color:var(--ink);font:15px/1.4 var(--serif);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}code{font:.9em var(--mono);background:#efe6d3;border-radius:3px;padding:0 4px}.game{background:radial-gradient(at 50% 42%,#fbf6ea 0%,#f1e7d4 62%,#e6d8bf 100%);width:100vw;height:100vh;position:relative;overflow:hidden}.scene{width:100%;height:calc(100% - 194px);display:block;position:absolute;top:44px;left:0}.hud-top{pointer-events:none;align-items:center;gap:18px;height:52px;padding:0 20px;display:flex;position:absolute;top:0;left:0;right:0}.hud-top>*{pointer-events:auto}.brand{align-items:baseline;gap:10px;display:flex}.brand h1{letter-spacing:.24em;text-transform:uppercase;margin:0;font-size:19px;font-weight:500}.brand span{color:var(--ink-2);font-size:14px;font-style:italic}.mode-chip{color:var(--ink-2);border:1px solid var(--rule);background:#fffaf0b3;border-radius:20px;align-items:center;gap:7px;padding:4px 10px 4px 5px;font-size:13px;display:flex}.thoughts-btn{background:var(--card);border:1px solid var(--rule);border-radius:20px;padding:7px 14px;font-size:14px;box-shadow:0 1px #0000000a}.thoughts-btn:hover{border-color:var(--ink-3)}.badge{font:500 10px/1 var(--mono);letter-spacing:.08em;white-space:nowrap;text-transform:uppercase;border-radius:10px;padding:4px 7px 3px}.badge-live{background:var(--live);color:#fff}.badge-sim{border:1px solid var(--ink-3);color:var(--ink-2);background:#fff8ea}.badge-fallback{border:1px solid var(--warn);color:var(--warn)}.tutorial{background:var(--ink);color:#fbf4e6;text-align:center;cursor:pointer;border-radius:14px;width:fit-content;margin:0 auto;padding:12px 22px;font-size:18px;animation:.6s both fade;position:absolute;top:66px;left:0;right:0;box-shadow:0 8px 24px #3c280a2e}.tutorial p{margin:0}.tutorial em{color:#f2c230}.year-pill{background:var(--card);border:1px solid var(--rule);border-radius:40px;align-items:center;gap:10px;padding:7px 8px;display:flex;position:relative;box-shadow:0 6px 22px #462d0a24}.year-pill .yr{font:400 34px/1 var(--serif);font-variant-numeric:tabular-nums;text-align:center;min-width:92px;height:38px;overflow:hidden}.year-pill .yr span{animation:.5s cubic-bezier(.2,.7,.2,1) roll;display:inline-block}@keyframes roll{0%{opacity:0;transform:translateY(70%)}}.year-pill button{border:0;border-radius:30px;padding:10px 18px;font-size:15px}.year-pill .step{background:var(--ink);color:#fbf4e6;font-weight:500}.year-pill .step:hover:not(:disabled){background:#000}.year-pill .skip{color:var(--ochre-d);background:#f2e3c2}.year-pill .skip:hover:not(:disabled){background:#ecd6a6}.year-pill .round{width:38px;height:38px;color:var(--ink-2);background:#f1e8d6;padding:0;font-size:18px}.year-pill .round.on{background:var(--ochre);color:#fff}.year-pill button:disabled{opacity:.4}.thinking{color:#fbf4e6;background:#2b2723db;border-radius:20px;width:fit-content;margin:0 auto;padding:8px 18px;font-style:italic;position:absolute;top:66px;left:0;right:0}.thinking:after{content:"";animation:1.4s steps(4,end) infinite dots}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.game:has(.thinking) .scene{animation:1.6s ease-in-out infinite shimmer}@keyframes shimmer{50%{filter:brightness(1.06)saturate(.85)}}.decision-card{z-index:3;background:var(--card);border:1px solid var(--rule);border-top:4px solid var(--ochre);cursor:pointer;border-radius:12px;width:min(420px,100vw - 32px);padding:12px 16px;animation:.5s both fade;position:absolute;top:56px;right:16px;box-shadow:0 12px 34px #462d0a33}.decision-card.is-wait{border-top-color:var(--ink-3)}.decision-card header{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:8px;margin-bottom:8px;display:flex}.decision-card .x{margin-left:auto}.decision-card dl{grid-template-columns:74px 1fr;gap:4px 10px;margin:0;display:grid}.decision-card dt{font:500 10.5px/1.9 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ochre-d)}.decision-card dd{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14.5px;display:-webkit-box;overflow:hidden}.decision-card .decided{font-size:16px;font-weight:600}.decision-card .span{font:500 13px var(--mono);align-items:center;gap:8px;margin-top:10px;display:flex}.decision-card .span i{background:linear-gradient(90deg, var(--ochre), #f0d9a6);border-radius:2px;flex:1;height:3px;position:relative}.decision-card .span i:after{content:"";border:5.5px solid #0000;border-left:7px solid #e6c47e;position:absolute;top:-4px;right:-2px}.decision-card .span em{background:var(--ochre);color:#fff;border-radius:10px;margin-left:6px;padding:2px 9px;font-style:normal}.vnote{font:11.5px/1.4 var(--mono);color:var(--warn);margin:6px 0 0}.x{color:var(--ink-3);background:0 0;border:0;padding:0 2px;font-size:20px;line-height:1}.x:hover{color:var(--ink)}.floating-bubble{z-index:4;width:260px;position:fixed}.bubble{background:var(--card);border:2px solid var(--accent);width:260px;font:14px/1.35 var(--serif);color:var(--ink);border-radius:16px;padding:10px 14px 12px;animation:.3s both fade;position:relative;box-shadow:0 10px 26px #462d0a33}.above .bubble:after{content:"";left:var(--tail,50%);border:10px solid #0000;border-top:11px solid var(--accent);border-bottom:0;margin-left:-10px;position:absolute;bottom:-11px}.below .bubble:after{content:"";left:var(--tail,50%);border:10px solid #0000;border-bottom:11px solid var(--accent);border-top:0;margin-left:-10px;position:absolute;top:-11px}.bubble.is-memorial{background:#f4f0ea}.bubble .legacy{color:var(--ink-2);margin:0;font-size:13.5px;font-style:italic}.bubble .reaction.mood-mixed{background:#f1efe4}.bubble .reaction.mood-disrupted{background:#e9ecf1}.bottom-hud{pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:12px;left:0;right:0}.bottom-hud>*{pointer-events:auto}.dock{gap:8px;display:flex}.portrait{border:1.5px solid var(--rule);text-align:left;background:#fffaf0eb;border-radius:30px;align-items:center;gap:8px;padding:4px 12px 4px 4px;transition:border-color .2s,transform .2s,opacity .2s,box-shadow .2s;display:flex;position:relative}.portrait:hover{border-color:var(--accent);transform:translateY(-2px)}.portrait.on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 30%, transparent), 0 6px 16px #462d0a24}.portrait.dim{opacity:.62}.portrait .face{border-radius:50%;flex:none;width:40px;height:40px;overflow:hidden}.portrait .face-bg{fill:color-mix(in srgb, var(--accent) 22%, #fffaf0)}.portrait .who{flex-direction:column;line-height:1.15;display:flex}.portrait .who b{font-size:14.5px;font-weight:600}.portrait .who span{font:11px var(--mono);color:var(--ink-2)}.portrait .dot{background:var(--accent);border:2px solid #fffaf0;border-radius:50%;width:10px;height:10px;animation:1.4s ease-in-out infinite bounce;position:absolute;top:2px;left:34px}.portrait.memorial{background:#f0ece6e6}.portrait.memorial .face{filter:grayscale()opacity(.75)}.portrait.memorial .who b{color:var(--ink-2);font-weight:500}.year-pill .why{color:var(--ink-3);max-width:190px;padding-right:8px;font-size:12.5px;font-style:italic;line-height:1.2}.skip-wrap{display:inline-flex}.bubble header{align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.bubble header b{font-size:17px;font-weight:600}.bubble header span{font:11.5px var(--mono);color:var(--ink-3)}.bubble header .x{margin-left:auto}.bubble q{margin:2px 0 8px;font-size:16px;font-style:italic;display:block}.bubble q.idle{color:var(--ink-2)}.bubble .reaction{background:#f6efe0;border-radius:10px;margin:2px 0 8px;padding:6px 9px;font-size:15px}.bubble .reaction i{margin-right:4px;font-style:normal}.bubble .reaction.mood-delighted{background:#fbe9e4}.bubble .reaction.mood-bittersweet{background:#ece7f3}.bubble .tell{background:var(--accent);color:#fff;border:0;border-radius:10px;width:100%;padding:9px 12px;font-size:15px;font-weight:600;box-shadow:0 3px #0000002e}.bubble .tell:hover{filter:brightness(1.07)}.bubble .status{color:var(--ochre-d);margin:4px 0 0;font-size:13.5px;font-style:italic}.bubble .building{color:var(--ochre-d);font-size:13px}.bubble .building .bar{background:#f0e3c6;border-radius:4px;height:7px;margin:4px 0 3px;overflow:hidden}.bubble .building .bar i{background:var(--ochre);border-radius:4px;height:100%;display:block}.bubble .ready{font:500 12px var(--mono)}.drawer{background:var(--card);border-left:1px solid var(--rule);z-index:5;width:min(400px,92vw);padding:16px 18px;animation:.3s both fade;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-12px 0 30px #462d0a1f}.drawer header{align-items:center;display:flex}.drawer h2{margin:0;font-size:18px;font-weight:500}.drawer .x{margin-left:auto}.drawer-mode{color:var(--ink-2);margin:8px 0;font-size:13.5px}.drawer-actions{align-items:center;gap:8px;margin:4px 0 14px;display:flex}.drawer-actions button{border:1px solid var(--rule);background:#f3ead8;border-radius:14px;padding:4px 12px;font-size:13px}.drawer-actions span{font:11px var(--mono);color:var(--ink-3)}.link{border:0;border-bottom:1px dotted var(--ink-3);font-size:inherit;color:var(--ink-2);background:0 0;padding:0}.ledger{flex-direction:column;gap:10px;padding-bottom:20px;display:flex}.yr{font:500 11px var(--mono);color:var(--ochre-d);margin-right:4px}.entry header{align-items:center;gap:8px;margin-bottom:5px;display:flex}.kicker{font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.entry-decision{border:1px solid var(--rule);border-left:3px solid var(--ochre);background:#fcf6ea;border-radius:6px;padding:9px 11px}.entry-decision.is-wait{border-left-color:var(--ink-3);background:0 0}.entry-decision dl{grid-template-columns:62px 1fr;gap:2px 8px;margin:0;display:grid}.entry-decision dt{font:500 9.5px/1.9 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ochre-d)}.entry-decision dd{margin:0;font-size:13px}.entry-decision .decided{font-weight:600}.entry .span{font:11px var(--mono);color:var(--ink-2);align-items:center;gap:6px;margin:7px 0 0;display:flex}.entry .span i{background:var(--ochre);height:1px}.entry .span b{color:var(--ochre-d);margin-left:6px;font-weight:500}.utterance{margin:6px 0 0;font-size:13.5px;font-style:italic}.entry-done{border-left:3px double var(--ink);padding:4px 10px;font-size:13px}.entry-done p{margin:0}.entry-done.too-late{border-left-color:var(--warn)}.stamp{font:600 9.5px var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--warn);border:1.5px solid var(--warn);margin-left:auto;padding:1px 5px}.entry-refusal{border-left:3px solid var(--warn);padding:4px 10px;font-size:13px}.entry-refusal p{margin:0}.entry-event{color:var(--ink-2);margin:0;font-size:12.5px;font-style:italic}.entry-thinking{color:var(--ochre-d);font-style:italic}.scene polygon,.scene line,.scene circle,.scene ellipse,.scene polyline,.scene path{vector-effect:non-scaling-stroke}.flat{stroke:#50463240;stroke-width:.6px}.f-street{fill:#e9dfc9}.f-stone{fill:#ded3bc}.cobble{fill:url(#cobble);stroke:none}.cobble-dot{fill:#bba98a}.f-asphalt{fill:#a7a196}.f-gravel{fill:#e6d9b8}.f-sand{fill:#f0d99a}.f-water{fill:#9fc4cf}.f-pale{fill:#efe5cf}.f-grass{fill:#b3c98c}.f-earth{fill:#b8946a}.box polygon{stroke:#32281959;stroke-width:.5px;stroke-linejoin:round}.m-stone.t{fill:#e8dfcc}.m-stone.s{fill:#cdc1a8}.m-stone.e{fill:#b9ab90}.m-wood.t{fill:#cfa872}.m-wood.s{fill:#ad8752}.m-wood.e{fill:#977445}.m-hedge.t{fill:#8fb062}.m-hedge.s{fill:#6e914a}.m-hedge.e{fill:#5d7d3e}.m-plaster.t{fill:#f3ead8}.m-plaster.s{fill:#e0d2b8}.m-plaster.e{fill:#cdbb9b}.m-car.t{fill:#c9c2b4}.m-car.s{fill:#a39b8d}.m-car.e{fill:#8f877a}.m-red.t{fill:#e07a55}.m-red.s{fill:#c15f40}.m-red.e{fill:#a85237}.m-bronze.t{fill:#8c6c3b}.m-bronze.s{fill:#6f5530}.m-bronze.e{fill:#5d4728}.m-house.s{fill:#f0e2c8;stroke:#3228194d;stroke-width:.5px}.m-house.e{fill:#dcc9a6;stroke:#3228194d;stroke-width:.5px}.roof.s{fill:#c0704f;stroke:#3228194d;stroke-width:.5px}.roof.e{fill:#a15a3e;stroke:#3228194d;stroke-width:.5px}.window{fill:#7f97a6;opacity:.6}.slide{fill:#f0b04a;stroke:#32281959;stroke-width:.5px}.ball{fill:#e07a55}.ringline{fill:none;stroke:#7e6545;stroke-width:.7px}.line{stroke:var(--ink-2);stroke-width:1px;fill:none}.line.stall{stroke:#eee8dc;stroke-width:1.2px}.line.pergola{stroke:#8f7650;stroke-width:1.6px}.line.frame{stroke:#6b5a44;stroke-width:1.6px}.tree .trunk{stroke:#6b5a44;stroke-linecap:round}.tree .shade{fill:#3c321e1f}.canopy{stroke:#28371940;stroke-width:.6px}.canopy.c1{fill:#77a056}.canopy.c2{fill:#87b062}.canopy.c3{fill:#98c072}.ground-layer{transition:filter .6s}.show-layers .ground-layer,.has-vision .ground-layer{filter:saturate(.55)brightness(1.03)}.construction .fence{fill:none;stroke:var(--ochre);stroke-width:1.6px;stroke-dasharray:7 3}.construction .fencepost line{stroke:var(--ochre);stroke-width:1.4px}.construction .future{filter:saturate(.35);transition:opacity 1s}.memorial .flame{transform-box:fill-box;transform-origin:50% 100%;animation:1.3s ease-in-out infinite flicker}@keyframes flicker{50%{opacity:.8;transform:scaleY(.8)}}.work-sign{pointer-events:none}.sign-post{stroke:var(--ochre-d);stroke-width:2px}.sign-board{fill:#fff6e2;stroke:var(--ochre);stroke-width:1.5px;filter:drop-shadow(0 3px 4px #462d0a2e)}.sign-title{font:600 12px var(--serif);fill:var(--ink)}.sign-track{fill:#f0e1bf}.sign-fill{fill:var(--ochre);transition:width .6s cubic-bezier(.2,.7,.2,1)}.sign-year{font:500 10px var(--mono);fill:var(--ochre-d)}.vision{pointer-events:none;animation:.5s both fade}.vision-art{opacity:.5;animation:2.8s ease-in-out infinite dream}.vision-art *{stroke-dasharray:4 3;stroke:var(--accent)!important}.vision-art .flat,.vision-art .box polygon{fill-opacity:.55}.vision-edge{fill:none;stroke:var(--accent);stroke-width:2.4px;stroke-dasharray:2 6;stroke-linecap:round;animation:1.2s linear infinite march}.vision-thread{fill:none;stroke:var(--accent);stroke-width:1.6px;stroke-dasharray:1 5;stroke-linecap:round;opacity:.8;animation:1.2s linear infinite march}.vision-tag text{font:700 22px var(--hand);fill:var(--accent);paint-order:stroke;stroke:#fffaf0;stroke-width:4px;stroke-linejoin:round}.vision-tag{animation:3s ease-in-out infinite float}.vision-roth .vision-art{filter:sepia(.6)}@keyframes dream{50%{opacity:.32}}@keyframes march{to{stroke-dashoffset:-12px}}@keyframes float{50%{transform:translateY(-4px)}}@keyframes fade{0%{opacity:0}}.ghost{pointer-events:none}.ghost *{stroke-dasharray:3 2.5;fill:none!important;stroke:var(--sepia)!important;stroke-width:.9px!important;filter:none!important}.ghost-sheet{animation:.9s both fade}.ghost-sheet *{stroke:var(--ochre)!important}.ghost .sheet{stroke-dasharray:none;fill:#fffaf08c!important}.ghost .sheet-year{font:500 12px var(--mono);fill:var(--ochre-d)!important;stroke:none!important}.character{cursor:pointer;outline:none}.ch-hit{fill:#0000}.ch-shadow{fill:#3c280f38}.ch-halo{fill:none;stroke-width:2.4px;opacity:0;transition:opacity .25s}.character.is-hovered .ch-halo,.character.is-selected .ch-halo,.character:focus-visible .ch-halo{opacity:1}.character.is-hovered .ch-idle{filter:drop-shadow(0 0 3px #fff0c8e6)brightness(1.06)}.ch-scale{transition:transform 1.1s cubic-bezier(.3,.8,.3,1)}.ch-idle{animation:2.2s ease-in-out infinite bob}.ch-idle.hop{animation-name:hop}@keyframes bob{50%{transform:translateY(-1.2px)}}@keyframes hop{0%,60%,to{transform:none}75%{transform:translateY(-4px)}}.character.passing{pointer-events:none;animation:3.2s ease-in .4s both passing}@keyframes passing{0%{opacity:1}60%{opacity:.5;filter:brightness(1.3)blur(.3px)}to{opacity:0;filter:brightness(1.6)blur(1px)}}.leaf{fill:#9db86a;animation:3.4s ease-in both leaf}@keyframes leaf{0%{opacity:0;transform:translate(0)rotate(0)}15%{opacity:1}to{opacity:0;transform:translate(10px,60px)rotate(140deg)}}.tut-ring{fill:none;stroke:#e9b320;stroke-width:3px;transform-box:fill-box;transform-origin:50%;animation:1.5s ease-out infinite ring}@keyframes ring{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}.indicator{animation:1.4s ease-in-out infinite bounce}.indicator text{font:700 12px var(--mono);fill:#fff}.ind-wait text{fill:var(--ochre-d)}.ind-wait{animation-duration:3s}@keyframes bounce{50%{transform:translateY(-4px)}}.anchor{fill:none;pointer-events:none}.character{transition:opacity .35s,filter .35s}.character.is-dim{opacity:.5;filter:saturate(.4)}.character.is-selected .ch-idle{filter:drop-shadow(0 0 4px #fff5d2)}.ch-label{pointer-events:none}.ch-label text{font:600 9.5px var(--mono);fill:#fff;letter-spacing:.03em}.character.is-selected .ch-label rect{stroke:#fffaf0;stroke-width:1.5px}.memorial-label rect{fill:#6f6a73}.memorial-anchor .ch-halo{stroke-dasharray:3 3}.memorial-anchor:hover .ch-halo{opacity:.7}.persp .ground-layer{filter:saturate(.6)brightness(1.03)}.mood-mixed rect{fill:#f3f1e6;stroke:#c9c08f}.mood-disrupted rect{fill:#e8ecf2;stroke:#9aa8bf}.cap-toss{animation:2.2s cubic-bezier(.3,.6,.4,1) both toss}@keyframes toss{0%{transform:none}45%{transform:translateY(-34px)rotate(-200deg)}to{transform:none}}.popups{pointer-events:none}.pop{animation:5.5s ease-out both popfloat}.pop rect{fill:var(--card);stroke:var(--rule);stroke-width:1px;filter:drop-shadow(0 3px 5px #462d0a2e)}.pop text{font:600 12.5px var(--serif);fill:var(--ink)}.pop-milestone rect{fill:#2b2723;stroke:none}.pop-milestone text{fill:#fbf4e6;font:600 12px var(--mono)}.pop-reaction text{font:italic 13px var(--serif)}.mood-delighted rect{fill:#fdeee8;stroke:#e5a08a}.mood-bittersweet rect{fill:#f0ecf6;stroke:#b4a6cf}.mood-surprised rect{fill:#eef6e4;stroke:#a7c67f}.pop-death rect{fill:#3a3550}.pop-reaction{animation:9s ease-out both popstay}@keyframes popfloat{0%{opacity:0}10%{opacity:1}80%{opacity:1}to{opacity:0}}@keyframes popstay{0%{opacity:0}8%{opacity:1}88%{opacity:1}to{opacity:0}}.sound{border:1px solid var(--rule);background:#fffaf0b3;border-radius:20px;align-items:center;gap:6px;margin-left:auto;padding:3px 10px 3px 3px;display:flex}.sound button{width:28px;height:28px;font:600 15px/1 var(--serif);color:var(--ochre-d);background:#f1e8d6;border:0;border-radius:50%;position:relative}.sound button:hover{background:#ecd6a6}.sound.off button{color:var(--ink-3)}.sound.off button:after{content:"";background:var(--warn);height:1.5px;position:absolute;top:50%;left:6px;right:6px;transform:rotate(-40deg)}.sound input[type=range]{width:76px;accent-color:var(--ochre)}.sound.off input[type=range]{opacity:.45}.camera{transform-origin:0 0;transition:transform .75s cubic-bezier(.45,.05,.2,1)}.face .eyes{transform-box:fill-box;transform-origin:50%;animation:5.2s infinite blink;animation-delay:var(--blink-delay,0s)}.face-tired .eyes{animation-duration:3.4s}.face-surprised .eyes{animation-duration:7s}@keyframes blink{0%,94%,to{transform:none}96.5%{transform:scaleY(.12)}}.ch-idle{transform-box:fill-box;transform-origin:50% 100%}.ch-idle.emo-happy{animation-name:e-happy;animation-timing-function:cubic-bezier(.3,0,.5,1)}.ch-idle.emo-frustrated{animation-name:e-stamp;animation-timing-function:steps(2,jump-none)}.ch-idle.emo-tired{animation-name:e-sag}.ch-idle.emo-bored{animation-name:e-sway}.ch-idle.emo-confused{animation-name:e-tilt}.ch-idle.emo-surprised{animation-name:e-jump;animation-iteration-count:1;animation-fill-mode:both}@keyframes e-happy{0%,to{transform:none}45%{transform:translateY(-3px)scaleY(1.02)}}@keyframes e-stamp{0%,to{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)translateY(-.6px)}}@keyframes e-sag{0%,to{transform:none}55%{transform:translateY(1.2px)scaleY(.985)}}@keyframes e-sway{0%,to{transform:rotate(-1.8deg)}50%{transform:rotate(1.8deg)}}@keyframes e-tilt{0%,30%,to{transform:none}45%,80%{transform:rotate(-3deg)}}@keyframes e-jump{0%{transform:none}18%{transform:translateY(-7px)scaleY(1.05)}34%{transform:translateY(0)scaleY(.96)}46%,to{transform:none}}.emote{font:700 17px var(--hand);fill:var(--ink-2);paint-order:stroke;stroke:#fffaf0;stroke-width:3px;pointer-events:none;animation:3.2s ease-in-out infinite emote,.6s both fade}.emote-happy{fill:#c98a12}.emote-frustrated{fill:var(--warn);animation-duration:.9s,.6s}.emote-surprised{fill:var(--ochre-d);font-size:20px}.emote-tired{fill:#7d7790}.emote-confused{fill:#5a7aa3}@keyframes emote{0%,to{opacity:.9;transform:translateY(0)}50%{opacity:.6;transform:translateY(-4px)}}.bubble .emo-chip{font:500 10.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:#f3ead8;border-radius:10px;margin:0 0 6px;padding:2px 8px 1px;display:inline-block}.emo-chip.emo-happy{color:#8f6418;background:#fbecc6}.emo-chip.emo-surprised{color:#557a2e;background:#eef6e4}.emo-chip.emo-confused{color:#3f5f88;background:#e7eef6}.emo-chip.emo-frustrated{color:var(--warn);background:#f8e2db}.emo-chip.emo-tired{color:#615b78;background:#ece9f1}.emo-chip.emo-bored{color:var(--ink-3);background:#efece6}.bubble q.says{font-size:15.5px}.bubble .aside{color:var(--ink-2);margin:0 0 6px;font-size:13.5px;font-style:italic}.bubble .aside i{font:normal 500 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-right:3px}.bubble.is-thought{background:#fffdf7;border-style:dashed;border-radius:26px}.bubble.is-thought q.thinks{color:var(--ink);font-family:var(--serif)}.above .bubble.is-thought:after,.below .bubble.is-thought:after{border:2px dashed var(--accent);background:#fffdf7;border-radius:50%;width:12px;height:12px;margin-left:-6px}.above .bubble.is-thought:after{bottom:-18px}.below .bubble.is-thought:after{top:-18px}.above .bubble.is-thought:before,.below .bubble.is-thought:before{content:"";left:var(--tail,50%);border:1.5px solid var(--accent);background:#fffdf7;border-radius:50%;width:7px;height:7px;margin-left:-1px;position:absolute}.above .bubble.is-thought:before{bottom:-29px}.below .bubble.is-thought:before{top:-29px}.mood-strip{border-top:1px dotted var(--rule);align-items:center;gap:2px;margin-top:8px;padding-top:7px;display:flex}.mood-strip .ms{border-radius:50%;flex:none;width:20px;height:20px}.mood-strip .ms svg{width:20px;height:20px;display:block}.mood-strip .ms-head{fill:#f0c9a4;stroke:#503c2840;stroke-width:.6px}.mood-strip .ms.empty{border:1px dashed var(--rule);background:0 0;transform:scale(.55)}.mood-strip .ms.now{box-shadow:0 0 0 2px var(--accent)}.mood-strip .ms .eyes{animation:none}.mood-strip .ms-from,.mood-strip .ms-to{font:10px var(--mono);color:var(--ink-3)}.mood-strip .ms-from{margin-right:3px}.mood-strip .ms-to{margin-left:3px}.floating-bubble,.bubble{width:272px}@media (prefers-reduced-motion:reduce){.camera{transition:none}.ch-idle,.face .eyes,.emote{animation:none!important}}@media (width<=720px){.sound input[type=range]{width:52px}.brand span,.mode-chip span{display:none}.year-pill{gap:6px;padding:5px}.year-pill .yr{min-width:70px;height:30px;font-size:26px}.year-pill button{padding:8px 12px;font-size:13px}}
