:root{--bg:#0b0b0e;--panel:#14141b;--panel2:#1b1b25;--text:#f3ede0;--mute:#b3aa98;--gold:#d9b44a;--gold2:#f2d77a;--warm:#e8744f;--ok:#4fbf8a;--bad:#e5554f;--line:#2a2a36;--foil:linear-gradient(135deg,#a97f1f,#f2d77a 45%,#b58a22 70%,#f2d77a)}
html[data-theme=light]{--bg:#f7f2e8;--panel:#ffffff;--panel2:#f1eadb;--text:#1d1a14;--mute:#625a49;--gold:#8f6b0f;--gold2:#6d4f06;--warm:#c24e28;--ok:#1f7a52;--bad:#b3261e;--line:#ddd2ba;--foil:linear-gradient(135deg,#8f6b0f,#c79a2a 50%,#8f6b0f)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 'Be Vietnam Pro',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding-bottom:76px}
h1,h2,h3,h4{font-family:Fraunces,Georgia,'Times New Roman',serif;line-height:1.2;margin:.2em 0 .5em}
h1{font-size:1.7rem;color:var(--gold2)}h2{font-size:1.25rem}h3{font-size:1.15rem}h4{font-size:1rem}
.vt{margin:18px 0 12px;color:var(--gold2)}
.mono{font-family:'Space Mono',ui-monospace,Menlo,monospace}
.small{font-size:.86rem;color:var(--mute)}
.gold{color:var(--gold)}
a{color:var(--gold2)}
main{max-width:820px;margin:0 auto;padding:0 14px 20px}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px 14px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{width:42px;height:42px;border-radius:50%;background:var(--foil);display:flex;align-items:center;justify-content:center;color:#16120a;font:700 .9rem 'Space Mono',monospace;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.brand{flex:1;display:flex;flex-direction:column;line-height:1.1}.brand b{font-family:Fraunces,serif;letter-spacing:.08em;color:var(--gold2)}.brand i{font-style:normal;font-size:.7rem;color:var(--mute)}
.ico{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;min-width:42px;height:38px;font:700 .85rem 'Space Mono',monospace;cursor:pointer}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;margin:14px 0}
.hero{border-color:var(--gold);background:linear-gradient(160deg,var(--panel),var(--panel2))}
.center{text-align:center}
.row{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.btn{display:inline-block;border:1px solid var(--gold);background:transparent;color:var(--gold2);border-radius:12px;padding:11px 16px;font:600 .95rem 'Be Vietnam Pro',sans-serif;cursor:pointer;text-decoration:none;text-align:center;min-height:44px}
.btn.gold{background:var(--foil);color:#17120a;border-color:transparent}
.btn.ghost{border-color:var(--line);color:var(--text)}
.btn.sm{padding:7px 12px;min-height:36px;font-size:.85rem}
.btn.wide{display:block;width:100%;margin:8px 0}
.btn.red{background:var(--bad);color:#fff;border-color:transparent}
.btn.on{border-color:var(--gold);color:var(--gold2)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.badge{display:inline-block;border:1px solid var(--gold);border-radius:999px;padding:4px 12px;font-size:.8rem;color:var(--gold2);margin:6px 0}
.badge.ok{border-color:var(--ok);color:var(--ok)}
.sos{background:#3a1511;border:1px solid var(--bad);color:#ffd9d4;border-radius:12px;padding:10px 14px;margin:14px 0;font-size:.9rem}
html[data-theme=light] .sos{background:#fde6e3;color:#7a1810}
.sos a{color:inherit;font-weight:700}
.progress{height:8px;background:var(--line);border-radius:6px;overflow:hidden;margin:10px 0}.progress i{display:block;height:100%;background:var(--foil)}
.big{font:700 2.6rem Fraunces,serif;color:var(--gold2)}.big span{font-size:1rem;color:var(--mute)}
blockquote{margin:12px 0;padding:10px 14px;border-left:3px solid var(--gold);font-family:Fraunces,serif;font-size:1.05rem}
.blessing{font-family:Fraunces,serif;font-style:italic;color:var(--gold2)}.karma{font-weight:700;color:var(--warm)}
.mod.locked{opacity:.8}
.lesson .facts{padding-left:18px}.lesson .facts li{margin:8px 0}
.felt,.sumo{border-radius:12px;padding:10px 12px;margin:10px 0}
.felt{background:color-mix(in srgb,var(--warm) 14%,transparent);border:1px solid color-mix(in srgb,var(--warm) 40%,transparent)}
.sumo{background:color-mix(in srgb,var(--gold) 12%,transparent);border:1px solid color-mix(in srgb,var(--gold) 38%,transparent)}
.portable{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid var(--gold);border-radius:12px;padding:10px 14px;margin:12px 0;font-family:Fraunces,serif;font-size:1.08rem;color:var(--gold2)}
.tags{font-size:.74rem;color:var(--mute)}
.obj{border-left:3px solid var(--gold);padding-left:10px}
.bleach{border-color:var(--ok)}
.rq{border-top:1px dashed var(--line);padding-top:8px}.ans{background:var(--panel2);border-radius:10px;padding:8px 12px}
.chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;-webkit-overflow-scrolling:touch}
.chip{flex:0 0 auto;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:999px;padding:8px 14px;font:600 .85rem 'Be Vietnam Pro',sans-serif;cursor:pointer}.chip.on{border-color:var(--gold);color:var(--gold2)}
label{display:block;margin:12px 0 4px;font-size:.88rem;color:var(--mute)}
select,input[type=text]{width:100%;margin-top:4px;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font:1rem 'Be Vietnam Pro',sans-serif}
input[type=range]{width:100%;accent-color:var(--gold)}
.sl b{color:var(--gold2);margin-left:6px}
.fl p{margin:2px 0 10px;font-size:1.05rem}
.tip{border-left:3px solid var(--warm);padding-left:10px}
.pm-item{border-top:1px solid var(--line);padding:8px 0}
.checks{display:grid;grid-template-columns:1fr;gap:4px}.ck{margin:0;display:flex;gap:8px;align-items:center;color:var(--text);padding:6px 0}
.answer{margin-top:12px;padding:12px;border-radius:12px;background:var(--panel2);border:1px solid var(--gold)}.answer.urgent{border-color:var(--bad);background:#3a1511;color:#ffd9d4}
html[data-theme=light] .answer.urgent{background:#fde6e3;color:#7a1810}
.contact p{margin:0 0 8px}
.opt{display:block;width:100%;text-align:left;margin:8px 0;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font:1rem 'Be Vietnam Pro',sans-serif;cursor:pointer}.opt.on{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 16%,var(--panel2))}
.result.pass{border-color:var(--ok)}.result.fail{border-color:var(--bad)}
.rv.ok{border-left:4px solid var(--ok)}.rv.bad{border-left:4px solid var(--bad)}
.tblwrap{overflow-x:auto}
table{border-collapse:collapse;width:100%}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.86rem}th{color:var(--gold2);font-family:'Space Mono',monospace;font-size:.72rem;text-transform:uppercase}
.ct tr.self td{background:color-mix(in srgb,var(--gold) 14%,transparent)}
.pricing .plans{display:grid;grid-template-columns:1fr 1fr;gap:10px}.plan{border:1px solid var(--line);border-radius:14px;padding:12px;text-align:center}.plan.hot{border-color:var(--gold)}.plan b{display:block;font:700 2rem Fraunces,serif;color:var(--gold2)}
.biz{display:block;text-decoration:none;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;color:var(--text)}.biz b{display:block;color:var(--gold2)}.biz span{display:block;font-size:.85rem;color:var(--mute)}.biz i{word-break:break-all}
.vault dt{font:700 .75rem 'Space Mono',monospace;color:var(--gold2);margin-top:8px}.vault dd{margin:0;font-size:.88rem}
.src li{margin:6px 0;word-break:break-word}
.pm-wrap{overflow-x:auto}.pmap{width:100%;min-width:520px;height:auto}
.pm-room rect{fill:var(--panel2);stroke:var(--gold);stroke-width:1.5;cursor:pointer}.pm-room.sel rect{fill:color-mix(in srgb,var(--gold) 28%,var(--panel2))}
.pm-room{cursor:pointer}.pm-num{fill:var(--gold2);font:700 22px Fraunces,serif}.pm-name{fill:var(--text);font:600 11px 'Be Vietnam Pro',sans-serif}.pm-path{stroke:var(--warm);stroke-width:2;stroke-dasharray:5 5;opacity:.7}.pm-title{fill:var(--gold2);font:700 15px Fraunces,serif}.pm-hint{fill:var(--mute);font:11px 'Space Mono',monospace}
.rt td,.rt th{font-size:.8rem}
.moves{padding-left:20px}.moves li{margin:6px 0}
.exitcard dl{display:grid;grid-template-columns:130px 1fr;gap:6px 10px}.exitcard dt{font:700 .75rem 'Space Mono',monospace;color:var(--gold2)}.exitcard dd{margin:0}
.reasoncard .why{font-family:Fraunces,serif;font-size:1.15rem;color:var(--gold2)}
.diploma{margin:14px 0}.dp-frame{border:6px double var(--gold);padding:22px 16px;text-align:center;background:linear-gradient(160deg,var(--panel),var(--panel2));border-radius:6px}
.dp-frame h2{font-size:1.6rem;color:var(--gold2)}.dp-name{font:700 1.6rem Fraunces,serif;border-bottom:1px solid var(--gold);display:inline-block;min-width:60%;margin:8px 0;padding:0 10px}
.dp-deg{font:700 1.5rem Fraunces,serif;color:var(--warm);margin:10px 0}.dp-foot{display:flex;justify-content:space-between;gap:10px;margin:14px 0;font-size:.85rem}.dp-note{font-style:italic}
.dp-top{letter-spacing:.06em;color:var(--warm)}
#nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
#nav button{flex:1;border:0;background:transparent;color:var(--mute);padding:7px 2px 6px;display:flex;flex-direction:column;align-items:center;gap:1px;font:600 .62rem 'Be Vietnam Pro',sans-serif;cursor:pointer;min-height:54px}
#nav button b{font-size:1.1rem;font-weight:400}#nav button.on{color:var(--gold2)}
.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:var(--gold);color:#17120a;padding:10px 16px;border-radius:12px;font-weight:600;opacity:0;pointer-events:none;transition:.25s;z-index:60;max-width:90%}.toast.show{opacity:1;transform:translate(-50%,0)}
.modal{position:fixed;inset:0;background:#000b;z-index:70;display:flex;align-items:center;justify-content:center;padding:20px}.modal .card{width:100%;max-width:360px}
@media(min-width:700px){body{padding-bottom:0}#nav{position:sticky;top:60px;bottom:auto;max-width:820px;margin:0 auto;border:1px solid var(--line);border-radius:14px}.checks{grid-template-columns:1fr 1fr}}
@media(max-width:699px){.ct thead{display:none}.ct tr{display:block;border:1px solid var(--line);border-radius:12px;margin:10px 0;padding:6px}.ct td{display:block;border:0;padding:4px 6px}.ct td::before{content:attr(data-l);display:block;font:700 .66rem 'Space Mono',monospace;color:var(--gold2);text-transform:uppercase}.exitcard dl{grid-template-columns:1fr}}
@media print{
  body *{visibility:hidden}
  .printable,.printable *{visibility:visible}
  .printable{position:absolute;left:0;top:0;width:100%;background:#fff!important;color:#000!important;border:0}
  .printable *{color:#000!important;background:transparent!important}
  .dp-frame{border-color:#8f6b0f!important}
  .pm-room rect{fill:#fff!important;stroke:#000!important}.pm-name,.pm-num,.pm-title,.pm-hint{fill:#000!important}.pm-path{stroke:#555!important}
}
