:root{--bg:#fbf5ee;--surface:#fff;--surface-2:#f5eadf;--line:#eadccd;--ink:#2a2130;--ink-2:#6b5f70;--ember:#b7472a;--ember-ink:#fff;--ember-soft:#fbe1d6;--ember-text:#9a3a20;--lav:#6e5aa8;--lav-soft:#ece6f7;--ok:#2d7a55;--ok-soft:#e2f2ea;--trap:#b3261e;--trap-soft:#fbe4e1;--glow:#e0a030;--glow-soft:#fcebc6;--track:#f0e4d8;--glod-body:#fcdcc0;--glod-rings:#e3a47c;--band:#6e5aa824;--font-display:"Bricolage Grotesque", system-ui, sans-serif;--font-body:"Figtree", system-ui, sans-serif;--fs-record:64px;--fs-word:46px;--fs-h1:34px;--fs-syn:34px;--fs-body:16px;--fs-label:13px;--radius-card:28px;--radius-tile:20px;--radius-pill:999px;--tap-min:44px;--btn-h:58px;--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--ease-pop:cubic-bezier(.34, 1.8, .64, 1);--ease-out:cubic-bezier(.2, .8, .3, 1);--dur-fb:.2s;--dur-pop:.42s;--dur-enter:.36s;--dur-flip:.52s;--dur-ring:1.2s}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1c1620;--surface:#272030;--surface-2:#31283b;--line:#3d3347;--ink:#f7efe8;--ink-2:#bbafc0;--ember:#ff9270;--ember-ink:#2a1410;--ember-soft:#3e2a2e;--ember-text:#ff9270;--lav:#b7a6f0;--lav-soft:#2f2843;--ok:#7fd3a6;--ok-soft:#1f3229;--trap:#ff8c82;--trap-soft:#3a2226;--glow:#f2b544;--glow-soft:#3d3220;--track:#342a3d;--glod-body:#4a3036;--glod-rings:#9a6150;--band:#b7a6f029}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1c1620;--surface:#272030;--surface-2:#31283b;--line:#3d3347;--ink:#f7efe8;--ink-2:#bbafc0;--ember:#ff9270;--ember-ink:#2a1410;--ember-soft:#3e2a2e;--ember-text:#ff9270;--lav:#b7a6f0;--lav-soft:#2f2843;--ok:#7fd3a6;--ok-soft:#1f3229;--trap:#ff8c82;--trap-soft:#3a2226;--glow:#f2b544;--glow-soft:#3d3220;--track:#342a3d;--glod-body:#4a3036;--glod-rings:#9a6150;--band:#b7a6f029;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}@media (prefers-reduced-motion:reduce){:root{--dur-fb:0s;--dur-pop:0s;--dur-enter:0s;--dur-flip:0s;--dur-ring:0s}}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;line-height:1.45;transition:background-color .24s,color .24s}#app{height:100%}button,input{font:inherit;color:inherit}button{cursor:pointer;-webkit-user-select:none;user-select:none}:focus-visible{outline:3px solid var(--lav);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.screen{max-width:480px;height:100%;animation:screen-in var(--dur-enter) var(--ease-spring) both;flex-direction:column;margin:0 auto;display:flex}@keyframes screen-in{0%{opacity:0;transform:scale(.97)}}.screen-body{min-height:0;padding:max(50px, calc(env(safe-area-inset-top) + 16px)) 20px 0;flex-direction:column;flex:1;gap:14px;display:flex;overflow-y:auto}.screen-foot{padding:12px 20px 0}.display{font-family:var(--font-display);letter-spacing:-.01em}.btn-primary{width:100%;height:var(--btn-h);border-radius:calc(var(--btn-h) / 2);background:var(--ember);color:var(--ember-ink);border:0;font-size:17px;font-weight:700;transition:transform .12s,opacity .12s}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.6}.btn-ghost{width:100%;height:48px;color:var(--ink);background:0 0;border:0;border-radius:24px;font-size:15px;font-weight:600}.icon-btn{width:var(--tap-min);height:var(--tap-min);background:var(--surface);color:var(--ink-2);border:0;border-radius:22px;flex:none;justify-content:center;align-items:center;display:flex}.tabbar-wrap{padding:4px 20px calc(22px + env(safe-area-inset-bottom))}.tabbar{background:var(--surface);border-radius:30px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;height:60px;padding:6px;display:grid}.tabbar button{color:var(--ink-2);background:0 0;border:0;border-radius:24px;font-size:14px;font-weight:600;transition:background-color .2s,color .2s}.tabbar button[aria-current=page]{background:var(--ember-soft);color:var(--ember-text);font-weight:700}.idag-head{justify-content:space-between;align-items:center;display:flex}.idag-hello{font-size:28px;font-weight:700;line-height:1.2}.idag-date{color:var(--ink-2);font-size:14px}.glow-card{background:var(--surface);border-radius:var(--radius-card);flex-direction:column;align-items:center;gap:8px;padding:18px 18px 16px;display:flex}.ring-wrap{flex:none;width:196px;height:196px;position:relative}.ring-wrap>svg{position:absolute;inset:0}.ring-fill{transition:stroke-dashoffset var(--dur-ring) cubic-bezier(.34, 1.2, .64, 1)}.glod-in-ring{width:120px;height:120px;transition:transform var(--dur-pop) var(--ease-pop);position:absolute;top:38px;left:38px}.glod-core{transition:r var(--dur-ring) ease}.spark{pointer-events:none;width:12px;height:12px;position:absolute;top:92px;left:92px}.minutes{align-items:baseline;gap:6px;display:flex}.minutes strong{font-family:var(--font-display);font-size:34px;font-weight:800;line-height:1}.minutes span,.glow-line{color:var(--ink-2);font-size:16px}.glow-line{text-align:center;font-size:14px}.pills{gap:8px;display:flex}.pill{border-radius:var(--radius-pill);white-space:nowrap;justify-content:center;align-items:center;gap:6px;height:44px;padding:0 14px;font-size:14px;font-weight:600;display:flex}.pill-streak{background:var(--ember-soft);color:var(--ember-text);flex:1;font-weight:700}.pill-streak .flame{background:var(--ember);border-radius:5px 5px 5px 1px;width:10px;height:10px}.pill-floor{background:var(--surface);color:var(--ink)}.pill-freeze{background:var(--lav-soft);color:var(--lav);font-weight:700}.celebrate{border-radius:var(--radius-tile);background:var(--ok-soft);color:var(--ink);padding:12px 16px;font-size:15px;font-weight:600;animation:.42s cubic-bezier(.34,1.56,.64,1) both celebrate-in}@keyframes celebrate-in{0%{opacity:0;transform:translateY(10px)}}.blocks{flex-direction:column;gap:8px;padding-bottom:4px;display:flex}.block{background:var(--surface);border-radius:var(--radius-tile);align-items:center;gap:12px;min-height:58px;padding:0 14px 0 8px;display:flex}.block-n{width:42px;height:42px;font-family:var(--font-display);border-radius:14px;flex:none;justify-content:center;align-items:center;font-size:16px;font-weight:800;display:flex}.block-text{flex-direction:column;flex:1;gap:1px;display:flex}.block-title{font-size:16px;font-weight:700}.block-meta{color:var(--ink-2);font-size:13px}.block-done{background:var(--ok);width:28px;height:28px;color:var(--bg);animation:pop-in var(--dur-pop) var(--ease-pop) both;border-radius:14px;flex:none;justify-content:center;align-items:center;display:flex}@keyframes pop-in{0%{opacity:0;transform:scale(.4)}}.center-body{min-height:0;padding:max(64px, calc(env(safe-area-inset-top) + 32px)) 20px 0;text-align:center;flex-direction:column;flex:1;align-items:center;gap:16px;display:flex;overflow-y:auto}.center-body h1{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-size:38px;font-weight:800;line-height:1.05}.center-body p{max-width:320px;margin:0;font-size:17px;line-height:1.5}.wake{animation:wake var(--dur-flip) cubic-bezier(.34, 1.56, .64, 1) .2s both}@keyframes wake{0%{transform:scale(.86)}}.field{text-align:left;flex-direction:column;gap:6px;width:100%;display:flex}.field label{font-size:var(--fs-label);color:var(--ink-2);font-weight:700}.field input{height:var(--btn-h);border-radius:var(--radius-tile);border:2px solid var(--line);background:var(--surface);padding:0 18px;font-size:17px}.field input:focus{border-color:var(--ember);outline:none}.form-error{min-height:22px;color:var(--ember-text);font-size:15px;font-weight:600}.foot-stack{padding:12px 20px calc(32px + env(safe-area-inset-bottom));flex-direction:column;gap:6px;display:flex}.demo-tag{color:var(--lav);font-weight:700}@media (prefers-reduced-motion:reduce){.screen,.celebrate,.block-done,.wake{animation:none}}.topbar{padding:max(48px, calc(env(safe-area-inset-top) + 12px)) 16px 0 8px;align-items:center;gap:8px;display:flex}.topbar-space{flex:1}.x-btn{width:var(--tap-min);height:var(--tap-min);color:var(--ink);background:0 0;border:0;border-radius:22px;flex:none;justify-content:center;align-items:center;display:flex}.bar{background:var(--track);border-radius:6px;flex:1;height:12px}.bar>div{background:var(--lav);height:12px;transition:width .5s var(--ease-spring);border-radius:6px}.chip{white-space:nowrap;border-radius:16px;align-items:center;height:32px;padding:0 12px;font-size:13px;font-weight:700;display:flex}.chip-lav{background:var(--lav-soft);color:var(--lav)}.chip-glow{background:var(--glow-soft);color:var(--ink)}.chip-plain{background:var(--surface-2);color:var(--ink-2)}.topbar .chip-plain{background:var(--surface);color:var(--ink)}.label{font-size:var(--fs-label);color:var(--ink-2);font-weight:700}.label.gap{margin-bottom:8px}.sub{color:var(--ink-2);font-size:14px}.foot-pad{padding:12px 20px calc(32px + env(safe-area-inset-bottom))}.foot-hint{height:var(--btn-h);color:var(--ink-2);text-align:center;justify-content:center;align-items:center;font-size:14px;display:flex}.btn-outline{width:100%;height:var(--btn-h);border:2px solid var(--ink);border-radius:calc(var(--btn-h) / 2);color:var(--ink);background:0 0;flex:none;font-size:17px;font-weight:700}.btn-outline:disabled{opacity:.6}.link-btn{min-height:var(--tap-min);color:var(--ember-text);text-underline-offset:3px;text-align:left;background:0 0;border:0;align-self:flex-start;align-items:center;padding:0;font-size:14px;font-weight:700;text-decoration:underline;display:inline-flex}.link-quiet{height:var(--tap-min);color:var(--ink-2);background:0 0;border:0;flex:none;font-size:13px;text-decoration:underline}.tile{background:var(--surface);border-radius:26px;padding:14px 16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.badge-glow{background:var(--glow-soft);border-radius:15px;align-items:center;height:30px;padding:0 14px;font-size:13px;font-weight:800;display:inline-flex}.badge-glow.pop{transition:transform var(--dur-pop) var(--ease-pop) .7s}.card-trap{background:var(--trap-soft);color:var(--trap);border-radius:18px;align-items:flex-start;gap:10px;margin-top:6px;padding:12px 14px;font-size:14px;font-weight:700;line-height:1.4;display:flex}.card-trap svg{flex:none;margin-top:1px}.options.compact .option.is-dim{display:none}.explain-example{font-style:italic}.answer-row{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:8px;display:grid}.rate{height:var(--btn-h);border:0;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;font-size:16px;font-weight:700;line-height:1.15;display:flex}.rate.wide{border-radius:calc(var(--btn-h) / 2);width:100%}.rate span{font-size:11px;font-weight:500}.rate:disabled{opacity:.6}.rate-good{background:var(--ember);color:var(--ember-ink)}.rate-guess{background:var(--lav-soft);color:var(--lav)}.ord-body{flex-direction:column;flex:1;gap:14px;min-height:0;padding:18px 20px 0;display:flex;overflow-y:auto}.ord-word{background:var(--surface);border-radius:var(--radius-card);justify-content:space-between;align-items:center;gap:12px;padding:22px;display:flex}.ord-term{letter-spacing:-.02em;overflow-wrap:anywhere;margin-top:4px;font-size:40px;font-weight:800;line-height:1}.ord-term.long{font-size:30px}.ord-term.xlong{font-size:24px;line-height:1.1}.ord-glod{width:56px;height:56px;transition:transform var(--dur-pop) var(--ease-pop);flex:none}.options{flex-direction:column;gap:8px;display:flex}.option{background:var(--surface);min-height:54px;color:var(--ink);text-align:left;transition:opacity var(--dur-fb) ease, transform .36s var(--ease-pop), background-color var(--dur-fb) ease;border:2px solid #0000;border-radius:27px;align-items:center;gap:12px;padding:6px 16px 6px 8px;display:flex}.option-dot{background:var(--surface-2);width:36px;height:36px;color:var(--ink);font-family:var(--font-display);border-radius:18px;flex:none;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:flex}.option-text{flex:1;font-size:17px;font-weight:600}.option-tag{color:var(--ink-2);white-space:nowrap;align-items:center;gap:4px;font-size:13px;font-weight:700;display:flex}.option-tag.ok{color:var(--ok)}.option.is-ok{border-color:var(--ok);background:var(--ok-soft);transform:scale(1.03)}.option.is-ok .option-dot{background:var(--ok);color:var(--bg)}.option.is-wrong{border-color:var(--line);background:var(--surface-2)}.option.is-wrong .option-text{text-decoration:line-through}.option.is-dim{opacity:.45}.explain{background:var(--lav-soft);border-radius:22px;flex-direction:column;gap:4px;padding:14px 16px;font-size:15px;animation:.36s cubic-bezier(.34,1.56,.64,1) both explain-in;display:flex}.explain-title{color:var(--lav);font-size:18px;font-weight:800}.explain .link-btn{color:var(--lav)}@keyframes explain-in{0%{opacity:0;transform:translateY(12px)}}.stat-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.stat,.trio>div{background:var(--surface);border-radius:22px;flex-direction:column;gap:2px;padding:14px 6px;display:flex}.stat strong,.trio strong{font-family:var(--font-display);font-size:30px;font-weight:800;line-height:1.1}.stat span,.trio span{color:var(--ink-2);font-size:12px;font-weight:600}.trio{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;margin-top:6px;display:grid}.wake-core{animation:wake-core var(--dur-flip) ease .4s both}@keyframes wake-core{0%{r:6px}}.form-body{flex-direction:column;flex:1;gap:14px;min-height:0;padding:6px 20px 0;display:flex;overflow-y:auto}.form-body h2{margin:0;font-size:30px;font-weight:800;line-height:1.05}.lead{color:var(--ink-2);margin:0;font-size:15px}.segment{background:var(--surface);border-radius:26px;flex:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.segment button{height:var(--tap-min);color:var(--ink-2);background:0 0;border:0;border-radius:22px;font-size:15px;font-weight:700}.segment button[aria-pressed=true]{background:var(--ember);color:var(--ember-ink)}.time-tile{flex-direction:column;gap:2px;padding:16px 16px 6px;display:flex}.time-row{justify-content:space-between;align-items:center;min-height:72px;display:flex}.time{font-variant-numeric:tabular-nums;font-size:52px;font-weight:800;line-height:1.1}.manual{color:var(--ink-2);flex-direction:column;gap:2px;font-size:12px;display:flex}.manual input{border:2px solid var(--ember);background:var(--bg);width:150px;height:54px;color:var(--ink);font-family:var(--font-display);border-radius:18px;padding:0 14px;font-size:34px;font-weight:800}.watch-btn{background:var(--ember);width:64px;height:64px;color:var(--ember-ink);border:0;border-radius:32px;flex:none;justify-content:center;align-items:center;display:flex}.stepper{border-radius:22px;flex-direction:column;align-items:center;gap:6px;padding:12px;display:flex}.stepper-row{align-items:center;gap:8px;display:flex}.stepper-row button{width:var(--tap-min);height:var(--tap-min);background:var(--surface-2);color:var(--ink);border:0;border-radius:22px;font-size:22px;font-weight:700}.stepper-value{text-align:center;min-width:48px;font-size:30px;font-weight:800}.stepper-value span,.part-value span,.score-row span,.sum span{font-family:var(--font-body);color:var(--ink-2);font-size:15px;font-weight:600}.chips{flex-wrap:wrap;gap:8px;display:flex}.pick{min-height:var(--tap-min);border:2px solid var(--line);background:var(--surface);min-width:52px;color:var(--ink);transition:transform .18s var(--ease-pop);border-radius:22px;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:700;display:flex}.pick:active{transform:scale(1.06)}.pick[aria-pressed=true]{border-color:var(--ember);background:var(--ember-soft);color:var(--ember-text)}.word-chip{background:var(--ok-soft);min-height:36px;color:var(--ink);border-radius:18px;align-items:center;padding:0 14px;font-size:14px;font-weight:600;display:flex}.field select{height:var(--btn-h);border-radius:var(--radius-tile);border:2px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;padding:0 14px;font-size:17px}.score{border-radius:22px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.score label{font-size:var(--fs-label);color:var(--ink-2);font-weight:700}.score-row{align-items:baseline;gap:4px;display:flex}.score input{border:2px solid var(--line);background:var(--bg);width:72px;height:52px;color:var(--ink);font-family:var(--font-display);text-align:center;border-radius:16px;font-size:30px;font-weight:800}.score input:focus{border-color:var(--ember);outline:none}.sum{text-align:center;font-size:40px;font-weight:800;line-height:1}.framsteg{gap:12px;padding-bottom:16px}.fram-head{align-items:center;gap:14px;display:flex}.fram-head svg{flex:none}.fram-head h1{margin:0;font-size:30px;font-weight:800;line-height:1}.tile-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.chip-small{background:var(--surface-2);height:26px;color:var(--ink-2);white-space:nowrap;border-radius:13px;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:flex}.chip-small.up{background:var(--ok-soft);color:var(--ok)}.proj{align-items:baseline;gap:8px;display:flex}.proj-value{font-size:56px;font-weight:800;line-height:1}.proj-band{color:var(--ink-2);font-size:18px;font-weight:600}.trend{width:100%;height:auto;font-family:var(--font-body);margin-top:4px;display:block}.note{color:var(--ink-2);padding:4px 0 2px;font-size:13px}.parts{flex-direction:column;gap:10px;display:flex}.part{align-items:center;gap:10px;display:flex}.part-name{width:36px;font-size:13px;font-weight:700}.part-bar{background:var(--track);border-radius:7px;flex:1;height:14px}.part-bar>div{border-radius:7px;height:14px}.part-value{text-align:right;width:44px;font-size:16px;font-weight:800}.part-value span{font-size:12px}.mini{border-radius:22px;flex-direction:column;gap:2px;padding:14px;display:flex}.mini strong{font-size:30px;font-weight:800;line-height:1.1}.mini span{font-size:13px;font-weight:600}.mini small{color:var(--ink-2);font-size:12px}.mini.lav{background:var(--lav-soft)}.mini.lav strong{color:var(--lav)}.mini.glow{background:var(--glow-soft)}.legend{color:var(--ink-2);gap:10px;font-size:12px;display:flex}.legend span{align-items:center;gap:4px;display:flex}.legend i{border-radius:5px;width:10px;height:10px}.dot-now{background:var(--ember)}.dot-ghost{border:2px dotted var(--ink-2)}.week{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:8px;margin-top:6px;display:grid}.week-day{flex-direction:column;align-items:center;gap:4px;display:flex}.week-bars{border-bottom:2px solid var(--track);width:100%;height:64px;position:relative}.week-bars .ghost{border:2px dotted var(--ink-2);opacity:.6;border-radius:10px;position:absolute;bottom:0;left:0;right:0}.week-bars .now{border-radius:8px;position:absolute;bottom:0;left:5px;right:5px}.week-label{color:var(--ink-2);font-size:11px}.week-label.is-today{color:var(--ink);font-weight:700}.credit{color:var(--ink-2);text-align:center;padding:0 12px 4px;font-size:12px}.row-link{background:var(--ember-soft);min-height:60px;color:var(--ink);text-align:left;border:0;border-radius:22px;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 18px;display:flex}.row-link.plain{background:var(--surface)}.row-link span{flex-direction:column;gap:2px;display:flex}.row-link strong{font-size:15px;font-weight:700}.row-link small{color:var(--ink-2);font-size:13px}.screen.boss{animation:fade-in var(--dur-enter) ease both}@keyframes fade-in{0%{opacity:0}}.boss-body{flex-direction:column;flex:1;gap:12px;min-height:0;padding:4px 20px 0;display:flex;overflow:hidden auto}.boss-stage{flex:none;justify-content:center;align-items:center;height:176px;display:flex;position:relative}.confetti{pointer-events:none;position:absolute;top:82px;left:calc(50% - 6px)}.boss-glod{width:150px;height:150px;transition:transform .7s var(--ease-pop) .15s}.new-ring{transition:stroke-dashoffset .8s .5s}.boss-result{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.boss-exam{margin-top:6px;font-size:22px;font-weight:700}.boss-score{align-items:baseline;gap:10px;display:flex}.boss-total{font-size:var(--fs-record);letter-spacing:-.02em;font-weight:800;line-height:1}.boss-total span{color:var(--ink-2);font-size:26px}.boss-normed{color:var(--ember-text);font-size:40px;font-weight:800}.boss-parts{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.boss-part{background:var(--surface);border-radius:20px;flex-direction:column;align-items:center;gap:4px;padding:12px 6px;transition:transform .36s cubic-bezier(.34,1.56,.64,1),opacity .36s;display:flex}.boss-part strong{font-size:26px;font-weight:800;line-height:1}.diff{background:var(--surface-2);height:24px;color:var(--ink-2);border-radius:12px;align-items:center;padding:0 8px;font-size:12px;font-weight:800;display:flex}.diff.up{background:var(--ok-soft);color:var(--ok)}.boss-note{text-align:center;padding:0 8px;font-size:14px}@media (prefers-reduced-motion:reduce){.explain,.screen.boss,.wake-core{animation:none}.option.is-ok,.pick:active{transform:none}.ord-glod{transform:none!important}.boss-glod,.boss-part,.new-ring,.bar>div,.badge-glow.pop{transition:none}}
