/* resonatecircle.com, the public site (/, /rooms). Site v3, 16 Oct 2026: built from the boards Aragon approved
   (sitework/resonate-brand-notes.md). Forest by day, moss night bands, one bold colour per screen.
   No scripts on site pages (test-site-routing): every motion here is CSS and stops under reduced motion.
   Layout of this file: 1 tokens + base · 2 SHARED components (nav, buttons, hand note, rings plate, card, moss band,
   footer) for / and /rooms · 3 homepage · 4 mark motion (assets/mark) · 5 legacy classes the Rooms page still uses. */
:root{
  --paper:#FFF8F0;--card:#FFFFFF;--peach:#FFE3CC;--peach2:#FFF0E3;--apricot:#E8913A;--apricot-t:#A3561A;
  --forest:#154A36;--forest2:#0F3A2A;--ink:#15231B;--dim:#4C5951;--faint:#68756E;--mute:#7D8A82;
  --moss:#1E2A10;--moss2:#2C371E;--sage:#C4D0B1;--sage2:#9FAE8E;
  --underline:#E8913A;   /* the Concept A sentence underline ("the yellow"): the only underline colour on that board */
  --line:rgba(21,35,27,.12);--line2:rgba(21,35,27,.22);--rule:rgba(21,35,27,.14);--nline:rgba(196,208,177,.25);
  --serif:'Young Serif',Georgia,serif;--poster:'Fraunces Black','Young Serif',Georgia,serif;
  --sans:Figtree,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:'DM Mono',ui-monospace,Menlo,monospace;--hand:'Nanum Pen Script',cursive;
  --wrap:1240px;--pad:max(16px,4vw)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-synthesis:none}
main{overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:var(--forest);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--forest2)}
:focus-visible{outline:2px solid var(--forest);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.skip{position:absolute;left:-999px;top:8px;background:var(--forest);color:var(--paper);padding:10px 16px;border-radius:10px;z-index:30}
.skip:focus{left:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.mono{font-family:var(--mono);font-size:13px;letter-spacing:.02em}
.label{font-family:var(--mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.em{color:var(--forest)}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;margin:0}
p{margin:0 0 1em}

/* ===================== 2. SHARED COMPONENTS (homepage + /rooms) ===================== */

/* -- site nav: wordmark left, links, Sign in, Get started. Sticky; the frosted glass here is the ONLY glass on the site.
      Markup: <header class="site-nav [on-night]"><div class="wrap nav-in"><a class="nav-wm" …>wordmark</a>
      <nav class="nav-links" aria-label="Main">…</nav><div class="nav-act"><a class="nav-signin">…</a><a class="btn">…</a></div></div></header> */
.site-nav{position:sticky;top:0;z-index:20;background:rgba(255,248,240,.8);border-bottom:1px solid transparent;
  -webkit-backdrop-filter:saturate(1.3) blur(14px);backdrop-filter:saturate(1.3) blur(14px)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:16px;padding-bottom:16px}
.nav-wm{display:block;flex:none;line-height:0;color:var(--forest)}
.nav-wm svg,.nav-wm img{height:20px;width:auto;display:block;overflow:visible}   /* = the board's 28px wordmark type size (viewBox is 0.696 em tall) */
.nav-links{display:flex;gap:28px}
.nav-links a{display:inline-flex;align-items:center;min-height:44px;font:600 15px/1 var(--sans);color:var(--dim);text-decoration:none}
.nav-act{display:flex;align-items:center;gap:18px;flex:none}
.nav-signin{display:inline-flex;align-items:center;min-height:44px;font:600 15px/1 var(--sans);color:var(--ink);text-decoration:none}
@media (hover:hover){.nav-links a:hover,.nav-signin:hover{color:var(--forest)}}
.site-nav.on-night{background:rgba(30,42,16,.82)}
.site-nav.on-night .nav-wm{color:var(--paper)}
.site-nav.on-night .nav-links a{color:var(--sage)}
.site-nav.on-night .nav-signin{color:var(--paper)}
@media (hover:hover){.site-nav.on-night .nav-links a:hover,.site-nav.on-night .nav-signin:hover{color:var(--paper)}}
/* a hairline under the nav once the page has scrolled (scroll-driven, no script; browsers without it keep no line).
   Off under reduced motion, so getAnimations() is empty there; the nav simply has no hairline. */
@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){
  .site-nav{animation:nav-line linear both;animation-timeline:scroll(root);animation-range:0 72px}
  @keyframes nav-line{to{border-bottom-color:var(--line)}}
  .site-nav.on-night{animation-name:nav-line-n}
  @keyframes nav-line-n{to{border-bottom-color:var(--nline)}}
}}
/* phones: every nav link folds away except Rooms (DONE MEANS 5: Rooms is in the nav at every width). /rooms itself has
   only in-page links, so its phone nav is wordmark + Sign in + Get started. Measured: no horizontal scroll at 320/360/390. */
@media (max-width:760px){.nav-in{gap:12px;padding-top:12px;padding-bottom:12px}.nav-links{gap:0;margin-left:auto}.nav-links a{display:none}
  .nav-links a[href="/rooms"]{display:inline-flex;color:var(--ink)}.nav-wm svg,.nav-wm img{height:18px}.nav-act{gap:12px}}
@media (max-width:420px){.nav-act .btn{padding-left:14px;padding-right:14px;font-size:14px}.nav-links a,.nav-signin{font-size:14px}}
@media (max-width:360px){.nav-signin{display:none}}

/* -- buttons (board: Figtree 700, pill) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:13px 22px;border-radius:999px;border:0;
  background:var(--forest);color:var(--paper)!important;font:700 15px/1 var(--sans);text-decoration:none;white-space:nowrap;
  transition:transform .16s cubic-bezier(.2,.8,.2,1),background-color .16s}
.btn:active{transform:scale(.97)}
.btn.lg{min-height:52px;padding:17px 28px;font-size:17px}
.btn.sm{min-height:40px;padding:11px 18px;font-size:14px}
.btn.paper{background:var(--paper);color:var(--forest)!important}
.btn.ghost,.btn-q{background:transparent;color:var(--ink)!important;box-shadow:inset 0 0 0 1.5px var(--dim)}
.btn-q{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 20px;border-radius:999px;font:600 15px/1 var(--sans);text-decoration:none;white-space:nowrap}
.btn.ghost.on-dark,.btn-q.on-dark{color:var(--paper)!important;box-shadow:inset 0 0 0 1.5px var(--sage)}
@media (hover:hover){.btn:hover{background:var(--forest2)}.btn.paper:hover{background:#fff}
  .btn.ghost:hover,.btn-q:hover{background:rgba(21,35,27,.05)}.btn.ghost.on-dark:hover,.btn-q.on-dark:hover{background:rgba(255,248,240,.08)}}
.ctas{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.fine{font-size:14px;color:var(--faint);margin-top:14px}

/* -- hand note: the Concept C margin note (Nanum Pen, apricot-text, the little hooked pen stroke). One per section.
      <p class="hn" aria-hidden="true">three at most. one is fine too.</p>  · on moss it turns apricot (6.1:1) */
.hn,.b-txt>.hn{font-family:var(--hand);font-size:30px;line-height:1.02;color:var(--apricot-t);transform:rotate(-4deg);transform-origin:0 50%;
  margin:34px 0 0;max-width:8em;position:relative}
.hn::before{content:"";display:block;width:46px;height:14px;margin:0 0 6px 4px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;border-radius:0 0 0 14px;transform:rotate(-8deg)}
.night .hn,.night .b-txt>.hn,.on-night .hn,.hn.on-night{color:var(--apricot)}
@media (max-width:760px){.hn,.b-txt>.hn{font-size:27px}}

/* -- the rings plate: orbit rings BEHIND an app mockup or drawing (Concept B .b-plate, SV.plate:
      r 205/250/294 of 600, stroke 1.1, six seat dots on the middle ring; forest at 55%, sage on moss). */
.plate{position:relative;display:grid;place-items:center;min-height:680px;isolation:isolate}
.plate::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:660px;height:660px;transform:translate(-50%,-50%);pointer-events:none;opacity:.55;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' fill='none'%3E%3Cg stroke='%23154A36' stroke-width='1.1'%3E%3Ccircle cx='300' cy='300' r='205'/%3E%3Ccircle cx='300' cy='300' r='250'/%3E%3Ccircle cx='300' cy='300' r='294'/%3E%3C/g%3E%3Cg fill='%23154A36'%3E%3Ccircle cx='550' cy='300' r='4'/%3E%3Ccircle cx='416.4' cy='521.2' r='4'/%3E%3Ccircle cx='149.4' cy='499.5' r='4'/%3E%3Ccircle cx='50.3' cy='288.3' r='4'/%3E%3Ccircle cx='217.9' cy='63.9' r='4'/%3E%3Ccircle cx='505.7' cy='157.9' r='4'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
.night .plate::before,.plate.on-night::before{opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' fill='none'%3E%3Cg stroke='%23C4D0B1' stroke-width='1.1'%3E%3Ccircle cx='300' cy='300' r='205'/%3E%3Ccircle cx='300' cy='300' r='250'/%3E%3Ccircle cx='300' cy='300' r='294'/%3E%3C/g%3E%3Cg fill='%23C4D0B1'%3E%3Ccircle cx='550' cy='300' r='4'/%3E%3Ccircle cx='416.4' cy='521.2' r='4'/%3E%3Ccircle cx='149.4' cy='499.5' r='4'/%3E%3Ccircle cx='50.3' cy='288.3' r='4'/%3E%3Ccircle cx='217.9' cy='63.9' r='4'/%3E%3Ccircle cx='505.7' cy='157.9' r='4'/%3E%3C/g%3E%3C/svg%3E")}
.plate>*{position:relative}
.plate .uicap{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:max-content;max-width:100%;text-align:center;
  font:500 10.5px/1.4 var(--mono);color:var(--faint);padding:2px 10px;margin:0;background:var(--capbg,var(--paper))}
.peach .plate .uicap{--capbg:var(--peach);color:var(--dim)}   /* faint on peach is 3.9:1; dim is 6.0:1 (AA) */
.night .plate .uicap{--capbg:var(--moss);color:var(--sage2)}
@media (max-width:760px){.plate{min-height:0;padding:40px 0 34px}.plate::before{width:150%;height:auto;aspect-ratio:1}}

/* -- a real app screenshot in a light phone frame (sits inside .plate) */
.shot{width:280px;max-width:100%;margin:0;border-radius:36px;overflow:hidden;background:#fff;border:1px solid var(--line);
  box-shadow:0 1px 0 rgba(21,35,27,.04),0 22px 44px -26px rgba(21,35,27,.35)}
.shot img{width:100%;height:auto;aspect-ratio:780/1688;display:block}
@media (max-width:760px){.shot{width:240px;border-radius:30px}}

/* -- cards: .card (white, rounded, hairline), .card-place (the place card from "Built on one rule") */
.card{background:var(--card);border-radius:24px;padding:26px 26px 24px;box-shadow:0 0 0 1px var(--line);overflow:hidden}
.card h3{font-size:24px;line-height:1.15;margin:0 0 8px}
.card p{font-size:16px;color:var(--dim);margin:0}
.card .label{display:block;margin-bottom:10px}
.card-place{background:var(--card);border-radius:6px;padding:34px 34px 30px;max-width:470px;border-top:1px dashed rgba(21,35,27,.2);
  box-shadow:0 1px 0 rgba(21,35,27,.06),0 26px 40px -30px rgba(21,35,27,.45)}
.card-place .mono{display:block;color:var(--faint);margin-bottom:14px}
.card-place .rule-l{font-family:var(--serif);font-size:clamp(24px,2.4vw,32px);line-height:1.15;letter-spacing:-.01em;color:var(--forest);margin:0 0 14px}
.card-place .s{font-size:15px;color:var(--dim);margin:0}
.notice{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px 4px;font-size:14px;color:var(--dim)}
.notice b{color:var(--ink)}

/* -- moss night band (Room Night ground #1E2A10): <section class="night">. Paper headings, sage body. */
.night{background:var(--moss);color:#F3F0E6;overflow:clip}   /* clip, not hidden: hidden makes a scroll container and freezes the .rzm-onview view timelines inside */
.night .label{color:var(--sage)}
.night h2,.night h3{color:var(--paper)}
.night p{color:#D3DBC9}
.night a{color:var(--paper)}

/* -- drawings (sitework/assets/drawings): people at a place, in a rounded card that crops the frame */
.drawing{margin:0;border-radius:18px;overflow:hidden;aspect-ratio:var(--ar,4/3);background:var(--peach)}
.drawing svg,.drawing img{display:block;width:100%;height:100%}
.night .drawing{background:var(--moss2)}

/* -- footer (B .b-foot): wordmark · links · the privacy line; © under it */
.site-foot{padding:36px 0 40px;font-size:14px;color:var(--dim);border-top:1px solid var(--line)}
.site-foot .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px 40px;flex-wrap:wrap}
.site-foot .fl{display:block;line-height:0;flex:none}
.site-foot .fl img{height:20px;width:auto}
.site-foot .cr{flex-basis:100%}
.site-foot nav{display:flex;flex-wrap:wrap;gap:0 22px}
.site-foot nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--dim);font-weight:600;text-decoration:none}
@media (hover:hover){.site-foot nav a:hover{color:var(--forest);text-decoration:underline}}
.site-foot .pl{margin:0}
.site-foot .cr{margin:0;color:var(--faint);font-size:13px}

/* ===================== 3. HOMEPAGE ===================== */

/* -- hero: Concept A "the sentence" */
.hs{padding-top:clamp(40px,8vw,104px);padding-bottom:clamp(40px,6vw,72px)}
.hs-kick{font:400 13px/1.4 var(--mono);letter-spacing:.02em;color:var(--dim);margin:0 0 26px}
/* The rotating sentence. Connective words at lower opacity (ink at 55% ≈ the board's mute #7D8A82); the NAME and the
   PLACE at full strength in forest with the apricot-yellow UNDERLINE (an underline, never a highlight fill). */
.say{display:grid;margin:0;max-width:13.5em;min-height:2.1em;font-family:var(--serif);font-weight:400;
  font-size:clamp(46px,8.4vw,124px);line-height:1.06;letter-spacing:-.015em;color:rgba(21,35,27,.55)}
.say b{font-weight:inherit;color:var(--forest);text-decoration:underline;text-decoration-color:var(--underline);
  text-decoration-thickness:.06em;text-underline-offset:.13em;text-decoration-skip-ink:none}
.say .s{grid-area:1/1;align-self:start}
@media (prefers-reduced-motion:no-preference){
  .say .s{animation:say-cyc 12s infinite both}
  .say .s2{animation-delay:-8s}.say .s3{animation-delay:-4s}
}
@keyframes say-cyc{0%,29%{opacity:1;transform:none;visibility:visible}
  33%{opacity:0;transform:translateY(.12em)}
  34%,96%{opacity:0;visibility:hidden;transform:translateY(-.12em)}
  100%{opacity:1;visibility:visible;transform:none}}
@media (prefers-reduced-motion:reduce){.say .s2,.say .s3{display:none}}
.hs-lead{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap;margin-top:clamp(36px,5vw,64px);padding-top:28px;border-top:1px solid var(--line)}
.hs-lead h1{font-size:clamp(30px,3.2vw,44px);line-height:1.06;letter-spacing:-.015em;color:var(--ink);margin:0 0 6px}
.hs-sub{font-size:19px;color:var(--dim);margin:0}

/* -- the green banner (A .a-neg) */
.neg{background:var(--forest);color:var(--paper)}
.neg .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:26px;padding-bottom:26px}
.neg p{margin:0;font-family:var(--serif);font-size:clamp(24px,3vw,40px);line-height:1.15;letter-spacing:-.01em;color:var(--paper)}
.neg p span{color:var(--sage)}

/* -- feature sections: Concept B "the table" */
.b-sec{overflow:clip;padding-top:clamp(64px,9vw,120px);padding-bottom:clamp(64px,9vw,120px)}
.b-sec.peach{background:var(--peach)}
.b-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px 72px;align-items:center}
.b-sec.flip .b-txt{order:2}
.b-seat{display:flex;align-items:center;gap:10px;margin:0 0 18px}
.b-seat svg{flex:none;width:40px;height:40px}
.b-seat span{font:400 13px/1.3 var(--mono);letter-spacing:.02em;color:var(--dim)}
.b-h{font-size:clamp(38px,4.4vw,62px);line-height:1.06;letter-spacing:-.015em;color:var(--ink);margin:0 0 20px;max-width:11em}
.b-h .em{color:var(--forest)}
.b-txt>p{font-size:18px;color:var(--dim);max-width:32em}
.b-list{list-style:none;margin:20px 0 0;padding:0;max-width:30em}
.b-list li{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--rule);font-size:16px;color:var(--ink)}
.b-list li::before{content:"";flex:none;width:12px;height:12px;border-radius:50%;border:1.5px solid var(--forest);margin-top:6px}
.b-txt .ctas{margin-top:28px}
.night .b-h{color:var(--paper)}.night .b-h .em{color:var(--sage)}
.night .b-txt>p,.night .b-seat span{color:var(--sage)}
.night .b-list li{color:var(--paper);border-top-color:var(--nline)}.night .b-list li::before{border-color:var(--sage)}
@media (max-width:980px){.b-grid{grid-template-columns:minmax(0,1fr)}.b-sec.flip .b-txt{order:0}}

/* friendships take hours: text block + the hand drawing on the side */
.b-chart{margin:0}
.b-chart svg{width:100%;height:auto;display:block}
.b-chart figcaption{font:500 11px/1.5 var(--mono);color:var(--dim);margin-top:6px}
.b-src{font-size:13.5px!important;line-height:1.55;color:var(--dim);border-left:2px solid var(--forest);padding-left:12px;margin-top:22px}
.tag{display:inline-block;font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor;border-radius:4px;padding:4px 6px 3px;margin-right:6px;vertical-align:1px}

/* meet people through your people: the shared-reason route in rings + the poker card */
.route{margin:0;width:min(100%,520px)}
.route svg{width:100%;height:auto;display:block;overflow:visible}
.duo{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;align-items:center;width:min(100%,400px);margin:-64px 4% 0 auto;z-index:1;position:relative;
  background:var(--card);border-radius:20px;padding:10px 18px 10px 10px;box-shadow:0 0 0 1px var(--line),0 22px 44px -26px rgba(21,35,27,.35)}
.duo .drawing{border-radius:12px;--ar:3/2}
.duo p{margin:0;font-family:var(--serif);font-size:19px;line-height:1.2;color:var(--ink)}
.duo p .em{display:block}
.duo .mono{display:block;font-size:11.5px;color:var(--faint);margin-top:6px;font-family:var(--mono)}
.disc-v{display:grid;justify-items:center;width:100%}
.disc-v .plate{width:100%}
@media (max-width:760px){.disc-v{margin-top:56px}}   /* phones: the plate's outer ring cleared the hand note above it */

/* everyone you know, mapped: the crisp map (Morning Dispatch §04) */
.mapc{margin:0;background:var(--card);border-radius:22px;padding:22px 22px 18px;box-shadow:0 1px 2px rgba(21,35,27,.06),0 18px 36px -26px rgba(21,35,27,.3)}
.mapc>svg{width:100%;height:auto;display:block}
.legend{display:flex;gap:8px 18px;flex-wrap:wrap;align-items:center;font-size:13.5px;color:var(--dim);margin:8px 0 0}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend svg{flex:none;width:auto;height:auto}
.plate.map-plate{min-height:0;padding:56px 0;place-items:center stretch}   /* the map card is wider than a phone, so the plate hugs it: rings show around its edges */
.plate.map-plate::before{width:min(760px,128%);height:auto;aspect-ratio:1}
@media (max-width:520px){.mapc{margin-left:calc(-1*var(--pad) + 4px);margin-right:calc(-1*var(--pad) + 4px);padding:14px 8px 14px;border-radius:16px}}

/* rooms by resonate: the standout section on moss night */
.b-ev{display:grid;justify-items:center;width:100%;max-width:520px;margin:0 auto}
.b-ev .drawing{width:100%}
.room{position:relative;z-index:1;width:100%;max-width:330px;margin:-84px -3% 0 auto;background:var(--moss2);color:var(--paper);
  border:1px solid var(--nline);border-radius:26px;padding:20px 20px 16px;box-shadow:0 22px 44px -26px rgba(0,0,0,.6)}
.room-sig{display:flex;align-items:center;gap:8px;font:500 11.5px/1 var(--mono);color:var(--sage)}
.room-sig svg{width:28px;height:28px;flex:none}
.night .room-at{margin:22px 0 4px;font:600 13px/1.3 var(--sans);color:var(--sage)}
.night .room-v{font-family:var(--serif);font-size:38px;line-height:1.05;letter-spacing:-.015em;color:var(--paper);margin:0 0 8px}
.night .room-e{font-size:14px;font-weight:600;color:var(--sage);margin:0 0 18px}
.room .btn{width:100%;font-size:15px;padding:14px 22px}
.night .room-rit{font-family:var(--serif);font-size:19px;line-height:1.2;color:var(--paper);margin:18px 0 6px}
.night .room-s{font-size:13px;color:var(--sage);margin:0}
.b-ev .uicap{position:static;transform:none;width:auto;padding:2px 10px;background:var(--moss);font:500 10.5px/1.4 var(--mono);color:var(--sage2);margin:14px 0 0;text-align:center}
.ev-plate{width:100%}   /* the rings plate behind the room drawing + card (notes §9: orbits behind on feature sections) */
.b-txt .b-kick-orbit{width:28px;height:28px}
@media (max-width:760px){.room{margin:-70px 0 0 auto}.duo{margin:-8px auto 0;grid-template-columns:104px minmax(0,1fr)}}

/* built on one rule */
.b-prom{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:22px;max-width:32em}
.b-prom div{padding:12px 0;border-top:1px solid var(--rule);font-size:14.5px;line-height:1.45;color:var(--dim)}
.b-prom b{display:block;color:var(--ink);font-weight:700}
.b-rule{display:grid;justify-items:center}
@media (max-width:760px){.b-prom{grid-template-columns:1fr}}

/* google: the OAuth text, word for word, restyled */
.gl,.b-txt>.gl{display:block;margin:0 0 14px;font:400 13px/1.3 var(--mono);letter-spacing:.02em;color:var(--dim)}

/* closing: who's in your orbit? */
.b-ngrid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:40px 64px;align-items:center;padding-top:clamp(64px,9vw,120px);padding-bottom:clamp(64px,9vw,120px)}
.b-table{margin:0;width:min(100%,520px);justify-self:center}
.b-table svg{width:100%;height:auto;display:block;overflow:visible}
.close-h{font-size:clamp(50px,7.4vw,112px);line-height:1;letter-spacing:-.02em;color:var(--paper);margin:0 0 24px}
.night .close-p{font-size:19px;color:var(--sage);max-width:24em;margin:0 0 28px}
.night .close-fine{font-size:14px;color:var(--sage2);margin:18px 0 0}
.night .close-fine a{color:var(--paper)}
@media (max-width:980px){.b-ngrid{grid-template-columns:minmax(0,1fr)}.b-table{width:min(100%,420px)}}

@media (prefers-reduced-motion:reduce){.btn,.btn-q{transition:none}}
@media (max-width:760px){body{font-size:16px}}

/* ===================== 4. MARK MOTION (sitework/assets/mark/mark-motion.css, verbatim) =====================
   Wordmark reveal on the homepage nav (first load); "Orbit drawn" / "Signal" for any standalone orbit. */
/* Resonate orbit motion (assets/mark). Shared rules: include once per page (or paste into site.css). */
.rzm{display:block;overflow:visible}
.rzm .rzm-orb,.rzm .rzm-echo,.rzm .rzm-ghost,.rzm .rzm-hole,.rzm .rzm-planet,.rzm .rzm-l{transform-box:fill-box;transform-origin:50% 50%}
.rzm .rzm-back,.rzm .rzm-front{stroke-dasharray:1 1;stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){.rzm,.rzm *{animation:none!important}}   /* no animation at all; the base styles are the finished mark */
/* opt-in: draw when scrolled into view instead of on load (scroll-linked; browsers without view timelines play on load).
   The draw runs from the moment the mark enters to when it is 20% of the way up the viewport, so a mark resting anywhere
   above the bottom fifth of the screen shows the finished orbit (the board: "plays once, rests on the finished mark").
   Needs no overflow:hidden ancestor (that makes a scroll container and freezes the timeline): use overflow:clip. */
@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){
  .rzm.rzm-onview{view-timeline-name:--rzm-v}
  .rzm.rzm-onview *{animation-timeline:--rzm-v!important;animation-range:entry 0% cover 20%!important}}}
.rzm-replay{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.rzm-replay-btn{cursor:pointer;font:600 14px/1 Figtree,system-ui,sans-serif;color:#154A36;text-decoration:underline;text-underline-offset:3px}
.rzm-replay:focus-visible+*+.rzm-replay-btn,.rzm-replay:focus-visible~.rzm-replay-btn{outline:2px solid #154A36;outline-offset:3px;border-radius:4px}
@media (prefers-reduced-motion:reduce){.rzm-replay-btn{display:none}}
/* wr: 2700 ms, plays once, rests on the finished mark */
@media (prefers-reduced-motion:no-preference){.rzm-wr *{animation-duration:2700ms;animation-timing-function:linear;animation-fill-mode:both;animation-iteration-count:1}
.rzm-wr .rzm-l1{animation-name:rzm-wr-l1-0,rzm-wr-l1-1}.rzm-wr .rzm-l2{animation-name:rzm-wr-l2-0,rzm-wr-l2-1}.rzm-wr .rzm-l3{animation-name:rzm-wr-l3-0,rzm-wr-l3-1}.rzm-wr .rzm-l4{animation-name:rzm-wr-l4-0,rzm-wr-l4-1}.rzm-wr .rzm-l5{animation-name:rzm-wr-l5-0,rzm-wr-l5-1}.rzm-wr .rzm-l6{animation-name:rzm-wr-l6-0,rzm-wr-l6-1}.rzm-wr .rzm-l7{animation-name:rzm-wr-l7-0,rzm-wr-l7-1}.rzm-wr .rzm-l8{animation-name:rzm-wr-l8-0,rzm-wr-l8-1}.rzm-wr .rzm-back{animation-name:rzm-wr-back-0}.rzm-wr .rzm-front{animation-name:rzm-wr-front-0}.rzm-wr .rzm-orbg{animation-name:rzm-wr-orbg-0}.rzm-wr .rzm-orb{animation-name:rzm-wr-orb-0}.rzm-wr .rzm-hole{animation-name:rzm-wr-hole-0}.rzm-wr .rzm-echo{animation-name:rzm-wr-echo-0,rzm-wr-echo-1}.rzm-wr .rzm-ghost{animation-name:rzm-wr-ghost-0,rzm-wr-ghost-1,rzm-wr-ghost-2}
.rzm-replay:checked~.rzm-wr .rzm-l1{animation-name:rzm-wr-l1-0b,rzm-wr-l1-1b}.rzm-replay:checked~.rzm-wr .rzm-l2{animation-name:rzm-wr-l2-0b,rzm-wr-l2-1b}.rzm-replay:checked~.rzm-wr .rzm-l3{animation-name:rzm-wr-l3-0b,rzm-wr-l3-1b}.rzm-replay:checked~.rzm-wr .rzm-l4{animation-name:rzm-wr-l4-0b,rzm-wr-l4-1b}.rzm-replay:checked~.rzm-wr .rzm-l5{animation-name:rzm-wr-l5-0b,rzm-wr-l5-1b}.rzm-replay:checked~.rzm-wr .rzm-l6{animation-name:rzm-wr-l6-0b,rzm-wr-l6-1b}.rzm-replay:checked~.rzm-wr .rzm-l7{animation-name:rzm-wr-l7-0b,rzm-wr-l7-1b}.rzm-replay:checked~.rzm-wr .rzm-l8{animation-name:rzm-wr-l8-0b,rzm-wr-l8-1b}.rzm-replay:checked~.rzm-wr .rzm-back{animation-name:rzm-wr-back-0b}.rzm-replay:checked~.rzm-wr .rzm-front{animation-name:rzm-wr-front-0b}.rzm-replay:checked~.rzm-wr .rzm-orbg{animation-name:rzm-wr-orbg-0b}.rzm-replay:checked~.rzm-wr .rzm-orb{animation-name:rzm-wr-orb-0b}.rzm-replay:checked~.rzm-wr .rzm-hole{animation-name:rzm-wr-hole-0b}.rzm-replay:checked~.rzm-wr .rzm-echo{animation-name:rzm-wr-echo-0b,rzm-wr-echo-1b}.rzm-replay:checked~.rzm-wr .rzm-ghost{animation-name:rzm-wr-ghost-0b,rzm-wr-ghost-1b,rzm-wr-ghost-2b}}
@keyframes rzm-wr-l1-0{0%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}20.741%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l1-0b{0%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}20.741%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l1-1{0%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}13.333%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l1-1b{0%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}13.333%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l2-0{0%{transform:translate(0px,110px)}2.037%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}22.778%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l2-0b{0%{transform:translate(0px,110px)}2.037%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}22.778%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l2-1{0%{opacity:0}2.037%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}15.37%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l2-1b{0%{opacity:0}2.037%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}15.37%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l3-0{0%{transform:translate(0px,110px)}4.074%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}24.815%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l3-0b{0%{transform:translate(0px,110px)}4.074%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}24.815%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l3-1{0%{opacity:0}4.074%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}17.407%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l3-1b{0%{opacity:0}4.074%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}17.407%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l4-0{0%{transform:translate(0px,110px)}6.111%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}26.852%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l4-0b{0%{transform:translate(0px,110px)}6.111%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}26.852%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l4-1{0%{opacity:0}6.111%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}19.444%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l4-1b{0%{opacity:0}6.111%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}19.444%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l5-0{0%{transform:translate(0px,110px)}8.148%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}28.889%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l5-0b{0%{transform:translate(0px,110px)}8.148%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}28.889%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l5-1{0%{opacity:0}8.148%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}21.481%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l5-1b{0%{opacity:0}8.148%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}21.481%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l6-0{0%{transform:translate(0px,110px)}10.185%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}30.926%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l6-0b{0%{transform:translate(0px,110px)}10.185%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}30.926%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l6-1{0%{opacity:0}10.185%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}23.519%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l6-1b{0%{opacity:0}10.185%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}23.519%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l7-0{0%{transform:translate(0px,110px)}12.222%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}32.963%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l7-0b{0%{transform:translate(0px,110px)}12.222%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}32.963%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l7-1{0%{opacity:0}12.222%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}25.556%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l7-1b{0%{opacity:0}12.222%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}25.556%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l8-0{0%{transform:translate(0px,110px)}14.259%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}35%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l8-0b{0%{transform:translate(0px,110px)}14.259%{transform:translate(0px,110px);animation-timing-function:cubic-bezier(.22,1,.36,1)}35%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-l8-1{0%{opacity:0}14.259%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}27.593%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-l8-1b{0%{opacity:0}14.259%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}27.593%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-back-0{0%{stroke-dashoffset:1}19.259%{stroke-dashoffset:1}20.926%{stroke-dashoffset:0.9971}22.593%{stroke-dashoffset:0.9879}24.259%{stroke-dashoffset:0.9711}25.926%{stroke-dashoffset:0.9453}27.593%{stroke-dashoffset:0.9086}29.259%{stroke-dashoffset:0.8584}30.926%{stroke-dashoffset:0.7911}32.593%{stroke-dashoffset:0.7019}34.259%{stroke-dashoffset:0.5838}35.926%{stroke-dashoffset:0.4288}37.593%{stroke-dashoffset:0.2311}39.259%{stroke-dashoffset:0}40.926%{stroke-dashoffset:0}42.593%{stroke-dashoffset:0}44.259%{stroke-dashoffset:0}45.926%{stroke-dashoffset:0}47.593%{stroke-dashoffset:0}49.259%{stroke-dashoffset:0}50.926%{stroke-dashoffset:0}52.593%{stroke-dashoffset:0}54.259%{stroke-dashoffset:0}55.926%{stroke-dashoffset:0}57.593%{stroke-dashoffset:0}59.259%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}@keyframes rzm-wr-back-0b{0%{stroke-dashoffset:1}19.259%{stroke-dashoffset:1}20.926%{stroke-dashoffset:0.9971}22.593%{stroke-dashoffset:0.9879}24.259%{stroke-dashoffset:0.9711}25.926%{stroke-dashoffset:0.9453}27.593%{stroke-dashoffset:0.9086}29.259%{stroke-dashoffset:0.8584}30.926%{stroke-dashoffset:0.7911}32.593%{stroke-dashoffset:0.7019}34.259%{stroke-dashoffset:0.5838}35.926%{stroke-dashoffset:0.4288}37.593%{stroke-dashoffset:0.2311}39.259%{stroke-dashoffset:0}40.926%{stroke-dashoffset:0}42.593%{stroke-dashoffset:0}44.259%{stroke-dashoffset:0}45.926%{stroke-dashoffset:0}47.593%{stroke-dashoffset:0}49.259%{stroke-dashoffset:0}50.926%{stroke-dashoffset:0}52.593%{stroke-dashoffset:0}54.259%{stroke-dashoffset:0}55.926%{stroke-dashoffset:0}57.593%{stroke-dashoffset:0}59.259%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}@keyframes rzm-wr-front-0{0%{stroke-dashoffset:1}19.259%{stroke-dashoffset:1}20.926%{stroke-dashoffset:1}22.593%{stroke-dashoffset:1}24.259%{stroke-dashoffset:1}25.926%{stroke-dashoffset:1}27.593%{stroke-dashoffset:1}29.259%{stroke-dashoffset:1}30.926%{stroke-dashoffset:1}32.593%{stroke-dashoffset:1}34.259%{stroke-dashoffset:1}35.926%{stroke-dashoffset:1}37.593%{stroke-dashoffset:1}39.259%{stroke-dashoffset:1}40.926%{stroke-dashoffset:0.7689}42.593%{stroke-dashoffset:0.5712}44.259%{stroke-dashoffset:0.4162}45.926%{stroke-dashoffset:0.2981}47.593%{stroke-dashoffset:0.2089}49.259%{stroke-dashoffset:0.1416}50.926%{stroke-dashoffset:0.0914}52.593%{stroke-dashoffset:0.0547}54.259%{stroke-dashoffset:0.0289}55.926%{stroke-dashoffset:0.0121}57.593%{stroke-dashoffset:0.0029}59.259%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}@keyframes rzm-wr-front-0b{0%{stroke-dashoffset:1}19.259%{stroke-dashoffset:1}20.926%{stroke-dashoffset:1}22.593%{stroke-dashoffset:1}24.259%{stroke-dashoffset:1}25.926%{stroke-dashoffset:1}27.593%{stroke-dashoffset:1}29.259%{stroke-dashoffset:1}30.926%{stroke-dashoffset:1}32.593%{stroke-dashoffset:1}34.259%{stroke-dashoffset:1}35.926%{stroke-dashoffset:1}37.593%{stroke-dashoffset:1}39.259%{stroke-dashoffset:1}40.926%{stroke-dashoffset:0.7689}42.593%{stroke-dashoffset:0.5712}44.259%{stroke-dashoffset:0.4162}45.926%{stroke-dashoffset:0.2981}47.593%{stroke-dashoffset:0.2089}49.259%{stroke-dashoffset:0.1416}50.926%{stroke-dashoffset:0.0914}52.593%{stroke-dashoffset:0.0547}54.259%{stroke-dashoffset:0.0289}55.926%{stroke-dashoffset:0.0121}57.593%{stroke-dashoffset:0.0029}59.259%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}@keyframes rzm-wr-orbg-0{0%{transform:translate(78.9px,43.2px)}54.815%{transform:translate(78.9px,43.2px);animation-timing-function:cubic-bezier(.22,1,.36,1)}71.852%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-orbg-0b{0%{transform:translate(78.9px,43.2px)}54.815%{transform:translate(78.9px,43.2px);animation-timing-function:cubic-bezier(.22,1,.36,1)}71.852%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-wr-orb-0{0%{transform:scale(0)}54.815%{transform:scale(0);animation-timing-function:cubic-bezier(.34,1.3,.64,1)}71.852%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-wr-orb-0b{0%{transform:scale(0)}54.815%{transform:scale(0);animation-timing-function:cubic-bezier(.34,1.3,.64,1)}71.852%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-wr-hole-0{0%{transform:scale(0)}54.815%{transform:scale(0);animation-timing-function:cubic-bezier(.22,1,.36,1)}71.852%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-wr-hole-0b{0%{transform:scale(0)}54.815%{transform:scale(0);animation-timing-function:cubic-bezier(.22,1,.36,1)}71.852%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-wr-echo-0{0%{transform:scale(0.5862)}62.963%{transform:scale(0.5862);animation-timing-function:cubic-bezier(.16,1,.3,1)}82.222%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-wr-echo-0b{0%{transform:scale(0.5862)}62.963%{transform:scale(0.5862);animation-timing-function:cubic-bezier(.16,1,.3,1)}82.222%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-wr-echo-1{0%{opacity:0}62.963%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}70.37%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-echo-1b{0%{opacity:0}62.963%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}70.37%{opacity:1}100%{opacity:1}}@keyframes rzm-wr-ghost-0{0%{transform:scale(1)}64.444%{transform:scale(1);animation-timing-function:cubic-bezier(.16,1,.3,1)}97.778%{transform:scale(2.5862)}100%{transform:scale(2.5862)}}@keyframes rzm-wr-ghost-0b{0%{transform:scale(1)}64.444%{transform:scale(1);animation-timing-function:cubic-bezier(.16,1,.3,1)}97.778%{transform:scale(2.5862)}100%{transform:scale(2.5862)}}@keyframes rzm-wr-ghost-1{0%{opacity:0}64.444%{opacity:0}65.926%{opacity:0.7}97.778%{opacity:0}100%{opacity:0}}@keyframes rzm-wr-ghost-1b{0%{opacity:0}64.444%{opacity:0}65.926%{opacity:0.7}97.778%{opacity:0}100%{opacity:0}}@keyframes rzm-wr-ghost-2{0%{stroke-width:5px}64.444%{stroke-width:5px;animation-timing-function:cubic-bezier(.16,1,.3,1)}97.778%{stroke-width:2.2px}100%{stroke-width:2.2px}}@keyframes rzm-wr-ghost-2b{0%{stroke-width:5px}64.444%{stroke-width:5px;animation-timing-function:cubic-bezier(.16,1,.3,1)}97.778%{stroke-width:2.2px}100%{stroke-width:2.2px}}
/* od: 2450 ms, plays once, rests on the finished mark */
@media (prefers-reduced-motion:no-preference){.rzm-od *{animation-duration:2450ms;animation-timing-function:linear;animation-fill-mode:both;animation-iteration-count:1}
.rzm-od .rzm-planet{animation-name:rzm-od-planet-0,rzm-od-planet-1}.rzm-od .rzm-back{animation-name:rzm-od-back-0}.rzm-od .rzm-front{animation-name:rzm-od-front-0}.rzm-od .rzm-orbg{animation-name:rzm-od-orbg-0}.rzm-od .rzm-orb{animation-name:rzm-od-orb-0}.rzm-od .rzm-hole{animation-name:rzm-od-hole-0}.rzm-od .rzm-echo{animation-name:rzm-od-echo-0,rzm-od-echo-1}.rzm-od .rzm-ghost{animation-name:rzm-od-ghost-0,rzm-od-ghost-1,rzm-od-ghost-2}
}
@keyframes rzm-od-planet-0{0%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}9.796%{opacity:1}100%{opacity:1}}@keyframes rzm-od-planet-1{0%{transform:scale(0.94);animation-timing-function:cubic-bezier(.22,1,.36,1)}17.143%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-od-back-0{0%{stroke-dashoffset:1}7.347%{stroke-dashoffset:1}9.388%{stroke-dashoffset:0.9971}11.429%{stroke-dashoffset:0.9879}13.469%{stroke-dashoffset:0.9711}15.51%{stroke-dashoffset:0.9453}17.551%{stroke-dashoffset:0.9086}19.592%{stroke-dashoffset:0.8584}21.633%{stroke-dashoffset:0.7911}23.673%{stroke-dashoffset:0.7019}25.714%{stroke-dashoffset:0.5838}27.755%{stroke-dashoffset:0.4288}29.796%{stroke-dashoffset:0.2311}31.837%{stroke-dashoffset:0}33.878%{stroke-dashoffset:0}35.918%{stroke-dashoffset:0}37.959%{stroke-dashoffset:0}40%{stroke-dashoffset:0}42.041%{stroke-dashoffset:0}44.082%{stroke-dashoffset:0}46.122%{stroke-dashoffset:0}48.163%{stroke-dashoffset:0}50.204%{stroke-dashoffset:0}52.245%{stroke-dashoffset:0}54.286%{stroke-dashoffset:0}56.327%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}@keyframes rzm-od-front-0{0%{stroke-dashoffset:1}7.347%{stroke-dashoffset:1}9.388%{stroke-dashoffset:1}11.429%{stroke-dashoffset:1}13.469%{stroke-dashoffset:1}15.51%{stroke-dashoffset:1}17.551%{stroke-dashoffset:1}19.592%{stroke-dashoffset:1}21.633%{stroke-dashoffset:1}23.673%{stroke-dashoffset:1}25.714%{stroke-dashoffset:1}27.755%{stroke-dashoffset:1}29.796%{stroke-dashoffset:1}31.837%{stroke-dashoffset:1}33.878%{stroke-dashoffset:0.7689}35.918%{stroke-dashoffset:0.5712}37.959%{stroke-dashoffset:0.4162}40%{stroke-dashoffset:0.2981}42.041%{stroke-dashoffset:0.2089}44.082%{stroke-dashoffset:0.1416}46.122%{stroke-dashoffset:0.0914}48.163%{stroke-dashoffset:0.0547}50.204%{stroke-dashoffset:0.0289}52.245%{stroke-dashoffset:0.0121}54.286%{stroke-dashoffset:0.0029}56.327%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}@keyframes rzm-od-orbg-0{0%{transform:translate(78.9px,43.2px)}51.429%{transform:translate(78.9px,43.2px);animation-timing-function:cubic-bezier(.22,1,.36,1)}70.204%{transform:translate(0px,0px)}100%{transform:translate(0px,0px)}}@keyframes rzm-od-orb-0{0%{transform:scale(0)}51.429%{transform:scale(0);animation-timing-function:cubic-bezier(.34,1.3,.64,1)}70.204%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-od-hole-0{0%{transform:scale(0)}51.429%{transform:scale(0);animation-timing-function:cubic-bezier(.22,1,.36,1)}70.204%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-od-echo-0{0%{transform:scale(0.5862)}60.408%{transform:scale(0.5862);animation-timing-function:cubic-bezier(.16,1,.3,1)}81.633%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-od-echo-1{0%{opacity:0}60.408%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}68.571%{opacity:1}100%{opacity:1}}@keyframes rzm-od-ghost-0{0%{transform:scale(1)}62.041%{transform:scale(1);animation-timing-function:cubic-bezier(.16,1,.3,1)}98.776%{transform:scale(2.5862)}100%{transform:scale(2.5862)}}@keyframes rzm-od-ghost-1{0%{opacity:0}62.041%{opacity:0}63.673%{opacity:0.7}98.776%{opacity:0}100%{opacity:0}}@keyframes rzm-od-ghost-2{0%{stroke-width:5px}62.041%{stroke-width:5px;animation-timing-function:cubic-bezier(.16,1,.3,1)}98.776%{stroke-width:2.2px}100%{stroke-width:2.2px}}
/* sg: 1250 ms, plays once, rests on the finished mark */
@media (prefers-reduced-motion:no-preference){.rzm-sg *{animation-duration:1250ms;animation-timing-function:linear;animation-fill-mode:both;animation-iteration-count:1}
.rzm-sg .rzm-planet{animation-name:rzm-sg-planet-0,rzm-sg-planet-1}.rzm-sg .rzm-orb{animation-name:rzm-sg-orb-0}.rzm-sg .rzm-hole{animation-name:rzm-sg-hole-0}.rzm-sg .rzm-echo{animation-name:rzm-sg-echo-0,rzm-sg-echo-1}.rzm-sg .rzm-ghost{animation-name:rzm-sg-ghost-0,rzm-sg-ghost-1,rzm-sg-ghost-2}.rzm-sg .rzm-back{animation-name:rzm-sg-back-0}.rzm-sg .rzm-front{animation-name:rzm-sg-front-0}
}
@keyframes rzm-sg-planet-0{0%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}16%{opacity:1}100%{opacity:1}}@keyframes rzm-sg-planet-1{0%{transform:scale(0.92);animation-timing-function:cubic-bezier(.22,1,.36,1)}33.6%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sg-orb-0{0%{transform:scale(0);animation-timing-function:cubic-bezier(.34,1.3,.64,1)}33.6%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sg-hole-0{0%{transform:scale(0);animation-timing-function:cubic-bezier(.22,1,.36,1)}33.6%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sg-echo-0{0%{transform:scale(0.5862)}12.8%{transform:scale(0.5862);animation-timing-function:cubic-bezier(.16,1,.3,1)}51.2%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sg-echo-1{0%{opacity:0}12.8%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}28.8%{opacity:1}100%{opacity:1}}@keyframes rzm-sg-ghost-0{0%{transform:scale(1)}17.6%{transform:scale(1);animation-timing-function:cubic-bezier(.16,1,.3,1)}89.6%{transform:scale(2.5862)}100%{transform:scale(2.5862)}}@keyframes rzm-sg-ghost-1{0%{opacity:0}17.6%{opacity:0}20.8%{opacity:0.7}89.6%{opacity:0}100%{opacity:0}}@keyframes rzm-sg-ghost-2{0%{stroke-width:5px}17.6%{stroke-width:5px;animation-timing-function:cubic-bezier(.16,1,.3,1)}89.6%{stroke-width:2.2px}100%{stroke-width:2.2px}}@keyframes rzm-sg-back-0{0%{stroke-dashoffset:1}28.8%{stroke-dashoffset:1}31.533%{stroke-dashoffset:0.9971}34.267%{stroke-dashoffset:0.9879}37%{stroke-dashoffset:0.9711}39.733%{stroke-dashoffset:0.9453}42.467%{stroke-dashoffset:0.9086}45.2%{stroke-dashoffset:0.8584}47.933%{stroke-dashoffset:0.7911}50.667%{stroke-dashoffset:0.7019}53.4%{stroke-dashoffset:0.5838}56.133%{stroke-dashoffset:0.4288}58.867%{stroke-dashoffset:0.2311}61.6%{stroke-dashoffset:0}64.333%{stroke-dashoffset:0}67.067%{stroke-dashoffset:0}69.8%{stroke-dashoffset:0}72.533%{stroke-dashoffset:0}75.267%{stroke-dashoffset:0}78%{stroke-dashoffset:0}80.733%{stroke-dashoffset:0}83.467%{stroke-dashoffset:0}86.2%{stroke-dashoffset:0}88.933%{stroke-dashoffset:0}91.667%{stroke-dashoffset:0}94.4%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}@keyframes rzm-sg-front-0{0%{stroke-dashoffset:1}28.8%{stroke-dashoffset:1}31.533%{stroke-dashoffset:1}34.267%{stroke-dashoffset:1}37%{stroke-dashoffset:1}39.733%{stroke-dashoffset:1}42.467%{stroke-dashoffset:1}45.2%{stroke-dashoffset:1}47.933%{stroke-dashoffset:1}50.667%{stroke-dashoffset:1}53.4%{stroke-dashoffset:1}56.133%{stroke-dashoffset:1}58.867%{stroke-dashoffset:1}61.6%{stroke-dashoffset:1}64.333%{stroke-dashoffset:0.7689}67.067%{stroke-dashoffset:0.5712}69.8%{stroke-dashoffset:0.4162}72.533%{stroke-dashoffset:0.2981}75.267%{stroke-dashoffset:0.2089}78%{stroke-dashoffset:0.1416}80.733%{stroke-dashoffset:0.0914}83.467%{stroke-dashoffset:0.0547}86.2%{stroke-dashoffset:0.0289}88.933%{stroke-dashoffset:0.0121}91.667%{stroke-dashoffset:0.0029}94.4%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}
/* sgw: 1800 ms, plays once, rests on the finished mark */
@media (prefers-reduced-motion:no-preference){.rzm-sgw *{animation-duration:1800ms;animation-timing-function:linear;animation-fill-mode:both;animation-iteration-count:1}
.rzm-sgw .rzm-l4{animation-name:rzm-sgw-l4-0,rzm-sgw-l4-1}.rzm-sgw .rzm-orb{animation-name:rzm-sgw-orb-0}.rzm-sgw .rzm-hole{animation-name:rzm-sgw-hole-0}.rzm-sgw .rzm-echo{animation-name:rzm-sgw-echo-0,rzm-sgw-echo-1}.rzm-sgw .rzm-ghost{animation-name:rzm-sgw-ghost-0,rzm-sgw-ghost-1,rzm-sgw-ghost-2}.rzm-sgw .rzm-back{animation-name:rzm-sgw-back-0}.rzm-sgw .rzm-front{animation-name:rzm-sgw-front-0}.rzm-sgw .rzm-l3{animation-name:rzm-sgw-l3-0,rzm-sgw-l3-1}.rzm-sgw .rzm-l5{animation-name:rzm-sgw-l5-0,rzm-sgw-l5-1}.rzm-sgw .rzm-l2{animation-name:rzm-sgw-l2-0,rzm-sgw-l2-1}.rzm-sgw .rzm-l6{animation-name:rzm-sgw-l6-0,rzm-sgw-l6-1}.rzm-sgw .rzm-l1{animation-name:rzm-sgw-l1-0,rzm-sgw-l1-1}.rzm-sgw .rzm-l7{animation-name:rzm-sgw-l7-0,rzm-sgw-l7-1}.rzm-sgw .rzm-l8{animation-name:rzm-sgw-l8-0,rzm-sgw-l8-1}
}
@keyframes rzm-sgw-l4-0{0%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}11.111%{opacity:1}100%{opacity:1}}@keyframes rzm-sgw-l4-1{0%{transform:scale(0.92);animation-timing-function:cubic-bezier(.22,1,.36,1)}23.333%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sgw-orb-0{0%{transform:scale(0);animation-timing-function:cubic-bezier(.34,1.3,.64,1)}23.333%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sgw-hole-0{0%{transform:scale(0);animation-timing-function:cubic-bezier(.22,1,.36,1)}23.333%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sgw-echo-0{0%{transform:scale(0.5862)}8.889%{transform:scale(0.5862);animation-timing-function:cubic-bezier(.16,1,.3,1)}35.556%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sgw-echo-1{0%{opacity:0}8.889%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}20%{opacity:1}100%{opacity:1}}@keyframes rzm-sgw-ghost-0{0%{transform:scale(1)}12.222%{transform:scale(1);animation-timing-function:cubic-bezier(.16,1,.3,1)}62.222%{transform:scale(2.5862)}100%{transform:scale(2.5862)}}@keyframes rzm-sgw-ghost-1{0%{opacity:0}12.222%{opacity:0}14.444%{opacity:0.7}62.222%{opacity:0}100%{opacity:0}}@keyframes rzm-sgw-ghost-2{0%{stroke-width:5px}12.222%{stroke-width:5px;animation-timing-function:cubic-bezier(.16,1,.3,1)}62.222%{stroke-width:2.2px}100%{stroke-width:2.2px}}@keyframes rzm-sgw-back-0{0%{stroke-dashoffset:1}20%{stroke-dashoffset:1}21.898%{stroke-dashoffset:0.9971}23.796%{stroke-dashoffset:0.9879}25.694%{stroke-dashoffset:0.9711}27.593%{stroke-dashoffset:0.9453}29.491%{stroke-dashoffset:0.9086}31.389%{stroke-dashoffset:0.8584}33.287%{stroke-dashoffset:0.7911}35.185%{stroke-dashoffset:0.7019}37.083%{stroke-dashoffset:0.5838}38.981%{stroke-dashoffset:0.4288}40.88%{stroke-dashoffset:0.2311}42.778%{stroke-dashoffset:0}44.676%{stroke-dashoffset:0}46.574%{stroke-dashoffset:0}48.472%{stroke-dashoffset:0}50.37%{stroke-dashoffset:0}52.269%{stroke-dashoffset:0}54.167%{stroke-dashoffset:0}56.065%{stroke-dashoffset:0}57.963%{stroke-dashoffset:0}59.861%{stroke-dashoffset:0}61.759%{stroke-dashoffset:0}63.657%{stroke-dashoffset:0}65.556%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}@keyframes rzm-sgw-front-0{0%{stroke-dashoffset:1}20%{stroke-dashoffset:1}21.898%{stroke-dashoffset:1}23.796%{stroke-dashoffset:1}25.694%{stroke-dashoffset:1}27.593%{stroke-dashoffset:1}29.491%{stroke-dashoffset:1}31.389%{stroke-dashoffset:1}33.287%{stroke-dashoffset:1}35.185%{stroke-dashoffset:1}37.083%{stroke-dashoffset:1}38.981%{stroke-dashoffset:1}40.88%{stroke-dashoffset:1}42.778%{stroke-dashoffset:1}44.676%{stroke-dashoffset:0.7689}46.574%{stroke-dashoffset:0.5712}48.472%{stroke-dashoffset:0.4162}50.37%{stroke-dashoffset:0.2981}52.269%{stroke-dashoffset:0.2089}54.167%{stroke-dashoffset:0.1416}56.065%{stroke-dashoffset:0.0914}57.963%{stroke-dashoffset:0.0547}59.861%{stroke-dashoffset:0.0289}61.759%{stroke-dashoffset:0.0121}63.657%{stroke-dashoffset:0.0029}65.556%{stroke-dashoffset:0}100%{stroke-dashoffset:0}}@keyframes rzm-sgw-l3-0{0%{opacity:0}47.778%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}71.111%{opacity:1}100%{opacity:1}}@keyframes rzm-sgw-l3-1{0%{transform:scale(0.9)}47.778%{transform:scale(0.9);animation-timing-function:cubic-bezier(.22,1,.36,1)}74.444%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sgw-l5-0{0%{opacity:0}47.778%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}71.111%{opacity:1}100%{opacity:1}}@keyframes rzm-sgw-l5-1{0%{transform:scale(0.9)}47.778%{transform:scale(0.9);animation-timing-function:cubic-bezier(.22,1,.36,1)}74.444%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sgw-l2-0{0%{opacity:0}52.222%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}75.556%{opacity:1}100%{opacity:1}}@keyframes rzm-sgw-l2-1{0%{transform:scale(0.9)}52.222%{transform:scale(0.9);animation-timing-function:cubic-bezier(.22,1,.36,1)}78.889%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sgw-l6-0{0%{opacity:0}52.222%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}75.556%{opacity:1}100%{opacity:1}}@keyframes rzm-sgw-l6-1{0%{transform:scale(0.9)}52.222%{transform:scale(0.9);animation-timing-function:cubic-bezier(.22,1,.36,1)}78.889%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sgw-l1-0{0%{opacity:0}56.667%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}80%{opacity:1}100%{opacity:1}}@keyframes rzm-sgw-l1-1{0%{transform:scale(0.9)}56.667%{transform:scale(0.9);animation-timing-function:cubic-bezier(.22,1,.36,1)}83.333%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sgw-l7-0{0%{opacity:0}56.667%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}80%{opacity:1}100%{opacity:1}}@keyframes rzm-sgw-l7-1{0%{transform:scale(0.9)}56.667%{transform:scale(0.9);animation-timing-function:cubic-bezier(.22,1,.36,1)}83.333%{transform:scale(1)}100%{transform:scale(1)}}@keyframes rzm-sgw-l8-0{0%{opacity:0}61.111%{opacity:0;animation-timing-function:cubic-bezier(.22,1,.36,1)}84.444%{opacity:1}100%{opacity:1}}@keyframes rzm-sgw-l8-1{0%{transform:scale(0.9)}61.111%{transform:scale(0.9);animation-timing-function:cubic-bezier(.22,1,.36,1)}87.778%{transform:scale(1)}100%{transform:scale(1)}}
/* ===================== 5. LEGACY: classes the current /rooms page (and the Rooms reference build in
   sitework/assets/rooms) still use. Kept as they were so /rooms renders unchanged until it moves to the shared
   components above. Safe to delete rule by rule once nothing references them. ===================== */
.hand{font-family:var(--hand);color:var(--apricot-t);font-size:30px;line-height:1.05}
/* the rings: a recurring motif in corners of sections and cards (crisp lines, apricot/peach on paper, sage on moss) */
.ringed{position:relative;isolation:isolate}
.ringed::before{content:"";position:absolute;z-index:-1;pointer-events:none;width:var(--rs,520px);height:var(--rs,520px);background:var(--ring-img) center/contain no-repeat}
.ringed.r-tr::before{right:calc(var(--rs,520px) * -.42);top:calc(var(--rs,520px) * -.42)}
.ringed.r-bl::before{left:calc(var(--rs,520px) * -.42);bottom:calc(var(--rs,520px) * -.42)}
.ringed.r-br::before{right:calc(var(--rs,520px) * -.42);bottom:calc(var(--rs,520px) * -.42)}
.ringed.r-c::before{left:50%;top:46%;transform:translate(-50%,-50%)}
.ringed.r-tl::before{left:calc(var(--rs,520px) * -.42);top:calc(var(--rs,520px) * -.42)}
.ringed{--ring-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none'%3E%3Ccircle cx='100' cy='100' r='42' stroke='%23E8913A' stroke-opacity='.55' stroke-width='.9'/%3E%3Ccircle cx='100' cy='100' r='62' stroke='%23E8913A' stroke-opacity='.38' stroke-width='.9'/%3E%3Ccircle cx='100' cy='100' r='81' stroke='%23E8913A' stroke-opacity='.24' stroke-width='.9'/%3E%3Ccircle cx='100' cy='100' r='98' stroke='%23E8913A' stroke-opacity='.14' stroke-width='.9'/%3E%3Ccircle cx='160.1' cy='126.4' r='3.2' fill='%23E8913A' fill-opacity='.8'/%3E%3C/svg%3E")}
.ringed.peachy{--ring-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none'%3E%3Ccircle cx='100' cy='100' r='98' fill='%23FFE3CC'/%3E%3Ccircle cx='100' cy='100' r='76' fill='%23FFD8B8'/%3E%3Ccircle cx='100' cy='100' r='54' fill='%23FFCCA3'/%3E%3Ccircle cx='100' cy='100' r='98' stroke='%23E8913A' stroke-opacity='.35' stroke-width='.8'/%3E%3C/svg%3E")}
.ringed.sage{--ring-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none'%3E%3Ccircle cx='100' cy='100' r='42' stroke='%23C4D0B1' stroke-opacity='.5' stroke-width='.9'/%3E%3Ccircle cx='100' cy='100' r='62' stroke='%23C4D0B1' stroke-opacity='.34' stroke-width='.9'/%3E%3Ccircle cx='100' cy='100' r='81' stroke='%23C4D0B1' stroke-opacity='.2' stroke-width='.9'/%3E%3Ccircle cx='100' cy='100' r='98' stroke='%23C4D0B1' stroke-opacity='.12' stroke-width='.9'/%3E%3Ccircle cx='39.9' cy='73.6' r='3.2' fill='%23E8913A'/%3E%3C/svg%3E")}
/* masthead: the dispatch top */
.mast{padding-top:14px}
.dateline{display:flex;justify-content:space-between;gap:16px;padding:6px 0 10px;border-bottom:1px solid var(--ink);color:var(--dim)}
.dateline span:nth-child(2){text-align:center}
.mast-wm{display:flex;justify-content:center;padding:22px 0 14px;color:var(--forest)}
.mast-wm a{display:block;color:inherit;line-height:0}
.mast-wm svg{width:clamp(220px,40vw,500px);height:auto;overflow:visible}
.mast-sub{border-top:3px double var(--ink);border-bottom:1px solid var(--ink);text-align:center;padding:8px 0;color:var(--dim)}
.mast-nav{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid var(--line)}
.mast-nav .toc{display:flex;flex-wrap:wrap;gap:4px 22px}
.mast-nav .toc a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none;font-family:var(--mono);font-size:13.5px}
.mast-nav .toc a b{color:var(--forest);font-weight:500;margin-right:6px}
@media (hover:hover){.mast-nav .toc a:hover{color:var(--forest)}}
.mast-nav .act{display:flex;align-items:center;gap:14px;flex:none}
.mast-nav .act .signin{color:var(--ink);text-decoration:none;font-weight:600;font-size:15px;min-height:44px;display:inline-flex;align-items:center}
.figcap{font-family:var(--mono);font-size:12.5px;color:var(--faint);border-top:1px solid var(--line);margin-top:16px;padding-top:10px;line-height:1.6}
/* phones (real screenshots) */
.phone{position:relative;border-radius:46px;padding:10px;background:var(--ink);box-shadow:0 30px 60px -24px rgba(21,35,27,.35);max-width:320px;width:100%}
.phone img{border-radius:36px;width:100%;aspect-ratio:780/1688;object-fit:cover;background:var(--peach)}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;justify-self:end;width:100%;max-width:560px}
.pair .phone:nth-child(2){margin-top:64px}
.solo{justify-self:center}
.card.ringed::before{opacity:.6}
.card.ringed.r-tr::before{right:calc(var(--rs,520px) * -.55);top:calc(var(--rs,520px) * -.55)}
/* rooms teaser */
.timeline{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin:64px 0 0;padding:26px 0 0}
.timeline::before{content:"";position:absolute;left:4px;right:4px;top:6px;height:1.5px;background:var(--ink)}
.timeline li{list-style:none;position:relative;font-size:15px;color:var(--dim);line-height:1.4}
.timeline li::before{content:"";position:absolute;top:-25px;left:0;width:11px;height:11px;border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 2px var(--ink)}
.timeline li.on::before{background:var(--apricot);box-shadow:none}
.timeline li b{display:block;font-family:var(--serif);font-weight:400;font-size:21px;color:var(--ink);margin-bottom:2px}
.timeline li .mono{display:block;color:var(--faint);font-size:12px;margin-bottom:4px}
.night{--rs:640px}
/* closing */
.closing{padding:120px 0 128px;text-align:center}
.closing h2{font-size:clamp(46px,7.4vw,96px);line-height:1;margin:0 0 30px}
.closing h2 .em{color:var(--sage)}
.closing .ctas{justify-content:center}
.closing .fine{color:#B5C0AA}
.closing .fine a{color:var(--paper)}

/* footer */
footer{padding:36px 0 44px;border-top:1px solid var(--line);font-size:14px;color:var(--faint)}
footer .wrap{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between}
footer .fl{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
footer .fl img{height:22px;width:auto}
footer nav{display:flex;flex-wrap:wrap;gap:4px 18px}
footer nav a{color:var(--dim);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
@media (hover:hover){footer nav a:hover{color:var(--forest);text-decoration:underline}}
/* scroll reveal where the browser can do it without script */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .rv{animation:rv linear both;animation-timeline:view();animation-range:entry 0% entry 38%}
    @keyframes rv{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  }
}
/* rooms page */
.wave{margin:72px 0 0;color:var(--sage)}
.wave svg{width:100%;height:auto;overflow:visible}
.wave text{font-family:var(--serif);fill:var(--paper)}
.wave .t{font-family:var(--mono);fill:var(--sage);font-size:13px}
.wave figcaption{font-family:var(--mono);font-size:12.5px;color:var(--sage2);margin-top:10px}
.rsec{padding:96px 0}
.rsec .head{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:baseline;margin-bottom:40px;max-width:820px}
.rsec .head .n{font-family:var(--mono);font-size:13px;border:1px solid var(--line2);border-radius:14px;padding:3px 10px;color:var(--dim)}
.rsec .head h2{font-size:clamp(34px,4.4vw,56px);line-height:1.05}
.rsec .head p{grid-column:2;color:var(--dim);margin:10px 0 0}
.screens{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.screens .phone{max-width:300px;margin:0 auto}
.screens .cap{max-width:300px;margin:16px auto 0}
.screens .cap .mono{color:var(--faint)}
.screens .cap h3{font-size:22px;margin:4px 0 6px}
.screens .cap p{font-size:15px;color:var(--dim);margin:0}
.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.lines{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.lines .ln{background:var(--moss);color:var(--paper);border-radius:22px;padding:24px 22px;min-height:230px;display:flex;flex-direction:column;justify-content:space-between}
.lines .ln p{font-family:var(--serif);font-size:25px;line-height:1.15;color:var(--paper);margin:0}
.lines .ln .mono{color:var(--sage);font-size:12px;border-top:1px solid rgba(196,208,177,.3);padding-top:10px;margin-top:20px}
.hosts{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.hosts .card .btn{margin-top:18px}
.ask{background:var(--peach);border-radius:28px;padding:44px;display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:32px;align-items:center;margin-top:28px;overflow:hidden;--rs:420px}
.ask h3{font-size:clamp(28px,3vw,38px);line-height:1.1}
.ask p{color:var(--dim);margin:10px 0 0;max-width:34em}
@media (max-width:1080px){.pair{justify-self:start}.lines{grid-template-columns:1fr 1fr}}
@media (max-width:760px){
  .dateline span:nth-child(1),.dateline span:nth-child(3){display:none}.dateline{justify-content:center}
  .mast-nav .toc{display:none}.mast-nav{justify-content:flex-end}
  .mast-wm{padding:16px 0 10px}
  .pair{gap:12px}.pair .phone{border-radius:34px;padding:7px}.pair .phone img{border-radius:28px}.pair .phone:nth-child(2){margin-top:40px}
  .three,.rules,.hosts,.screens{grid-template-columns:1fr}
  .screens .phone{max-width:280px}
  .timeline{grid-template-columns:1fr;gap:18px;padding:0 0 0 30px}
  .timeline::before{left:5px;right:auto;top:6px;bottom:6px;width:1.5px;height:auto}
  .timeline li::before{left:-30px;top:4px}
  .lines{grid-template-columns:1fr}
  .lines .ln{min-height:0}
  .ask{grid-template-columns:1fr;padding:30px 24px}
  .closing{padding:88px 0 96px}
  .rsec{padding:72px 0}
  .rsec .head{grid-template-columns:1fr}.rsec .head p{grid-column:1}
  .ringed{--rs:360px}
}
/* rooms page: night header, night timeline */
.mast.compact{padding:14px 0 0}
.mast.compact .dateline{border-bottom-color:rgba(196,208,177,.35);color:var(--sage)}
.mast.compact .mast-nav{border-bottom:0;padding:12px 0 6px}
.mast.compact .wm{display:block;color:var(--paper);line-height:0;flex:none}
.mast.compact .wm svg{width:150px;height:auto;overflow:visible}
.mast.compact .toc a{color:var(--paper)}
.mast.compact .toc a b{color:var(--sage)}
.mast.compact .act .signin{color:var(--paper)}
.timeline.on-night::before{background:rgba(196,208,177,.55)}
.timeline.on-night li{color:#C9D2BF}
.timeline.on-night li::before{background:var(--moss);box-shadow:inset 0 0 0 2px var(--sage)}
.timeline.on-night li.on::before{background:var(--apricot);box-shadow:none}
.timeline.on-night li b{color:var(--paper)}
.timeline.on-night li .mono{color:var(--sage2)}
.kick .label{display:flex;align-items:center;gap:10px}
@media (hover:hover){.mast.compact .toc a:hover{color:var(--sage)}}
@media (max-width:760px){.mast.compact .mast-nav{justify-content:space-between}.mast.compact .wm svg{width:120px}}
