:root{color-scheme:dark;--chrome: #0f1115;--chrome-2: #171a21;--line: #262b36;--text: #e8eaed;--muted: #9aa2b1;--crimson: #7b0003;--action: #c8102e;--accent: var(--crimson);--display: "Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;font-family:Space Grotesk,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;height:100dvh}html,body{overflow:hidden;overscroll-behavior:none;touch-action:none}body{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--chrome);color:var(--text);-webkit-user-select:none;user-select:none}.home{display:grid;place-content:center;height:100%;padding:24px;position:relative;overflow:hidden}.home-splatter{position:absolute;width:40vmin;opacity:.14;pointer-events:none;z-index:0}.home-splatter-1{top:-8vmin;left:-8vmin;transform:rotate(-18deg)}.home-splatter-2{bottom:-10vmin;right:-9vmin;transform:rotate(24deg)}.home-inner{position:relative;z-index:1;width:min(400px,92vw);text-align:center}.ink-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}.create-btn{width:100%;padding:20px;font-size:1.25rem;margin-bottom:16px}.enter-form{display:flex;gap:8px}.enter-form .code-input{flex:1}.draw-btn{padding:0 22px;background:var(--action);color:#fff;border:1px solid var(--action);border-radius:10px;font-weight:700;font-size:1rem;cursor:pointer;white-space:nowrap}.draw-btn:hover:not(:disabled){filter:brightness(1.08)}.enter-hint{color:var(--muted);font-size:.8rem;margin:8px 0 0}.home-inner{width:min(420px,92vw);text-align:center}.brandmark{font-family:var(--display);font-size:3.4rem;font-weight:900;letter-spacing:-.03em;margin:0 0 6px}.brand-ink{color:var(--action);position:relative}.tagline{color:var(--muted);margin:0 0 28px}.home-actions{display:grid;gap:12px;margin-bottom:20px}.big-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--chrome-2);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:18px 22px;font-size:1.1rem;font-weight:700;cursor:pointer}.big-btn:hover{border-color:var(--accent)}.big-btn.primary{background:var(--action);border-color:var(--action);color:#fff}.big-btn.primary:hover{filter:brightness(1.08)}.code-row{display:flex;gap:8px;margin-bottom:8px}.code-input{flex:1;text-transform:uppercase;letter-spacing:.18em;font-weight:700;text-align:center}.join-btn{display:inline-flex;align-items:center;gap:6px;background:var(--chrome-2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:0 14px;font-weight:600;cursor:pointer;white-space:nowrap}.join-btn.ghost{color:var(--muted)}.join-btn:hover:not(:disabled){border-color:var(--accent)}.advanced{margin-top:18px;text-align:left}.advanced summary{color:var(--muted);font-size:.85rem;cursor:pointer;text-align:center;list-style:none}.advanced summary:hover{color:var(--text)}.create{margin-top:34px;padding-top:26px;border-top:1px solid var(--line);display:grid;gap:10px}.create-title{color:var(--muted);font-size:.9rem}.home input,.card input{background:var(--chrome-2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:12px 14px;font-size:1rem;width:100%}.pass-row{display:flex;align-items:center;gap:8px;color:var(--muted)}.create button[type=submit],.card button{background:var(--chrome-2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:12px 16px;font-weight:600;cursor:pointer}.create button[type=submit]:hover:not(:disabled),.card button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}.board-page{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;background:var(--chrome);touch-action:none}.board-canvas{cursor:crosshair}.toolbar{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:10px 14px;background:#171a21eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 30px #00000073;z-index:15;max-width:calc(100vw - 12px);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.toolbar::-webkit-scrollbar{display:none}.toolbar-group{display:flex;gap:8px}.swatch,.tool-btn{width:44px;height:44px;border-radius:12px;border:2px solid transparent;cursor:pointer;display:grid;place-items:center;padding:0;flex-shrink:0}@media(max-width:700px){.toolbar{gap:8px;padding:8px 10px}.swatch,.tool-btn{width:40px;height:40px}}.swatch{position:relative;box-shadow:inset 0 0 0 1px #ffffff26}.swatch-active{border-color:#fff;transform:translateY(-3px);transition:transform .12s ease}.swatch-check{color:#fff;filter:drop-shadow(0 1px 1px rgba(0,0,0,.6))}.tool-btn{background:var(--chrome);color:var(--text);border-color:var(--line)}.tool-btn:active{transform:scale(.94)}.tool-btn-active{background:var(--text);color:var(--chrome);border-color:#fff}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;background:#090a0db8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.card{width:min(360px,90vw);background:var(--chrome-2);border:1px solid var(--line);border-radius:16px;padding:24px;display:grid;gap:12px;text-align:center}.card h2{margin:0}.muted{color:var(--muted);margin:0}.error{color:#ff6b6b;margin:0;font-size:.9rem}.status-pill{position:fixed;top:16px;left:50%;transform:translate(-50%);background:#171a21eb;border:1px solid var(--line);color:var(--muted);padding:6px 14px;border-radius:999px;font-size:.85rem}.empty-rest{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:12px;color:#b7bdc9;pointer-events:none}.empty-rest p{margin:0;font-size:1.1rem}.reveal-exit{display:none}@media(pointer:coarse){.reveal-exit{display:block;position:fixed;top:0;right:0;width:48px;height:48px;background:transparent;border:0;opacity:.15}}.latency-hud{position:fixed;top:12px;right:12px;font-variant-numeric:tabular-nums;font-size:.8rem;padding:4px 10px;border-radius:999px;background:#171a21e6;border:1px solid var(--line);color:var(--muted)}.hud-good{color:#4ade80}.hud-ok{color:#fbbf24}.hud-bad{color:#ff6b6b}.note-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8}.note{position:absolute;border-radius:10px;box-shadow:0 6px 18px #00000047;display:flex;flex-direction:column;min-height:3.2em;overflow:hidden;transform:translate(-6%,-10%)}.note-bar{height:1.4em;display:flex;justify-content:flex-end;align-items:center;cursor:grab;opacity:.7}.note-del{background:transparent;border:0;color:inherit;cursor:pointer;padding:0 4px;opacity:.7}.note-text{flex:1;border:0;outline:0;background:transparent;color:inherit;font:inherit;line-height:1.3;padding:0 .6em .5em;resize:none;white-space:pre-wrap;word-break:break-word}.note-text-ro{overflow:hidden}.page-tabs{position:fixed;top:max(12px,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;gap:6px;padding:6px;background:#171a21eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px #0006;z-index:15;max-width:92vw;overflow-x:auto}.page-tab{background:transparent;color:var(--muted);border:0;border-radius:9px;padding:7px 12px;font-weight:600;font-size:.85rem;white-space:nowrap;cursor:pointer}.page-tab:hover{color:var(--text)}.page-tab-active{background:var(--action);color:#fff}.page-add{display:grid;place-items:center;padding:7px 10px;color:var(--text)}.page-marker{position:fixed;top:14px;left:50%;transform:translate(-50%);color:var(--muted);opacity:.5;font-size:.9rem;font-weight:600;z-index:5;pointer-events:none}.toolbar-divider{width:1px;align-self:stretch;background:var(--line);margin:2px 0}.brush-group,.swatch-row{display:flex;gap:8px}.refresh-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:20;background:#b7791f;color:#fff;padding:8px 16px;border-radius:999px;font-size:.9rem;font-weight:600;box-shadow:0 8px 24px #0006}.refresh-banner button{background:#ffffff40;color:#fff;border:0;border-radius:999px;padding:3px 12px;font-weight:700;cursor:pointer}.pair{display:grid;justify-items:center;gap:18px;text-align:center}.pair-tv{position:fixed;top:0;right:0;bottom:0;left:0;align-content:center;background:var(--chrome)}.pair-brand{font-weight:800;letter-spacing:-.02em;color:var(--muted);font-size:1.2rem}.pair-lead{margin:0;color:var(--text);font-size:clamp(1.1rem,3vw,1.6rem);font-weight:600}.pair-qr{background:#fff;padding:16px;border-radius:16px;line-height:0}.pair-code{font-weight:800;letter-spacing:.22em;color:#fff;background:var(--accent);border-radius:14px;padding:10px 24px}.pair-tv .pair-code{font-size:clamp(3rem,13vw,9rem);padding:12px 40px}.pair-phone .pair-code{font-size:3rem}.pair-hint{margin:0;color:var(--muted);font-size:1rem;max-width:30ch}.pair-hint b{color:var(--text)}.cast-btn{position:fixed;top:max(14px,env(safe-area-inset-top));left:14px;display:inline-flex;align-items:center;gap:6px;background:#171a21eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-weight:600;font-size:.9rem;cursor:pointer}.cast-btn:hover{border-color:var(--accent)}.fs-btn{position:fixed;top:max(14px,env(safe-area-inset-top));right:14px;z-index:15;display:grid;place-items:center;width:40px;height:40px;background:#171a21eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);border:1px solid var(--line);border-radius:999px;cursor:pointer}.fs-btn:hover{border-color:var(--accent)}.fs-hint{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 84px);left:50%;transform:translate(-50%);z-index:20;background:var(--chrome-2);border:1px solid var(--line);color:var(--text);padding:10px 16px;border-radius:12px;font-size:.85rem;box-shadow:0 8px 24px #0006}.toolbar,.cast-btn,.fs-btn,.page-tabs{transition:transform .28s ease,opacity .28s ease}.chrome-hidden .toolbar{transform:translate(-50%,150%);opacity:0;pointer-events:none}.chrome-hidden .page-tabs{transform:translate(-50%,-160%);opacity:0;pointer-events:none}.chrome-hidden .cast-btn,.chrome-hidden .fs-btn{transform:translateY(-160%);opacity:0;pointer-events:none}.pair-modal{position:relative;background:var(--chrome-2);border:1px solid var(--line);border-radius:18px;padding:32px 28px}.pair-close{position:absolute;top:12px;right:12px;background:transparent;border:0;color:var(--muted);cursor:pointer}
