:root{--ivory:#f6f2e8;--teal:#123f3a;--teal-90:#1c524c;--amber:#e4ae50;--amber-soft:#f5e3bd;--amber-ink:#8a5a12;--sage:#b7c6b2;--sage-soft:#dce5d8;--surface:#fff;--bar:#fbf9f3;--text:#123f3a;--body:#22312e;--muted:#4f6b66;--line:#e4ddcc;--section:#ece7da;--danger:#9b2c2c;--danger-soft:#f8e1e1;--positive:#2f6b3a;--radius:12px;--radius-pill:999px;--touch:44px;--gutter:16px;--font-heading:Georgia, "Iowan Old Style", "Palatino Linotype", "Times New Roman", serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--content-width:560px;--dur-route:.1s;--dur-sheet:.15s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-motion=reduce]{--dur-route:0s;--dur-sheet:0s}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]){--dur-route:0s;--dur-sheet:0s}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;background:var(--ivory);min-height:100dvh;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.45}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.35rem}h2{font-size:1.1rem}h3{font-size:1rem}p{margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}[tabindex="-1"]:focus{outline:none}:focus-visible{outline:3px solid var(--amber-ink);outline-offset:2px;border-radius:6px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.route-enter{animation:route-in var(--dur-route) ease-out both}@keyframes route-in{0%{opacity:0}to{opacity:1}}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:12px;display:flex}.grow{flex:1;min-width:0}.kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--amber-ink);font-size:.75rem;font-weight:700}.app:has(>.game){height:100vh;flex-direction:column;height:100dvh;display:flex;overflow:hidden}.game{height:100vh;min-height:0;flex-direction:column;flex:auto;height:100dvh;display:flex}.app:has(>.game) .game{height:auto}.shell-top{padding-top:var(--safe-top);background:var(--ivory);border-bottom:1px solid var(--line);flex:none}.shell-inner{max-width:var(--content-width);margin:0 auto}.appbar{grid-template-columns:var(--touch) 1fr var(--touch);align-items:center;height:44px;padding:0 4px;display:grid}.appbar>:nth-child(2){justify-self:center}.strip{flex-wrap:wrap;align-items:center;gap:10px;min-height:60px;padding:8px 12px;display:flex}.strip .who{flex:6.5rem;min-width:0}.strip .name{overflow-wrap:anywhere;font-size:1rem;font-weight:700}.strip .sub{color:var(--muted);overflow-wrap:anywhere;font-size:.8125rem}.money-chip{min-height:var(--touch);text-align:right;border-radius:8px;flex-direction:column;flex:0 auto;justify-content:center;align-items:flex-end;margin-left:auto;padding:2px 4px;text-decoration:none;display:flex}.money-chip .label{color:var(--muted);font-size:.75rem}.money-chip .value{color:var(--positive);font-size:.95rem;font-weight:700}.money-chip .value.neutral{color:var(--teal)}.money-chip .value.negative{color:var(--danger)}.titlebar{grid-template-columns:var(--touch) 1fr var(--touch);background:var(--teal);color:#fff;align-items:center;height:44px;display:grid}.titlebar h1{text-align:center;letter-spacing:.02em;font-size:1.05rem;font-weight:700}.titlebar .icon-btn{color:#fff}.titlebar .icon-btn:hover{background:#ffffff1f}.shell-main{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.shell-content{max-width:var(--content-width);margin:0 auto;padding-bottom:16px}.shell-bottom{background:var(--bar);border-top:1px solid var(--line);padding-bottom:var(--safe-bottom);flex:none}.statusbar{grid-template-columns:1fr 1fr;gap:4px 16px;padding:6px 16px 0;display:grid}.status{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:.8125rem;display:grid}.status .name{font-weight:600}.status .num{font-variant-numeric:tabular-nums;text-align:right;min-width:2ch;font-weight:700}.meter{border-radius:var(--radius-pill);background:var(--section);height:8px;overflow:hidden}.meter>span{border-radius:inherit;background:#6f9a72;height:100%;display:block}.meter.amber>span{background:var(--amber)}.advance{padding:6px 12px 4px}.advance-btn{background:var(--teal);color:#fff;text-align:center;cursor:pointer;width:100%;min-height:48px;box-shadow:inset 0 -3px 0 var(--amber);touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:6px 16px;font-size:1.05rem;font-weight:700;text-decoration:none;display:flex}.advance-btn:active:not(:disabled){background:var(--teal-90)}.advance-btn:disabled{opacity:.6;cursor:not-allowed}.advance-btn.attention{background:var(--amber);color:var(--teal);box-shadow:inset 0 -3px 0 var(--amber-ink)}.advance-btn svg{flex:none;width:22px;height:22px}.tabs{border-top:1px solid var(--line);margin-top:6px}.tabs ul{grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid}.tabs a{min-height:54px;color:var(--muted);text-align:center;border-top:3px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 2px;font-size:min(.75rem,16px);font-weight:600;text-decoration:none;display:flex}.tabs a svg{width:22px;height:22px}.tabs a[aria-current=page]{color:var(--teal);border-top-color:var(--amber)}.journal{background:var(--surface);padding:4px var(--gutter) 16px;min-height:40vh}.j-earlier{width:100%;min-height:var(--touch);border:1px dashed var(--line);border-radius:var(--radius);color:var(--teal);cursor:pointer;background:0 0;margin:8px 0 4px;font-weight:600;display:block}.j-age{margin-top:14px}.j-age h2{color:var(--teal);margin-bottom:4px;font-size:1.05rem;font-weight:700}.j-age h2 .year{color:var(--muted);font-size:.9rem;font-weight:500}.j-line{color:var(--body);margin:4px 0;font-size:.97rem;line-height:1.45}.j-line strong{color:var(--teal)}.j-line .j-month{letter-spacing:.08em;text-transform:uppercase;color:var(--amber-ink);margin-right:6px;font-size:.7rem;font-weight:700}.j-line a{color:var(--teal);-webkit-text-decoration-color:var(--sage);text-decoration-color:var(--sage);text-underline-offset:3px;font-weight:600}.j-decision{border-radius:var(--radius);background:var(--amber-soft);align-items:center;gap:10px;margin:6px 0;padding:8px 10px 8px 12px;display:flex}.j-empty{color:var(--muted);padding:16px 0}.j-quiet{color:var(--muted)}.j-unlock strong{color:var(--amber-ink)}.j-line a.j-open{white-space:nowrap;font-weight:700}.list{background:var(--surface)}.list-heading{padding:6px var(--gutter);background:var(--section);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:700}.list>ul{margin:0;padding:0;list-style:none}.list-row{width:100%;min-height:52px;padding:6px var(--gutter);border:0;border-bottom:1px solid var(--line);color:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:12px;text-decoration:none;display:flex}.list>ul>li{content-visibility:auto;contain-intrinsic-size:auto 53px}a.list-row:hover,button.list-row:hover{background:#faf7f0}.list-row.static{cursor:default}.list-row.static:hover{background:0 0}.list-row .icon{width:28px;height:28px;color:var(--teal);flex:none}.list-row .title{font-size:1rem;font-weight:600;display:block}.list-row .title .role{color:var(--muted);font-weight:400}.list-row .sub{color:var(--muted);font-size:.85rem;display:block}.list-row .value{font-variant-numeric:tabular-nums;text-align:right;flex:none;font-weight:700}.list-row .chevron{width:20px;height:20px;color:var(--teal);flex:none}.list-row.total{background:#faf7f0}.list-note{padding:12px var(--gutter);color:var(--muted);background:var(--surface);border-bottom:1px solid var(--line);font-size:.9rem}.toolbar{flex-direction:column;gap:8px;padding:8px 12px;display:flex}.search{background:var(--surface);border:1px solid var(--line);min-height:var(--touch);border-radius:10px;align-items:center;gap:8px;padding:0 12px;display:flex}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0;min-height:42px}.search:focus-within{outline:3px solid var(--amber-ink);outline-offset:2px}.segmented{border:1px solid var(--teal);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(3.6rem,1fr));display:grid;overflow:hidden}.segmented button{border:0;border-left:1px solid var(--teal);background:var(--surface);cursor:pointer;min-height:40px;font-size:.875rem;font-weight:600}.segmented button:first-child{border-left:0}.segmented button[aria-pressed=true]{background:var(--teal);color:#fff}.btn{min-height:var(--touch);border-radius:var(--radius-pill);border:2px solid var(--teal);color:var(--teal);text-align:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;justify-content:center;align-items:center;gap:8px;padding:8px 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn.block{width:100%}.btn.small-btn{min-height:40px;padding:4px 14px;font-size:.9rem}.btn.large{min-height:52px;font-size:1.1rem;font-weight:700}.btn.primary{background:var(--teal);color:#fff}.btn.primary:hover:not(:disabled){background:var(--teal-90)}.btn.secondary{background:var(--surface)}.btn.secondary:hover:not(:disabled){background:var(--sage-soft)}.btn.quiet{background:var(--section);border-color:#0000}.btn.danger{border-color:var(--danger);color:var(--danger);background:var(--surface)}.btn.danger.solid{background:var(--danger);color:#fff}.icon-btn{width:var(--touch);height:var(--touch);color:var(--teal);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;text-decoration:none;display:grid}.icon-btn:hover{background:#123f3a12}.icon-btn svg{width:24px;height:24px}.link-btn{min-height:var(--touch);color:var(--teal);text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:0 8px;font-weight:600;text-decoration:underline}.wordmark{font-family:var(--font-heading);color:var(--teal);align-items:center;gap:6px;font-size:1.15rem;font-weight:700;text-decoration:none;display:inline-flex}.wordmark svg{width:20px;height:20px}.avatar{color:var(--teal);-webkit-user-select:none;user-select:none;border-radius:10px;flex:none;place-items:center;font-weight:700;display:grid}.panel{background:var(--surface);padding:14px var(--gutter);border-bottom:1px solid var(--line);flex-direction:column;gap:12px;display:flex}.panel.soft{background:var(--sage-soft)}.panel h1,.panel h2{color:var(--teal)}.panel h1{font-size:1.3rem}.facts{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.facts li{align-items:center;gap:10px;font-size:.95rem;display:flex}.facts svg{width:20px;height:20px;color:var(--teal);flex:none}.choice-list{flex-direction:column;gap:8px;display:flex}.choice-list .btn{border-radius:14px;flex-direction:column;gap:0;padding:8px 16px}.choice-cost{opacity:.9;font-size:.85rem;font-weight:500}.choice-reason{color:var(--muted);text-align:center;margin:-2px 0 2px;font-size:.85rem}.effects{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.effects li:before{content:"•";color:var(--amber-ink);margin-right:8px}.history{margin:0;padding:0;list-style:none}.history li{padding:8px var(--gutter);border-bottom:1px solid var(--line);background:var(--surface)}.history .when{color:var(--amber-ink);font-size:.85rem;font-weight:700}.profile-head{align-items:center;gap:12px;display:flex}.profile-head .meta{color:var(--muted);font-size:.9rem}.figure-big{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.positive{color:var(--positive)}.negative{color:var(--danger)}details.more{padding:0 var(--gutter) 12px;background:var(--surface);border-bottom:1px solid var(--line)}details.more summary{min-height:var(--touch);cursor:pointer;color:var(--teal);align-items:center;font-weight:600;display:flex}.banner{border-radius:var(--radius);background:var(--sage-soft);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.banner.error{background:var(--danger-soft)}.banner.warn{background:var(--amber-soft)}.banner svg{flex:none;width:20px;height:20px;margin-top:2px}.notices{max-width:var(--content-width);flex-direction:column;gap:8px;margin:0 auto;padding:0 12px;display:flex}.notices:not(:empty){padding-top:8px;padding-bottom:8px}.save-status{color:var(--muted);min-height:1.2em;font-size:.85rem}.save-status.error{color:var(--danger);font-weight:600}dialog.sheet{background:var(--ivory);width:100%;max-width:min(520px,100vw - 24px);color:var(--text);border:0;border-radius:16px;padding:0;box-shadow:0 20px 60px #123f3a40}dialog.sheet[open]{animation:sheet-in var(--dur-sheet) ease-out both}dialog.sheet::backdrop{background:#123f3a73}dialog.sheet .sheet-body{flex-direction:column;gap:14px;padding:20px;display:flex}@keyframes sheet-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (max-width:600px){dialog.sheet{border-radius:16px 16px 0 0;max-width:100vw;margin:auto auto 0}dialog.sheet .sheet-body{padding-bottom:calc(20px + var(--safe-bottom))}}dialog.info-dialog{background:var(--ivory);width:min(420px,100vw - 32px);max-height:min(70dvh,520px);color:var(--text);border:0;border-radius:14px;padding:0;overflow:hidden;box-shadow:0 20px 60px #123f3a40}dialog.info-dialog::backdrop{background:#123f3a73}.info-dialog-inner{flex-direction:column;max-height:min(70dvh,520px);display:flex}.info-dialog-inner header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:10px 8px 6px 16px;display:flex}.info-dialog-inner header h2{margin:0;font-size:1.05rem}.info-dialog-body{overscroll-behavior:contain;padding:10px 16px 16px;overflow-y:auto}.fact-list{flex-direction:column;gap:8px;margin:0;padding:0;font-size:.95rem;list-style:none;display:flex}.fact-list li{border-bottom:1px solid var(--line);padding-bottom:8px}.fact-list li:last-child{border-bottom:0}.page{width:100%;max-width:var(--content-width);padding:12px var(--gutter) calc(24px + var(--safe-bottom));flex-direction:column;gap:14px;margin:0 auto;display:flex}.welcome{justify-content:space-between;min-height:100dvh}.topbar{grid-template-columns:var(--touch) 1fr var(--touch);min-height:var(--touch);align-items:center;display:grid}.topbar>:nth-child(2){justify-self:center}.topbar>:nth-child(3){justify-self:end}.wordmark-hero{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.wordmark-hero .title{font-family:var(--font-heading);font-size:clamp(2.6rem,12vw,3.4rem);font-weight:700;line-height:1}.wordmark-hero .by{letter-spacing:.32em;font-size:.8rem;font-weight:600}.tagline{font-family:var(--font-heading);font-size:1.3rem}.page-title-serif{font-family:var(--font-heading);text-align:center;font-size:1.7rem}.hero-art{border-radius:16px;width:100%;height:auto;display:block}.slot-list{flex-direction:column;gap:8px;display:flex}.rounded-list{border-radius:var(--radius);border:1px solid var(--line);overflow:hidden}.rounded-list .list-row:last-child{border-bottom:0}.school-meters{flex-direction:column;gap:6px;margin:4px 0;display:flex}.school-meters .status{grid-template-columns:8.5rem 1fr auto}.school-meters .status .small{color:var(--muted);text-align:right}.list-row.muted-row .title,.list-row.muted-row .icon{color:var(--muted)}.tag{border-radius:var(--radius-pill);white-space:normal;background:var(--section);max-width:9rem;color:var(--muted);padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-block}.tag.locked{background:var(--amber-soft);color:var(--amber-ink)}.tag.planned{background:var(--sage-soft);color:var(--teal)}.stepper{grid-template-columns:var(--touch) 1fr var(--touch);text-align:center;align-items:center;gap:8px;display:grid}.stepper .btn{min-width:var(--touch);padding:0;font-size:1.3rem}.grades{margin:0;padding:0;list-style:none}.grades li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.check{min-height:var(--touch);align-items:center;gap:10px;display:flex}.check input{width:22px;height:22px;accent-color:var(--teal)}.panel.result{border-left:4px solid var(--amber)}.list-note.strong-note{color:var(--text);font-weight:600}.activity-icon{flex:none;width:28px;height:28px;display:block}.tabs a .activity-icon{width:24px;height:24px}.list-heading .group-toggle{width:100%;min-height:var(--touch);color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;margin:-6px 0;padding:0;display:flex}.list-heading .group-toggle .small{text-transform:none;letter-spacing:0;color:var(--teal);font-weight:600}.list-heading .group-toggle:disabled{cursor:default}.stepper-row{padding:6px var(--gutter);border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.stepper-row .title{font-weight:600;display:block}.stepper-row .sub{color:var(--muted);font-size:.85rem;display:block}.stepper-row .stepper{grid-template-columns:var(--touch) 3.2rem var(--touch)}.choice-list .btn.answer{text-align:left;align-items:flex-start}.choice-list .btn.answer.correct{border-color:var(--positive);opacity:1;background:#e6f2e7}.choice-list .btn.answer.wrong{border-color:var(--danger);background:var(--danger-soft);opacity:1}.about{gap:18px}.about h2{font-size:1.15rem}.ledger{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ledger li{border-bottom:1px solid var(--line);flex-direction:column;gap:2px;padding-bottom:10px;display:flex}.ledger-status{color:var(--muted);font-size:.8rem;font-weight:600}.ledger-status.researched-fact{color:var(--green,#2f6b4f)}.ledger-status.unresolved{color:var(--danger)}
