:root{--bg: #0e1116;--bg-deep: #090b0f;--panel: #161b23;--panel-2: #1c2330;--panel-3: #232c3c;--line: #2a3342;--line-soft: #222a38;--ink: #d7dde7;--ink-dim: #94a0b3;--ink-faint: #5d697b;--amber: #e8a33d;--amber-bright: #f4bc63;--amber-dim: #8a5f1d;--blue: #5b8dbe;--blue-dim: #2f4a68;--green: #7dc95e;--term-green: #9ee07a;--term-amber: #e0b15e;--red: #d95d55;--red-dim: #6e312d;--violet: #9a7fd1;--font-body: "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--font-display: "Iowan Old Style", "Palatino", Georgia, serif;--topbar-h: 52px;--sidebar-w: 332px;--dialogue-h: 340px;--radius: 10px;--radius-sm: 6px;--shadow: 0 10px 30px rgba(0, 0, 0, .45);--glow-amber: 0 0 0 1px rgba(232, 163, 61, .35), 0 0 18px rgba(232, 163, 61, .12)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15.5px;line-height:1.5;-webkit-font-smoothing:antialiased}#app{height:100%}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}input{font-family:inherit}::selection{background:#e8a33d4d}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px;border:2px solid var(--bg)}*::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:999;background:radial-gradient(ellipse at 50% -10%,rgba(91,141,190,.07),transparent 60%),repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px)}.hidden{display:none!important}.dim{color:var(--ink-dim)}.faint{color:var(--ink-faint)}.mono{font-family:var(--font-mono)}.amber{color:var(--amber)}.red{color:var(--red)}.green{color:var(--green)}.shell{display:flex;flex-direction:column;height:100%}.topbar{height:var(--topbar-h);flex:0 0 auto;display:flex;align-items:center;gap:14px;padding:0 16px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-bottom:1px solid var(--line)}.topbar .brand{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap}.topbar .brand b{color:var(--amber);font-weight:700}.loc-name{display:flex;align-items:baseline;gap:8px;min-width:0}.loc-name .name{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loc-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);border:1px solid var(--line);border-radius:4px;padding:1px 6px;white-space:nowrap}.loc-tag.sys{color:var(--term-green);border-color:#9ee07a59}.topbar .spacer{flex:1}.topbar-day{font-family:var(--font-mono);font-size:12px;color:var(--ink-dim);white-space:nowrap}.topbar-day b{color:var(--ink)}.topbar-day .tminus{color:var(--amber)}.chips{display:flex;gap:6px;align-items:center}.chip{display:flex;flex-direction:column;align-items:center;min-width:52px;padding:3px 8px 4px;background:var(--bg-deep);border:1px solid var(--line-soft);border-radius:var(--radius-sm);line-height:1.15}.chip .v{font-family:var(--font-mono);font-size:14px;font-weight:700}.chip .k{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.chip.warn .v{color:var(--red)}.chip.good .v{color:var(--green)}.shell-main{flex:1;display:flex;min-height:0}.scene-area{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;background:radial-gradient(ellipse at 30% 0%,rgba(91,141,190,.05),transparent 55%),var(--bg)}.sidebar{flex:0 0 var(--sidebar-w);display:flex;flex-direction:column;border-left:1px solid var(--line);background:var(--panel);min-height:0}.plate{flex:0 0 auto;height:212px;position:relative;border-bottom:1px solid var(--line);overflow:hidden;background:var(--bg-deep)}.plate svg{width:100%;height:100%;display:block}.plate-caption{position:absolute;left:18px;bottom:12px;max-width:70%;font-size:13px;color:var(--ink-dim);text-shadow:0 1px 4px rgba(0,0,0,.8);pointer-events:none}.plate-caption .head{display:block;font-size:15px;font-weight:700;color:var(--ink);margin-bottom:2px}.plate.terminal{background:repeating-linear-gradient(0deg,rgba(158,224,122,.045) 0 2px,transparent 2px 5px),radial-gradient(ellipse at 50% 120%,rgba(158,224,122,.12),transparent 60%),#0a0f0a}.plate.terminal.amber{background:repeating-linear-gradient(0deg,rgba(224,177,94,.05) 0 2px,transparent 2px 5px),radial-gradient(ellipse at 50% 120%,rgba(224,177,94,.14),transparent 60%),#100d07}.scene-body{flex:1;overflow-y:auto;padding:18px 22px 26px;display:flex;flex-direction:column;gap:14px}.narrative{font-size:15.5px;line-height:1.62;color:var(--ink);max-width:74ch}.narrative .lead{font-size:16.5px}.narrative em{color:var(--amber-bright);font-style:normal}.narrative .quote{display:block;margin:8px 0;padding:8px 14px;border-left:3px solid var(--amber-dim);background:#e8a33d0d;border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--ink-dim);font-style:italic}.sys-narrative{font-family:var(--font-mono);font-size:13.5px;line-height:1.65;color:var(--term-green);text-shadow:0 0 8px rgba(158,224,122,.25)}.sys-narrative .warn{color:var(--term-amber)}.section-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-top:4px}.actions{display:flex;flex-direction:column;gap:8px;max-width:640px}.action{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);transition:background .12s,border-color .12s,transform .06s}.action:hover:not(:disabled){background:var(--panel-2);border-color:var(--amber-dim)}.action:active:not(:disabled){transform:translateY(1px)}.action:disabled{opacity:.45;cursor:default}.action .glyph{flex:0 0 34px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--panel-3);border:1px solid var(--line)}.action .label{font-weight:600;font-size:15px}.action .hint{display:block;font-size:12.5px;color:var(--ink-dim);font-weight:400}.action .cost{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);white-space:nowrap}.action .cost.none{color:transparent}.action.move{background:transparent;border-style:dashed}.action.move:hover:not(:disabled){border-style:solid}.action.danger{border-color:var(--red-dim)}.action.locked-note:after{content:attr(data-lock);margin-left:auto;font-size:11px;color:var(--ink-faint)}.tabs{display:flex;border-bottom:1px solid var(--line);flex:0 0 auto}.tab{flex:1;padding:9px 2px 8px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);border-bottom:2px solid transparent}.tab.active{color:var(--amber);border-bottom-color:var(--amber)}.tab-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}.panel-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px}.member{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel-2)}.member .who{min-width:0}.member .name{font-weight:700;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member .role{font-size:11.5px;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member .tag{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--green);border:1px solid rgba(125,201,94,.35);border-radius:4px;padding:1px 5px;white-space:nowrap}.member .tag.resting{color:var(--ink-faint);border-color:var(--line)}.slot-empty{border:1px dashed var(--line);border-radius:var(--radius);padding:12px 8px;text-align:center;font-size:12px;color:var(--ink-faint)}.portrait{flex:0 0 auto;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--bg-deep);line-height:0}.portrait svg{display:block}.rel{display:grid;grid-template-columns:1fr 74px;gap:4px 10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-soft)}.rel:last-child{border-bottom:none}.rel .head{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:baseline}.rel .cname{font-weight:700;font-size:13.5px}.rel .csub{font-size:11.5px;color:var(--ink-dim)}.bar{height:6px;border-radius:4px;background:var(--bg-deep);overflow:hidden}.bar i{display:block;height:100%;border-radius:4px;background:var(--blue);transition:width .4s ease}.bar.trust i{background:var(--green)}.bar.conf i{background:var(--blue)}.bar.align i{background:var(--amber)}.rel .dimm{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.bar-row{display:grid;grid-template-columns:52px 1fr 18px;gap:8px;align-items:center;font-size:11px}.bar-row .bv{font-family:var(--font-mono);color:var(--ink-dim);text-align:right}.insight{padding:9px 11px;border:1px solid var(--line-soft);border-left:3px solid var(--amber-dim);border-radius:var(--radius-sm);background:var(--panel-2);font-size:13px;line-height:1.45;color:var(--ink-dim)}.insight .tag{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:3px}.empty-note{font-size:12.5px;color:var(--ink-faint);font-style:italic;padding:4px 0}.j-entry{padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:13px;color:var(--ink-dim);line-height:1.45}.j-entry:last-child{border-bottom:none}.j-entry .d{font-family:var(--font-mono);font-size:10px;color:var(--amber-dim);margin-right:8px}.j-entry.day{color:var(--ink);font-weight:600}.note{background:linear-gradient(180deg,#f2cf7b,#e8b95a);color:#2d2412;border-radius:3px;padding:10px 12px;font-size:12.5px;line-height:1.4;box-shadow:0 3px 10px #00000059;transform:rotate(-.6deg)}.note:nth-child(2n){transform:rotate(.7deg)}.note .q{font-weight:700;display:block;margin-bottom:2px}.note .st{font-size:11px;opacity:.75}.note.done{filter:grayscale(.7);opacity:.65}.note.done .q{text-decoration:line-through}.task{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel-2);font-size:13px}.task .st{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.task.available .st{color:var(--green)}.task.progress .st{color:var(--amber)}.task.done{opacity:.55}.task.done .st,.task.blocked .st{color:var(--ink-faint)}.task.cut{opacity:.4;border-style:dashed}.task.cut .st{color:var(--red)}.task .lead{font-size:10.5px;color:var(--ink-faint)}.dialogue{flex:0 0 auto;border-top:1px solid var(--line);background:linear-gradient(180deg,var(--panel-2),var(--panel));box-shadow:0 -14px 34px #00000080;display:flex;flex-direction:column;max-height:46%;min-height:240px}.dialogue-head{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:12px 20px 8px}.dialogue-head .portrait{border-color:var(--amber-dim)}.dialogue-head .who .nm{font-weight:700;font-size:15px}.dialogue-head .who .rl{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.dialogue-body{flex:1;overflow-y:auto;padding:4px 20px 8px}.dline{margin-bottom:10px;font-size:15px;line-height:1.58}.dline .spk{font-weight:700;color:var(--amber);margin-right:6px}.dline.them .spk{color:var(--blue)}.dline.narr{color:var(--ink-dim);font-style:italic}.dline.insight-line{color:var(--term-green);font-family:var(--font-mono);font-size:13.5px}.choices{flex:0 0 auto;padding:10px 16px 14px;display:flex;flex-direction:column;gap:6px;max-height:44%;overflow-y:auto;border-top:1px solid var(--line-soft)}.choice{display:flex;align-items:center;gap:10px;text-align:left;padding:7px 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:#ffffff06;transition:background .1s,border-color .1s;font-size:14px}.choice:hover:not(:disabled){background:var(--panel-3);border-color:var(--amber-dim)}.choice:disabled{opacity:.42;cursor:default}.choice .skill{flex:0 0 auto;font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;padding:2px 7px;border-radius:4px;border:1px solid var(--line);color:var(--blue);white-space:nowrap}.choice .skill.pass{color:var(--term-green);border-color:#9ee07a66}.choice .skill.fail{color:var(--red);border-color:var(--red-dim)}.choice .ctext{flex:1}.choice .ccost{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-faint)}.choice .lock{font-size:11px;color:var(--ink-faint);font-style:italic}.choice.key{border-color:var(--amber-dim);background:#e8a33d0f}.overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#090b0fb8;backdrop-filter:blur(3px)}.overlay-card{width:min(560px,calc(100vw - 40px));max-height:calc(100vh - 60px);overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:22px 24px}.overlay-card .kicker{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}.overlay-card h2{margin:0 0 12px;font-size:21px}.overlay-card .body{color:var(--ink-dim);font-size:14.5px;line-height:1.6}.checkcard .breakdown{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:12px 0;font-family:var(--font-mono);font-size:12.5px;background:var(--bg-deep)}.checkcard .brow{display:flex;justify-content:space-between;padding:3px 0;color:var(--ink-dim)}.checkcard .brow.total{border-top:1px solid var(--line);margin-top:6px;padding-top:8px;color:var(--ink);font-weight:700}.checkcard .brow .plus{color:var(--green)}.checkcard .verdict{font-size:17px;font-weight:800;letter-spacing:.04em;font-family:var(--font-mono);margin:6px 0 2px}.checkcard .verdict.pass{color:var(--term-green)}.checkcard .verdict.fail{color:var(--red)}.btn-row{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.btn{padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--panel-2);font-weight:600;font-size:13.5px;transition:background .12s,border-color .12s}.btn:hover{background:var(--panel-3);border-color:var(--ink-faint)}.btn.primary{background:var(--amber);border-color:var(--amber);color:#1a1206}.btn.primary:hover{background:var(--amber-bright)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-dim)}.btn.ghost:hover{color:var(--ink);background:var(--panel-2)}.btn.danger{border-color:var(--red-dim);color:var(--red)}.btn:disabled{opacity:.4;cursor:default}.btn small{display:block;font-weight:400;font-size:11px;opacity:.75}.title-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% -20%,rgba(232,163,61,.1),transparent 55%),radial-gradient(ellipse at 80% 110%,rgba(91,141,190,.08),transparent 55%),var(--bg)}.title-screen .grid{position:absolute;inset:0;background:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse at 50% 45%,black 20%,transparent 72%);opacity:.5}.title-block{position:relative;text-align:center;padding:0 24px}.title-kicker{font-family:var(--font-mono);font-size:12px;letter-spacing:.5em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:14px}.title-name{font-family:var(--font-display);font-size:clamp(52px,9vw,96px);line-height:.95;letter-spacing:.02em;margin:0;color:var(--ink);text-shadow:0 4px 40px rgba(232,163,61,.2)}.title-name .g{color:var(--amber)}.title-sub{margin-top:14px;font-size:15px;color:var(--ink-dim);font-style:italic}.title-actions{position:relative;margin-top:38px;display:flex;flex-direction:column;gap:10px;align-items:center}.title-actions .btn{min-width:250px;padding:11px 20px;font-size:15px}.title-foot{position:absolute;bottom:18px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);text-align:center;line-height:1.8;padding:0 16px}.creation{height:100%;overflow-y:auto;display:flex;justify-content:center;padding:40px 20px 60px;background:radial-gradient(ellipse at 50% -20%,rgba(91,141,190,.08),transparent 60%),var(--bg)}.creation .wrap{width:min(980px,100%);display:flex;flex-direction:column;gap:22px}.creation h1{font-family:var(--font-display);font-size:34px;margin:0}.creation .lede{color:var(--ink-dim);margin-top:6px;font-size:15px}.presets{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.preset{text-align:left;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);transition:border-color .12s,background .12s}.preset:hover{border-color:var(--amber-dim)}.preset.sel{border-color:var(--amber);background:var(--panel-2);box-shadow:var(--glow-amber)}.preset .pn{font-weight:700;font-size:15px}.preset .pd{font-size:12.5px;color:var(--ink-dim);margin-top:4px;line-height:1.45}.attrs{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px}.attr-row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;padding:9px 12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel)}.attr-row .an{font-size:13.5px;font-weight:600}.attr-row .ad{grid-column:1 / -1;font-size:11.5px;color:var(--ink-faint);margin-top:-2px}.attr-row .stepper{display:flex;align-items:center;gap:10px}.attr-row .val{font-family:var(--font-mono);font-size:17px;font-weight:700;width:24px;text-align:center;color:var(--amber)}.attr-row .step{width:26px;height:26px;border-radius:6px;border:1px solid var(--line);background:var(--panel-3);font-size:15px;line-height:1}.attr-row .step:disabled{opacity:.3}.focus-pick{display:flex;flex-wrap:wrap;gap:8px}.focus-chip{padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--panel);font-size:13px;color:var(--ink-dim)}.focus-chip:hover{border-color:var(--ink-faint)}.focus-chip.sel{border-color:var(--amber);color:var(--amber);background:#e8a33d14;font-weight:600}.name-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.name-row label{font-size:13px;color:var(--ink-dim)}.name-row input{background:var(--bg-deep);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);font-size:15px;padding:9px 12px;width:240px}.name-row input:focus{outline:none;border-color:var(--amber)}.points{font-family:var(--font-mono);font-size:12px;color:var(--ink-faint)}.points b{color:var(--amber)}.ending-screen{height:100%;overflow-y:auto;display:flex;justify-content:center;padding:48px 20px 80px;background:radial-gradient(ellipse at 50% -20%,rgba(232,163,61,.09),transparent 55%),var(--bg)}.ending-wrap{width:min(760px,100%);display:flex;flex-direction:column;gap:20px}.ending-kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-faint)}.ending-title{font-family:var(--font-display);font-size:clamp(34px,6vw,52px);line-height:1.05;margin:0}.ending-epi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px 22px;font-size:15px;line-height:1.65;color:var(--ink-dim)}.ending-epi p{margin:0 0 12px}.ending-epi p:last-child{margin-bottom:0}.ending-epi b{color:var(--ink)}.ledger{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ledger .item{border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:10px 12px;background:var(--panel-2);font-size:13px;color:var(--ink-dim);line-height:1.45}.ledger .item .k{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:4px}.ticker{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{background:var(--panel-2);border:1px solid var(--amber-dim);color:var(--ink);border-radius:8px;padding:9px 16px;font-size:13.5px;box-shadow:var(--shadow);animation:toast-in .25s ease;max-width:min(560px,90vw)}.toast .tk{color:var(--amber);font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-right:8px}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){:root{--sidebar-w: 270px}.attrs,.presets{grid-template-columns:1fr}}@media(max-width:820px){.shell-main{flex-direction:column}.sidebar{flex:0 0 auto;max-height:42%;border-left:none;border-top:1px solid var(--line)}.plate{height:150px}.topbar .brand{display:none}}
