:root{--surface:#F7F7F5;--ink:#1C1C1A;--muted:#8E8D8A;--hair:#E5E5E5;--accent:#A66E5A;--lh:1.6;--ease:cubic-bezier(.25,1,.5,1) }*{box-sizing:border-box}html,body{margin:0;background:var(--surface);color:var(--ink);font:16px/var(--lh) Geist,Söhne,Neue Haas Grotesk,Noto Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased}#app{max-width:480px;margin:0 auto;min-height:100dvh;padding:16px 20px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:24px}h1{font-size:clamp(1.75rem,7vw,2.25rem);line-height:1.2;margin:0;font-weight:700;letter-spacing:-.01em}h2{font-size:1.25rem;line-height:1.3;margin:0;font-weight:700}p{margin:0}.muted{color:var(--muted)}.small{font-size:13px}.caps{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.hair{border:0;border-top:1px solid var(--hair);margin:0}.art{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#e9e7e1;border-radius:4px}.art.tall{aspect-ratio:4/5}.bar{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:12px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}.bar b{display:block;font-size:1.05rem;font-variant-numeric:tabular-nums}.bar .neg{color:var(--accent)}.ledger{display:flex;flex-direction:column;gap:8px}.ledger li{display:flex;justify-content:space-between;gap:16px;list-style:none;font-variant-numeric:tabular-nums}ul.ledger{padding:0;margin:0}.opts{display:flex;flex-direction:column;gap:12px}.opt{text-align:left;background:#fff;border:1px solid var(--hair);border-radius:6px;padding:14px 16px;font:inherit;color:inherit;cursor:pointer;transition:border-color .4s var(--ease),transform .4s var(--ease)}.opt:active{transform:translateY(1px)}.opt:focus-visible,.opt:hover{border-color:var(--accent);outline:none}.opt[disabled]{opacity:.45;cursor:not-allowed}.opt .cost{display:block;color:var(--muted);font-size:13px;margin-top:4px}.btn{background:var(--ink);color:#fff;border:0;border-radius:6px;padding:14px 20px;font:inherit;font-weight:700;cursor:pointer;width:100%}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--hair)}.note{padding:12px 16px;background:#fff;border-left:2px solid var(--accent);font-size:15px}.day{display:flex;justify-content:space-between;align-items:baseline}.reveal{animation:reveal .5s var(--ease) both}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.postcard{width:100%;border-radius:4px;display:block;box-shadow:0 1px 0 var(--hair)}.postcard.blur{filter:blur(14px);pointer-events:none;-webkit-user-select:none;user-select:none}.pcwrap{position:relative;overflow:hidden;border-radius:4px;background:#e9e7e1}.pcwrap .lock{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:24px}.pcwrap .lock span{background:var(--surface);padding:10px 14px;border-radius:6px;font-weight:700}form{display:flex;flex-direction:column;gap:12px}input[type=text]{font:inherit;padding:12px 14px;border:1px solid var(--hair);border-radius:6px;background:#fff;width:100%}label.chk{display:flex;gap:10px;align-items:flex-start;font-size:14px}label.chk input{margin-top:4px}.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.seg .opt{text-align:center}.err{color:var(--accent);font-size:14px}footer{margin-top:auto;padding-top:24px}.dlg{display:flex;gap:12px;align-items:flex-end;margin:16px 0;cursor:pointer;-webkit-tap-highlight-color:transparent}.dlg .face{width:96px;height:96px;border-radius:6px;overflow:hidden;flex:none;background:#e9e7e1;position:relative}.dlg .face img{position:absolute;left:0;top:0;width:100%;display:block}.dlg .face .eyes,.dlg .face .mouth{transition:opacity .08s linear}.dlg .bubble{flex:1;background:#fff;border:1px solid var(--hair);border-radius:6px;padding:12px 14px;position:relative;min-height:72px}.dlg .who{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.dlg .text{margin:0;min-height:44px}.dlg .tap{position:absolute;right:12px;bottom:8px;font-size:11px;color:var(--muted);opacity:0;transition:opacity .3s}.dlg.done .tap{opacity:1;animation:tapblink 1.2s infinite}@keyframes tapblink{50%{opacity:.2}}.dlg.done .bubble{border-color:var(--accent)}.bar b.neg{color:var(--accent)}body.tense{--surface:#f3efe9 }body.under .bar b.neg{animation:pulse 1.6s infinite}@keyframes pulse{50%{opacity:.55}}.mute{position:fixed;bottom:12px;right:12px;z-index:9;background:#fff;border:1px solid var(--hair);border-radius:20px;padding:6px 10px;font-size:12px;color:var(--muted);cursor:pointer}.intake input{width:100%;box-sizing:border-box;font:inherit;padding:12px 14px;border:1px solid var(--hair);border-radius:6px;margin-top:8px}.variant{margin-top:20px}.seg.three .opt,.seg.wrap .opt{flex:1 1 30%;padding:10px 8px;font-size:14px}.seg.wrap{flex-wrap:wrap}.opt.sel{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.intake{display:flex;gap:8px;margin:12px 0;align-items:stretch}.intake input{flex:1 1 auto;min-width:0;margin:0}.intake .btn.ghost{flex:0 0 auto;width:auto;margin:0;padding:12px 16px;white-space:nowrap}.ambush{display:flex;justify-content:space-between;align-items:center;background:#3a1f1a;color:#fff;padding:12px 14px;border-radius:6px;margin:12px 0;animation:reveal .4s var(--ease) both}.ambush b{font-size:18px}.envelopes{display:grid;grid-template-columns:1fr;gap:8px;margin:12px 0}.env{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--hair);border-radius:6px;background:#fff;transition:all .4s var(--ease)}.env b{white-space:nowrap}.env.ok{border-color:#5a7a5a;background:#eef3ee}.env.fail{border-color:var(--accent);background:#f7ece8;color:var(--muted)}.env.fail b{text-decoration:line-through;color:var(--accent)}.env.ok b:after{content:" ✓";color:#5a7a5a}h1.pending{color:var(--muted)}.toast{background:#fff;border:1px solid var(--hair);border-left:3px solid var(--accent);border-radius:6px;padding:10px 12px;margin:8px 0;font-size:14px}.toast .who{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.quiet-note{font-style:italic}.opt.under{border-left:3px solid var(--accent)}#bar.shake{animation:shake .5s var(--ease)}@keyframes shake{20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 #8c281400;transition:box-shadow 1.2s var(--ease)}body.t2:after{box-shadow:inset 0 0 40px #8c28142e}body.t3:after{box-shadow:inset 0 0 70px #8c281452}body.flash:after{box-shadow:inset 0 0 90px #a0281480;transition:box-shadow .1s}body.t1 #app{filter:saturate(.92)}body.t2 #app{filter:saturate(.8)}body.t3 #app{filter:saturate(.62)}body.quiet #app{filter:saturate(.7) brightness(.96)}#app{transition:filter 1.5s var(--ease)}body.t3 .bar b.neg{animation:pulse 1.2s infinite}.page{max-width:520px;margin:0 auto;padding:16px 20px 40px}.stage{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#1c1c1a;color:var(--ink)}.stage .bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center 35%;transition:filter 1.5s var(--ease)}.stage .bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#14100c8c 0,#14100c00 22% 55%,#14100c73)}.hud{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 56px 10px 16px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.hud .hudl{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.hud .next{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud .day{font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.95}.hud .next{font-size:12px;opacity:.8}.hud .hudr{text-align:right}.hud .lbl{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.8}.hud .hudr{flex:none}.hud .cash{display:block;white-space:nowrap;font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.05}.hud .cash.neg{color:#f2a58f}.hud .cash.bump{animation:bump .5s var(--ease)}@keyframes bump{30%{transform:scale(1.12)}}.hud .delta{display:block;font-size:12px;color:#cfe3c9}.hud .delta.neg{color:#f2a58f}.hud.shake{animation:shake .5s var(--ease)}.char{position:absolute;z-index:1;left:50%;bottom:calc(var(--sheet, 22vh) - 5vh);transform:translate(-50%);width:min(88vw,calc(100dvh - var(--sheet, 22vh) - 6vh));aspect-ratio:1;transition:bottom .25s var(--ease),width .25s var(--ease);filter:drop-shadow(0 14px 22px rgba(0,0,0,.45));pointer-events:none}.char .face{position:relative;width:100%;height:100%;background:none;overflow:visible;border-radius:0;transition:opacity .3s}.char .face img{position:absolute;left:0;top:0;width:100%;display:block}.char .face.pop{animation:pop .35s var(--ease)}@keyframes pop{0%{transform:translateY(14px);opacity:0}}.char .face.dim{opacity:.55}.sheet{position:absolute;z-index:2;left:0;right:0;bottom:0;max-height:58vh;overflow:auto;background:#f7f7f5f7;border-radius:16px 16px 0 0;padding:14px 18px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -10px 34px #00000047}.sheet .title{margin:0 0 8px;font-size:20px;line-height:1.2}.sheet .dlg{display:block;margin:0;min-height:88px}.sheet .dlg .bubble{border:none;background:transparent;padding:0;min-height:0;border-radius:0}.sheet .dlg .text{font-size:17px;line-height:1.45;min-height:50px}.sheet .dlg .who:empty{display:none}.sheet .dlg .tap{right:0;bottom:0}.sheet .dlg.done .bubble{border:none}.sheet .dlg.done{box-shadow:inset 0 -2px 0 var(--accent)}.sheet .opts{display:flex;flex-direction:column;gap:8px;margin-top:6px}.sheet #actions .btn{margin-top:8px}.sheet #actions .caps{margin:6px 0}.sheet .ledger{margin:0 0 8px}.sheet .ambush{margin:0 0 10px}.sheet .toast{margin:6px 0}.mute{position:fixed;top:10px;right:12px;z-index:9;background:#1c1c1a73;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:20px;padding:5px 9px;font-size:14px;cursor:pointer;bottom:auto}.page~.mute,body:has(.page) .mute{background:#fff;border-color:var(--hair);color:var(--muted)}body.t1 .stage .bg{filter:saturate(.9)}body.t2 .stage .bg{filter:saturate(.75) brightness(.92)}body.t3 .stage .bg{filter:saturate(.55) brightness(.85)}body.quiet .stage .bg{filter:saturate(.6) brightness(.8)}body.t1 #app,body.t2 #app,body.t3 #app,body.quiet #app{filter:none}.hud{background:#14100c9e;padding:8px 52px 8px 12px;text-shadow:none;align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.hud .hudl{gap:2px}.hud .day{font-size:11px}.hud .next{font-size:11px;opacity:.75}.hud .lbl{display:none}.hud .cash{font-size:20px;line-height:1.1}.hud .delta{font-size:11px}.stage .bg:after{background:linear-gradient(to bottom,#14100c40 0,#14100c00 15% 45%,#14100c80)}.stage:not(:has(.char .face)) .bg{background-position:center 58%}.char{width:min(68vw,320px,calc(100dvh - var(--sheet, 22vh) - 14vh));bottom:calc(var(--sheet, 22vh) - 1vh);filter:brightness(.9) saturate(.82) contrast(.97);transition:bottom .25s var(--ease),width .25s var(--ease)}.char:after{content:"";position:absolute;left:8%;right:8%;bottom:-2vh;height:6vh;background:radial-gradient(ellipse at center,#14100c73,#14100c00 70%);z-index:-1}.sheet{border-radius:4px 4px 0 0;background:var(--surface);box-shadow:0 -1px 0 var(--hair);max-height:46vh;padding:12px 16px calc(14px + env(safe-area-inset-bottom))}.sheet.tall{max-height:84vh}.sheet .title{font-size:18px;margin-bottom:6px}.sheet:has(.dlg .who:not(:empty)) .title{display:none}.sheet .dlg .who{font-size:14px;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:6px}.sheet .dlg .text{font-size:18px;line-height:1.4;min-height:52px}.sheet .dlg{min-height:80px}.sheet .dlg .tap{display:none}.sheet .dlg.done{box-shadow:none}.sheet .dlg.done:after{content:"▾";position:absolute;right:0;bottom:2px;color:var(--accent);animation:tapblink 1.2s infinite}.sheet .dlg{position:relative}.sheet .opts{gap:0;margin-top:0}.sheet .opt{background:transparent;border:0;border-top:1px solid var(--hair);border-radius:0;min-height:52px;padding:12px 0}.sheet .opt .cost{color:var(--ink);opacity:.75;font-size:14px}.sheet .opt.under{border-left:0;padding-left:0}.sheet .opt.under .cost:before{content:"● ";color:var(--accent)}.sheet #actions .caps{margin:4px 0 0}.sheet .btn{background:transparent;color:var(--ink);border-top:1px solid var(--hair);border-radius:0;padding:14px 0;margin-top:6px;text-align:center}.sheet .btn.primary{background:var(--ink);color:#fff;border-radius:6px}.sheet .seg.wrap{flex-direction:column;gap:0}.sheet .seg.wrap .opt{flex:none;text-align:left;font-size:16px;padding:12px 0}.sheet .seg .opt.sel{box-shadow:none;color:var(--accent)}.sheet .ledger{font-size:14px}.sheet .ledger li{padding:6px 0}.sheet .toast{border-left-width:2px;padding:8px 10px;margin:4px 0}.sheet .ambush{background:transparent;color:var(--ink);border-top:2px solid var(--accent);border-radius:0;padding:8px 0}.sheet .ambush b{color:var(--accent)}.sheet .envelopes{gap:6px}.sheet .env{background:#f3efe6;border:0;border-radius:2px;box-shadow:0 1px #d9d3c7}.sheet .env.fail{background:#f3efe6}.sheet .env.ok{background:#eef3ee}.sheet .pcwrap{margin-top:8px}.sheet form input{width:100%;box-sizing:border-box;font:inherit;padding:12px 14px;border:1px solid var(--hair);border-radius:6px;margin-top:8px}.mute{top:6px;right:8px;width:40px;height:40px;padding:0;border-radius:8px;background:transparent;border:1px solid rgba(255,255,255,.3);font-size:16px;display:flex;align-items:center;justify-content:center}.stage:has(.opts) .char{width:min(44vw,190px)}.hud{background:#1c1410;-webkit-backdrop-filter:none;backdrop-filter:none}.stage:not(:has(.char .face)) .bg{background-position:center 80%;background-size:135%}.fatal{position:fixed;inset:auto 0 0 0;z-index:99;margin:0;padding:12px 14px;background:#3a1f1a;color:#fff;font-size:12px;white-space:pre-wrap;max-height:50vh;overflow:auto}
