/* FounderVibes public site.
   Monochrome on purpose, except the mark: it carries Afterhours, the community colours, as one sweep
   (--sweep, see _Brand/README.md). State is never colour: every light effect reads from ONE
   token (--light), so tinting later is one line. State is carried by shape and label, never colour.
   Colours and fonts live in :root and nowhere else. Google Fonts only (linked in index.html). */
:root{
  --ink:#050505; --ink-2:#0b0b0b; --ink-3:#121212; --ink-4:#1a1a1a;
  --hair:rgba(255,255,255,.08); --hair-2:rgba(255,255,255,.15);
  --fg:#ededed; --fg-dim:#8a8a8a; --fg-faint:#4a4a4a; --fg-soft:#bdbdbd;
  --on-light:#050505; --light-fill:#ededed; --light-btn:#f2f2f2;
  --white:#fff; --n-81:#cfcfcf; --n-77:#c4c4c4; --n-60:#9a9a9a; --n-47:#777; --n-42:#6a6a6a; --n-33:#555; --n-27:#444;
  --n-23:#3a3a3a; --n-15:#262626; --n-11:#1d1d1d; --n-09:#161616; --n-05:#0d0d0d; --n-04:#090909;
  --light:255,255,255;
  --sweep:linear-gradient(to top right,#FFB547,#FF6B5B,#FF6FB5,#A88BFF,#4FC3FF,#3FE0A5);
  --lx:50vw; --ly:30vh; --lr:520px;
  --sans:"Inter",system-ui,sans-serif; --mono:"JetBrains Mono",ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--fg);font:15px/1.5 var(--sans);overflow-x:hidden}
a{color:inherit}
.kick{font:500 11px/1.2 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--fg-dim)}
.dg{color:var(--fg-faint)}

.lamp{position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(calc(var(--lr)*1.4) circle at var(--lx) var(--ly),rgba(var(--light),.05),transparent 70%)}

/* the site is a container, so layout follows its width */
.site{container:site/inline-size;position:relative;isolation:isolate;overflow-x:clip;min-height:100vh}
/* grain over the whole site (hides gradient banding too) */
.site::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:20;opacity:.06;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

.sample{margin:0;padding:8px 26px;border-bottom:1px dashed var(--hair-2);font:11.5px/1.5 var(--mono);color:var(--fg-dim);position:relative;z-index:6}
.sample b{color:var(--fg);font-weight:500}

/* ---------- nav ---------- */
.snav{position:relative;z-index:5;display:flex;align-items:center;gap:18px;padding:16px 26px;border-bottom:1px solid var(--hair)}
.mark{display:flex;align-items:center;gap:10px;font:700 14px var(--sans);letter-spacing:-.01em}
/* the FounderVibes mark (solid, _Brand/logo/fv-mark-solid-colour.svg) as a mask over the Afterhours sweep */
.mark i{width:25px;height:22px;background:var(--sweep);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 73.5 65'%3E%3Cg fill='black' stroke='black' stroke-linejoin='round'%3E%3Cpath d='M2 0.5L71.837 0.5A0.4 0.4 0 0 1 72.083 1.215L52.934 16.161A1.6 1.6 0 0 1 51.95 16.5L2 16.5A1.5 1.5 0 0 1 0.5 15L0.5 2A1.5 1.5 0 0 1 2 0.5Z'/%3E%3Cpath d='M2 24.5L42.513 24.5A0.4 0.4 0 0 1 42.791 25.187L27.465 40.049A1.6 1.6 0 0 1 26.352 40.5L2 40.5A1.5 1.5 0 0 1 0.5 39L0.5 26A1.5 1.5 0 0 1 2 24.5Z'/%3E%3Cpath d='M2 48.5L19.7 48.5A0.4 0.4 0 0 1 20.003 49.171Q15.104 55.867 11.919 63.476A1.6 1.6 0 0 1 10.417 64.5L2 64.5A1.5 1.5 0 0 1 0.5 63L0.5 50A1.5 1.5 0 0 1 2 48.5Z'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 73.5 65'%3E%3Cg fill='black' stroke='black' stroke-linejoin='round'%3E%3Cpath d='M2 0.5L71.837 0.5A0.4 0.4 0 0 1 72.083 1.215L52.934 16.161A1.6 1.6 0 0 1 51.95 16.5L2 16.5A1.5 1.5 0 0 1 0.5 15L0.5 2A1.5 1.5 0 0 1 2 0.5Z'/%3E%3Cpath d='M2 24.5L42.513 24.5A0.4 0.4 0 0 1 42.791 25.187L27.465 40.049A1.6 1.6 0 0 1 26.352 40.5L2 40.5A1.5 1.5 0 0 1 0.5 39L0.5 26A1.5 1.5 0 0 1 2 24.5Z'/%3E%3Cpath d='M2 48.5L19.7 48.5A0.4 0.4 0 0 1 20.003 49.171Q15.104 55.867 11.919 63.476A1.6 1.6 0 0 1 10.417 64.5L2 64.5A1.5 1.5 0 0 1 0.5 63L0.5 50A1.5 1.5 0 0 1 2 48.5Z'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
.snav nav{display:flex;gap:18px;margin-left:auto;font-size:13px;color:var(--fg-dim)}
.snav nav a{color:inherit;text-decoration:none}.snav nav a:hover{color:var(--fg)}
.snav .signin{font:12px var(--mono);color:var(--fg);border:1px solid var(--hair-2);border-radius:999px;padding:5px 12px;text-decoration:none}
@container site (max-width:640px){.snav{padding:14px 18px}.snav nav{display:none}.snav .signin{margin-left:auto}.sample{padding:8px 18px}}

/* ---------- buttons with a lamp sheen ---------- */
.b{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 20px;
  font:600 14px var(--sans);border:1px solid var(--hair-2);background:var(--ink-3);color:var(--fg);cursor:pointer;text-decoration:none}
.b.solid{background:var(--light-btn);color:var(--on-light);border-color:var(--light-btn)}
.b::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120px circle at var(--mx,-99px) var(--my,-99px),rgba(var(--light),.22),transparent 70%)}
.b.solid::after{background:radial-gradient(120px circle at var(--mx,-99px) var(--my,-99px),rgba(255,255,255,.9),transparent 60%);mix-blend-mode:overlay}
.b[disabled]{opacity:.4;cursor:not-allowed}
.b:focus-visible,.site a:focus-visible,.site button:focus-visible,.site input:focus-visible{outline:none;box-shadow:0 0 0 1px var(--white),0 0 0 5px rgba(var(--light),.14)}

/* ---------- rim-lit card ---------- */
.rim{position:relative;border-radius:16px;background:var(--n-05);border:1px solid var(--hair)}
.rim::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;
  background:radial-gradient(260px circle at var(--mx,-999px) var(--my,-999px),rgba(var(--light),.9),rgba(var(--light),.05) 55%,transparent 80%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.rim::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(380px circle at var(--mx,-999px) var(--my,-999px),rgba(var(--light),.06),transparent 45%)}

/* ---------- hero (concept 4's copy; the visual is the bulb right under it) ---------- */
.hero{position:relative;display:grid;place-items:center;text-align:center;padding:64px 24px 40px;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background-image:radial-gradient(rgba(var(--light),.7) 1px,transparent 1.5px);background-size:22px 22px;
  -webkit-mask-image:radial-gradient(360px circle at var(--mx,50%) var(--my,30%),#000,rgba(0,0,0,.05) 70%);
          mask-image:radial-gradient(360px circle at var(--mx,50%) var(--my,30%),#000,rgba(0,0,0,.05) 70%)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(var(--hair) 1px,transparent 1px) 0 0/110px 110px,linear-gradient(90deg,var(--hair) 1px,transparent 1px) 0 0/110px 110px;
  -webkit-mask-image:radial-gradient(520px circle at var(--mx,50%) var(--my,30%),#000,transparent 75%);
          mask-image:radial-gradient(520px circle at var(--mx,50%) var(--my,30%),#000,transparent 75%)}
.hero h1.big{margin:14px 0 0;font-size:clamp(38px,11cqi,128px);line-height:.95;letter-spacing:-.055em;font-weight:800;white-space:nowrap;
  color:transparent;-webkit-background-clip:text;background-clip:text;
  background-image:radial-gradient(420px circle at var(--mx,50%) var(--my,30%),var(--white) 0,var(--n-77) 25%,var(--n-23) 72%)}
.hero .one{max-width:600px;margin:22px auto 28px;color:var(--fg-soft);font-size:18px;line-height:1.5}
.hero .one b{color:var(--fg);font-weight:600}
.btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.facts{display:flex;gap:26px;justify-content:center;flex-wrap:wrap;margin-top:34px;font:12px var(--mono);color:var(--fg-dim)}
.facts b{display:block;font:700 22px var(--sans);letter-spacing:-.03em;color:var(--fg)}
@container site (max-width:760px){.hero{padding:44px 18px 30px}.hero .one{font-size:16px}.facts{gap:18px}}

/* ---------- the bulb: a scroll track; the stage sticks while you scroll the spacer, which flips the view ---------- */
.htrack{position:relative}
.hsticky{position:sticky;top:0;z-index:3}
.hspacer{height:380px}
@container site (max-width:640px){.hspacer{height:300px}}
.bstage{position:relative;height:clamp(520px,calc(100vh - 24px),640px);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:var(--ink);overflow:hidden;--calA:0;--mapA:1}
@container site (max-width:640px){.bstage{height:clamp(600px,calc(100vh - 8px),680px)}}
.bstage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y}
.btop{position:absolute;left:0;right:0;top:0;height:52px;display:flex;align-items:center;gap:12px;padding:0 14px 0 46px;z-index:6}
.bcap{font:11.5px var(--mono);color:var(--fg-dim);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.bcap b{color:var(--fg);font-weight:500}
.vt{display:inline-flex;border:1px solid var(--hair-2);border-radius:999px;padding:3px;gap:2px;background:rgba(10,10,10,.88);flex:none}
.vt button{border:0;background:none;color:var(--fg-dim);font:12px var(--mono);padding:6px 12px;border-radius:999px;cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.vt button[aria-pressed=true]{background:var(--light-fill);color:var(--on-light)}
@container site (max-width:640px){.vt button{padding:6px 10px;font-size:11.5px}.vt .lg{display:none}.btop{padding-right:10px}}
.mlegend{position:absolute;left:18px;bottom:16px;z-index:3;display:flex;gap:6px 14px;flex-wrap:wrap;font:11px var(--mono);color:var(--fg-dim);opacity:var(--mapA);max-width:320px;pointer-events:none}
.mlegend span{display:inline-flex;gap:6px;align-items:center}
.mlegend .gl{color:var(--fg);width:10px;text-align:center;font-style:normal}
.mnote{position:absolute;right:18px;bottom:16px;z-index:3;max-width:250px;text-align:right;font:11px/1.5 var(--mono);color:var(--fg-faint);opacity:var(--mapA);pointer-events:none}
@container site (max-width:640px){.mnote{display:none}.mlegend{top:58px;bottom:auto;left:12px;right:12px;max-width:none;gap:4px 12px;justify-content:center}}
/* the spotlight card: only ever a member who chose a public profile */
.spot{position:absolute;left:0;top:0;z-index:5;width:250px;padding:12px 14px;border-radius:12px;background:rgba(12,12,12,.93);border:1px solid var(--hair-2);backdrop-filter:blur(6px);opacity:0;transition:opacity .35s;pointer-events:none}
.spot.on{opacity:1}
.spot .k{font:10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-dim)}
.spot b{display:block;font-size:17px;margin:5px 0 2px;color:var(--fg);letter-spacing:-.01em}
.spot .w{font-size:13px;color:var(--n-81);line-height:1.35}
.spot .q{font-size:12.5px;color:var(--fg-dim);margin-top:6px;line-height:1.4}
@container site (max-width:640px){.spot{left:12px;right:12px;top:auto;bottom:14px;width:auto}}

/* the calendar the members become (DOM: labels and buttons; the canvas draws the dots under it) */
.cal{position:absolute;left:18px;right:18px;top:60px;bottom:86px;z-index:2;opacity:var(--calA)}
@container site (max-width:640px){.cal{left:10px;right:10px;top:56px;bottom:104px}}
.cal:not(.live),.dayline:not(.live){pointer-events:none}
.bc-months{display:grid;grid-template-columns:1fr 1fr;gap:30px;height:100%}
@container site (max-width:700px){.bc-months{grid-template-columns:1fr;gap:8px;grid-template-rows:5fr 6fr}}
.bc-month{display:flex;flex-direction:column;min-height:0}
.bc-mh{font:600 13px var(--sans);color:var(--fg);display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px;gap:8px}
.bc-mh small{font:11px var(--mono);color:var(--fg-dim);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.bc-wd{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));font:10px var(--mono);color:var(--fg-faint);margin-bottom:2px}
.bc-wd span{padding-left:6px}
.bc-mgrid{flex:1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));min-height:0}
@container site (max-width:700px){.bc-mgrid{grid-template-rows:repeat(var(--rows,6),minmax(0,1fr))}}
.bc-day{position:relative;min-width:0;border:0;background:none;color:var(--fg-dim);font:inherit;text-align:left;padding:5px 7px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;border-radius:5px}
.bc-day.out{cursor:default}
.bc-day .dn{font:500 11px var(--mono);font-style:normal;white-space:nowrap}
.bc-day .et{font:10.5px/1.25 var(--sans);color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc-day .et.x{text-decoration:line-through;color:var(--fg-dim)}
.bc-day.today .dn{background:var(--light-fill);color:var(--on-light);padding:0 4px;border-radius:3px;align-self:flex-start}
.bc-day[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--white)}
.bc-day:not(.out):hover{background:rgba(255,255,255,.035)}
@container site (max-width:760px){.bc-day .et{display:none}.bc-day{padding:3px 4px}.bc-day .dn{font-size:10px}}
.dayline{position:absolute;left:18px;right:18px;bottom:12px;height:64px;z-index:3;opacity:var(--calA);display:flex;gap:18px;align-items:center;border-top:1px solid var(--hair);padding-top:8px;overflow:hidden}
@container site (max-width:640px){.dayline{left:10px;right:10px;height:90px;flex-direction:column;align-items:stretch;gap:4px}}
.dl-d{font:500 12px var(--mono);color:var(--fg);flex:none;min-width:92px}
.dl-ev{display:grid;gap:4px;flex:1;min-width:0}
.bc-ev{display:flex;gap:10px;align-items:center;min-width:0;font-size:13px}
.bc-ev .g{font:13px/1 var(--mono);width:14px;text-align:center;flex:none;color:var(--fg)}
.bc-ev b{font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.bc-ev.x b{text-decoration:line-through;color:var(--fg-dim)}
.bc-ev span{color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-size:12.5px}
.mini{flex:none;border:1px solid var(--hair-2);background:var(--ink-3);color:var(--fg);border-radius:999px;padding:4px 10px;font:600 11.5px var(--sans);cursor:pointer;margin-left:auto}
.dl-note{font-size:12.5px;color:var(--fg-dim)}
.dlegend{flex:none;display:grid;grid-template-columns:repeat(3,auto);gap:3px 14px;font:10.5px var(--mono);color:var(--fg-dim)}
.dlegend i{font-style:normal;color:var(--fg);margin-right:5px}
@container site (max-width:1000px){.dlegend{display:none}}
@container site (max-width:640px){.bc-ev{font-size:12px;flex-wrap:wrap;gap:2px 8px;position:relative;padding-right:84px}.bc-ev span{flex-basis:100%;padding-left:22px;font-size:11.5px}.bc-ev .mini{position:absolute;right:0;top:0;margin:0}}

/* ---------- sections ---------- */
.sec{position:relative;padding:34px 26px;border-top:1px solid var(--hair)}
.sec>.kick{display:block;margin-bottom:14px}
.sec h2{margin:0 0 6px;font-size:28px;letter-spacing:-.03em;color:var(--fg)}
.sec .lede{color:var(--fg-dim);margin:0 0 18px;font-size:14.5px;max-width:680px}
@container site (max-width:760px){.sec{padding:28px 18px}}

/* ---------- the agenda ---------- */
.tools{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;justify-content:space-between;margin-bottom:10px}
.fchips{display:flex;flex-wrap:wrap;gap:6px}
.fchip{cursor:pointer;display:inline-flex;gap:7px;align-items:center;border:1px solid var(--hair-2);background:var(--ink-3);color:var(--fg-dim);border-radius:999px;padding:6px 12px;font:12.5px var(--sans)}
.fchip small{font:11px var(--mono);color:var(--fg-faint)}
.fchip[aria-pressed=true]{background:var(--light-fill);color:var(--on-light);border-color:var(--light-fill)}
.fchip[aria-pressed=true] small{color:var(--n-33)}
.fg{font:13px/1 var(--mono);display:inline-block;width:14px;text-align:center}
.seg{display:inline-flex;border:1px solid var(--hair-2);border-radius:999px;padding:3px;background:var(--ink-2)}
.seg button{cursor:pointer;border:0;background:transparent;color:var(--fg-dim);border-radius:999px;padding:6px 14px;font:12.5px var(--sans)}
.seg button[aria-pressed=true]{background:var(--light-fill);color:var(--on-light)}
.sumline{font:12px var(--mono);color:var(--fg-dim);margin:4px 0 14px;display:flex;flex-wrap:wrap;gap:6px 16px}
.legend{display:flex;flex-wrap:wrap;gap:6px}

/* state = shape and fill, never colour */
.st{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border-radius:999px;padding:3px 10px;font:11px var(--mono);letter-spacing:.02em;border:1px solid var(--hair-2);color:var(--fg)}
.st i{font-style:normal}
.s-open{background:var(--light-fill);color:var(--on-light);border-color:var(--light-fill)}
.s-full{background:repeating-linear-gradient(135deg,var(--n-15) 0 3px,var(--n-05) 3px 7px);border-color:var(--n-60);font-weight:500}
.s-notset{border-style:dashed;border-color:var(--fg-dim);color:var(--fg-dim);background:transparent}
.s-member{border:3px double var(--fg-dim);padding:1px 9px;background:transparent}
.s-cancel{background:transparent;color:var(--fg-dim);border-color:var(--n-33);text-decoration:line-through;text-decoration-thickness:1px}
.s-cancel i{text-decoration:none;display:inline-block}

.roster{padding:6px 20px 14px}
.mgrp+.mgrp{margin-top:8px}
.mhead{display:flex;align-items:baseline;gap:12px;padding:16px 0 8px;border-bottom:1px solid var(--hair-2)}
.mhead h3{margin:0;font-size:20px;letter-spacing:-.02em}
.mhead span{font:11.5px var(--mono);color:var(--fg-dim)}
.evs{list-style:none;margin:0;padding:0}
.ev{display:grid;grid-template-columns:64px minmax(0,1fr) 230px;gap:18px;align-items:start;padding:14px 0;border-bottom:1px solid var(--hair);transition:background .4s}
.ev:last-child{border-bottom:0}
.ev.flash{background:rgba(var(--light),.06)}
.dd{text-align:center;border:1px solid var(--hair-2);border-radius:10px;overflow:hidden;background:var(--ink)}
.dd span{display:block;font:500 10px var(--mono);letter-spacing:.14em;padding:4px 0;border-bottom:1px solid var(--hair-2);color:var(--fg-dim)}
.dd b{display:block;font:800 26px/1.4 var(--sans);letter-spacing:-.04em}
.dd.q{border-style:dashed}.dd.q b{color:var(--fg-faint)}
.ev .fm{font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim);display:flex;gap:6px;align-items:center}
.ev h4{margin:3px 0 4px;font-size:16.5px;letter-spacing:-.01em;color:var(--fg)}
.ev p{margin:0;color:var(--fg-dim);font-size:13.5px}
.ev .meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:7px;font:11.5px var(--mono);color:var(--fg-dim)}
.ev .meta .tbc{border-bottom:1px dashed var(--fg-faint)}
.ev .act{display:grid;gap:8px;justify-items:end;text-align:right}
.ev .act .b{padding:9px 16px;font-size:13px}
.ev .act small{font:11px var(--mono);color:var(--fg-dim)}
.ev .act .wl-msg{font-size:12.5px;text-align:right}
.ev.cancel h4{text-decoration:line-through;text-decoration-thickness:1px;color:var(--fg-dim)}
.ev.cancel .dd b{color:var(--fg-faint)}
.empty{margin:14px 0 6px;padding:22px;border:1px dashed var(--hair-2);border-radius:14px;display:grid;gap:10px;justify-items:start}
.empty b{font-size:16px;color:var(--fg)}
.empty p{margin:0;color:var(--fg-dim);font-size:13.5px;max-width:560px}
.empty .row{display:flex;gap:8px;flex-wrap:wrap}
.nofilter{margin:12px 0;font-size:13px;color:var(--fg-dim)}
.linkish{cursor:pointer;background:none;border:0;color:var(--fg);text-decoration:underline;font:inherit;padding:0}
@container site (max-width:760px){
  .roster{padding:4px 14px 10px}
  .ev{grid-template-columns:50px minmax(0,1fr);gap:12px}
  .dd b{font-size:20px}
  .ev .act{grid-column:2;justify-items:start;text-align:left}
  .ev .act .wl-msg{text-align:left}
}

/* month grid: each month is its own container so labels appear only when there is room */
.months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:16px 20px 6px}
@container site (max-width:900px){.months{grid-template-columns:1fr;padding:12px 14px 4px}}
.month{container:mon/inline-size;min-width:0}
.month h3{margin:0 0 8px;font-size:18px;letter-spacing:-.02em;display:flex;gap:10px;align-items:baseline}
.month h3 span{font:11.5px var(--mono);color:var(--fg-dim);font-weight:400}
.dow,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.dow span{font:10px var(--mono);letter-spacing:.1em;color:var(--fg-faint);text-align:center;padding-bottom:4px}
.day{position:relative;min-height:52px;min-width:0;border:1px solid var(--hair);border-radius:8px;background:var(--ink-2);color:var(--fg);padding:4px 5px;text-align:left;font:inherit;display:flex;flex-direction:column;gap:2px;overflow:hidden}
button.day{cursor:pointer}
button.day:hover{border-color:var(--hair-2)}
.day.blank{background:transparent;border-color:transparent}
.day>b{font:600 12px var(--mono);color:var(--fg-dim)}
.day.has>b{color:var(--fg)}
.day .mk{font:12px/1.15 var(--mono);letter-spacing:1px;word-break:break-all}
.day .mk s{opacity:.45}
.day .lb{display:none;font-size:10.5px;line-height:1.25;color:var(--fg-dim);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.day .lb.x{text-decoration:line-through}
.day.today{box-shadow:inset 0 0 0 1px var(--white)}
.day.today>b::after{content:" today";font-weight:400;font-size:9px;color:var(--fg-dim)}
.day[aria-pressed=true]{background:var(--light-fill);border-color:var(--light-fill);color:var(--on-light)}
.day[aria-pressed=true]>b,.day[aria-pressed=true] .lb{color:var(--on-light)}
@container mon (min-width:500px){.day{min-height:78px}.day .lb{display:block}}
@container mon (max-width:380px){.day.today>b::after{content:""}.day{padding:3px 3px;min-height:46px}.day .mk{font-size:11px;letter-spacing:0}}
.undated{margin-top:8px;font:11.5px var(--mono);color:var(--fg-dim);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.memptyg{margin:0 0 8px;font-size:12.5px;color:var(--fg-dim);border:1px dashed var(--hair-2);border-radius:10px;padding:10px 12px}
.daypanel{margin:10px 20px 14px;padding:4px 16px;border:1px solid var(--hair-2);border-radius:12px;background:var(--ink-2)}
@container site (max-width:900px){.daypanel{margin:10px 14px 12px;padding:4px 12px}}
.daypanel>.kick{display:block;padding:12px 0 2px}

/* add an event */
.addev{margin-top:16px;padding:20px;display:grid;grid-template-columns:1fr 1.3fr;gap:20px;align-items:start}
@container site (max-width:760px){.addev{grid-template-columns:1fr;padding:18px}}
.addev h3{margin:10px 0 6px;font-size:18px}
.addev p{margin:0 0 8px;color:var(--fg-dim);font-size:13.5px}
.addev p.soon{font:11.5px/1.5 var(--mono);color:var(--fg);border-left:2px solid var(--hair-2);padding-left:10px}
.addf{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
.addf .full{grid-column:1/-1}
.formrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
@container site (max-width:520px){.addf{grid-template-columns:1fr}}
.addf input{min-width:0;width:100%;background:var(--ink-3);border:1px solid var(--hair-2);border-radius:10px;color:var(--fg);padding:10px 12px;font:13.5px var(--sans);color-scheme:dark}
.addf input.bad{border-style:dashed;border-color:var(--white)}

/* ---------- four routes ---------- */
.floor{background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%),var(--n-11),var(--n-04) 70%)}
.routes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@container site (max-width:900px){.routes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container site (max-width:520px){.routes{grid-template-columns:1fr}}
.route{cursor:pointer;text-align:left;color:var(--fg);font:inherit;padding:18px;min-height:170px;display:flex;flex-direction:column;gap:8px;
  box-shadow:calc(var(--sx,0)*26px) calc(var(--sy,0)*26px) 34px -8px rgba(0,0,0,.85);transition:transform .25s}
.route:hover{transform:translateY(-2px)}
.route .g{font:22px/1 var(--mono);width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--hair-2);border-radius:10px}
.route b{font-size:18px;letter-spacing:-.01em}
.route span{color:var(--fg-dim);font-size:13.5px}
.route em{margin-top:auto;font:normal 11px var(--mono);color:var(--fg-faint);letter-spacing:.06em}
.route[aria-pressed=true]{border-color:var(--white)}
.route[aria-pressed=true] em{color:var(--fg)}
.route[aria-pressed=true] em::before{content:"\25B8  "}
.rdetail{margin-top:14px;display:grid;grid-template-columns:1.1fr 1fr;gap:18px;padding:20px}
@container site (max-width:760px){.rdetail{grid-template-columns:1fr}}
.rdetail h3{margin:0 0 6px;font-size:18px}
.rdetail p{margin:0 0 10px;color:var(--fg-dim);font-size:14px}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:0}
.steps li{display:grid;grid-template-columns:26px 1fr auto;gap:10px;padding:9px 0;border-bottom:1px solid var(--hair);font-size:13.5px}
.steps li i{font:normal 11px var(--mono);color:var(--fg-faint)}
.steps li span{font:11.5px var(--mono);color:var(--fg-dim)}
@container site (max-width:520px){.steps li{grid-template-columns:22px 1fr}.steps li span{grid-column:2}}

/* ---------- waitlist ---------- */
.wlsec{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
@container site (max-width:760px){.wlsec{grid-template-columns:1fr}}
.wlsec h2{margin-top:12px}
.wlsec .say p{color:var(--fg-dim);font-size:14.5px;margin:0 0 10px}
.wlcard{padding:22px}
.wl{display:grid;gap:10px}
.wl .row{display:flex;gap:8px;flex-wrap:wrap}
.wl input[type=email]{flex:1;min-width:0;background:var(--ink-3);border:1px solid var(--hair-2);border-radius:999px;color:var(--fg);padding:12px 16px;font:14px var(--sans)}
.wl input.bad{border-style:dashed;border-color:var(--white)}
.wl .fine{font-size:12px;color:var(--fg-dim)}
.wl .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.wl .go:disabled{opacity:.6;cursor:progress}
.li{background:var(--light-btn);color:var(--on-light)}
.or{display:flex;align-items:center;gap:10px;font:11px var(--mono);color:var(--fg-faint)}.or::before,.or::after{content:"";flex:1;height:1px;background:var(--hair)}
.rchips{display:flex;gap:6px;flex-wrap:wrap}
.rchip{cursor:pointer;display:inline-flex;gap:7px;align-items:center;border:1px solid var(--hair-2);background:var(--ink-3);color:var(--fg-dim);border-radius:999px;padding:6px 12px;font:12.5px var(--sans)}
.rchip[aria-pressed=true]{background:var(--light-fill);color:var(--on-light);border-color:var(--light-fill)}
.glyph{font:13px/1 var(--mono);width:12px;text-align:center}
.wl-msg{font-size:13px;color:var(--fg-dim);min-height:1em}
.wl-msg .st{font-family:var(--mono);margin-right:6px;color:var(--fg);border:0;padding:0}
.wl-msg.err{color:var(--fg);border:1px dashed var(--hair-2);border-radius:10px;padding:8px 12px}

/* ---------- partners and footer ---------- */
.partners{position:relative;padding:26px;border-top:1px solid var(--hair)}
.partners .kick{margin-bottom:14px}
.plogos{display:flex;flex-wrap:wrap;gap:12px 34px;align-items:center}
.plogo{font:700 17px var(--sans);letter-spacing:-.02em;color:transparent;-webkit-background-clip:text;background-clip:text;
  background-image:radial-gradient(260px circle at var(--mx,-999px) var(--my,-999px),var(--white),var(--n-42) 60%,var(--n-27))}
.plogo.m{font:500 14px var(--mono);letter-spacing:.06em;text-transform:uppercase}
.plogo.s{font:italic 600 18px var(--sans);letter-spacing:-.01em}
.partners .pnote{margin-top:14px;font-size:12.5px;color:var(--fg-dim)}
.sfoot{display:flex;flex-wrap:wrap;gap:10px 22px;padding:20px 26px;border-top:1px solid var(--hair);font:12px var(--mono);color:var(--fg-faint)}
.sfoot a{color:var(--fg-dim);text-decoration:none}
.sfoot span:first-child{margin-right:auto}
@container site (max-width:640px){.partners{padding:24px 18px}.sfoot{padding:18px}}

/* reduced motion: the OS setting, or ?motion=reduce (adds html.rm) */
html.rm *,html.rm *::before,html.rm *::after{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
