/* ============================================================================
   TrybeDaily — the departures board.

   One family (Archivo), worked through width and weight. Rank is carried by
   weight, case and rule, never by a second face or a bigger size. State is a
   mark in a fixed cell. Twelve category line colours are the leading device:
   the wall reads by colour before it reads by word.

   Goldenrod is LIGHT, never ground — a yellow field fights full-colour video.
   ========================================================================= */
/* Dark-first: creators open this in the morning already inside TikTok, and the
   video is the content — a dark field lets it carry the page. Violet is Trybe's
   own (#7C3AED, lifted from their stylesheet); the blues and the density come
   from the daily-virals side. No neon glow: depth is elevation and rule, never
   a coloured halo.

   The chrome is violet and blue. The twelve CATEGORY LINES stay a full spectrum
   on purpose — a wall of one hue cannot be scanned by category, which is the
   job the operator asked the colour to do. */
:root{
  --paper:#0E0E18; --pane:#17172A; --pane-2:#1E1E33; --ink:#ECEBF2; --ink-2:#9C9BB0;
  --ink-3:#6E6D86; --rule:#2A2A42; --rail:#0A0A12;
  --violet:#A78BFA; --violet-fill:#6D28D9; --violet-deep:#5B21B6; --violet-soft:#241B45;
  --blue:#38BDF8; --confirm:#34D399; --strike:#F472B6;
  --sans:"Archivo","Archivo Narrow",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --u:13px; --gap:14px;
  --r:12px; --r-sm:8px; --r-xs:6px;
  --shadow:0 1px 2px rgba(0,0,0,.5),0 14px 34px -20px rgba(0,0,0,.9);
}
/* Category lines, tuned for a dark field: distinguishable at 12px, held to one
   lightness band so no line shouts over its neighbours. */
:root{
  --c-supplements:#34D399; --c-wellness:#22D3EE; --c-skincare:#FB7185;
  --c-womens:#F472B6;      --c-mens:#60A5FA;     --c-accessories:#A78BFA;
  --c-activewear:#FBBF24;  --c-makeup:#E879F9;   --c-personal:#94A3B8;
  --c-drinks:#FCD34D;      --c-pets:#D8A26A;     --c-tools:#818CF8;
  --c-default:#8E8DA4;
}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]){
  --paper:#F4F3F8; --pane:#FFFFFF; --pane-2:#F7F6FB; --ink:#191828; --ink-2:#5C5A72;
  --ink-3:#8B89A0; --rule:#E2E0EC; --rail:#191828;
  --violet:#7C3AED; --violet-fill:#6D28D9; --violet-deep:#5B21B6; --violet-soft:#F0ECFD;
  --blue:#0284C7; --confirm:#15803D; --strike:#DB2777;
  --shadow:0 1px 2px rgba(25,24,40,.05),0 12px 30px -18px rgba(25,24,40,.35);
  --c-supplements:#15803D; --c-wellness:#0E7490; --c-skincare:#BE123C;
  --c-womens:#BE185D;      --c-mens:#1D4ED8;     --c-accessories:#6D28D9;
  --c-activewear:#B45309;  --c-makeup:#A21CAF;   --c-personal:#475569;
  --c-drinks:#A16207;      --c-pets:#8A5A2B;     --c-tools:#4338CA;
  --c-default:#5C5A72;
}}
:root[data-theme="light"]{
  --paper:#F4F3F8; --pane:#FFFFFF; --pane-2:#F7F6FB; --ink:#191828; --ink-2:#5C5A72;
  --ink-3:#8B89A0; --rule:#E2E0EC; --rail:#191828;
  --violet:#7C3AED; --violet-fill:#6D28D9; --violet-deep:#5B21B6; --violet-soft:#F0ECFD;
  --blue:#0284C7; --confirm:#15803D; --strike:#DB2777;
  --shadow:0 1px 2px rgba(25,24,40,.05),0 12px 30px -18px rgba(25,24,40,.35);
  --c-supplements:#15803D; --c-wellness:#0E7490; --c-skincare:#BE123C;
  --c-womens:#BE185D;      --c-mens:#1D4ED8;     --c-accessories:#6D28D9;
  --c-activewear:#B45309;  --c-makeup:#A21CAF;   --c-personal:#475569;
  --c-drinks:#A16207;      --c-pets:#8A5A2B;     --c-tools:#4338CA;
  --c-default:#5C5A72;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:var(--u);line-height:1.45;font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{max-width:100%}
a{color:inherit}

/* Browser surfaces belong to the design too. */
::selection{background:var(--violet-fill);color:#fff}
:focus-visible{outline:2px solid var(--strike);outline-offset:2px}
*{scrollbar-width:thin;scrollbar-color:var(--ink-3) transparent}
::-webkit-scrollbar{height:9px;width:9px}
::-webkit-scrollbar-thumb{background:var(--ink-3);border-radius:0}
::-webkit-scrollbar-track{background:transparent}

.wrap{max-width:1240px;margin:0 auto;padding:0 18px}

/* ---- the signage rail ---- */
/* The rail is dark in both themes; its foreground is fixed, never themed. */
.mast{background:#12121F;color:#F0EFEC}
.mast .wrap{display:flex;align-items:stretch;gap:0;min-height:44px}
.wordmark{display:flex;align-items:center;text-decoration:none;color:#F0EFEC;
  font-weight:700;font-stretch:75%;font-size:16px;letter-spacing:.14em;
  text-transform:uppercase;padding-right:20px}
.wordmark em{font-style:normal;color:#A78BFA}
.mast nav{display:flex;margin-left:auto}
.mast nav a{display:flex;align-items:center;padding:0 14px;text-decoration:none;
  color:#A5A4AC;font-weight:600;font-stretch:87.5%;font-size:12px;
  letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid transparent}
.mast nav a:hover{color:#F0EFEC}
.mast nav a[aria-current="page"]{color:#FFFFFF;background:transparent;border-bottom-color:var(--violet)}

/* ---- dateline: the one reversed plate on the page ---- */
.dateline{display:flex;align-items:stretch;flex-wrap:wrap;gap:0;margin:18px 0 0}
.dateline h1{margin:0;background:var(--violet-fill);color:#fff;border-radius:var(--r-sm);
  font-size:clamp(17px,2.3vw,23px);font-weight:700;font-stretch:87.5%;
  letter-spacing:.02em;text-transform:uppercase;padding:7px 14px;line-height:1.2}
.dateline .sub{display:flex;align-items:center;padding:7px 14px;color:var(--ink-2);
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);flex:1;min-width:190px}
.dateline .sub a{color:var(--ink);text-underline-offset:3px}
.dateline label{display:flex;align-items:center;gap:8px;padding:7px 0 7px 14px;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);color:var(--ink-2)}
.dateline select{font:inherit;font-size:var(--u);padding:6px 10px;border:1px solid var(--rule);
  background:var(--pane);color:var(--ink);border-radius:var(--r-xs);max-width:210px}

/* ---- the departures strip: figures in fixed cells, not tiles ---- */
.glance{display:flex;flex-wrap:wrap;border-bottom:2px solid var(--ink);margin-bottom:var(--gap)}
.glance div{padding:9px 22px 9px 0;margin-right:22px;border-right:1px solid var(--rule);
  display:flex;align-items:baseline;gap:8px}
.glance div:last-child{border-right:0}
.glance b{font-weight:700;font-stretch:75%;font-size:19px;letter-spacing:.01em}
.glance span{color:var(--ink-2);text-transform:uppercase;letter-spacing:.08em;font-size:11px;
  font-weight:600}
.glance .hl b{color:var(--violet)}

.stale{margin:var(--gap) 0 0;padding:11px 14px;background:var(--violet-soft);color:var(--ink);
  border:1px solid var(--violet);border-radius:var(--r)}
.stale b{color:var(--ink)}

/* ---- category filter: line colours, not pills ---- */
.filters{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--rule);
  margin-bottom:var(--gap);scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.chip{white-space:nowrap;font:inherit;font-size:11px;font-weight:600;letter-spacing:.07em;
  text-transform:uppercase;padding:9px 13px;border:0;border-bottom:2px solid transparent;
  background:none;color:var(--ink-2);cursor:pointer;display:flex;align-items:center;gap:7px}
.chip::before{content:"";width:9px;height:9px;background:var(--line,var(--c-default));flex:none;
  border-radius:2px}
.chip:hover{color:var(--ink)}
.chip[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--line,var(--ink))}
.chip[data-cat=""]::before{display:none}

/* ================= the wall ================= */
.tv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(186px,1fr));
  gap:var(--gap);padding-bottom:42px}
.tv{position:relative;background:#08080F;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);
  transition:transform .18s cubic-bezier(.2,.8,.3,1)}
.tv:hover{transform:translateY(-2px)}
.tv .media{position:relative;display:block;aspect-ratio:9/16;text-decoration:none;color:#fff}
.tv video,.tv .media>img{width:100%;height:100%;object-fit:cover;display:block}

/* the plate: rank on the brand's category line colour */
.tv .rk{position:absolute;top:9px;left:9px;background:var(--line,var(--c-default));color:#08080F;
  font-weight:700;font-stretch:75%;font-size:12px;letter-spacing:.05em;padding:3px 8px;
  min-width:28px;text-align:center;border-radius:var(--r-xs)}
.tv.top3 .rk{background:var(--violet-fill);color:#fff}

/* the chip, seamed across the foot */
.tv .veil{position:absolute;inset:auto 0 0 0;padding:26px 10px 9px;color:#fff;
  background:linear-gradient(to top,rgba(6,6,9,.94) 0%,rgba(6,6,9,.78) 46%,rgba(6,6,9,0) 100%);
  display:grid;gap:2px}
.tv .bn{display:flex;align-items:center;gap:7px;min-width:0;color:#fff;text-decoration:none}
.tv .bn .logo{width:20px;height:20px;object-fit:cover;flex:none;background:#fff;border-radius:var(--r-xs)}
.tv .bn .nm{font-weight:700;font-stretch:87.5%;font-size:14px;letter-spacing:-.005em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tv .bn:hover .nm{text-decoration:underline;text-underline-offset:2px}
.tv .cn{font-size:11px;color:rgba(255,255,255,.76);overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em}
.tv .chiprow{display:flex;align-items:center;gap:6px;margin-top:5px;min-width:0}
.tv .pay{font-size:11px;font-weight:600;color:#fff;background:var(--violet-fill);
  padding:3px 9px;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tv .join{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);
  padding:3px 10px;border-radius:999px;text-decoration:none;white-space:nowrap;flex:none;
  backdrop-filter:blur(8px);transition:background .14s,color .14s}
.tv .join:hover{background:#fff;color:#191828;border-color:#fff}
.tv .prods{position:absolute;top:9px;right:9px;display:flex;gap:4px}
.tv .prods img{width:28px;height:28px;object-fit:cover;background:#fff;border-radius:var(--r-xs)}
.tv .prods img:nth-child(n+3){display:none}
.tv .dur{position:absolute;right:9px;bottom:9px;font-size:10px;color:#fff;
  background:rgba(6,6,9,.66);padding:2px 7px;letter-spacing:.03em;border-radius:var(--r-xs);
  backdrop-filter:blur(6px)}
.tv .play{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;
  opacity:.86;transition:opacity .16s}
.tv .play svg{width:40px;height:40px;filter:drop-shadow(0 2px 9px rgba(0,0,0,.6))}
.tv:hover .play{opacity:0}

.section-head{display:flex;align-items:baseline;gap:12px;margin:30px 0 11px;flex-wrap:wrap;
  border-bottom:2px solid var(--ink);padding-bottom:7px}
.section-head h2{margin:0;font-size:13px;font-weight:700;font-stretch:87.5%;
  letter-spacing:.11em;text-transform:uppercase}
.section-head .sub{color:var(--ink-2)}
.section-head a{margin-left:auto;color:var(--ink);text-underline-offset:3px}

/* ================= the ranked list ================= */
.feed{display:grid;gap:8px;padding-bottom:20px}
.row{display:grid;grid-template-columns:44px 62px minmax(0,1fr) 96px auto;gap:0 14px;
  align-items:center;background:var(--pane);border:1px solid var(--rule);
  border-radius:var(--r);padding:11px 14px;transition:border-color .15s,background .15s}
.row:hover{background:var(--pane-2);border-color:var(--violet)}
/* The rank sits on its category's line colour — a stand plate, not a side tab.
   A thick coloured edge on a list item is the most recognisable AI-UI tell, and
   the plate carries the same information with the timetable's own vocabulary. */
.row .rank{align-self:start;background:var(--line,var(--c-default));color:#08080F;
  font-weight:700;font-stretch:75%;font-size:14px;text-align:center;padding:4px 0;
  letter-spacing:.04em;border-radius:var(--r-xs)}
.row.top3 .rank{background:var(--violet-fill);color:#fff}

.thumb{position:relative;display:block;width:62px;aspect-ratio:9/16;overflow:hidden;
  background:#08080F;text-decoration:none;border-radius:var(--r-sm)}
.thumb video,.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb.still{background:#fff;display:grid;place-items:center;padding:5px}
.thumb.still img{height:auto;max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.thumb .novid{display:grid;place-items:center;height:100%;font-size:9px;color:#8A8A93;
  text-align:center;padding:4px;line-height:1.2;text-transform:uppercase;letter-spacing:.04em}
.thumb .tag{position:absolute;left:0;right:0;bottom:0;background:rgba(6,6,9,.82);color:#fff;
  font-size:9px;padding:2px 1px;text-align:center;letter-spacing:.01em;
  font-variant-numeric:tabular-nums}

.body{min-width:0;display:grid;gap:2px}
.head{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.head img{width:18px;height:18px;object-fit:cover;flex:none;background:var(--pane);border-radius:var(--r-xs)}
.body h2{margin:0;font-size:15px;font-weight:700;font-stretch:87.5%;letter-spacing:-.005em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.body h2 a{text-decoration:none}
.body h2 a:hover{text-decoration:underline;text-underline-offset:3px}
.cats{color:var(--line,var(--ink-2));font-size:11px;font-weight:600;letter-spacing:.07em;
  text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reason{margin:2px 0 3px;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;max-width:78ch}
.stats{display:flex;gap:4px 16px;flex-wrap:wrap;color:var(--ink-2);align-items:center;font-size:12px}
.stats b{color:var(--ink);font-weight:700}
.up{color:var(--confirm);font-weight:700}
.flag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;padding:2px 8px;background:var(--strike);color:#08080F;
  border-radius:999px}
.flag.tier{background:var(--confirm);color:#08080F}
.score{display:inline-block;font-size:11px;font-weight:600;color:var(--ink-2);
  border:1px solid var(--rule);padding:1px 8px;border-radius:999px}

/* state as marks in fixed cells — filled holds, hollow does not */
.marks{display:flex;gap:3px;align-items:center}
.marks i{width:9px;height:9px;border:1.5px solid var(--ink-3);display:block;border-radius:2px}
.marks i.on{background:var(--confirm);border-color:var(--confirm)}
.marks i.new{background:var(--strike);border-color:var(--strike)}

.act{display:grid;gap:5px;justify-items:stretch;min-width:118px}
.btn{display:block;text-align:center;text-decoration:none;font:inherit;font-size:11px;
  font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:8px 13px;
  border:1px solid var(--violet-fill);background:var(--violet-fill);color:#fff;cursor:pointer;
  border-radius:999px;transition:background .15s,border-color .15s}
.btn:hover{background:var(--violet-deep);border-color:var(--violet-deep);color:#fff}
.btn.ghost{background:transparent;color:var(--ink-2);border-color:var(--rule);font-weight:600}
.btn.ghost:hover{background:transparent;color:var(--ink);border-color:var(--violet)}
.paytag{text-align:center;color:var(--ink-2);font-size:11px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}

/* ---- format panel ---- */
.fmt{margin:0 0 var(--gap);border:1px solid var(--rule);background:var(--pane);border-radius:var(--r)}
.fmt summary{cursor:pointer;padding:10px 13px;display:flex;gap:10px;align-items:baseline;
  flex-wrap:wrap;list-style:none}
.fmt summary::-webkit-details-marker{display:none}
.fmt summary::before{content:"+";color:var(--violet);font-weight:700;width:10px}
.fmt[open] summary::before{content:"\2212"}
.fmt summary span{font-weight:700;text-transform:uppercase;letter-spacing:.09em;font-size:11px}
.fmt summary em{font-style:normal;color:var(--ink-2)}
.fmt-body{padding:0 13px 13px}
.fmt-row{display:grid;grid-template-columns:minmax(110px,1.3fr) minmax(0,3fr) 62px;gap:12px;
  align-items:center;padding:4px 0}
.fmt-row .nm{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.fmt-row .bar{position:relative;height:11px;background:transparent;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.fmt-row .bar i{position:absolute;top:2px;bottom:2px;background:var(--line,var(--c-default));opacity:.85}
.fmt-row .bar b{position:absolute;top:-2px;width:2px;height:15px;background:var(--ink)}
.fmt-row .val{text-align:right;font-weight:700}
.fmt-note{color:var(--ink-2);margin:9px 0 0;max-width:78ch;font-size:12px}

/* ---- detail + prose ---- */
.detail{padding:18px 0 50px;display:grid;gap:16px;max-width:840px}
.detail h1{margin:0 0 3px;font-size:clamp(21px,3vw,29px);font-weight:700;font-stretch:87.5%;
  letter-spacing:-.01em}
.detail section{background:var(--pane);border:1px solid var(--rule);padding:16px;border-radius:var(--r)}
.detail h3{margin:0 0 11px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;
  color:var(--ink-2);font-weight:700;border-bottom:1px solid var(--rule);padding-bottom:6px}
.rules{margin:0;padding-left:17px}
.rules li{margin-bottom:6px}
.cap{color:var(--ink-2)}
.parts{display:grid;gap:12px}
.part{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:baseline}
.part .bar{grid-column:1/-1;height:7px;background:var(--rule);border-radius:99px;overflow:hidden}
.part .bar i{display:block;height:100%;background:var(--violet);border-radius:99px}
.part .tip{grid-column:1/-1;color:var(--ink-2);font-size:12px}
.grid-prod{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:11px}
.grid-prod figure{margin:0}
.grid-prod img{width:100%;aspect-ratio:1;object-fit:cover;background:#fff;border-radius:var(--r-sm)}
.grid-prod figcaption{color:var(--ink-2);margin-top:5px;font-size:11px}
/* On the brand page these previews are the content, not row chrome, so they
   escape the 62px list thumbnail. */
.detail .grid-prod .thumb{width:100%;aspect-ratio:9/16;border-radius:var(--r-sm)}
.vidlist{display:grid;gap:12px}
.vidrow{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start}
.vidrow .n{font-weight:700;min-width:54px}
.spark{width:100%;height:56px;display:block}
.spark path{fill:none;stroke:var(--violet);stroke-width:2;vector-effect:non-scaling-stroke}
.prose{max-width:74ch}
.prose h2{font-size:17px;font-weight:700;font-stretch:87.5%;letter-spacing:-.005em;
  margin:24px 0 8px;border-bottom:1px solid var(--rule);padding-bottom:6px}
.prose li{margin-bottom:6px}
.prose p{margin:0 0 11px}

.note{color:var(--ink-2);max-width:78ch;margin:0 0 10px}
.mv-val{color:var(--ink-2)}
#boards ol{margin:0;padding-left:22px}
#boards li{margin-bottom:7px}
#boards li a{text-underline-offset:3px}
.empty{padding:50px 0;text-align:center;color:var(--ink-2)}
footer{border-top:2px solid var(--ink);padding:18px 0 50px;color:var(--ink-2);
  max-width:78ch;line-height:1.6}
footer a{color:var(--ink);text-underline-offset:3px}

.signup{background:var(--pane);border:1px solid var(--rule);padding:20px;margin:12px 0 32px;
  border-radius:var(--r)}
.signup h2{margin:0 0 3px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.signup p{color:var(--ink-2);margin:0 0 12px}
.signup form{display:flex;gap:8px;flex-wrap:wrap;max-width:460px}
.signup input{flex:1;min-width:190px;font:inherit;font-size:var(--u);padding:9px 12px;
  border:1px solid var(--rule);background:var(--paper);color:var(--ink);
  border-radius:999px 0 0 999px}
.signup input::placeholder{color:var(--ink-3)}
.signup .msg{margin:10px 0 0;min-height:1.2em;color:var(--ink-2)}

@media (max-width:820px){
  .row{grid-template-columns:32px 52px minmax(0,1fr);padding:9px 12px 9px 0}
  .row .rank{font-size:14px}
  .thumb{width:52px}
  .reason{-webkit-line-clamp:3}
  .marks{grid-column:2/-1;margin-top:2px}
  .act{grid-column:2/-1;grid-auto-flow:column;justify-content:start;align-items:center;
    gap:8px;min-width:0;margin-top:4px}
  .paytag{text-align:left}
  .dateline label{width:100%;padding-left:0}
  .dateline select{max-width:100%;flex:1}
  .glance div{padding-right:16px;margin-right:16px}
}
@media (max-width:560px){
  .tv-grid{grid-template-columns:repeat(auto-fill,minmax(144px,1fr));gap:10px}
  .glance b{font-size:16px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
