: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;height:100%;background:var(--ink)}body{color:var(--ink);font:16px/var(--lh) Geist,Söhne,Neue Haas Grotesk,Noto Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}h1{font-size:clamp(1.75rem,7vw,2.25rem);line-height:1.2;margin:0;font-weight:700;letter-spacing:-.01em}p{margin:0}.muted{color:var(--muted)}.caps{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}button{font:inherit}.page{min-height:100dvh;background:var(--surface);color:var(--ink);padding:16px 20px calc(40px + env(safe-area-inset-bottom));max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.page .cover{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px;display:block}.page .stack{display:flex;flex-direction:column;gap:12px}.page .stack p{font-size:17px;line-height:1.5}.page.title{justify-content:center}.page.title .cover{filter:brightness(.85)}.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:12px 14px;background:var(--surface);color:var(--ink);border:1.5px solid var(--ink);border-radius:4px;font-size:16px;font-weight:600;cursor:pointer;text-align:center}.btn.primary{background:var(--ink);color:var(--surface)}.btn.alt{border-color:var(--hair);color:var(--muted)}.stage{position:fixed;top:0;left:0;right:0;height:var(--vvh, 100dvh);overflow:hidden;background:#1c1c1a;color:var(--ink);user-select:none;-webkit-user-select:none;touch-action:none;--inset:min(30vw, 132px);--focus-h:min(24vh, 150px);--focus-low-h:min(16vh, 104px);--focus-shift:13vh;--replay-h:0px }.stage .bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center 35%;background-repeat:no-repeat;transition:filter 1.5s var(--ease),background-image .6s}.stage .bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#14100c40 0,#14100c00 15% 45%,#14100c80);pointer-events:none}.stage.nobust .bg{background-position:center 55%}.stage.nobust .char{opacity:0;transition:opacity .4s}.hud{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;color:#fff;background:#14100c8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.hud .hudr{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px 8px;flex:0 1 auto;margin-left:auto}.hud .hudl{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 150px}.hud .day{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.95}.hud .next{font-size:12px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud .clock{flex:none;font-size:12px;opacity:.85;white-space:nowrap;font-variant-numeric:tabular-nums}.hud .note,.hud .again{flex:none;font:500 11px/1 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#cfc8bb;background:#1412108c;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:7px 10px;opacity:.85;cursor:pointer}.hud .note[hidden],.hud .again[hidden]{display:none}.char{position:absolute;z-index:1;left:50%;bottom:calc(var(--sheet, 22vh) - 1vh);transform:translate(-50%);width:min(68vw,320px,calc(var(--vvh, 100dvh) - var(--sheet, 22vh) - 14vh - var(--replay-h, 0px)));aspect-ratio:1;transition:bottom .25s var(--ease),width .25s var(--ease);filter:drop-shadow(0 14px 22px rgba(0,0,0,.45)) brightness(.92) saturate(.85);pointer-events:none;transform-origin:bottom center}.char:after{content:"";position:absolute;left:8%;right:8%;bottom:-2vh;height:6vh;background:radial-gradient(ellipse at center,#14100c80,#14100c00 70%);z-index:-1}.char .face{position:relative;width:100%;height:100%;transition:opacity .3s,filter .3s,transform .3s;transform-origin:bottom center}.char .face img{position:absolute;left:0;top:0;width:100%;display:block}.char .face .expr,.char .face .eyes,.char .face .mouth{transition:opacity .08s linear}.char .face.pop{animation:pop .35s var(--ease)}@keyframes pop{0%{transform:translateY(14px);opacity:0}}.char .face.dim{filter:brightness(.72) saturate(.85);transform:scale(.96)}.stage.exam .char{opacity:0;transition:opacity .6s}.stage.exam .bg{top:var(--hud-height, 80px);bottom:var(--sheet);background-repeat:no-repeat;transition:none}.stage.exam .bg:after{background:linear-gradient(to bottom,#14100c59 0,#14100c00 18%)}.char .face{transition:transform .9s var(--ease),filter .3s,opacity .3s}.char.t-slump .face{transform:translateY(5%) scale(.97) rotate(1.5deg)}.char.t-slump .face.dim{transform:translateY(5%) scale(.94) rotate(1.5deg)}.char.t-brace .face{transform:translateY(-1.5%) scale(1.01)}.char.t-lean .face{transform:translateY(-2%) translate(3%) scale(1.03)}.char.t-reorient .face{animation:reorient 1.6s var(--ease)}@keyframes reorient{0%{transform:translateY(5%) rotate(1.5deg)}60%{transform:translateY(-1%) rotate(-.5deg)}to{transform:none}}.char.t-curl .face{transform:translateY(6%) scale(.9) rotate(-2deg)}.char.b-belly .face img.base,.char.b-belly .face img.expr{animation:breath 5.2s ease-in-out infinite}.char.b-slow .face img.base,.char.b-slow .face img.expr{animation:breath 7s ease-in-out infinite}.char.b-chest .face img.base,.char.b-chest .face img.expr{animation:breathc 2.4s ease-in-out infinite}.char.b-fast .face img.base,.char.b-fast .face img.expr{animation:breathc 1.1s ease-in-out infinite}.char.b-held .face img.base,.char.b-held .face img.expr{animation:none;transform:translateY(-.6%)}.char.b-none .face img{animation:none}@keyframes breath{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(-.9%) scaleY(1.008)}}@keyframes breathc{0%,to{transform:translateY(0)}50%{transform:translateY(-1.3%)}}.hands{position:absolute;z-index:2;left:10px;bottom:calc(var(--sheet, 22vh) + 10px);width:var(--inset);aspect-ratio:1;border-radius:6px;overflow:hidden;box-shadow:0 8px 24px #00000073;opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s;pointer-events:none;background:#2a2521}.hands.in{opacity:1;transform:none}.hands img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .3s}.stage.exam .hands,.stage.nobust .hands{opacity:0}.bodynote{position:absolute;z-index:2;left:10px;bottom:calc(var(--sheet, 22vh) + 14px + var(--inset));max-width:min(62vw,320px);margin:0;color:#efe9df;font:italic 400 .8125rem/1.35 system-ui,sans-serif;text-shadow:0 1px 4px rgba(0,0,0,.85);pointer-events:none}.bodynote[hidden]{display:none}.stage.exam .bodynote,.stage.nobust .bodynote{opacity:0}.stage.replaying .bodynote{display:none}.focus{position:absolute;z-index:2;left:62%;height:var(--focus-h);width:auto;bottom:calc(var(--sheet, 22vh) + 6vh);transition:bottom .9s var(--ease),opacity .5s;pointer-events:none;filter:drop-shadow(0 10px 18px rgba(0,0,0,.5)) brightness(.95)}.focus.hi{bottom:calc(var(--sheet, 22vh) + 6vh + var(--focus-shift))}.focus.lo{height:var(--focus-low-h);bottom:calc(var(--sheet, 22vh) + 1vh)}.focus[hidden]{display:none}.stage.exam .focus,.stage.nobust .focus{opacity:0}.char.nomove .face,.char.nomove .face img,.char.nomove~.hands,.char.nomove~.hands img,.char.nomove~.focus{transition:none}.marks{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .35s}.marks.in{opacity:1}.marks.in .mark{pointer-events:auto}.mark{position:absolute;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;border:2px solid rgba(255,255,255,.75);background:radial-gradient(circle,#ffffff2e,#fff0 70%);box-shadow:0 0 0 6px #ffffff14;cursor:pointer;animation:markpulse 2.2s ease-in-out infinite}@keyframes markpulse{50%{box-shadow:0 0 0 10px #ffffff0d}}.mark:focus-visible{outline:3px solid #fff;outline-offset:3px}.mark[hidden],.mark-label[hidden]{display:none}.mark:before{content:"";position:absolute;left:22px;top:22px;height:1px;width:var(--stem-length, 0px);transform:rotate(var(--stem-angle, 0rad));transform-origin:left center;background:#fff;pointer-events:none}.mark-label{position:absolute;width:max-content;max-width:9rem;padding:4px 8px;background:#29231f;color:#fff;border-radius:4px;font:500 .75rem/1.3 system-ui,sans-serif;text-align:left;pointer-events:none}.mark.act{border-color:#ffffffe6;background:radial-gradient(circle,#ffffff4d,#ffffff0a 70%)}.mark.act .mark-label{left:50%;top:32px;transform:translate(-50%);max-width:min(70vw,20rem);text-align:center;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.mark.act .mark-label.up{top:auto;bottom:32px}.remprobe{position:absolute;left:-9999px;top:0;width:1rem;height:1rem;pointer-events:none}.mark.act:before{content:none}.replay{position:absolute;z-index:5;left:8px;right:8px;top:calc(var(--hud-height, 80px) + 8px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:10px 12px;border-radius:8px;background:#14100cdb;color:#f4efe6;box-shadow:0 6px 20px #0006}.replay[hidden]{display:none}.replay .rcap{flex:1 1 12rem;min-width:0;font:500 .8125rem/1.35 system-ui,sans-serif}.replay .ropts{display:flex;gap:8px;flex:0 0 auto}.replay .rbtn{min-height:40px;padding:8px 14px;border-radius:4px;border:1.5px solid #f4efe6;background:#f4efe6;color:#1c1c1a;font-size:14px;font-weight:600;cursor:pointer}.replay .rbtn.alt{background:transparent;color:#f4efe6}.replay .rbtn[hidden]{display:none}.replay .rbtn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.prop{position:absolute;z-index:2;right:12px;top:calc(env(safe-area-inset-top) + 64px);width:120px;height:120px;object-fit:cover;border:4px solid var(--surface);box-shadow:0 10px 30px #00000073;opacity:0;transform:translateY(8px) rotate(-3deg);transition:opacity .5s,transform .5s;pointer-events:none}.prop.in{opacity:1;transform:translateY(0) rotate(-3deg)}.toast{position:absolute;z-index:4;left:50%;top:calc(env(safe-area-inset-top) + 64px);transform:translate(-50%);background:#14100ccc;color:#fff;padding:8px 14px;border-radius:999px;font-size:13px;white-space:nowrap;animation:toast 2.2s var(--ease) forwards;pointer-events:none}@keyframes toast{0%{opacity:0;transform:translate(-50%,6px)}12%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0}}.sheet{position:absolute;z-index:2;left:0;right:0;bottom:0;background:#f7f7f5f7;border-radius:16px 16px 0 0;padding:14px 18px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -10px 34px #00000047}.sheetbody{position:relative;min-height:0}.sheet .sheetin{max-height:calc(var(--vvh, 100dvh) * .44);overflow:auto;display:flex;flex-direction:column;gap:8px}.sheet.tall .sheetin{max-height:calc(var(--vvh, 100dvh) * .62)}.sheet>.chip{position:absolute;z-index:3;top:0;left:12px;transform:translateY(-50%);margin:0;border-radius:3px;font-size:13px;font-weight:600;letter-spacing:.02em;padding:4px 10px;background:var(--ink);color:var(--surface);max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet>.chip.inner{background:var(--accent)}.sheet>.chip.narr{display:none}.dlg{position:relative;min-height:64px}.dlg .text{font-size:17px;line-height:1.45;min-height:48px;margin:0}.dlg.narr .text{font-style:italic;color:#4a4744}.dlg.inner .text{font-style:italic;color:#5a463e}.continue-hint{display:none;margin-top:8px;color:#59534e;font:500 .75rem/1.4 system-ui,sans-serif;font-style:normal;text-align:right}.dlg.done:not(.still) .continue-hint{display:block}.dlg.done:after{content:none}@keyframes tapblink{50%{opacity:.2}}.dlg.still:after{content:none}.dlg.still{min-height:0}.dlg.still .text{min-height:0;font-size:15px}.sheet .opts{display:flex;flex-direction:column;gap:8px;padding-top:4px}.sheet .opt{display:block;width:100%;min-height:48px;padding:11px 14px;background:var(--surface);color:var(--ink);border:1.5px solid var(--ink);border-radius:4px;font-size:15.5px;line-height:1.35;text-align:left;cursor:pointer}.sheet .opt:active{background:#eeece7}.sheet .opt.alt{border-color:var(--hair);color:var(--muted)}.sheet .opt:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.exam-actions:empty{display:none}.stage.exam .sheet{display:flex;flex-direction:column;max-height:min(72%,calc(100% - var(--hud-height, 80px) - 12px));gap:12px}.stage.exam .sheetbody{flex:1 1 auto;overflow:hidden;display:flex;flex-direction:column}.stage.exam .sheetin{min-height:0;max-height:none;flex:1 1 auto;touch-action:pan-y;overscroll-behavior:contain;padding:4px}.stage.exam .sheet.more .sheetin{padding-bottom:52px}.exam-actions{flex:none}.exam-actions .opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,7.5rem),1fr));gap:8px;padding:0}.exam-actions .opt{min-height:48px;padding:8px;font-size:1rem;line-height:1.25;text-align:center}.exam-actions .opt:first-child{background:var(--ink);color:var(--surface)}.exam-actions .opt.alt{color:#49423d;border-color:#a49a92}.exam-actions .opt[data-key=leave]{grid-column:1 / -1}.exam-guidance{font:500 .875rem/1.45 system-ui,sans-serif;color:#49423d}.detail-title{margin:12px 0 8px;font-size:1.125rem;line-height:1.35}.observation{font-size:1rem;line-height:1.5}.question-preview{margin-top:16px;padding-top:12px;border-top:1px solid var(--hair)}.question-preview>span{font-size:.75rem;color:#59534e}.question-preview p{margin-top:4px;font-size:1rem;line-height:1.5}.detail-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.detail-list button{display:block;width:100%;min-height:48px;padding:8px 12px;background:var(--surface);border:1px solid #a49a92;border-radius:4px;color:var(--ink);font-size:1rem;line-height:1.4;text-align:left;cursor:pointer}.detail-list button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.detail-list button:active,.exam-actions .opt.alt:active{background:#eeece7}.notebook{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8;margin:0;padding:0;border:0;max-width:none;max-height:none;width:100%;height:100%;background:transparent;overflow:visible}.notebook[open]{display:flex;align-items:flex-end;justify-content:center}.notebook:not([open]){display:none}.notebook::backdrop{background:#14100cb8}.notebook .nbin{width:100%;max-width:520px;max-height:88dvh;display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border-radius:14px 14px 0 0;padding:14px 16px calc(16px + env(safe-area-inset-bottom))}.notebook .nbhead{display:flex;align-items:center;justify-content:space-between;gap:12px}.notebook h2{margin:0;font-size:17px}.notebook .nbnote{margin:6px 0 10px;font-size:13px;color:var(--muted);font-style:italic}.notebook .nbclose{min-height:40px;padding:8px 14px;background:var(--ink);color:var(--surface);border:0;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer}.notebook .qlist{list-style:none;margin:0;padding:0 0 4px;overflow:auto;display:flex;flex-direction:column;gap:6px}.notebook .qrow{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--hair);border-radius:4px;padding:9px 11px;cursor:pointer}.notebook .qrow.on{border-color:var(--accent);background:#f6efe9}.notebook .qwho{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.notebook .qtext{display:block;font-size:15px;line-height:1.4;margin:2px 0 3px}.notebook .qfrom{display:block;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.notebook .qempty{font-size:14px;color:var(--muted);font-style:italic}.notebook .qrow:focus-visible,.notebook .nbclose:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sheet.more .sheetbody:before{content:"";position:absolute;left:5px;right:5px;bottom:5px;height:56px;z-index:2;pointer-events:none;background:linear-gradient(#f7f7f500,#f7f7f5 75%)}.sheet .morebtn{display:none;position:absolute;z-index:3;left:50%;bottom:10px;transform:translate(-50%);padding:7px 14px;border-radius:999px;background:var(--ink);color:var(--surface);border:0;font-size:13px;font-weight:600;box-shadow:0 2px 8px #00000040;animation:tapblink 1.4s infinite}.sheet.more .morebtn{display:block}.sheet.more .sheetin{padding-bottom:52px}.mute{position:absolute;right:12px;bottom:calc(var(--sheet, 40%) + 10px);z-index:6;font:500 11px/1 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#cfc8bb;background:#1412108c;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:7px 10px;opacity:.7}.page .mute{position:fixed;right:14px;top:14px;bottom:auto}.hud .mute{position:static;flex:none}@media(max-width:430px){.hud{gap:6px 8px}.hud .note,.hud .again,.hud .mute{padding:7px 8px}.hud .day{font-size:10px}}@media(prefers-reduced-motion:reduce){.char .face.pop{animation:none}.char .face img.base,.char .face img.expr{animation:none!important}.char.t-reorient .face{animation:none}.focus,.hands{transition:none}.mark,.sheet .morebtn{animation:none}.dlg.done:after{animation:none}.toast{animation:none;opacity:1}.stage .bg{transition:none}.char .face{transition:opacity .3s,filter .3s}*{scroll-behavior:auto}}.hud .back{min-height:44px;padding:6px 12px;border:1px solid #ffffff30;border-radius:24px;background:#17151160;color:#e9e3d7;font:inherit;font-size:13px;cursor:pointer}.hud .back:disabled{opacity:.4;cursor:default}.save-state{color:#d0c6b4;font-size:11px}.reading-line{overflow:auto;max-height:52dvh;padding:16px 0;min-height:100px}.reading-text{font-size:20px;line-height:1.5;white-space:pre-wrap}.reading-controls{display:flex;gap:10px;padding-top:10px}.reading-controls .btn{flex:1}.reading-controls .btn:disabled{opacity:.4;cursor:default}.save-error{color:#8c3429;font-size:15px;line-height:1.5}.save-help{font-size:14px!important}
