:root{--bg:#0f1420;--panel:#171e2e;--line:#2a3448;--text:#e8ecf4;--muted:#93a0b8;--accent:#f4b860}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);flex-direction:column;height:100vh;margin:0;font:14px/1.45 system-ui,Segoe UI,sans-serif;display:flex;overflow:hidden}header{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;display:flex}header h1{margin:0;font-size:17px}header h1 span{color:var(--accent)}.spacer{flex:1}.stats{gap:18px;display:flex}.stats b{font-size:17px;line-height:1.1;display:block}.stats small{color:var(--muted);font-size:11px}.btn{background:var(--panel);border:1px solid var(--line);color:var(--text);cursor:pointer;font:inherit;border-radius:8px;padding:5px 10px;font-size:13px}.btn:hover{border-color:var(--accent)}.btn.on{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#1b1408;font-weight:600}.btn:disabled{opacity:.5;cursor:default}.muted{color:var(--muted)}#banner{color:#ffe3e3;background:#7a1f24;border-bottom:1px solid #b3343b;padding:7px 16px;font-size:13px}#banner[hidden]{display:none}.badge{letter-spacing:.06em;white-space:nowrap;border:1px solid;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.badge.owner{color:#7ad19a;background:#7ad19a1a}.badge.visitor{color:#7fb6ff;background:#7fb6ff1f}#visitorBar{color:#dce9ff;background:#173052;border-bottom:1px solid #2e5a94;flex-wrap:wrap;align-items:center;gap:10px;padding:7px 16px;font-size:13px;display:flex}#visitorBar[hidden]{display:none}#visitorBar .btn{margin-left:auto}body.visitor .stats,body.public #visitor,body.public #viewBadge,body.public #visitorBar{display:none}main{flex:1;min-height:0;display:flex}#stage{flex:1;min-width:0;min-height:0;position:relative}#stage canvas{display:block}.ov{border:1px solid var(--line);background:#0f1420d1;border-radius:10px;padding:8px 10px;position:absolute}.legend{pointer-events:none;font-size:12px;top:12px;right:12px}.legend div{padding:1px 0}.legend .note{color:var(--muted);margin-top:6px}#feed{pointer-events:none;width:min(420px,60%);font-size:12px;bottom:12px;left:12px}#feed[hidden]{display:none}#feed div{color:var(--muted);padding:2px 0;animation:.4s in}#feed b{font-weight:600}@keyframes in{0%{opacity:0;transform:translateY(6px)}}#tip{pointer-events:none;white-space:nowrap;z-index:5;padding:6px 9px;font-size:12px;line-height:1.5;display:none}aside{border-left:1px solid var(--line);background:var(--panel);width:340px;padding:16px;overflow:auto}aside h2{align-items:center;gap:8px;margin:0 0 4px;font-size:18px;display:flex}aside p{margin:4px 0}.sw{border-radius:3px;flex:none;width:12px;height:12px;display:inline-block}.tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;margin:4px 4px 4px 0;padding:2px 8px;font-size:11px;display:inline-block}.sec{margin-top:16px}.sec h4{text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:0 0 8px;font-size:11px}.wk{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:center;gap:10px;margin-bottom:6px;padding:8px;display:flex}.wk:hover{border-color:var(--accent)}.wk .ic{text-align:center;width:26px;font-size:20px}.wk small{color:var(--muted);overflow-wrap:anywhere;font-size:12px;display:block}.bar{background:#0c111b;border-radius:4px;height:6px;margin-bottom:4px;overflow:hidden}.bar i{background:var(--accent);height:100%;display:block}.path{overflow-wrap:anywhere;padding:1px 0;font-size:12px}.big{font-size:40px;line-height:1.1}.seg{border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.seg button{color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:0;flex:1;padding:7px 4px;font-size:12px}.seg button.on{background:var(--accent);color:#1b1408;font-weight:600}.overlay{z-index:20;background:#05080e99;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:min(440px,100%);max-height:100%;padding:20px;overflow:auto;box-shadow:0 20px 60px #00000080}.modal h2{margin:0 0 12px;font-size:17px}.fld{margin-bottom:12px;display:block}.fld>span{text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:4px;font-size:11px;display:block}.fld.row{align-items:center;gap:8px;display:flex}.fld.row>span{text-transform:none;letter-spacing:0;color:var(--text);margin:0;font-size:13px;display:inline}.fld input[type=text],.fld input[type=number],.fld select{border:1px solid var(--line);width:100%;color:var(--text);font:inherit;background:#0c111b;border-radius:8px;padding:7px 9px}.fld input:focus,.fld select:focus{border-color:var(--accent);outline:none}.hint{margin:6px 0 0;font-size:12px}.two{grid-template-columns:1fr 2fr;gap:10px;display:grid}.err{color:#ffd5d8;background:#4a1519;border:1px solid #b3343b;border-radius:8px;margin-bottom:12px;padding:7px 10px;font-size:13px}.err[hidden]{display:none}.actions{justify-content:flex-end;gap:8px;display:flex}@media (width<=760px){main{flex-direction:column}aside{border-left:0;border-top:1px solid var(--line);width:auto;height:auto;max-height:40vh;padding:12px 16px}.legend{display:none}.stats{gap:12px}header{gap:8px 12px;padding:8px 12px}#feed{width:auto;max-height:64px;padding:6px 8px;font-size:11px;bottom:8px;left:8px;right:8px;overflow:hidden}}.ms{margin:8px 0 0;padding:0;font-size:12.5px;list-style:none}.ms li{color:var(--muted);padding:2px 0}.ms li.done{color:#7ad19a}.ms li.part{color:var(--text)}.peek-btn{width:100%}.modal.peek{width:min(720px,94vw);max-height:88vh;overflow:auto}.peek-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.peek-head h2{margin:0}.peek .lead{font-size:15px}.peek-status{border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0;padding:8px 10px;font-size:13px;display:flex}.peek-status.draft{border:1px solid var(--accent);color:var(--accent);background:#f4b8601f}.peek-status.approved{color:#7ad19a;background:#7ad19a1a;border:1px solid #7ad19a}.peek-status .btn{margin-left:auto}.peek pre{border:1px solid var(--line);background:#0b0f18;border-radius:8px;padding:10px;font-size:12px;line-height:1.5;overflow:auto}.peek h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 6px;font-size:12px}.peek ul{margin:0;padding-left:18px}.shots{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:10px 0;display:grid}.shots figure{margin:0}.shots img,.shots video{border:1px solid var(--line);border-radius:8px;width:100%;display:block}.shots figcaption{color:var(--muted);margin-top:3px;font-size:11.5px}.links{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.links a{color:var(--accent)}.err:empty{display:none}.intro{pointer-events:none;text-align:center;z-index:6;background:radial-gradient(#080e1c59,#080e1c00 70%);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;transition:opacity .9s;display:flex;position:absolute;inset:0}.intro.out{opacity:0}.intro h2{color:var(--accent);letter-spacing:.02em;text-shadow:0 3px #2b1d12,0 8px 30px #00000073;margin:0;font:700 clamp(40px,9vw,104px)/1 Georgia,serif}.intro h2 span{opacity:0;animation:.8s cubic-bezier(.2,.9,.25,1.25) forwards letter;display:inline-block}.intro p{color:#fff;text-shadow:0 2px 10px #0009;opacity:0;margin:0;font-size:clamp(14px,2.2vw,20px);animation:1s forwards fade}.intro small{color:#ffffffb3;opacity:0;font-size:12px;animation:1s 1.5s forwards fade;position:absolute;bottom:18px}@keyframes letter{0%{opacity:0;filter:blur(6px);transform:translateY(40px)rotate(-8deg)scale(.6)}to{opacity:1;filter:none;transform:none}}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
