:root{
  --bg:#0C0F14; --panel:#141922; --panel-2:#1B212C; --edge:#28303C;
  --ink:#EDF0F4; --soft:#A2ABB8; --faint:#6C7684;
  --gold:#E7B24A; --gold-ink:#F2C877;
  --sans:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"Cascadia Code",Consolas,monospace;
  --shadow:0 18px 50px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  background:radial-gradient(1200px 700px at 50% -10%, #16202E 0%, var(--bg) 60%);
  color:var(--ink); font-family:var(--sans); line-height:1.55;
  display:flex; flex-direction:column; min-height:100vh;
}
@media (prefers-reduced-motion: reduce){ *{animation:none!important;transition:none!important} }

.topbar{display:flex;align-items:center;gap:14px;padding:20px clamp(18px,4vw,44px)}
.wordmark{font-weight:800;letter-spacing:.34em;font-size:16px;color:var(--ink)}
.tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);
  border:1px solid var(--edge);border-radius:20px;padding:3px 10px}

#app{flex:1;width:100%;max-width:960px;margin:0 auto;padding:clamp(16px,3vw,36px) clamp(18px,4vw,44px)}
.state{animation:fade .35s ease both}
.hidden{display:none!important}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:0 0 8px}
h1{font-size:clamp(24px,4vw,36px);margin:0 0 10px;letter-spacing:.2px;text-wrap:balance}
.muted{color:var(--soft);max-width:60ch}

.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--edge);border-top-color:var(--gold);
  animation:spin 1s linear infinite;margin:40px auto 14px}
@keyframes spin{to{transform:rotate(360deg)}}
#state-loading{text-align:center;padding-top:8vh}

.grid{display:grid;gap:16px;margin-top:22px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.vcard{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--edge);border-radius:14px;
  padding:18px;cursor:pointer;text-align:left;color:inherit;font:inherit;box-shadow:var(--shadow);
  transition:border-color .18s ease, transform .18s ease}
.vcard:hover{border-color:var(--gold);transform:translateY(-2px)}
.vcard:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.vcard .play{width:38px;height:38px;border-radius:50%;background:var(--gold);color:#1a1204;display:grid;place-items:center;
  font-size:16px;margin-bottom:14px}
.vcard h3{margin:0 0 4px;font-size:17px}
.vcard .meta{font-family:var(--mono);font-size:11px;color:var(--faint);display:flex;gap:8px;align-items:center;margin-top:8px}
.vcard .nda{background:rgba(231,178,74,.14);color:var(--gold-ink);border-radius:20px;padding:1px 8px;letter-spacing:.05em}

.nda-box{background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:18px 20px;margin:14px 0 16px;
  max-height:280px;overflow:auto;color:var(--soft);font-size:14.5px}
.nda-box h4{color:var(--ink);margin:0 0 8px}
.nda-box p{margin:0 0 10px}
.nda-box .nda-list{margin:0 0 10px;padding-left:18px}
.nda-box .nda-list li{margin:0 0 5px}
.agree{display:flex;gap:11px;align-items:flex-start;color:var(--ink);font-size:14.5px;cursor:pointer;max-width:60ch}
.agree input{margin-top:3px;width:18px;height:18px;accent-color:var(--gold);flex:none}
.row-btns{display:flex;gap:10px;margin-top:18px}
.btn{font:inherit;font-size:14.5px;border-radius:10px;padding:10px 18px;cursor:pointer;border:1px solid var(--edge);
  background:var(--panel-2);color:var(--ink);transition:opacity .15s ease, background .15s ease}
.btn.small{padding:6px 12px;font-size:13px}
.btn.primary{background:var(--gold);color:#1a1204;border-color:transparent;font-weight:700}
.btn.primary:disabled{opacity:.4;cursor:not-allowed}
.btn.ghost{background:transparent}
.btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.fineprint{color:var(--faint);font-size:12px;margin-top:12px}

.player-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.player-title{font-weight:600}
.player-wrap{position:relative;background:#000;border:1px solid var(--edge);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.video{display:block;width:100%;max-height:72vh;background:#000}
.watermark{position:absolute;right:14px;bottom:56px;font-family:var(--mono);font-size:12px;color:rgba(255,255,255,.32);
  letter-spacing:.06em;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.6);user-select:none}

.footer{display:flex;gap:10px;justify-content:center;align-items:center;color:var(--faint);font-size:12px;
  padding:20px;border-top:1px solid var(--edge)}
.footer .dot{opacity:.5}
