/* The table page, on top of styles.css: the table on the left (kept in view) and the page's parts on the right on a
   wide screen; on a phone the table heads the page and the header's logo turns with it. */

/* header: wordmark and beta tag on the left, quiet links in the middle, one clear button on the right */
.top-in{display:grid;grid-template-columns:1fr auto 1fr;height:72px}
.brand-row{display:flex;align-items:center;gap:10px}
.beta-chip{white-space:nowrap;padding:3px 8px;border-radius:999px;background:var(--sun-soft);color:#5C4000;font-family:var(--mono);font-size:11px;letter-spacing:.02em;line-height:1.4}
.top nav{gap:2px}
.top nav a{font-size:14.5px;padding:8px 14px}
.cta-top{justify-self:end;display:inline-flex;align-items:center;gap:9px;height:42px;padding:0 18px 0 16px;border-radius:999px;
  background:var(--ink);color:#fff;text-decoration:none;font-size:14.5px;font-weight:600;white-space:nowrap;transition:transform .15s,background .15s}
.cta-top:hover{background:#2C3430;transform:translateY(-1px)}
.cta-top .dot{width:7px;height:7px}
@media (max-width:919px){.top-in{grid-template-columns:1fr auto;height:64px}.top nav{display:none}.cta-top{height:38px;padding:0 14px;font-size:14px}}
@media (max-width:420px){.beta-chip{display:none}}

/* the mark, sized by table.js so the names always sit clear of the arches; once a seat is picked the others step back */
.table-box{position:relative;width:100%;max-width:560px;margin:0 auto;color:var(--ink)}
.table-art{position:absolute}
.table-art svg{display:block;width:100%;height:100%;overflow:visible}
.hit{fill:transparent;stroke:none;pointer-events:all}
.table-art .seat{cursor:pointer;transition:opacity .3s}
.picked .seat:not(.on):not(.near){opacity:.3}
.seats{list-style:none;margin:0;padding:0}
/* every name is the same fixed size, its words set once, so nothing reflows or jumps as the table turns */
.seat-b{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  width:112px;height:56px;padding:0 8px;border:0;border-radius:16px;background:#fff;box-shadow:0 0 0 1px var(--rule),0 6px 14px -10px rgba(30,36,33,.35);
  font:inherit;font-size:13px;font-weight:600;line-height:1.1;text-align:center;white-space:nowrap;color:var(--ink);cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}
.seat-b .n{display:grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;background:var(--under);font-family:var(--mono);font-size:10.5px;font-weight:500}
.seat-b:hover,.seat-b.near{box-shadow:0 0 0 1.5px var(--ink),0 6px 14px -10px rgba(30,36,33,.35)}
.seat-b.on{background:var(--ink);color:#fff;box-shadow:none}
.seat-b.on .n{background:var(--sun);color:var(--ink)}
.seat-b:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media (max-width:919px){.seat-b{width:84px;height:46px;gap:3px;padding:0 4px;border-radius:13px;font-size:11px}.seat-b .n{width:15px;height:15px;font-size:9.5px}}
@media (max-width:360px){.seat-b{width:76px;font-size:10px}}

.room{max-width:1160px;margin:0 auto;padding:0 16px}
.stage{padding:8px 0 0}

.flow{padding-bottom:40px}
.intro{padding:16px 0 56px}
.intro h1{margin-top:20px;font-size:clamp(44px,9.4vw,80px);letter-spacing:-.05em;line-height:.94}

.part{padding:56px 0;border-top:1px solid var(--rule);scroll-margin-top:72px}
.part h2{margin-top:10px;font-size:clamp(32px,5vw,46px)}
.part .sub{margin-top:14px;max-width:560px;font-size:17px;color:var(--muted)}
.part .note{margin-top:14px;font-size:15px;color:var(--muted)}

.ask{display:flex;flex-direction:column;gap:12px;max-width:380px;margin-top:24px;padding:20px 16px;border-radius:28px;background:var(--paper);font-size:14px}
.rows,.steps{margin:24px 0 0;padding:0;list-style:none;max-width:560px}
.rows li,.steps li{display:flex;flex-direction:column;gap:2px;padding:14px 0;border-top:1px solid var(--rule);color:var(--muted);font-size:15.5px}
.rows li:first-child,.steps li:first-child{border-top:0}
.rows b,.steps b{color:var(--ink);font-weight:600;font-size:16.5px}
.steps{counter-reset:s}
.steps li{position:relative;padding-left:40px}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:14px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--sun);font-family:var(--mono);font-size:12.5px;color:var(--ink)}

/* your seat: the waitlist box from the live page */
.part.beta{padding:56px 0 24px}
.part.beta .beta-in{margin-top:14px}
.part.beta h2{margin-top:0}

@media (min-width:920px){
  .room{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;padding:0 32px}
  .stage{position:sticky;top:72px;height:calc(100vh - 72px);display:flex;align-items:center;padding:0}
  .intro{min-height:calc(100vh - 72px);display:flex;flex-direction:column;justify-content:center;padding:40px 0}
  .part{min-height:72vh;display:flex;flex-direction:column;justify-content:center}
}
/* phone: headline, then the table, then the words under it */
@media (max-width:919px){.room{display:flex;flex-direction:column}.flow,.intro{display:contents}
  .intro h1{order:-3;font-size:clamp(40px,11.5vw,64px)}
  .stage{order:-2}.intro .lede{order:-1;margin-top:4px}.part{order:1}}
.earn-card.solo{max-width:460px;margin-top:24px}

/* first screen: one eyebrow, a strong headline, one line under it, one button, and a hint to scroll */
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.intro h1{margin-top:18px;font-size:clamp(46px,7.2vw,92px);letter-spacing:-.055em;line-height:.92}
/* "you have a seat" in the exact UP yellow, day and night. On the light page a hairline of the same yellow round each
   letter thickens it a touch, since the font has no heavier weight, so it holds up without darkening the colour. */
.hl{color:var(--sun);-webkit-text-stroke:.012em var(--sun);paint-order:stroke fill}
.intro .lede{margin-top:22px;max-width:460px;font-size:clamp(18px,2vw,21px);line-height:1.5;color:var(--ink2)}
.intro .ctas{margin-top:30px}
.intro .btn.primary{min-height:54px;padding:0 28px;font-size:16.5px}
.scroll-hint{display:inline-flex;align-items:center;gap:12px;margin-top:36px;font-size:14px;color:var(--muted);text-decoration:none;align-self:flex-start}
.scroll-hint:hover{color:var(--ink)}
.mouse{position:relative;width:20px;height:30px;border-radius:10px;box-shadow:inset 0 0 0 1.5px currentColor}
.mouse::after{content:"";position:absolute;left:50%;top:7px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--sun);animation:roll 1.8s ease-in-out infinite}
@keyframes roll{0%{transform:translateY(0);opacity:0}25%{opacity:1}70%{transform:translateY(10px);opacity:0}100%{opacity:0}}
/* the yellow centre, lifted: a soft warm light under the mark */
.table-art::before{content:"";position:absolute;inset:22%;border-radius:50%;background:radial-gradient(circle,rgba(242,179,61,.28),rgba(242,179,61,0) 70%)}
.table-art svg{position:relative}
@media (max-width:919px){.intro .eyebrow{order:-3;margin-top:28px}.intro .ctas,.intro .scroll-hint{order:-1}.intro .scroll-hint{margin:28px 0 44px}.intro .lede{margin-top:8px}}

/* night (7pm to 7am, the visitor's own clock; set in index.html): the first screen is dark, and the page lights up
   as you scroll to the first seat. By day it is light from the start. */
.night body,.night .top,.night .top nav a,.night .brand,.night .intro .lede,.night .eyebrow,.night .scroll-hint,.night .table-box,.night .seat-b,.night .cta-top{transition:background-color .6s,color .6s,box-shadow .6s}
.night body.at-top{background:#1E2421;color:#F3F3F1}
.night .at-top .top{background:rgba(30,36,33,.86)}
.night .at-top .brand{color:#fff}.night .at-top .brand i{color:#8A8F88}
.night .at-top .top nav a{color:#B9BCB5}.night .at-top .top nav a:hover{background:#2C3430;color:#fff}
.night .at-top .cta-top,.night .at-top .intro .btn.primary{background:var(--sun);color:var(--ink)}
.night .at-top .eyebrow,.night .at-top .scroll-hint{color:#9DA29B}
.night .at-top .intro .lede{color:#D8DAD4}
.night .at-top .table-box{color:#F3F3F1}
.night .at-top .seat-b{background:#262D29;color:#F3F3F1;box-shadow:0 0 0 1px #3A423E}
.night .at-top .seat-b .n{background:#3A423E}
.night .at-top .hl{-webkit-text-stroke:0}
.night .at-top .table-art::before{background:radial-gradient(circle,rgba(242,179,61,.38),rgba(242,179,61,0) 70%)}
