/* infinislop.ai: the shell every page shares. Fonts (self-hosted, no third-party requests), tokens, the wordmark,
   buttons, fields, the modal card, header and footer. Page layouts live in each page. */
@font-face { font-family:'Archivo'; src:url(/static/fonts/archivo.woff2) format('woff2'); font-weight:100 900; font-stretch:62% 125%; font-display:swap }
@font-face { font-family:'Space Mono'; src:url(/static/fonts/spacemono.woff2) format('woff2'); font-weight:400; font-display:swap }
@font-face { font-family:'Space Mono'; src:url(/static/fonts/spacemono-bold.woff2) format('woff2'); font-weight:700; font-display:swap }
:root {
  --bg:#09090b; --panel:#101013; --panel-2:#16161a;
  --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.17); --line-3:rgba(255,255,255,.34);
  --fg:#f3f1ea; --fg-2:#bdbab1; --mute:#8b8880; --dim:#5d5b55;
  --live:#ff3b2f;
  --sans:'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --mono:'Space Mono', ui-monospace, Menlo, Consolas, monospace;
  /* SMPTE bars: the brand mark, the favicon, the stand-by card */
  --bars:linear-gradient(to right, #d6d6d6 0 14.285%, #d6d61e 0 28.571%, #1ed6d6 0 42.857%, #1ed61e 0 57.142%, #d61ed6 0 71.428%, #d61e1e 0 85.714%, #1e1ed6 0 100%);
  --r:10px; --r-lg:16px;
}
* { box-sizing:border-box }
html { -webkit-text-size-adjust:100% }
body { margin:0; background:var(--bg); color:var(--fg); font:15px/1.5 var(--sans); -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale }
a { color:inherit }
button, input, textarea { font:inherit; color:inherit }
[hidden] { display:none !important }
::selection { background:#d6d61e; color:#000 }

/* film grain over the whole page, static, cheap: one 180px tile of SVG noise */
.grain::before { content:''; position:fixed; inset:0; z-index:999; pointer-events:none; opacity:.045;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 0 0/180px 180px }

.label { font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--mute) }
.mark { display:inline-block; width:24px; height:15px; border-radius:3px; background:var(--bars); flex:none }
.brand { display:inline-flex; align-items:center; gap:11px; text-decoration:none; color:var(--fg) }
.brand .word { font-weight:800; font-stretch:118%; letter-spacing:-.025em; font-size:1.2rem; line-height:1 }
.brand .word .tld { font-weight:500; font-stretch:100%; letter-spacing:0; color:var(--mute) }

.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 16px; border-radius:var(--r); border:1px solid transparent;
  background:var(--fg); color:#0a0a0c; font-weight:600; font-size:.92rem; line-height:1.2; cursor:pointer; text-decoration:none; white-space:nowrap;
  transition:background .15s, border-color .15s, color .15s, transform .05s }
.btn:hover { background:#fff }
.btn:active { transform:translateY(1px) }
.btn.quiet { background:transparent; color:var(--fg); border-color:var(--line-3) }
.btn.quiet:hover { background:rgba(255,255,255,.06); border-color:var(--fg-2) }
.btn.sm { padding:7px 12px; font-size:.82rem; border-radius:8px }
.btn:disabled { opacity:.4; cursor:default; transform:none }
.field { background:rgba(255,255,255,.04); border:1px solid var(--line-2); border-radius:var(--r); padding:10px 14px; color:var(--fg); outline:none; min-width:0 }
.field::placeholder { color:var(--dim) }
.field:focus { border-color:var(--line-3); box-shadow:0 0 0 3px rgba(255,255,255,.06) }

/* the card that asks for one thing: sign in, credits, or the next minutes */
.modal { position:fixed; inset:0; z-index:60; display:grid; place-items:center; padding:24px; background:rgba(0,0,0,.66); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px) }
.modal .box { position:relative; width:min(100%, 30rem); padding:30px 30px 26px; background:var(--panel); border:1px solid var(--line-2); border-radius:var(--r-lg); box-shadow:0 30px 80px rgba(0,0,0,.6); text-align:center; overflow:hidden }
.modal .box::before { content:''; position:absolute; left:0; right:0; top:0; height:4px; background:var(--bars) }
.modal h2 { margin:4px 0 10px; font-size:1.6rem; font-weight:800; font-stretch:112%; letter-spacing:-.025em; line-height:1.1 }
.modal p { margin:8px 0; color:var(--fg-2); text-wrap:pretty }
.modal .row { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:16px }
.modal .row .field { flex:1; min-width:14rem }
.modal .fine { margin-top:16px; font-size:.82rem; color:var(--mute) }
.modal .fine a { color:var(--fg-2) }

.top { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 0 }
.foot { margin-top:72px; padding:22px 0 8px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:8px 22px; align-items:center; color:var(--dim); font-size:.82rem }
.foot a { color:var(--mute); text-decoration:none } .foot a:hover { color:var(--fg) }
.foot .links { display:flex; gap:16px; font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase }
