@font-face{font-family:'Sora';src:url(/assets/sora_400.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Sora';src:url(/assets/sora_700.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Sora';src:url(/assets/sora_800.woff2) format('woff2');font-weight:800;font-display:swap}

:root{
  --ink:#0A0A0B; --bone:#F2F2F0; --red:#FF453A; --gray:#A6ABB5; --dim:#83838B;
  --desk:#0A0A0B; --paper:#131316; --panel:#17171A; --line:rgba(242,242,240,.11);
  --border:#2A2A2F; --hover:rgba(242,242,240,.05); --sel:#1D1D22;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{color-scheme:dark}
body{font-family:'Sora',-apple-system,'Segoe UI',sans-serif;color:var(--bone);background-color:var(--desk);
  background-image:radial-gradient(rgba(242,242,240,.05) 1px,transparent 1.5px);background-size:20px 20px;
  min-height:100vh;padding-bottom:44px;line-height:1.5;overflow-x:clip}
a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.red{font-style:normal;color:var(--red)}

/* menu bar */
.os-menubar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:10px 22px;background:rgba(10,10,11,.88);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.os-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--bone)}
.os-mark{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 8px;border-radius:8px;
  background:var(--bone);color:var(--ink);font-weight:800;font-size:16px;line-height:1}
.os-word{font-weight:800;font-size:18px;letter-spacing:-.02em}
.os-menu{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap}
.os-menu a{color:var(--gray);text-decoration:none;font-weight:700;font-size:13px;padding:12px 14px;border-radius:8px}
.os-menu a:hover,.os-menu a.is-here{color:var(--bone);background:var(--hover)}
.os-clock{font-size:12px;font-weight:700;color:var(--dim);letter-spacing:.08em;white-space:nowrap}

/* window chrome */
.os-window{width:calc(100% - 28px);max-width:1060px;margin:26px auto;background:var(--paper);
  border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 44px rgba(0,0,0,.5);overflow:hidden}
.os-titlebar{display:flex;align-items:center;gap:14px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--border)}
.os-dots{display:flex;gap:6px;flex:none}
.os-dots i{width:11px;height:11px;border-radius:50%;background:rgba(242,242,240,.14);border:1px solid rgba(242,242,240,.2)}
.os-dots i:first-child:hover{background:var(--red);border-color:var(--red)}
.os-title{flex:1 1 auto;min-width:0;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.os-tbright{flex:none;margin-left:auto;font-size:11px;color:var(--dim);letter-spacing:.06em;white-space:nowrap}

/* mail grid */
.os-app{display:grid;grid-template-columns:200px 292px minmax(0,1fr);min-height:440px}
.os-side{background:var(--panel);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:2px}
.os-sidelabel{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);padding:0 8px 8px}
.os-folder{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;border-radius:8px;
  text-decoration:none;color:var(--bone);font-size:13.5px}
.os-folder b{font-size:11.5px;font-weight:700;color:var(--dim)}
.os-folder:hover{background:var(--hover)}
.os-folder.is-on{background:var(--bone);color:var(--ink)}
.os-folder.is-on b{color:var(--ink)}
.os-meter{margin-top:auto;padding:14px 8px 4px}
.os-meter p{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.os-meterbar{display:block;height:5px;border-radius:99px;background:rgba(242,242,240,.12);overflow:hidden}
.os-meterbar i{display:block;height:100%;width:9%;background:var(--red);border-radius:99px}

/* message list */
.os-list{min-width:0;border-right:1px solid var(--line);display:flex;flex-direction:column}
.os-listhead{display:flex;justify-content:space-between;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);
  font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.os-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;align-items:start;padding:14px 16px;
  border-bottom:1px solid var(--line);text-decoration:none;color:var(--bone)}
.os-row:hover{background:var(--hover)}
.os-row.is-on{background:var(--sel);box-shadow:inset 3px 0 0 var(--bone)}
.os-row.is-soon{opacity:.55}
.os-dot{width:9px;height:9px;border-radius:50%;background:var(--red);margin-top:5px}
.os-row.is-soon .os-dot{background:rgba(242,242,240,.16)}
.os-rowmain{min-width:0}
.os-rowmain b{display:block;font-size:14px;font-weight:800;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.os-rowmain em{display:block;font-style:normal;font-size:12.5px;color:var(--gray);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.os-rowmeta{text-align:right;font-size:11px;font-weight:700;color:var(--dim);line-height:1.6;white-space:nowrap}

/* reading pane */
.os-pane{min-width:0;padding:24px 26px 28px;display:flex;flex-direction:column;gap:18px}
.os-panelabel{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.os-h1{font-size:clamp(22px,3vw,30px);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-top:-8px}
.os-meta{display:grid;gap:6px;border-bottom:1px solid var(--line);padding-bottom:16px}
.os-metarow{display:flex;gap:10px;font-size:13px;flex-wrap:wrap}
.os-metarow b{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);min-width:72px;padding-top:2px}
.os-metarow span{word-break:break-word}

/* player */
.os-player{background:#000;border:1px solid var(--border);border-radius:10px;padding:18px 20px;display:flex;align-items:center;gap:16px;color:var(--bone)}
.os-play{width:52px;height:52px;flex:none;border-radius:50%;background:var(--red);border:0;display:flex;align-items:center;justify-content:center;cursor:pointer}
.os-play:hover{background:#FF5D53}
.os-play .tri{display:block;width:0;height:0;border-left:15px solid var(--bone);border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:4px}
.os-play .pause{display:none;width:14px;height:18px;border-left:5px solid var(--bone);border-right:5px solid var(--bone)}
.os-play.is-playing .tri{display:none}
.os-play.is-playing .pause{display:block}
.os-wave{flex:1;min-width:0;height:54px;display:flex;align-items:center;gap:2px;cursor:pointer}
.os-wave i{flex:1 1 0;min-width:1px;max-width:5px;border-radius:2px;background:rgba(242,242,240,.32);min-height:4px}
.os-wave i.is-past{background:var(--red)}
.os-time{font-size:13px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.os-time span{color:rgba(242,242,240,.5);font-weight:400}
.os-nowline{font-size:12.5px;color:var(--gray);margin-top:-8px}

/* captions / transcript */
.os-caption{border:1px solid var(--border);border-radius:10px;padding:18px 20px;background:var(--panel)}
.os-caption b{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:9px}
.os-quote{font-size:clamp(17px,2.3vw,24px);font-weight:800;line-height:1.3;letter-spacing:-.01em;text-transform:uppercase;min-height:2.6em}
.os-transcript{border:1px solid var(--border);border-radius:10px;padding:18px 20px;background:var(--panel);max-height:320px;overflow-y:auto}
.os-transcript b{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:9px}
.os-words{font-size:15.5px;font-weight:700;line-height:1.9;letter-spacing:-.01em;color:var(--gray)}
.os-words span{cursor:pointer;border-radius:3px;padding:1px 2px}
.os-words span:hover{color:var(--bone)}
.os-words span.is-now{color:var(--ink);background:var(--red)}
.os-words span.is-past{color:var(--bone)}
.os-words span.is-bleep,.os-words span.is-bleep.is-past{color:var(--red)}
.os-words span.is-bleep.is-now{color:var(--ink)}
.os-quote em.blp{color:var(--red);font-style:normal}

/* vote */
.os-voterow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.os-vote{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--bone);border-radius:999px;padding:9px 17px;
  background:none;text-decoration:none;color:var(--bone);font-weight:800;font-size:15px;cursor:pointer;font-family:inherit;min-height:44px}
.os-vote:hover{background:var(--bone);color:var(--ink)}
.os-vote.is-voted{border-color:var(--red);color:var(--red);pointer-events:none}
.os-vote i{font-style:normal;font-size:12px}
.os-votenote{font-size:13px;color:var(--gray)}

/* leaderboard */
.os-rank{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px 20px;
  border-bottom:1px solid var(--line);text-decoration:none;color:var(--bone)}
.os-rank:hover{background:var(--hover)}
.os-rank.is-top{background:var(--sel)}
.os-rank.is-soon{opacity:.5}
.os-rank>b{font-size:18px;font-weight:800;letter-spacing:-.02em}
.os-rankmain{display:flex;gap:6px 14px;align-items:baseline;flex-wrap:wrap;min-width:0}
.os-rankcall{font-size:13.5px;font-weight:700}
.os-rankname{font-size:13.5px;color:var(--gray)}
.os-rankvotes{font-size:14px;font-weight:800;white-space:nowrap}
.os-rank.is-top .os-rankvotes{color:var(--red)}
.os-boardfoot{padding:12px 20px;font-size:12.5px;color:var(--gray);background:var(--panel);border-top:1px solid var(--line)}

/* compose / submit */
.os-cbody{padding:20px 24px 26px}
.os-cfield{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:9px 2px;font-size:13.5px}
.os-cfield b{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);min-width:72px}
.os-cfield span{word-break:break-word}
.os-chl{font-size:clamp(20px,3.4vw,30px);font-weight:800;letter-spacing:-.02em;line-height:1.22;margin:22px 0 18px;max-width:660px}
.os-drop{border:2px dashed rgba(242,242,240,.3);border-radius:10px;padding:34px 20px;text-align:center;background:rgba(242,242,240,.03);cursor:pointer}
.os-drop:hover,.os-drop.is-over{border-color:var(--bone);background:rgba(242,242,240,.06)}
.os-dropicon{display:inline-flex;width:40px;height:40px;border:2px solid var(--bone);border-radius:10px;align-items:center;justify-content:center;font-size:18px;font-weight:800;margin-bottom:10px}
.os-drop b{display:block;font-size:15px;font-weight:700}
.os-drop span{display:block;font-size:12px;color:var(--dim);margin-top:5px}
.os-textarea{width:100%;margin-top:16px;border:1px solid var(--border);border-radius:9px;background:var(--panel);
  padding:12px 14px;font-family:inherit;font-size:14px;color:var(--bone);min-height:84px;resize:vertical}
.os-textarea::placeholder{color:var(--dim)}
.os-cfoot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px}
.os-btn{display:inline-flex;align-items:center;font-weight:800;font-size:14.5px;padding:12px 20px;border-radius:9px;
  border:0;text-decoration:none;cursor:pointer;font-family:inherit}
.os-btnred{background:var(--red);color:#fff}
.os-btnred:hover{background:#FF5D53}
.os-btnghost{background:none;border:1px solid var(--border);color:var(--bone)}
.os-btnghost:hover{border-color:var(--bone)}
.os-cfootnote{font-size:13px;color:var(--gray)}

/* dialog (email capture) */
.os-dialog{max-width:480px}
.os-dbody{padding:20px 22px 24px}
.os-dlgrow{display:flex;gap:12px;align-items:flex-start}
.os-badge{flex:none;min-width:24px;height:24px;border-radius:50%;background:var(--red);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;margin-top:1px}
.os-dlghl{font-size:18px;font-weight:800;letter-spacing:-.01em}
.os-dlgsub{font-size:12.5px;color:var(--gray);margin-top:4px}
.os-dlgform{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.os-input{flex:1 1 200px;min-width:0;border:1px solid var(--border);border-radius:9px;background:var(--panel);padding:11px 13px;font-family:inherit;font-size:14px;color:var(--bone)}
.os-input::placeholder{color:var(--dim)}
.os-input:focus{outline:none;border-color:var(--bone)}
.os-dlgnote{font-size:13px;color:var(--gray);margin-top:11px}

/* status bar */
.os-statusbar{width:calc(100% - 28px);max-width:1060px;margin:30px auto 0;background:var(--panel);border:1px solid var(--border);
  color:var(--gray);border-radius:10px;padding:13px 18px;display:flex;align-items:center;gap:10px 22px;flex-wrap:wrap;font-size:12.5px}
.os-statusbar a{color:var(--bone);text-decoration:none}
.os-statusbar a:hover{color:var(--red)}
.os-rec{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--bone)}
.os-rec i{width:8px;height:8px;border-radius:50%;background:var(--red)}
.os-statR{margin-left:auto}

@media (max-width:560px){
  .os-tbright{display:none}
}
@media (max-width:880px){
  .os-app{grid-template-columns:minmax(0,1fr)}
  .os-side{flex-direction:row;align-items:center;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}
  .os-sidelabel{display:none}
  .os-meter{display:none}
  .os-list{border-right:0;border-bottom:1px solid var(--line)}
  .os-row.is-soon{display:none}
}

@keyframes os-pulse{0%{transform:scale(1)}45%{transform:scale(1.35)}100%{transform:scale(1)}}
.os-vote [data-count].is-bump{display:inline-block;animation:os-pulse .35s ease}
@media (prefers-reduced-motion: reduce){
  .os-vote [data-count].is-bump{animation:none}
}

/* invisible tap-area extension for inline text links */
.os-statusbar a,.os-boardfoot a{padding:14px 6px;margin:-14px -6px;border-radius:8px}

/* ============ ALIVE PASS ============ */
::selection{background:var(--red);color:var(--ink)}

/* window entry cascade */
@keyframes os-winIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
.os-window,.os-statusbar{animation:os-winIn .55s cubic-bezier(.2,.7,.3,1) backwards}
.os-window:nth-of-type(1){animation-delay:.06s}
.os-window:nth-of-type(2){animation-delay:.16s}
.os-window:nth-of-type(3){animation-delay:.26s}
.os-window:nth-of-type(4){animation-delay:.36s}
.os-statusbar{animation-delay:.46s}

/* micro-interactions */
.os-row,.os-folder,.os-rank,.os-menu a{transition:background .16s ease,color .16s ease,transform .16s ease}
.os-row:hover{transform:translateX(3px)}
.os-rank:hover{transform:translateX(3px)}
.os-btn,.os-vote{transition:transform .12s ease,background .16s ease,border-color .16s ease,color .16s ease}
.os-btn:active,.os-vote:active,.os-folder:active{transform:scale(.96)}
.os-play{transition:transform .14s ease,background .16s ease}
.os-play:hover{transform:scale(1.08)}
@keyframes os-ring{from{box-shadow:0 0 0 0 rgba(255,69,58,.45)}to{box-shadow:0 0 0 18px rgba(255,69,58,0)}}
.os-play.is-playing{animation:os-ring 1.6s ease-out infinite}
@keyframes os-blink{0%,100%{opacity:1}50%{opacity:.25}}
.os-rec i{animation:os-blink 1.9s ease infinite}
.os-row .os-dot{animation:os-blink 2.6s ease infinite}
.os-row.is-soon .os-dot{animation:none}
@keyframes os-capIn{from{opacity:.15;transform:translateY(4px)}to{opacity:1;transform:none}}
.os-quote.flash{animation:os-capIn .16s ease}
.os-drop{transition:border-color .18s ease,background .18s ease,transform .18s ease}
.os-drop:hover{transform:translateY(-2px)}
.os-input,.os-textarea{transition:border-color .16s ease}
@keyframes os-shake{20%{transform:translateX(-6px)}45%{transform:translateX(5px)}70%{transform:translateX(-3px)}90%{transform:translateX(2px)}}
.os-window.is-shake{animation:os-shake .32s ease}
.os-dots i{transition:background .15s ease,border-color .15s ease;cursor:pointer}

/* folder views (in-place switching) */
.os-view{display:none}
.os-list .os-view.is-active{display:block}
.os-pane .os-view.is-active{display:flex;flex-direction:column;gap:18px}
@keyframes os-viewIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.os-view.v-anim{animation:os-viewIn .24s ease}
.os-view[data-view-list="spam"]{max-height:432px;overflow-y:auto;display:none}
.os-view[data-view-list="spam"].is-active{display:block}
.os-empty{padding:46px 24px;text-align:center}
.os-empty .big{font-size:58px;font-weight:800;letter-spacing:-.03em;line-height:1}
.os-empty p{color:var(--gray);font-size:14px;margin-top:10px;max-width:34ch;margin-left:auto;margin-right:auto}
.os-empty .os-btn{margin-top:20px}

/* toast */
.os-toast{position:fixed;right:18px;bottom:18px;z-index:99;background:var(--panel);border:1px solid var(--border);
  border-radius:12px;padding:13px 16px 13px 14px;display:flex;gap:11px;align-items:flex-start;max-width:330px;
  box-shadow:0 14px 34px rgba(0,0,0,.55);transform:translateY(130%);transition:transform .38s cubic-bezier(.2,.7,.3,1);cursor:pointer}
.os-toast.is-in{transform:none}
.os-toast .tdot{width:9px;height:9px;border-radius:50%;background:var(--red);margin-top:5px;flex:none;animation:os-blink 1.6s ease infinite}
.os-toast b{display:block;font-size:13px}
.os-toast span{display:block;font-size:12px;color:var(--gray);margin-top:2px}

/* social row */
.os-social{display:flex;gap:2px;align-items:center}
.os-social a{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:9px;color:var(--gray);transition:color .15s ease,background .15s ease,transform .12s ease}
.os-social a:hover{color:var(--bone);background:var(--hover)}
.os-social a:active{transform:scale(.92)}
.os-social a.is-soon{opacity:.35}
.os-social a.is-soon:hover{color:var(--gray);background:none;cursor:default}
.os-social svg{width:19px;height:19px}

@media (prefers-reduced-motion:reduce){
  .os-window,.os-statusbar,.os-rec i,.os-row .os-dot,.os-play.is-playing,.os-quote.flash,.os-view.v-anim,.os-toast{animation:none;transition:none}
  .os-row:hover,.os-rank:hover,.os-play:hover,.os-drop:hover{transform:none}
}
