:root{--bg: #0a0e1f;--panel: #121933;--line: #24305a;--text: #f4f6ff;--muted: #9aa3c7;--accent: #ff2e93;--gold: #d4a24c;--ok: #3ddc97;--warn: #ffb547;--err: #ff5a6e}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--text)}.nav{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.nav nav{display:flex;gap:14px;flex-wrap:wrap}.nav a{text-decoration:none;color:var(--muted)}.nav a.active{color:var(--accent)}.brand{font-weight:800;display:flex;align-items:center;gap:10px;color:var(--text)!important}.logo-placeholder{border:1px dashed var(--accent);color:var(--accent);font-size:10px;padding:3px 6px;letter-spacing:.08em}.page{max-width:960px;margin:0 auto;padding:16px}.hero-title{font-size:clamp(36px,8vw,72px);letter-spacing:-.02em;margin:24px 0 0;line-height:1}.lead{color:var(--muted);font-size:20px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:20px 0}.tile{display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;text-decoration:none}.tile:hover{border-color:var(--accent)}.tile span{color:var(--muted);font-size:14px}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}.btn{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px 16px;font:inherit;cursor:pointer}.btn.primary{background:var(--accent);border-color:var(--accent);font-weight:700}.btn.danger{border-color:var(--err);color:var(--err)}.btn.small{padding:4px 10px;font-size:13px}.btn:disabled{opacity:.45;cursor:default}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0;overflow:auto}fieldset.card legend{padding:0 6px;color:var(--muted)}.segmented{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.segmented label{border:1px solid var(--line);border-radius:10px;padding:10px;cursor:pointer;display:flex;flex-direction:column}.segmented label.on{border-color:var(--accent);background:#ff2e9315}.segmented input{position:absolute;opacity:0}.segmented label:focus-within{outline:2px solid var(--accent)}.segmented small{color:var(--muted)}label{display:block;margin:8px 0}input[type=range]{width:100%;accent-color:var(--accent)}select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px;font:inherit;max-width:100%}textarea.json{width:100%;font-family:ui-monospace,monospace;font-size:13px}.muted{color:var(--muted)}.error{color:var(--err)}.ok{color:var(--ok)}.warn-text{color:var(--warn)}.tag{display:inline-block;font-size:11px;border:1px solid var(--warn);color:var(--warn);border-radius:6px;padding:0 6px;margin-left:6px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--muted);margin:0 4px 0 10px}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.off{background:#555}.notice{background:#ffb54718;border:1px solid var(--warn);padding:10px;border-radius:10px}.camera-wrap{position:relative}.camera{width:100%;max-height:60vh;background:#000;border-radius:14px}.rec{position:absolute;top:10px;left:10px;color:#fff;background:var(--err);padding:2px 8px;border-radius:6px;font-weight:700;animation:blink 1s infinite}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:8px;border-bottom:1px solid var(--line);font-size:14px}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.tabs a{padding:6px 12px;border:1px solid var(--line);border-radius:8px;text-decoration:none}.tabs a.active{border-color:var(--accent);color:var(--accent)}.sticky-actions{position:sticky;bottom:0;background:var(--bg);padding:10px 0;border-top:1px solid var(--line)}pre{white-space:pre-wrap;word-break:break-word;font-size:13px}audio{width:100%;margin-top:8px}.display{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px;overflow:hidden;background:radial-gradient(circle at 50% 60%,#1b2350,var(--bg) 70%);transition:background .6s}.display.celebrating{background:radial-gradient(circle at 50% 50%,#ff2e9355,#3a1a6a 40%,var(--bg) 80%)}.display-status{position:fixed;top:10px;left:10px;right:10px;font-size:13px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}.display-log{position:fixed;bottom:10px;left:10px;list-style:none;padding:0;margin:0;text-align:left;font-size:12px;color:var(--muted)}.bell-emoji{font-size:clamp(90px,20vw,200px);filter:drop-shadow(0 0 30px #d4a24c88)}.idle-bell{opacity:.6;animation:float 4s ease-in-out infinite}.celebration h1{font-size:clamp(40px,9vw,120px);margin:0;line-height:1;letter-spacing:-.02em;text-shadow:0 0 40px var(--accent)}.celebration p{font-size:clamp(18px,3vw,32px)}.celebration .bell-emoji{animation:swing .5s ease-in-out infinite alternate;transform-origin:50% 10%}.rings{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.rings span{position:absolute;width:200px;height:200px;border:3px solid var(--accent);border-radius:50%;animation:ring 2.4s ease-out infinite}.rings span:nth-child(2){animation-delay:.8s;border-color:var(--gold)}.rings span:nth-child(3){animation-delay:1.6s}@keyframes ring{0%{transform:scale(.5);opacity:1}to{transform:scale(6);opacity:0}}@keyframes swing{0%{transform:rotate(-18deg)}to{transform:rotate(18deg)}}@keyframes float{50%{transform:translateY(-12px)}}@keyframes blink{50%{opacity:.3}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.logo{height:22px;width:auto;display:block}.office-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0;max-width:520px}.office-switch button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 10px;border-radius:14px;background:var(--panel);border:2px solid var(--line);color:var(--text);font:inherit;cursor:pointer}.office-switch button:hover{border-color:var(--muted)}.office-switch button.on{border-color:var(--accent);background:#ff2e9318;box-shadow:0 0 0 3px #ff2e9330}.office-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.office-switch .flag{font-size:26px;line-height:1}.office-switch small{color:var(--muted)}.audio-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#0a0e1fe0;color:var(--text);border:0;font:inherit;cursor:pointer;padding:16px;text-align:center}.audio-gate b{font-size:clamp(22px,5vw,44px)}.audio-gate small{color:var(--muted);max-width:460px}.audio-gate-icon{font-size:clamp(56px,12vw,120px);animation:gate-pulse 1.6s ease-in-out infinite}@keyframes gate-pulse{50%{transform:scale(1.12)}}@media (prefers-reduced-motion: reduce){.audio-gate-icon{animation:none}}
