:root{--bg:#0c0b0f;--panel:#15131b;--panel-2:#1c1a24;--ink:#e6e1d8;--ink-dim:#9b9488;--ink-faint:#6a6459;--accent:#c08552;--accent-dim:#7a5333;--line:#2a2733;--danger:#b4443a;--ok:#6f9a5a;--warn:#c7a04a}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:ui-serif,Georgia,Times New Roman,serif}.shell{min-height:100vh}.center{place-items:center;padding:2rem;display:grid}.intro{text-align:center;max-width:640px}.intro h1{letter-spacing:.12em;margin:0 0 .5rem;font-size:3.5rem}.sub{color:var(--ink-dim);max-width:34rem;margin:0 auto 2rem;line-height:1.6}.worlds{gap:1rem;display:grid}.worldCard{text-align:left;background:var(--panel);border:1px solid var(--line);cursor:pointer;color:var(--ink);border-radius:10px;flex-direction:column;gap:.4rem;padding:1.1rem 1.3rem;font-family:inherit;transition:border-color .15s,background .15s,transform 50ms;display:flex}.worldCard:hover{border-color:var(--accent-dim);background:var(--panel-2)}.worldCard:active{transform:translateY(1px)}.worldTitle{letter-spacing:.04em;font-size:1.3rem}.worldTitle.big{margin:.4rem 0 .8rem;font-size:2rem;display:block}.worldTag{color:var(--ink-dim);font-size:.92rem}.intro.wide{max-width:900px}.originList{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin:.5rem 0 1.2rem;display:grid}.originCard{text-align:left;background:var(--panel);border:1px solid var(--line);cursor:pointer;color:var(--ink);border-radius:10px;flex-direction:column;gap:.4rem;padding:1.1rem 1.2rem;font-family:inherit;transition:border-color .15s,background .15s,transform 50ms;display:flex}.originCard:hover:not(:disabled){border-color:var(--accent-dim);background:var(--panel-2)}.originCard:active:not(:disabled){transform:translateY(1px)}.originCard:disabled{opacity:.5;cursor:default}.originTitle{letter-spacing:.03em;font-family:ui-serif,Georgia,serif;font-size:1.2rem}.originFlavor{color:var(--ink-dim);margin-bottom:.3rem;font-size:.9rem;line-height:1.5}.originBoon{color:var(--ok);font-size:.85rem;line-height:1.4}.originBane{color:var(--danger);font-size:.85rem;line-height:1.4}.back{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.85rem}.back:hover{color:var(--accent)}.concept{background:var(--panel);border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;border-radius:8px;padding:.8rem .9rem;font-family:inherit;font-size:1rem;line-height:1.5}.concept:focus{border-color:var(--accent-dim);outline:none}.startRow{justify-content:center;gap:.7rem;margin-top:1rem;display:flex}.fineprint{color:var(--ink-faint);margin-top:1rem;font-size:.78rem;line-height:1.5}.game{grid-template-columns:300px 1fr 300px;height:100vh;display:grid}@media (max-width:1100px){.game{grid-template-columns:1fr;height:auto}}.panel{background:var(--panel);padding:1.2rem 1.1rem 2rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82rem;overflow-y:auto}.panel.left{border-right:1px solid var(--line)}.panel.right{border-left:1px solid var(--line)}@media (max-width:1100px){.panel{border:none;border-top:1px solid var(--line)}}.sheetHead{margin-bottom:1.2rem}.portrait{aspect-ratio:1;object-fit:cover;border:1px solid var(--line);filter:saturate(.9)contrast(1.02);border-radius:8px;width:100%;margin-bottom:.7rem;display:block}.name{letter-spacing:.03em;font-family:ui-serif,Georgia,serif;font-size:1.35rem}.descriptor{color:var(--ink-dim);margin:.15rem 0 .6rem;font-size:.82rem;line-height:1.4}.worldHead{letter-spacing:.04em;color:var(--ink-dim);margin-bottom:1.1rem;font-family:ui-serif,Georgia,serif;font-size:1.15rem}.badge{letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);border-radius:20px;padding:.15rem .6rem;font-size:.72rem;display:inline-block}.badge-alive{color:var(--ok);border-color:var(--ok)}.badge-captured,.badge-enslaved{color:var(--warn);border-color:var(--warn)}.badge-dead{color:var(--danger);border-color:var(--danger)}.field{margin-bottom:1rem}.field>label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.35rem;font-size:.68rem;display:block}.dash{color:var(--ink-faint);font-style:italic}.list{margin:0;padding:0;list-style:none}.list li{color:var(--ink);padding:.18rem 0;line-height:1.45}.pName{color:var(--ink);display:block}.pMeta{color:var(--ink-dim);font-size:.74rem}.peek{border-top:1px solid var(--line);margin-top:1.2rem;padding-top:.8rem}.peek>summary{cursor:pointer;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;list-style:none}.peek>summary::-webkit-details-marker{display:none}.peek>summary:before{content:"▸ "}.peek[open]>summary:before{content:"▾ "}.peekBody{margin-top:.6rem}.peekLabel{color:var(--accent-dim);text-transform:uppercase;letter-spacing:.1em;margin:.6rem 0 .3rem;font-size:.64rem}.abandon{width:100%;color:var(--ink-faint);border:1px solid var(--line);cursor:pointer;letter-spacing:.08em;background:0 0;border-radius:6px;margin-top:1.5rem;padding:.5rem;font-family:inherit;font-size:.75rem}.abandon:hover{color:var(--danger);border-color:var(--danger)}.stage{flex-direction:column;height:100vh;min-height:0;display:flex}@media (max-width:1100px){.stage{order:-1;height:auto;min-height:72vh}}.stageHead{border-bottom:1px solid var(--line);padding:1rem 1.6rem .9rem}.scene{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.place{letter-spacing:.04em;font-family:ui-serif,Georgia,serif;font-size:1.2rem}.clock{color:var(--ink-faint);white-space:nowrap;font-family:ui-monospace,monospace;font-size:.78rem}.here{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.6rem;display:flex}.hereLabel{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.1em;margin-right:.2rem;font-size:.62rem}.chip{background:var(--panel-2);border:1px solid var(--line);border-radius:20px;padding:.15rem .65rem;font-family:ui-monospace,monospace;font-size:.78rem}.chip em{color:var(--ink-dim);font-style:normal}.elsewhere{color:var(--accent);opacity:.85;margin-top:.55rem;font-size:.85rem;font-style:italic}.scenesToggle{border:1px solid var(--line);color:var(--ink-faint);letter-spacing:.08em;cursor:pointer;background:0 0;border-radius:20px;margin-left:.6rem;padding:.1rem .5rem;font-family:ui-monospace,monospace;font-size:.64rem}.scenesToggle:hover{border-color:var(--accent-dim);color:var(--accent)}.sceneImg{border-bottom:1px solid var(--line);background:#000;flex-shrink:0}.sceneImg img{object-fit:cover;width:100%;max-height:40vh;display:block}.sceneImg.loading{background:linear-gradient(90deg, var(--panel) 0%, var(--panel-2) 50%, var(--panel) 100%);background-size:200% 100%;min-height:120px;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.log{flex:1;min-height:0;padding:1.6rem;overflow-y:auto}.beat{max-width:44rem;color:var(--ink);margin:0 0 1.4rem;font-size:1.05rem;line-height:1.75}.beat.thinking{color:var(--accent);font-style:italic}.cursor{background:var(--accent);vertical-align:text-bottom;width:.55ch;height:1.05em;margin-left:1px;animation:1s steps(2,start) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.composer{border-top:1px solid var(--line);padding:1rem 1.6rem 1.4rem}.note{color:var(--warn);margin-bottom:.5rem;font-size:.85rem}.err{color:var(--danger);margin:.4rem 0;font-size:.85rem}.inputRow{gap:.6rem;display:flex}.inputRow input{background:var(--panel);border:1px solid var(--line);color:var(--ink);border-radius:8px;flex:1;padding:.75rem .9rem;font-family:inherit;font-size:1rem}.inputRow input:focus{border-color:var(--accent-dim);outline:none}.primary{background:var(--accent);color:#1a1308;letter-spacing:.05em;cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.3rem;font-family:inherit;font-size:.95rem}.primary:disabled{opacity:.45;cursor:default}.ghost{color:var(--ink-dim);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:8px;padding:.6rem 1.2rem;font-family:inherit;font-size:.95rem}.ghost:hover{border-color:var(--accent-dim);color:var(--ink)}.gameover{border-top:1px solid var(--danger);text-align:center;padding:1.6rem}.goTitle{color:var(--danger);letter-spacing:.08em;margin-bottom:.6rem;font-size:1.6rem}.goWho{color:var(--ink);margin-bottom:.2rem;font-size:1.05rem}.goWhen{color:var(--ink-faint);margin-bottom:1rem;font-family:ui-monospace,monospace;font-size:.78rem}.goChronicle{color:var(--ink-dim);max-width:40rem;margin:0 auto 1.2rem;font-style:italic;line-height:1.6}
