/* RITE — therite.cv · every color/space/type value resolves to rite-tokens.css */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--rite-color-chrome-obsidian);color:var(--rite-color-chrome-silver);font-family:var(--rite-font-family-body);letter-spacing:var(--rite-font-tracking-body);font-size:var(--rite-font-size-base);line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--rite-color-chrome-green);color:var(--rite-color-chrome-obsidian)}

.display{font-family:var(--rite-font-family-display);color:var(--rite-color-chrome-white);letter-spacing:var(--rite-font-tracking-tight);line-height:1.06;font-weight:500}
.mono{font-family:var(--rite-font-family-mono)}
.eyebrow{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-silver2)}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,56px)}
section{padding:clamp(72px,10vw,150px) 0;border-top:1px solid var(--rite-color-chrome-line)}
section.flush{border-top:none;padding:0}
.muted{color:var(--rite-color-chrome-silver2)}
.white{color:var(--rite-color-chrome-white)}
.green{color:var(--rite-color-chrome-green)}
h2.display{font-size:clamp(1.9rem,4.4vw,3rem);max-width:16ch;margin:14px 0 18px}
p.lede{max-width:52ch;color:var(--rite-color-chrome-silver)}

/* ── nav ─────────────────────────────── */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(20px,5vw,56px);background:linear-gradient(to bottom,rgba(3,4,4,.92),rgba(3,4,4,0));backdrop-filter:blur(2px)}
.nav .wordmark{font-family:var(--rite-font-family-display);color:var(--rite-color-chrome-white);font-size:1.35rem;letter-spacing:.22em}
.nav .links{display:flex;gap:clamp(14px,2.4vw,30px);align-items:center}
.nav .links a{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-silver2);transition:color var(--rite-motion-duration-fast)}
.nav .links a:hover,.nav .links a[aria-current]{color:var(--rite-color-chrome-white)}
.nav .links a.venues-link{color:var(--rite-color-chrome-silver)}
@media(max-width:760px){.nav .links a:not(.venues-link):not(.cta-nav){display:none}}

/* the app CTA, verbatim geometry: green fill, obsidian text, arrow */
.cta-green{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--rite-color-chrome-green);color:var(--rite-color-chrome-obsidian);font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-xs);letter-spacing:var(--rite-font-tracking-label);text-transform:uppercase;padding:15px 26px;border-radius:var(--rite-radius-lg);border:none;cursor:pointer;box-shadow:var(--rite-elevation-bevel),var(--rite-elevation-glow);transition:transform var(--rite-motion-duration-fast),box-shadow var(--rite-motion-duration-fast)}
.cta-green:hover{box-shadow:var(--rite-elevation-bevel),0 0 34px -10px var(--rite-color-chrome-green)}
.cta-green:active{transform:translateY(1px) scale(.985)}
.cta-nav{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-label);text-transform:uppercase;color:var(--rite-color-chrome-green)!important;border:1px solid var(--rite-color-chrome-line);border-radius:var(--rite-radius-pill);padding:8px 16px;transition:border-color var(--rite-motion-duration-fast)}
.cta-nav:hover{border-color:var(--rite-color-chrome-green)}
/* operator CTA: its own quiet identity, outlined silver */
.cta-ghost{display:inline-flex;align-items:center;gap:10px;color:var(--rite-color-chrome-silver);font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-xs);letter-spacing:var(--rite-font-tracking-label);text-transform:uppercase;padding:14px 24px;border:1px solid var(--rite-color-chrome-line);border-radius:var(--rite-radius-lg);background:transparent;cursor:pointer;transition:border-color var(--rite-motion-duration-fast),color var(--rite-motion-duration-fast)}
.cta-ghost:hover{border-color:var(--rite-color-chrome-silver2);color:var(--rite-color-chrome-white)}
.cta-ghost:active{transform:translateY(1px)}

/* ── hero: the app landing screen, desktop scale ── */
.hero{position:relative;min-height:100dvh;display:flex;align-items:center;border-top:none;padding:0;overflow:hidden}
.hero .plate{position:absolute;inset:0;background-image:linear-gradient(100deg,rgba(3,4,4,.94) 0%,rgba(3,4,4,.6) 38%,rgba(3,4,4,.08) 66%,rgba(3,4,4,0) 82%),linear-gradient(to top,var(--rite-color-chrome-obsidian) 3%,rgba(3,4,4,0) 32%),url("assets/hero-couple.webp");background-size:cover;background-position:64% center}
@media(max-width:760px){.hero{align-items:flex-start}.hero .plate{background-image:linear-gradient(to bottom,rgba(3,4,4,.82) 0%,rgba(3,4,4,.5) 28%,rgba(3,4,4,.05) 44%,rgba(3,4,4,0) 72%,rgba(3,4,4,.55) 90%,var(--rite-color-chrome-obsidian) 100%),url("assets/hero-mobile-couple.webp");background-size:cover;background-position:50% top}}
.hero .inner{position:relative;z-index:2;width:100%}
.hero .eyebrow{margin-bottom:20px}
.hero h1{font-size:clamp(2.6rem,7.2vw,5.4rem)}
.hero h1 em{font-style:italic}
.hero .rule{width:56px;height:2px;background:var(--rite-color-chrome-green);box-shadow:var(--rite-elevation-glowTight),0 0 16px var(--rite-color-chrome-green);margin:26px 0 22px}
.hero .sub{max-width:26ch;font-size:1.02rem;color:var(--rite-color-chrome-silver)}
.hero .cta-row{margin-top:38px}
.hero .scrollcue{position:absolute;left:clamp(20px,5vw,56px);bottom:34px;z-index:2}
@media(prefers-reduced-motion:no-preference){
  .hero .plate{animation:heroin 1.4s ease-out both}
  @keyframes heroin{from{transform:scale(1.05);opacity:.5}to{transform:scale(1);opacity:1}}
  .hero .rule{animation:ruledraw .9s cubic-bezier(.22,1,.36,1) .45s both}
  @keyframes ruledraw{from{width:0}to{width:56px}}
  .hero h1 .l{display:block;animation:linerise .7s cubic-bezier(.22,1,.36,1) both}
  .hero h1 .l:nth-child(2){animation-delay:.16s}.hero h1 .l:nth-child(3){animation-delay:.32s}
  @keyframes linerise{from{transform:translateY(22px)}to{transform:translateY(0)}}
}
.hero h1 .l{display:block}
@media(max-width:760px){
  .hero .inner{padding-top:100px;min-height:100dvh;display:flex;flex-direction:column}
  .hero h1{font-size:clamp(2.9rem,12vw,4rem)}
  .hero .eyebrow{margin-bottom:22px}
  .hero .sub{display:none}
  .hero .rule{margin:28px 0 0}
  .hero .cta-row{margin-top:auto;margin-bottom:82px}
  .hero .cta-row .cta-green{width:min(62%,300px);align-self:flex-start;justify-content:center;padding:19px 26px}
  .hero .scrollcue{bottom:30px}
}

/* ── how it works rows ── */
.moves{margin-top:34px;border-top:1px solid var(--rite-color-chrome-line)}
.moves .row{display:grid;grid-template-columns:56px 200px 1fr;gap:18px;padding:26px 0;border-bottom:1px solid var(--rite-color-chrome-line);align-items:baseline}
.moves .n{font-family:var(--rite-font-family-display);color:var(--rite-color-chrome-green);font-size:1.05rem}
.moves .k{color:var(--rite-color-chrome-white);font-size:1.05rem}
@media(max-width:700px){.moves .row{grid-template-columns:42px 1fr}.moves .d{grid-column:2}}

/* ── protocol pillars: asymmetric 2-col ── */
.pillars{display:grid;grid-template-columns:1.15fr 1fr;gap:14px;margin-top:44px}
.pillar{background:var(--rite-color-chrome-panel);border:1px solid var(--rite-color-chrome-line);border-radius:var(--rite-radius-xl);box-shadow:var(--rite-elevation-bevelSoft);padding:30px 28px}
.pillar h3{font-family:var(--rite-font-family-display);color:var(--rite-color-chrome-white);font-size:1.35rem;margin:10px 0 10px}
.pillar .tag{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-green)}
.pillar p{font-size:.95rem;color:var(--rite-color-chrome-silver2);max-width:44ch}
.pillar.tall{grid-row:span 2;background:var(--rite-color-room-default-gradient)}
@media(max-width:820px){.pillars{grid-template-columns:1fr}.pillar.tall{grid-row:auto}}

/* ── send widget (phone) ── */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,84px);align-items:center}
@media(max-width:860px){.split{grid-template-columns:1fr}}
.phone{width:min(320px,84vw);margin:0 auto;background:var(--rite-color-chrome-surface);border:1px solid var(--rite-color-chrome-line);border-radius:34px;box-shadow:var(--rite-elevation-float),var(--rite-elevation-bevelFaint);padding:26px 22px;min-height:430px;display:flex;flex-direction:column}
.phone .ph-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}
.phone .ph-brand{font-family:var(--rite-font-family-display);letter-spacing:.22em;color:var(--rite-color-chrome-white);font-size:.9rem}
.phone .dot{width:7px;height:7px;border-radius:99px;background:var(--rite-color-chrome-green);box-shadow:var(--rite-elevation-glowTight)}
@media(prefers-reduced-motion:no-preference){.phone .dot{animation:pulse 2.2s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}}
.phone .stage{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px}
.phone .field{background:var(--rite-color-chrome-panel);border:1px solid var(--rite-color-chrome-line);border-radius:var(--rite-radius-lg);padding:14px 16px;font-family:var(--rite-font-family-mono);font-size:.9rem;color:var(--rite-color-chrome-white)}
.phone .field .cursor{display:inline-block;width:8px;height:14px;background:var(--rite-color-chrome-green);vertical-align:-2px}
@media(prefers-reduced-motion:no-preference){.phone .field .cursor{animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}}
.phone .sent{text-align:center}
.phone .sent .big{font-family:var(--rite-font-family-display);font-size:1.9rem;color:var(--rite-color-chrome-white)}
.phone .sent .ok{color:var(--rite-color-chrome-green);font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;margin-top:8px}
.phone .steps{display:flex;gap:6px;justify-content:center;margin-top:20px}
.phone .steps i{width:22px;height:2px;background:var(--rite-color-chrome-line);border-radius:2px;transition:background var(--rite-motion-duration-modal)}
.phone .steps i.on{background:var(--rite-color-chrome-green)}
.phone button.replay{margin-top:14px;background:none;border:none;color:var(--rite-color-chrome-silver2);font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-label);text-transform:uppercase;cursor:pointer}
.phone button.replay:hover{color:var(--rite-color-chrome-white)}

/* ── the gate set-piece ── */
.gate-stage{display:flex;flex-direction:column;align-items:center;gap:34px;text-align:center}
.arch{position:relative;width:min(240px,60vw);aspect-ratio:678/860}
.arch .a{position:absolute;inset:0;border:1px solid var(--rite-color-chrome-line);border-bottom:none;border-radius:999px 999px 0 0;background:radial-gradient(ellipse at 50% 100%,rgba(47,217,155,var(--gate,0.10)),transparent 70%);box-shadow:0 0 calc(20px + var(--gate,0)*60px) calc(var(--gate,0)*8px) rgba(47,217,155,calc(var(--gate,0)*.45));transition:box-shadow .2s linear,background .2s linear;border-top-color:var(--rite-color-chrome-green)}
.arch .floorline{position:absolute;left:-14%;right:-14%;bottom:0;height:1px;background:var(--rite-color-chrome-line)}
.gate-chip{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-xs);letter-spacing:var(--rite-font-tracking-label);text-transform:uppercase;border:1px solid var(--rite-color-chrome-line);border-radius:var(--rite-radius-pill);padding:10px 20px;color:var(--rite-color-chrome-silver2);transition:color var(--rite-motion-duration-modal),border-color var(--rite-motion-duration-modal),box-shadow var(--rite-motion-duration-modal)}
.gate-chip.confirmed{color:var(--rite-color-chrome-green);border-color:var(--rite-color-chrome-green);box-shadow:var(--rite-elevation-glow)}

/* ── rates board ── */
.board{background:var(--rite-color-chrome-panel);border:1px solid var(--rite-color-chrome-line);border-radius:var(--rite-radius-xl2);box-shadow:var(--rite-elevation-bevelSoft),var(--rite-elevation-floatMid);overflow:hidden;margin-top:40px}
.board .bh{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid var(--rite-color-chrome-line)}
.board .bh .live{display:flex;align-items:center;gap:8px;font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-silver2)}
.board table{width:100%;border-collapse:collapse}
.board td,.board th{padding:15px 22px;text-align:left;font-size:.92rem}
.board th{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-silver2);font-weight:400;border-bottom:1px solid var(--rite-color-chrome-line)}
.board tr+tr td{border-top:1px solid var(--rite-color-chrome-line)}
.board .drink{color:var(--rite-color-chrome-white)}
.board .price{font-family:var(--rite-font-family-mono);color:var(--rite-color-chrome-white);transition:color .15s}
.board .price.tick{color:var(--rite-color-chrome-greenHi)}
.board .trend{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-label);text-transform:uppercase}
.trend.rising{color:var(--rite-color-chrome-green)}.trend.easing{color:var(--rite-color-chrome-amber)}.trend.stable{color:var(--rite-color-chrome-silver2)}

/* ── imagery sections ── */
.figure{border-radius:var(--rite-radius-xl3);overflow:hidden;border:1px solid var(--rite-color-chrome-line);box-shadow:var(--rite-elevation-float)}
.figure.portrait{max-height:70vh;max-width:520px;margin:0 auto}
.figure.portrait img{width:100%;height:100%;object-fit:cover}
.figcap{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-silver2);margin-top:14px}

/* ── rooms editorial cards ── */
.roomcard{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;min-height:280px;border-radius:var(--rite-radius-xl3);border:1px solid var(--rite-color-chrome-line);box-shadow:var(--rite-elevation-bevelSoft),var(--rite-elevation-floatMid);padding:32px 30px;background:var(--rite-color-room-default-gradient)}
.roomcard.aqva{background:var(--rite-color-room-aqva-gradient)}
.roomcard.void{background:var(--rite-color-room-void-gradient)}
.roomcard.afro{background:var(--rite-color-room-afro-gradient)}
.roomcard.runway{background:var(--rite-color-room-runway-gradient)}
.roomcard.symposium{background:var(--rite-color-room-symposium-gradient)}
.roomcard.ebano{background:radial-gradient(circle at 50% 0%,#2A2018,#16110E,#080604)}
.roomcard .rn{font-family:var(--rite-font-family-display);color:var(--rite-color-chrome-white);font-size:1.6rem;letter-spacing:.06em}
.roomcard .rl{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-silver2)}

/* ── rooms strip ── */
.rooms{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;margin-top:40px;scrollbar-width:thin}
.room{min-width:230px;border-radius:var(--rite-radius-xl);border:1px solid var(--rite-color-chrome-line);padding:26px 22px;background:var(--rite-color-room-default-gradient)}
.room.aqva{background:var(--rite-color-room-aqva-gradient)}
.room.kaloko{background:var(--rite-color-room-kaloko-gradient)}
.room.void{background:var(--rite-color-room-void-gradient)}
.room.afro{background:var(--rite-color-room-afro-gradient)}
.room.runway{background:var(--rite-color-room-runway-gradient)}
.room.symposium{background:var(--rite-color-room-symposium-gradient)}
.room .name{font-family:var(--rite-font-family-display);color:var(--rite-color-chrome-white);font-size:1.2rem}
.room .state{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;margin-top:36px;color:var(--rite-color-chrome-silver2)}
.room .state.live{color:var(--rite-color-chrome-green)}

/* ── list rows (backstage claims, faq) ── */
.rows{border-top:1px solid var(--rite-color-chrome-line);margin-top:38px}
.rows>div,.rows>details{border-bottom:1px solid var(--rite-color-chrome-line)}
.claim{display:grid;grid-template-columns:minmax(180px,300px) 1fr;gap:20px;padding:28px 0}
.claim b{color:var(--rite-color-chrome-white);font-weight:500;font-size:1.05rem}
.claim p{color:var(--rite-color-chrome-silver2);font-size:.95rem;max-width:60ch}
@media(max-width:700px){.claim{grid-template-columns:1fr}}
details{padding:0}
details summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:22px 0;color:var(--rite-color-chrome-white);font-size:1rem}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";font-family:var(--rite-font-family-mono);color:var(--rite-color-chrome-silver2);transition:transform var(--rite-motion-duration-fast)}
details[open] summary::after{transform:rotate(45deg)}
details .ans{padding:0 0 24px;color:var(--rite-color-chrome-silver2);max-width:62ch;font-size:.95rem}

/* ── forms ── */
form.rite{margin-top:38px;display:grid;gap:20px;max-width:520px}
form.rite label{display:grid;gap:8px;font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-silver2)}
form.rite input,form.rite select,form.rite textarea{background:var(--rite-color-chrome-panel);border:1px solid var(--rite-color-chrome-line);border-radius:var(--rite-radius-lg);padding:15px 16px;color:var(--rite-color-chrome-white);font-family:var(--rite-font-family-mono);font-size:.95rem;letter-spacing:.02em;outline:none;transition:border-color var(--rite-motion-duration-fast),box-shadow var(--rite-motion-duration-fast)}
form.rite input:focus,form.rite select:focus,form.rite textarea:focus{border-color:var(--rite-color-chrome-silver2)}
form.rite input.ok{border-color:var(--rite-color-chrome-green);box-shadow:var(--rite-elevation-glowTight)}
form.rite input.bad{border-color:var(--rite-color-chrome-red)}
.hint{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-label);min-height:14px}
.hint.ok{color:var(--rite-color-chrome-green)}.hint.bad{color:var(--rite-color-chrome-red)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* ── footer ── */
footer{border-top:1px solid var(--rite-color-chrome-line);padding:60px 0 44px;background:var(--rite-color-chrome-surface)}
footer .cols{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;align-items:flex-start}
footer .fnav{display:flex;gap:26px;flex-wrap:wrap}
footer .fnav a{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-silver2)}
footer .fnav a:hover{color:var(--rite-color-chrome-white)}
footer .legal{margin-top:22px;font-size:var(--rite-font-size-xs);color:var(--rite-color-chrome-silver2);max-width:74ch}
footer .regline{margin-top:14px;font-size:var(--rite-font-size-xs);color:var(--rite-color-chrome-silver2);max-width:74ch;opacity:.82}
/* WURA ecosystem band */
.wura{border-top:1px solid var(--rite-color-chrome-line);background:var(--rite-color-chrome-obsidian)}
.wura .in{display:flex;align-items:center;gap:22px;padding:30px 0}
.wura img{height:52px;width:auto;opacity:.9}
.wura .txt{display:flex;flex-direction:column;gap:3px}
.wura .k{font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-silver2)}
.wura .v{color:var(--rite-color-chrome-silver);font-size:.95rem}
.wura .v b{color:var(--rite-color-chrome-white);font-weight:500}
@media(max-width:600px){.wura .in{gap:16px}.wura img{height:42px}}
.state-arriving{display:inline-flex;align-items:center;gap:8px;font-family:var(--rite-font-family-mono);font-size:var(--rite-font-size-micro);letter-spacing:var(--rite-font-tracking-labelWide);text-transform:uppercase;color:var(--rite-color-chrome-silver);border:1px solid var(--rite-color-chrome-line);border-radius:var(--rite-radius-pill);padding:8px 16px}
.state-arriving .dot{width:6px;height:6px;border-radius:99px;background:var(--rite-color-chrome-green);box-shadow:var(--rite-elevation-glowTight)}

/* subpage hero */
.subhero{padding:180px 0 90px;border-top:none}
.subhero h1{font-size:clamp(2.2rem,5.4vw,4rem);max-width:18ch}
.subhero .sub{max-width:56ch;margin-top:20px;color:var(--rite-color-chrome-silver)}
