:root{--bg:#0b0d10;--panel:#15181d;--panel-2:#1d2128;--line:#2a2f38;--text:#e8eaed;--muted:#9aa1ad;--accent:#3fb68b;--accent-ink:#04140e;--warn:#f2c14e;--danger:#ef5b4c;--radius:12px;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic UI,Meiryo,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0}body{-webkit-font-smoothing:antialiased;min-height:100vh}a{color:inherit}h1,h2{margin:0}.btn{appearance:none;border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-size:15px;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,transform 50ms;display:inline-flex}.btn:hover:not(:disabled){background:#232832;border-color:#3a414d}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:default}.btn.big{border-radius:12px;padding:16px 22px;font-size:18px}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.primary:hover:not(:disabled){background:#4cc79a}.btn.warn{background:var(--warn);color:#231a02;border-color:var(--warn)}.btn.active{border-color:var(--warn);color:var(--warn);background:#3a2a10}.btn.tiny{padding:6px 10px;font-size:13px}.icon{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:16px}.icon:hover{background:var(--panel-2);color:var(--text)}.input{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:8px;min-width:0;padding:10px 12px;font-family:inherit;font-size:15px}.input:focus{border-color:var(--accent);outline:none}.input.min{text-align:right;font-variant-numeric:tabular-nums;width:72px}.hint{color:var(--muted);margin:8px 0 0;font-size:13px;line-height:1.6}.check{color:var(--muted);cursor:pointer;align-items:center;gap:8px;margin-top:10px;font-size:14px;display:inline-flex}.chip{border:1px solid var(--line);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;padding:7px 12px;font-size:13px}.chip:hover{border-color:var(--accent);color:var(--accent)}.loading{color:var(--muted);padding:40px}.home{justify-content:center;min-height:100vh;padding:64px 16px;display:flex}.home-inner{width:100%;max-width:760px}.eyebrow{color:var(--accent);letter-spacing:.04em;margin:0 0 12px;font-size:14px;font-weight:700}.home h1{letter-spacing:.01em;font-size:clamp(30px,6vw,48px);line-height:1.3}.lead{color:var(--muted);margin:20px 0 28px;font-size:17px;line-height:1.8}.features{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:40px 0 0;padding:0;list-style:none;display:grid}.features li{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:6px;padding:16px;display:flex}.features strong{font-size:15px}.features span{color:var(--muted);font-size:14px;line-height:1.6}.recent{margin-top:40px}.recent h2{color:var(--muted);margin-bottom:8px;font-size:15px}.recent ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.recent li{gap:16px;font-size:14px;display:flex}.muted{color:var(--muted)}.ctrl{max-width:1280px;margin:0 auto;padding:16px}.ctrl-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:4px 4px 16px;display:flex}.brand{font-size:17px;font-weight:800;text-decoration:none}.ctrl-status{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:flex}.ctrl-status strong{color:var(--text)}.sep{opacity:.4}.dot{background:#555;border-radius:50%;width:9px;height:9px;display:inline-block}.dot.on{background:var(--accent);box-shadow:0 0 8px var(--accent)}.ctrl-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;display:grid}@media (max-width:900px){.ctrl-grid{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}.panel h2{color:var(--muted);letter-spacing:.04em;margin:24px 0 10px;font-size:14px;font-weight:700}.panel h2:first-child{margin-top:0}.preview{border:1px solid var(--line);aspect-ratio:16/9;border-radius:12px;overflow:hidden}.controls{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px;display:grid}.controls.small{grid-template-columns:repeat(5,1fr)}@media (max-width:520px){.controls.small{grid-template-columns:repeat(2,1fr)}}.msg-row{gap:8px;display:flex}.msg-row .input{flex:1}.presets{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.agenda{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.agenda li{border:1px solid #0000;border-radius:10px;align-items:center;gap:6px;padding:6px;display:flex}.agenda li.active{background:#12261e;border-color:#23533f}.agenda .num{text-align:center;width:22px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.agenda .title{flex:1}.agenda .unit{color:var(--muted);font-size:13px}.share{flex-wrap:wrap;align-items:flex-start;gap:14px;display:flex}.qr{background:#fff;border-radius:8px;width:132px;height:132px}.share-side{flex-direction:column;flex:1;gap:10px;min-width:200px;display:flex}.link{background:var(--bg);border:1px solid var(--line);word-break:break-all;color:var(--muted);border-radius:8px;padding:10px;font-size:13px;display:block}.share-buttons{flex-wrap:wrap;gap:8px;display:flex}.settings{flex-direction:column;gap:10px;display:flex}.settings label{align-items:center;gap:8px;font-size:14px;display:flex}.sw{border-radius:6px;padding:2px 8px;font-weight:700}.sw.warn{background:var(--warn);color:#231a02}.sw.danger{background:var(--danger);color:#fff}.face{color:#fff;background:#000;flex-direction:column;justify-content:space-between;align-items:center;width:100%;height:100%;padding:3vh 4vw;transition:background .3s;display:flex;position:relative;overflow:hidden;container-type:size}.face-top{justify-content:space-between;align-items:center;gap:2cqw;width:100%;min-height:6cqh;display:flex}.face-title{color:#cfd3da;white-space:nowrap;text-overflow:ellipsis;font-size:4.2cqh;font-weight:700;overflow:hidden}.face-badge{color:#ddd;white-space:nowrap;background:#333;border-radius:999px;padding:.3em .8em;font-size:3cqh;font-weight:800}.face-badge.over{background:var(--danger);color:#fff}.face-time{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:min(27cqw,52cqh);font-weight:800;line-height:1;font-family:"SF Pro Display", "Helvetica Neue", "Arial", var(--font,sans-serif);transition:color .3s}.face-message{text-align:center;color:#000;background:#fff;border-radius:1.6cqh;padding:2.2cqh 3cqw;font-size:7cqh;font-weight:800;line-height:1.3;position:absolute;bottom:16cqh;left:4cqw;right:4cqw;box-shadow:0 1cqh 4cqh #00000080}.face-message.flash{animation:1s step-end infinite flash}@keyframes flash{50%{background:var(--warn)}}.face-bottom{flex-direction:column;gap:1.6cqh;width:100%;display:flex}.face-progress{background:#222;border-radius:99px;width:100%;height:1.4cqh;overflow:hidden}.face-progress-bar{background:var(--accent);height:100%;transition:width .2s linear,background .3s}.face-next{color:#8b919c;text-align:right;font-size:3.4cqh}.phase-warn .face-time{color:var(--warn)}.phase-warn .face-progress-bar{background:var(--warn)}.phase-danger .face-time{color:var(--danger)}.phase-danger .face-progress-bar{background:var(--danger)}.phase-over{background:#3a0d09}.phase-over .face-time{color:#ff8a7d;animation:1s ease-in-out infinite pulse}.phase-over .face-progress-bar{background:var(--danger)}@keyframes pulse{50%{opacity:.55}}.face-blackout{background:#000}.face.waiting{justify-content:center;gap:2cqh}.waiting-text{color:#9aa1ad;font-size:5cqh}.waiting-sub{color:#5c626c;font-size:3cqh}.viewer{cursor:pointer;background:#000;position:fixed;inset:0}.viewer-dot{background:#444;border-radius:50%;width:10px;height:10px;position:fixed;top:10px;right:10px}.viewer-dot.on{background:var(--accent)}.viewer-hint{color:#ccc;pointer-events:none;background:#ffffff1f;border-radius:999px;padding:8px 14px;font-size:14px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.face-message.flash,.phase-over .face-time{animation:none}}
@media (max-width:900px){.ctrl-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.ctrl{padding:12px}.panel{padding:14px}.controls .btn.big{white-space:nowrap;padding:14px 6px;font-size:16px}.agenda li{border-color:var(--line);flex-wrap:wrap;padding:8px 6px}.agenda .title{flex:calc(100% - 32px)}.agenda .min{margin-left:28px}.msg-row{flex-wrap:wrap}.msg-row .input{flex:100%}.msg-row .btn{flex:1}}.home-brand{letter-spacing:.02em;margin:0 0 28px;font-size:18px;font-weight:800}
