
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:300 500;font-display:swap;src:url(/room/fonts/HankenGrotesk-Variable-300-500.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:300 500;font-display:swap;src:url(/room/fonts/JetBrainsMono-Variable-300-500.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(/room/fonts/CormorantGaramond-Normal-500.woff2) format('woff2')}
:root{--ground:#0B0B0A;--paper:#EDEBE4;--grey:#8A8A80;--hair:#2A2A26;--amber:#FFB000;--f-sans:'Hanken Grotesk',system-ui,sans-serif;--f-mono:'JetBrains Mono',ui-monospace,monospace;--f-serif:'Cormorant Garamond',Georgia,serif}
*{box-sizing:border-box}
html{background:var(--ground)}
body{margin:0;background:var(--ground);color:var(--paper);font-family:var(--f-sans);font-weight:300;font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%}
a{color:var(--paper);text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:3px}
a:hover{text-decoration-color:var(--grey)}
.mark{font-family:var(--f-serif);font-weight:500;font-size:22px;letter-spacing:.02em;color:var(--paper)}
.label{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey)}
.grey{color:var(--grey)}
.gate{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:24px 16px;max-width:420px;margin:0 auto}
.gate main{flex:1;display:flex;flex-direction:column;justify-content:center;gap:20px}
.gate h1{font-weight:300;font-size:26px;line-height:1.2;letter-spacing:-.01em;margin:0}
.gate p{margin:0;color:var(--grey)}
.gate .fine{font-size:14px}
.gate footer{padding-top:24px;font-size:13px;color:var(--grey)}
input,button,select{font:inherit;color:var(--paper)}
.gate form{display:grid;gap:12px}
.code{display:block;width:100%;margin-top:6px;background:transparent;border:1px solid var(--hair);border-radius:0;padding:12px 14px;font-family:var(--f-mono);font-size:22px;letter-spacing:.3em;outline:none}
.code:focus{outline:1px solid var(--amber);outline-offset:0;border-color:var(--amber)}
.gate .msg,.msg{color:var(--paper);min-height:1.5em;margin-top:2px;font-size:14px;line-height:1.5}
.btn{background:transparent;border:1px solid var(--hair);padding:8px 14px;font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.btn:hover{border-color:var(--grey)}
.btn.link{border:0;padding:0;color:var(--grey);text-decoration:underline;text-decoration-color:var(--hair)}
/* admin */
.adm{max-width:1100px;margin:0 auto;padding:20px 16px 60px}
.adm header{display:flex;align-items:baseline;gap:16px;justify-content:space-between;border-bottom:1px solid var(--hair);padding-bottom:12px;margin-bottom:20px;flex-wrap:wrap}
.adm h1,.adm h2{font-weight:300;margin:0}
.adm h1{font-size:22px}.adm h2{font-size:16px;margin:28px 0 8px;font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--grey);font-weight:400;font-size:12px}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;font-family:var(--f-mono);font-weight:400;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);padding:6px 10px 6px 0;border-bottom:1px solid var(--hair);white-space:nowrap}
.tbl td{padding:9px 10px 9px 0;border-bottom:1px solid var(--hair);vertical-align:top}
.mono{font-family:var(--f-mono);font-size:13px}
.scroll{overflow-x:auto}
.bars{display:flex;gap:3px;align-items:flex-end;height:28px}
.bar{width:14px;height:100%;background:var(--hair);position:relative}
.bar i{position:absolute;left:0;right:0;bottom:0;background:var(--paper);opacity:.75}
.pill{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--hair);padding:1px 6px;color:var(--grey)}
.pill.live{color:var(--paper)}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.form{display:grid;gap:10px;max-width:520px}
.form label{display:grid;gap:4px}
.form input,.form select{background:transparent;border:1px solid var(--hair);padding:8px 10px;border-radius:0;outline:none}
.form input:focus,.form select:focus{outline:1px solid var(--amber);outline-offset:2px}
.linkbox{border:1px solid var(--hair);padding:10px;word-break:break-all;font-family:var(--f-mono);font-size:13px}
.note{font-size:13px;color:var(--grey)}
@media (max-width:600px){.adm{padding:16px}}
