/* Remote Builders: shared styles for every page. Fonts are self-hosted (SIL OFL). */
@font-face{ font-family:"Bricolage Grotesque"; src:url("/assets/fonts/bricolage-grotesque.woff2") format("woff2"); font-weight:200 800; font-stretch:75% 100%; font-display:swap; }
@font-face{ font-family:"Caveat"; src:url("/assets/fonts/caveat-600.woff2") format("woff2"); font-weight:600; font-display:swap; }
:root{
  --blush:#FFF6F9; --tint:#FFE1EA; --plum:#2B1240; --plum-2:#5C4566;
  --cobalt:#3346E8; --marigold:#FFB31A; --pink:#FF5C9D; --jade:#0FA37F;
  --white:#FFFFFF; --mist:#D9C6DF;
  --font:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;
  --max:1320px; --gut:16px;
}
@media (min-width:720px){ :root{ --gut:32px; } }
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion:no-preference){ html{ scroll-behavior:smooth; } }
body{ margin:0; background:var(--blush); color:var(--plum); font:400 18px/1.55 var(--font); overflow-x:hidden; }
img,canvas,svg{ display:block; }
a{ color:var(--cobalt); text-underline-offset:3px; text-decoration-thickness:2px; }
a:hover{ text-decoration-color:var(--pink); }
:focus-visible{ outline:3px solid var(--cobalt); outline-offset:3px; border-radius:6px; }
h1,h2,h3{ margin:0; font-weight:700; }
p{ margin:0; }
.skip{ position:absolute; left:var(--gut); top:-60px; background:var(--plum); color:var(--blush); padding:10px 14px; border-radius:8px; z-index:20; }
.skip:focus{ top:12px; }
[hidden]{ display:none !important; }
.visually-hidden{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Header */
.bar{ max-width:var(--max); margin:0 auto; padding:16px var(--gut); display:flex; align-items:center; gap:24px; }
.brand{ display:flex; align-items:center; gap:10px; color:var(--plum); text-decoration:none; font-weight:750; font-size:20px; letter-spacing:-0.01em; margin-right:auto; }
.brand canvas{ width:30px; height:30px; }
.nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:22px; }
.nav a{ color:var(--plum); text-decoration:none; font-weight:500; font-size:16px; }
.nav a:hover{ text-decoration:underline; text-decoration-color:var(--pink); }
.bar .menu-btn{ display:none; }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font:650 17px/1 var(--font); padding:14px 20px; border-radius:12px; border:2px solid var(--cobalt); background:var(--cobalt); color:var(--white); text-decoration:none; cursor:pointer; }
.btn:hover{ background:#2536C9; border-color:#2536C9; }
.btn.ghost{ background:transparent; color:var(--plum); border-color:var(--plum); }
.btn.ghost:hover{ background:var(--tint); }
.bar .btn{ padding:11px 16px; font-size:16px; }
@media (max-width:1079px){
  .bar .menu-btn{ display:inline-flex; background:transparent; color:var(--plum); border-color:var(--plum); padding:10px 14px; font-size:16px; }
  .nav{ position:absolute; left:0; right:0; top:100%; background:var(--blush); border-bottom:2px solid var(--tint); padding:8px var(--gut) 20px; display:none; z-index:15; }
  .nav.open{ display:block; }
  .nav ul{ flex-direction:column; gap:0; }
  .nav a{ display:block; padding:12px 0; font-size:20px; }
  header{ position:relative; }
}
@media (max-width:520px){ .bar .cta-top{ display:none; } }

/* Hero */
.hero-top{ max-width:var(--max); margin:0 auto; padding:40px var(--gut) 36px; }
h1{ font-size:clamp(42px,6.2vw,96px); line-height:.98; letter-spacing:-0.035em; font-weight:800; }
h1 span{ display:block; }
.hero-sub{ margin-top:28px; display:flex; flex-wrap:wrap; gap:20px 48px; align-items:flex-end; justify-content:space-between; }
.hero-sub p{ max-width:40ch; font-size:20px; line-height:1.5; color:var(--plum-2); }
.hero-sub p strong{ color:var(--plum); font-weight:600; }
.hero-links{ display:flex; gap:12px; flex-wrap:wrap; }

/* Wall */
.wall{ position:relative; }
#wall-canvas{ width:100%; }
.seat-card{ background:var(--white); border:2px solid var(--plum); border-radius:22px; padding:22px; margin:20px var(--gut) 0; position:relative; z-index:2; }
.seat-card .head{ display:flex; gap:16px; align-items:flex-start; justify-content:space-between; }
.seat-card h2{ font-size:28px; line-height:1.1; letter-spacing:-0.02em; }
.seat-card .head p{ margin-top:6px; font-size:15px; line-height:1.45; color:var(--plum-2); }
.preview{ flex:none; text-align:center; }
.preview canvas{ width:64px; height:64px; margin:0 auto; }
.preview span{ display:block; margin-top:4px; font-size:13px; color:var(--plum-2); }
.fields{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }
.fields .full{ grid-column:1 / -1; }
label{ display:block; font-size:15px; font-weight:600; margin-bottom:5px; }
input,textarea{ width:100%; font:400 17px/1.3 var(--font); color:var(--plum); background:var(--white); border:2px solid var(--plum-2); border-radius:10px; padding:10px 12px; }
input:focus-visible,textarea:focus-visible{ outline:3px solid var(--cobalt); outline-offset:1px; border-color:var(--plum); }
textarea{ resize:vertical; min-height:96px; }
.seat-card .btn{ width:100%; margin-top:16px; }
.status{ margin-top:10px; font-size:15px; font-weight:600; min-height:1.45em; }
.status:empty{ margin:0; }
.seat-card .status{ min-height:2.9em; }
.seat-card .status:empty{ margin-top:10px; }
.callout{ position:absolute; left:0; top:0; transform:translate(-50%,calc(-100% - 12px)); background:var(--plum); color:var(--blush); font-size:14px; font-weight:650; padding:7px 11px; border-radius:9px; white-space:nowrap; pointer-events:none; z-index:3; }
.callout::after{ content:""; position:absolute; left:50%; bottom:-6px; width:12px; height:12px; background:var(--plum); transform:translateX(-50%) rotate(45deg); border-radius:2px; }
.wall-note{ max-width:var(--max); margin:0 auto; padding:16px var(--gut) 0; font-size:15px; color:var(--plum-2); }
.wall-note strong{ color:var(--plum); font-weight:650; }
@media (max-width:959px){ .wall-note{ padding-top:14px; } .wall{ padding-bottom:4px; } }
@media (min-width:960px){
  .seat-card{ position:absolute; margin:0; padding:24px 26px; }
  .wall-note{ padding-top:18px; }
}
.flyer{ position:fixed; z-index:30; pointer-events:none; transform-origin:0 0; width:64px; height:64px; }

/* Sections */
main > section:not(.hero){ max-width:var(--max); margin:0 auto; padding:88px var(--gut) 0; }
@media (min-width:960px){
  main > section:not(.hero){ display:grid; grid-template-columns:4fr 8fr; gap:48px; padding-top:128px; }
}
h2{ font-size:clamp(32px,4vw,48px); line-height:1.05; letter-spacing:-0.02em; font-weight:750; }
.sec-head p{ margin-top:14px; color:var(--plum-2); max-width:34ch; }
.sec-body{ margin-top:28px; }
@media (min-width:960px){ .sec-body{ margin-top:6px; } }
.lede{ font-size:24px; line-height:1.4; max-width:34em; letter-spacing:-0.005em; }
.sec-body > p + p, .lede + p{ margin-top:16px; max-width:62ch; }
h3{ font-size:23px; line-height:1.2; letter-spacing:-0.01em; font-weight:650; }
.st{ display:inline-flex; align-items:center; gap:8px; font-size:15px; font-weight:600; color:var(--plum); }
.st::before{ content:""; width:12px; height:12px; border-radius:3px; background:var(--c,transparent); border:2px solid var(--c,var(--plum)); }
.st.run{ --c:var(--jade); } .st.soon{ --c:var(--marigold); }

.topics{ margin:32px 0 0; padding:0; list-style:none; display:grid; gap:12px; max-width:44em; }
.topics li{ position:relative; padding-left:30px; font-size:20px; line-height:1.45; }
.topics li::before{ content:""; position:absolute; left:0; top:.42em; width:14px; height:14px; border-radius:4px; background:var(--c); }
.topics li:nth-child(4n+1){ --c:var(--cobalt); } .topics li:nth-child(4n+2){ --c:var(--pink); }
.topics li:nth-child(4n+3){ --c:var(--marigold); } .topics li:nth-child(4n+4){ --c:var(--jade); }
.topics-h{ margin-top:40px; }
#chapters,#directory{ margin-top:64px; }
#chapters > .topics-h,#directory > .topics-h{ margin-top:0; }
.sub-lede{ margin-top:8px; max-width:62ch; }
.topics-h + .topics{ margin-top:14px; }
.after-topics{ margin-top:24px; }

.pillars{ display:grid; gap:40px 48px; }
@media (min-width:720px){ .pillars{ grid-template-columns:1fr 1fr; } }
.pillar p{ margin-top:10px; max-width:42ch; }
.pillar .st{ margin-top:14px; }

.chapters{ list-style:none; margin:48px 0 0; padding:0; display:grid; gap:14px; }
.chapters li{ display:grid; gap:8px 24px; padding:20px 22px; border-radius:16px; background:var(--white); }
.chapters li.open-seat{ background:transparent; border:2px dashed var(--plum-2); }
@media (min-width:720px){ .chapters li{ grid-template-columns:200px 1fr; align-items:baseline; } .chapters .st{ grid-column:1; } .chapters p{ grid-column:2; grid-row:1 / span 2; } }
.chapters h3{ font-size:20px; }
.host-cta{ margin-top:20px; }

.example{ margin-top:16px; background:var(--white); border-radius:18px; padding:20px; display:grid; grid-template-columns:auto 1fr; gap:6px 16px; max-width:30em; position:relative; }
.example canvas{ width:52px; height:52px; grid-row:1 / span 3; }
.tag{ display:inline-block; background:var(--marigold); color:var(--plum); font-size:13px; font-weight:700; padding:3px 8px; border-radius:6px; }
.example .who{ font-weight:650; }
.example dl{ margin:4px 0 0; display:grid; gap:4px; font-size:16px; }
.example dt{ display:inline; font-weight:650; }
.example dd{ display:inline; margin:0; }
.inline-form{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; max-width:30em; }
.inline-form input{ flex:1 1 220px; }

.hosts{ display:grid; gap:40px 48px; }
@media (min-width:720px){ .hosts{ grid-template-columns:1fr 1fr; } }
.host canvas{ width:88px; height:88px; }
.host h3{ margin-top:18px; }
.host .role{ color:var(--plum-2); font-size:16px; margin-top:2px; }
.host p + p{ margin-top:12px; }
.host .bio{ margin-top:14px; max-width:42ch; }
.hosts-note{ margin-top:32px; font-size:15px; color:var(--plum-2); }

.facts{ list-style:none; margin:32px 0 0; padding:0; display:grid; gap:18px; max-width:44em; }
.facts li{ font-size:20px; line-height:1.45; }
.facts strong{ font-weight:750; }
.facts small{ display:block; font-size:14px; color:var(--plum-2); margin-top:2px; }
.facts-note{ margin-top:24px; font-size:15px; color:var(--plum-2); }

.guest-form{ display:grid; gap:14px; max-width:44em; }
@media (min-width:720px){ .guest-form{ grid-template-columns:1fr 1fr; } .guest-form .full{ grid-column:1 / -1; } }
.guest-form .btn{ justify-self:start; }

.faq details{ border-top:2px solid var(--tint); }
.faq details:last-child{ border-bottom:2px solid var(--tint); }
.faq summary{ list-style:none; cursor:pointer; padding:20px 44px 20px 0; font-size:20px; font-weight:650; position:relative; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:""; position:absolute; right:4px; top:50%; width:18px; height:18px; margin-top:-9px; border-radius:4px; background:var(--tint); border:2px solid var(--plum); }
.faq details[open] summary::after{ background:var(--cobalt); border-color:var(--cobalt); }
.faq details p{ padding:0 0 22px; max-width:60ch; }

/* Footer */
footer{ margin-top:128px; background:var(--plum); color:var(--blush); }
footer :focus-visible{ outline-color:var(--marigold); }
.foot{ max-width:var(--max); margin:0 auto; padding:64px var(--gut) 40px; display:grid; gap:40px; }
@media (min-width:720px){ .foot{ grid-template-columns:2fr 1fr 1fr 1fr; } }
.foot .brand{ color:var(--blush); }
.foot-intro p{ margin-top:14px; color:var(--mist); max-width:32ch; }
.foot-intro .btn{ margin-top:22px; background:var(--marigold); border-color:var(--marigold); color:var(--plum); }
.foot-intro .btn:hover{ background:#FFC54D; border-color:#FFC54D; }
.foot h2{ font-size:16px; font-weight:650; letter-spacing:0; color:var(--mist); }
.foot ul{ list-style:none; margin:12px 0 0; padding:0; display:grid; gap:8px; }
.foot a{ color:var(--blush); text-decoration:none; }
.foot a:hover{ text-decoration:underline; text-decoration-color:var(--marigold); }
.foot-base{ max-width:var(--max); margin:0 auto; padding:22px var(--gut) 40px; border-top:2px solid #45295A; display:flex; flex-wrap:wrap; gap:10px 32px; font-size:15px; color:var(--mist); }
.foot-base a{ color:var(--marigold); }
.foot-base p:first-child{ margin-right:auto; }

/* ===== v12 unified additions ===== */
.hero-top{ padding-top:44px; }
h1{ font-size:clamp(40px,5.4vw,84px); }
h1 span{ display:inline; }
h1 .h1-line{ display:block; }
.hl{ color:inherit; background:linear-gradient(transparent 58%, rgba(255,179,26,.62) 58%, rgba(255,179,26,.62) 90%, transparent 90%); padding:0 .04em; position:relative; }
.any{ position:relative; }
.hand{ display:none; position:absolute; font-family:"Caveat", "Bradley Hand", cursive; font-weight:600; font-size:clamp(23px,1.9vw,29px); line-height:1.02; letter-spacing:0; color:var(--cobalt); white-space:nowrap; }
h1 .hand > span{ display:block; }
.hand-text::after{ content:attr(data-note); content:attr(data-note) / ""; white-space:pre; }
.scribble{ position:absolute; fill:none; stroke:var(--cobalt); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; overflow:visible; }
.hand-mobile{ margin-top:16px; max-width:36ch; font-family:"Caveat", "Bradley Hand", cursive; font-weight:600; font-size:23px; line-height:1.15; color:var(--cobalt); }
@media (min-width:1080px){
  .hero-top{ padding-top:104px; }
  .hand{ display:block; }
  .hand-build{ left:58%; bottom:calc(100% + 4px); }
  .hand-build .scribble{ width:56px; height:42px; left:-62px; top:10px; }
  .hand-any{ left:calc(100% + 92px); top:.18em; }
  .hand-any .scribble{ width:70px; height:30px; left:-80px; top:.25em; }
  .hand-mobile{ display:none; }
}

main > section.wide{ display:block; }
.goals-head{ max-width:780px; }
.goals-head p{ margin-top:14px; color:var(--plum-2); font-size:20px; }
.small{ font-size:15px; color:var(--plum-2); }

/* Proof */
main > section.proof{ padding-top:64px; }
.proof-h{ font-size:20px; font-weight:650; letter-spacing:0; line-height:1.3; }
.proof-list{ list-style:none; margin:18px 0 0; padding:0; display:grid; gap:14px; }
@media (min-width:720px){ .proof-list{ grid-template-columns:repeat(3,1fr); gap:20px; } }
.proof-list li{ background:var(--white); border-radius:20px; padding:22px; font-size:17px; line-height:1.4; }
.proof-list strong{ display:block; font-size:clamp(34px,4vw,48px); line-height:1; font-weight:800; letter-spacing:-0.025em; margin-bottom:8px; }
.proof-list small{ display:block; margin-top:8px; font-size:14px; color:var(--plum-2); }
.proof-note{ margin-top:12px; font-size:15px; color:var(--plum-2); }

/* Goal picker and tabs */
.goal-picker{ margin-top:36px; display:grid; gap:18px; }
@media (min-width:960px){ .goal-picker{ grid-template-columns:minmax(260px,4fr) 8fr; gap:32px; align-items:start; } }
.goal-tabs{ display:flex; flex-direction:column; gap:8px; }
@media (max-width:959px){ .goal-tabs{ flex-direction:row; overflow-x:auto; padding-bottom:6px; } .goal-tabs button{ flex:none; } }
.goal-tabs button,.portal-tabs button{ font:600 17px/1.25 var(--font); text-align:left; color:var(--plum); background:var(--white); border:2px solid var(--tint); border-radius:14px; padding:14px 16px; cursor:pointer; }
.goal-tabs button:hover,.portal-tabs button:hover{ border-color:var(--plum-2); }
.goal-tabs button[aria-selected="true"]{ background:var(--plum); color:var(--blush); border-color:var(--plum); }
.goal-panels [role="tabpanel"]{ background:var(--white); border:2px solid var(--plum); border-radius:24px; padding:28px; }
.goal-panels h3{ font-size:clamp(24px,2.4vw,32px); line-height:1.15; letter-spacing:-0.015em; }
.goal-panels p{ margin-top:12px; max-width:60ch; color:var(--plum-2); }
.gets{ margin:20px 0 0; display:grid; gap:12px; }
.gets div{ display:grid; gap:2px 16px; }
@media (min-width:720px){ .gets div{ grid-template-columns:96px 1fr; } }
.gets dt{ font-weight:700; }
.gets dd{ margin:0; }
.types{ margin-top:40px; }
.types-h{ font-size:20px; }
.type-list{ list-style:none; margin:12px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.type-list li{ padding:8px 14px; border-radius:999px; background:var(--tint); font-weight:600; font-size:16px; }

/* Rooms */
.goals-head .legend{ display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:18px; }
.room-grid{ list-style:none; margin:36px 0 0; padding:0; display:grid; gap:16px; }
@media (min-width:720px){ .room-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px){ .room-grid{ grid-template-columns:repeat(3,1fr); } }
.room-grid li{ background:var(--white); border-radius:24px; padding:24px; display:flex; flex-direction:column; gap:8px; }
.room-grid canvas{ width:48px; height:48px; }
.room-grid .size{ margin-top:10px; font-size:15px; font-weight:650; color:var(--plum-2); }
.room-grid li > p:not(.size):not(.st){ color:var(--plum-2); }
.room-grid .st{ margin-top:auto; padding-top:10px; }

/* Map */
.map-card{ margin-top:32px; background:var(--white); border:2px solid var(--plum); border-radius:26px; padding:24px; }
.map{ position:relative; aspect-ratio:177 / 68; color:#CDB5D6; }
.map svg{ width:100%; height:auto; }
.pt{ position:absolute; width:30px; height:30px; margin:-15px 0 0 -15px; padding:0; border:0; border-radius:50%; background:transparent; cursor:pointer; }
.pt::before{ content:""; position:absolute; inset:9px; border-radius:50%; background:var(--white); border:2px solid var(--plum-2); }
.pt.awake::before{ background:var(--marigold); border-color:var(--plum); box-shadow:0 0 0 6px rgba(255,179,26,.28); }
.pt.lit::before{ inset:7px; background:var(--pink); border:0; box-shadow:0 0 0 6px rgba(255,92,157,.22),0 0 0 12px rgba(255,92,157,.1); }
.pt.lit.awake::before{ box-shadow:0 0 0 6px rgba(255,179,26,.5),0 0 0 12px rgba(255,179,26,.2); }
.pt[aria-pressed="true"]::after{ content:""; position:absolute; inset:2px; border-radius:50%; border:2px solid var(--cobalt); }
.pt:focus-visible{ outline-offset:0; border-radius:50%; }
.pt .lbl{ position:absolute; left:28px; top:50%; transform:translateY(-50%); white-space:nowrap; font-size:14px; color:var(--plum); background:rgba(255,255,255,.94); padding:2px 8px; border-radius:7px; pointer-events:none; }
.pt .lbl b{ font-weight:650; }
.pt .t{ color:var(--plum-2); font-variant-numeric:tabular-nums; }
.pt.lbl-left .lbl{ left:auto; right:28px; }
@media (min-width:721px){ .pt.lbl-left-wide .lbl{ left:auto; right:28px; } }
@media (max-width:720px){ .pt .lbl{ display:none; } .pt.lit .lbl{ display:block; } .map-card{ padding:14px; } }
.map-status{ margin-top:18px; padding-top:16px; border-top:2px solid var(--tint); font-size:17px; min-height:3.2em; }
.goals-head .awake-count{ font-weight:650; color:var(--plum); }

/* Podcast */
.bar-list{ list-style:none; margin:14px 0 0; padding:0; display:grid; gap:10px; max-width:44em; }
.bar-list li{ padding:16px 18px; background:var(--white); border-radius:16px; font-size:19px; line-height:1.4; }
.sec-head .st{ margin-top:16px; }

/* Portal */
.window{ margin-top:32px; background:var(--white); border:2px solid var(--plum); border-radius:24px; overflow:hidden; }
.window-bar{ display:flex; align-items:center; gap:12px; padding:12px 18px; border-bottom:2px solid var(--tint); font-size:14px; color:var(--plum-2); }
.dots{ display:flex; gap:6px; }
.dots i{ display:block; width:11px; height:11px; border-radius:50%; }
.dots i:nth-child(1){ background:var(--pink); } .dots i:nth-child(2){ background:var(--marigold); } .dots i:nth-child(3){ background:var(--jade); }
.window-title{ margin-right:auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.portal-tabs{ display:flex; gap:6px; padding:14px 18px 0; overflow-x:auto; }
.portal-tabs button{ flex:none; padding:10px 16px; border-radius:12px; text-align:center; }
.portal-tabs button[aria-selected="true"]{ background:var(--cobalt); color:var(--white); border-color:var(--cobalt); }
.pane{ padding:22px 18px 26px; }
@media (min-width:720px){ .pane{ padding:28px 28px 32px; } }
.profile{ display:grid; grid-template-columns:72px 1fr; gap:18px; max-width:760px; }
.profile canvas{ width:72px; height:72px; }
@media (max-width:560px){ .profile{ grid-template-columns:1fr; } .profile canvas{ width:56px; height:56px; } }
.profile h3{ margin-top:8px; }
.meta{ font-size:15px; color:var(--plum-2); margin-top:4px; }
.pane-note{ margin-top:20px; font-size:15px; color:var(--plum-2); max-width:70ch; }
.pane-note .st{ margin-right:10px; }
.dir{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.dir li{ display:grid; grid-template-columns:44px 1fr; gap:14px; padding:16px; border-radius:16px; background:var(--blush); }
.dir canvas{ width:44px; height:44px; }
.dir h3{ font-size:19px; margin:6px 0 4px; }
.chapters-list{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
@media (min-width:720px){ .chapters-list{ grid-template-columns:1fr 1fr; } }
.chapters-list li{ display:grid; grid-template-columns:40px 1fr; gap:12px; padding:14px; border-radius:14px; background:var(--blush); }
.cl{ width:40px; height:40px; border-radius:10px; background:var(--tint); display:grid; place-items:center; font-weight:800; }
.chapters-list h3{ font-size:18px; }
.chapters-list p{ font-size:15px; color:var(--plum-2); margin-top:2px; }
.perks{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
@media (min-width:720px){ .perks{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px){ .perks{ grid-template-columns:repeat(4,1fr); } }
.perks li{ padding:18px; border-radius:16px; background:var(--blush); }
.perks canvas{ width:44px; height:44px; }
.perks h3{ font-size:19px; margin-top:12px; }
.perks p{ font-size:15px; color:var(--plum-2); margin-top:4px; }
.prompts{ list-style:none; margin:0; padding:0; display:grid; gap:10px; max-width:760px; }
.prompts li{ padding:14px 16px; border-radius:14px; background:var(--blush); }
.prompts strong{ display:inline-block; min-width:110px; }

/* Origin and photos */
.origin-text{ max-width:820px; }
.origin-text .lede{ margin-top:18px; }
.origin-text p + p{ margin-top:14px; max-width:62ch; }
.photos{ margin-top:36px; columns:3 280px; column-gap:14px; }
.photos figure{ margin:0 0 14px; break-inside:avoid; }
.photos img{ width:100%; height:auto; border-radius:20px; background:var(--tint); }
.photos figcaption{ margin-top:8px; font-size:14px; color:var(--plum-2); }

/* Hosts */
.host .portrait{ position:relative; width:120px; }
.host .portrait canvas{ width:120px; height:120px; }
.host .portrait img{ display:block; width:120px; height:120px; border-radius:50%; object-fit:cover; background:var(--plum-2); }
.host .portrait span{ display:block; margin-top:8px; font-size:13px; color:var(--plum-2); }
.host h3{ margin-top:14px; }

/* Closing band */
main > section.closing{ width:calc(100% - 2 * var(--gut)); max-width:calc(var(--max) - 2 * var(--gut)); margin:112px auto 0; padding:64px clamp(24px,5vw,72px); background:var(--cobalt); color:var(--white); border-radius:32px; }
.closing h2{ font-size:clamp(44px,6vw,88px); line-height:.98; letter-spacing:-0.035em; font-weight:800; }
.closing > p{ margin-top:14px; font-size:20px; color:#E4E7FF; }
.closing-actions{ margin-top:28px; display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.closing .btn{ background:var(--marigold); border-color:var(--marigold); color:var(--plum); }
.closing .btn:hover{ background:#FFC54D; border-color:#FFC54D; }
.closing .btn.ghost{ background:transparent; color:var(--white); border-color:var(--white); }
.closing .btn.ghost:hover{ background:rgba(255,255,255,.12); }
.closing .inline-form{ margin-top:0; flex:1 1 300px; max-width:460px; }
.closing input{ border-color:var(--white); }
.closing .status{ color:var(--white); }
.closing :focus-visible{ outline-color:var(--marigold); }
footer{ margin-top:112px; }

/* ===== Site additions: shared layout, gallery, directory, forms ===== */
.review-bar{ margin:0; padding:8px var(--gut); background:var(--marigold); color:var(--plum); font-size:14px; font-weight:650; text-align:center; }
.nav a[aria-current="page"]{ text-decoration:underline; text-decoration-color:var(--pink); }
select{ width:100%; font:400 17px/1.3 var(--font); color:var(--plum); background:var(--white); border:2px solid var(--plum-2); border-radius:10px; padding:10px 12px; }
select:focus-visible{ outline:3px solid var(--cobalt); outline-offset:1px; border-color:var(--plum); }
.trap{ position:absolute!important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.hint{ display:block; margin-top:5px; font-size:14px; font-weight:400; color:var(--plum-2); }
.optional{ font-weight:400; color:var(--plum-2); }
.check{ display:flex; gap:10px; align-items:flex-start; font-weight:500; font-size:16px; line-height:1.45; cursor:pointer; }
.check input{ width:20px; height:20px; flex:none; margin:2px 0 0; accent-color:var(--cobalt); }
.status.ok{ color:var(--jade); }
.status.err{ color:#B0123F; }
.closing .status.ok,.closing .status.err{ color:var(--white); }

/* Inner pages */
.page{ max-width:var(--max); margin:0 auto; padding:56px var(--gut) 0; }
@media (min-width:960px){ .page{ padding-top:88px; } }
.page-head{ max-width:860px; }
.page-head h1{ font-size:clamp(40px,5vw,72px); }
.page-head .lede{ margin-top:20px; color:var(--plum-2); }
.crumbs{ font-size:15px; color:var(--plum-2); margin-bottom:18px; }
.crumbs ol{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.crumbs li + li::before{ content:"/"; margin-right:6px; color:var(--mist); }
.prose{ max-width:68ch; margin-top:40px; }
.prose h2{ font-size:28px; margin-top:40px; }
.prose p,.prose ul{ margin-top:14px; }
.prose li + li{ margin-top:6px; }
.draft-note{ display:inline-block; margin-top:16px; background:var(--marigold); color:var(--plum); font-weight:650; font-size:15px; padding:6px 12px; border-radius:8px; }
.page-section{ margin-top:72px; }
.page-section > h2{ margin-bottom:24px; }

/* Gallery */
.gallery-head{ margin-top:48px; display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 24px; }
.gallery-head h3{ font-size:clamp(24px,2.6vw,32px); letter-spacing:-0.015em; }
.gallery{ list-style:none; margin:20px 0 0; padding:0; columns:4 220px; column-gap:12px; }
.gallery li{ margin:0 0 12px; break-inside:avoid; }
.gallery a{ display:block; border-radius:16px; overflow:hidden; background:var(--tint); }
.gallery a:focus-visible{ outline-offset:3px; }
.gallery img{ width:100%; height:auto; transition:transform .25s ease; }
@media (prefers-reduced-motion:no-preference){ .gallery a:hover img{ transform:scale(1.03); } }
.lightbox{ border:0; padding:0; margin:0; inset:0; max-width:none; max-height:none; width:100vw; height:100dvh; overflow:hidden; background:rgba(43,18,64,.94); color:var(--blush); }
.lightbox::backdrop{ background:rgba(43,18,64,.6); }
.lightbox[open]{ display:grid; grid-template-rows:auto 1fr auto; }
.lb-top{ display:flex; justify-content:space-between; align-items:center; padding:12px var(--gut); font-size:15px; }
.lb-stage{ display:grid; place-items:center; min-height:0; padding:0 var(--gut); }
.lb-stage img{ max-width:100%; max-height:calc(100dvh - 150px); width:auto; height:auto; object-fit:contain; border-radius:12px; }
.lb-bottom{ display:flex; justify-content:center; gap:12px; padding:14px var(--gut) 20px; }
.lightbox .btn{ background:transparent; border-color:var(--blush); color:var(--blush); }
.lightbox .btn:hover{ background:rgba(255,255,255,.12); }
.lightbox :focus-visible{ outline-color:var(--marigold); }

/* Directory */
.member-grid{ list-style:none; margin:28px 0 0; padding:0; display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); }
.member-grid a{ display:flex; flex-direction:column; align-items:center; gap:10px; padding:20px 14px; background:var(--white); border-radius:18px; text-decoration:none; color:var(--plum); text-align:center; font-weight:650; font-size:16px; height:100%; }
.member-grid a:hover{ outline:2px solid var(--plum-2); outline-offset:0; }
.logo-box{ width:72px; height:72px; display:grid; place-items:center; border-radius:14px; background:var(--blush); overflow:hidden; flex:none; }
.logo-box img{ max-width:100%; max-height:100%; object-fit:contain; }
.dir-empty{ margin-top:24px; padding:28px; border:2px dashed var(--plum-2); border-radius:20px; max-width:44em; }
.dir-empty p + p{ margin-top:8px; color:var(--plum-2); }
.dir-actions{ margin-top:24px; display:flex; flex-wrap:wrap; gap:12px; }
.event-list{ list-style:none; margin:28px 0 0; padding:0; display:grid; gap:16px; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
.event-card{ background:var(--white); border-radius:20px; padding:22px; display:flex; flex-direction:column; gap:8px; }
.event-card h2,.event-card h3{ margin:0; font-size:22px; }
.event-card p{ margin:0; }
.event-card .btn{ margin-top:8px; }
.event-when{ font-weight:650; color:var(--plum); }
.event-where,.event-host{ color:var(--plum-2); font-size:15px; }
.events-note{ margin-top:24px; }
.draft-bar{ margin:0 0 18px; padding:10px 14px; border-radius:12px; background:var(--marigold); color:var(--plum); font-weight:650; }
.dir-tools{ margin-top:36px; display:grid; gap:16px; }
@media (min-width:960px){ .dir-tools{ grid-template-columns:1fr minmax(380px,480px); align-items:end; } }
.chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; border:0; }
.chips legend{ font-size:15px; font-weight:600; margin-bottom:8px; padding:0; }
.chips button{ font:600 15px/1 var(--font); padding:10px 14px; border-radius:999px; border:2px solid var(--tint); background:var(--white); color:var(--plum); cursor:pointer; }
.chips button[aria-pressed="true"]{ background:var(--plum); border-color:var(--plum); color:var(--blush); }
.dir-search{ display:grid; gap:12px; }
@media (min-width:640px){ .dir-search{ grid-template-columns:1fr 1fr; } }
.dir-count{ margin-top:18px; font-size:15px; color:var(--plum-2); }
.member-list{ list-style:none; margin:16px 0 0; padding:0; display:grid; gap:14px; }
@media (min-width:720px){ .member-list{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px){ .member-list{ grid-template-columns:repeat(3,1fr); } }
.member-card a{ display:grid; grid-template-columns:72px 1fr; gap:16px; padding:20px; background:var(--white); border-radius:20px; text-decoration:none; color:var(--plum); height:100%; }
.member-card a:hover{ outline:2px solid var(--plum-2); outline-offset:0; }
.member-card h3{ font-size:20px; }
.member-card p{ margin-top:4px; font-size:16px; color:var(--plum-2); }
.member-card .meta{ font-size:14px; margin-top:8px; }

/* Profile */
.profile-head{ display:grid; gap:24px; align-items:center; }
@media (min-width:720px){ .profile-head{ grid-template-columns:128px 1fr; } }
.profile-head .logo-box{ width:128px; height:128px; border-radius:24px; background:var(--white); border:2px solid var(--tint); }
.profile-head h1{ font-size:clamp(36px,4.6vw,64px); }
.profile-head .lede{ margin-top:10px; color:var(--plum-2); font-size:22px; }
.profile-body{ margin-top:40px; display:grid; gap:32px; }
@media (min-width:960px){ .profile-body{ grid-template-columns:8fr 4fr; gap:56px; } }
.profile-facts{ margin:0; padding:22px; background:var(--white); border-radius:20px; display:grid; gap:14px; align-self:start; }
.profile-facts dt{ font-size:14px; font-weight:650; color:var(--plum-2); }
.profile-facts dd{ margin:2px 0 0; font-size:17px; }
.profile-about{ font-size:20px; line-height:1.55; max-width:62ch; }
.profile-visit{ margin-top:28px; display:flex; flex-wrap:wrap; gap:12px; }
.profile-shot{ margin:32px 0 0; }
.profile-list{ margin:8px 0 0; padding-left:1.2em; font-size:18px; line-height:1.55; max-width:62ch; }
.profile-list li + li{ margin-top:6px; }
.profile-ratings{ list-style:none; margin:10px 0 0; padding:0; display:grid; gap:8px; font-size:19px; }
.profile-note{ margin-top:10px; font-size:15px; color:var(--plum-2); max-width:62ch; }
.profile-quote{ margin:16px 0 0; padding:18px 22px; background:var(--white); border-radius:16px; border-left:4px solid var(--tint); max-width:62ch; }
.profile-quote blockquote{ margin:0; font-size:19px; line-height:1.5; }
.profile-quote blockquote p{ margin:0; }
.profile-quote figcaption{ margin-top:8px; font-size:15px; color:var(--plum-2); }
.profile-faq{ margin:10px 0 0; display:grid; gap:16px; max-width:62ch; }
.profile-faq dt{ font-weight:650; font-size:18px; }
.profile-faq dd{ margin:4px 0 0; font-size:17px; line-height:1.55; }
.profile-shot a{ display:block; border-radius:16px; overflow:hidden; border:2px solid var(--tint); background:var(--white); }
.profile-shot img{ display:block; width:100%; height:auto; }
.profile-shot figcaption{ margin-top:8px; font-size:14px; color:var(--plum-2); }

/* Directory join form */
.join-page{ display:grid; gap:40px; margin-top:40px; }
@media (min-width:960px){ .join-page{ grid-template-columns:7fr 5fr; gap:56px; } }
.dir-form{ display:grid; gap:16px; background:var(--white); border:2px solid var(--plum); border-radius:24px; padding:24px; }
@media (min-width:640px){ .dir-form .pair{ display:grid; grid-template-columns:1fr 1fr; gap:16px; } }
.dir-form .pair > div + div{ margin-top:16px; }
@media (min-width:640px){ .dir-form .pair > div + div{ margin-top:0; } }
.dir-form fieldset{ border:0; margin:0; padding:0; display:grid; gap:12px; }
.dir-form legend{ font-size:15px; font-weight:600; padding:0; margin-bottom:4px; }
.logo-field{ display:grid; grid-template-columns:96px 1fr; gap:16px; align-items:center; }
.logo-field .logo-box{ width:96px; height:96px; border:2px dashed var(--plum-2); background:var(--blush); font-size:13px; color:var(--plum-2); text-align:center; padding:6px; }
.logo-field input[type="file"]{ border-style:dashed; padding:10px; font-size:15px; }
.dir-form .btn{ justify-self:start; }
.join-aside{ align-self:start; display:grid; gap:18px; }
.join-aside ol{ margin:0; padding-left:22px; display:grid; gap:8px; }
.join-aside .card{ background:var(--white); border-radius:20px; padding:22px; }

/* Invite form steps */
.step-count{ margin-top:14px; font-size:14px; font-weight:650; color:var(--plum-2); }
.join-step{ border:0; margin:0; padding:0; min-width:0; }
.join-step .fields{ margin-top:10px; }
.seat-card select{ font-size:16px; }
.looking{ border:0; margin:0; padding:0; min-width:0; }
.looking legend{ font-size:15px; font-weight:600; margin-bottom:6px; padding:0; }
.pills{ display:flex; flex-wrap:wrap; gap:6px; }
.pill{ display:inline-flex; margin:0; font-weight:500; font-size:14px; cursor:pointer; }
.pill input{ position:absolute; opacity:0; width:1px; height:1px; }
.pill span{ display:inline-block; padding:7px 11px; border-radius:999px; border:2px solid var(--tint); background:var(--white); line-height:1.2; }
.pill input:checked + span{ background:var(--plum); border-color:var(--plum); color:var(--blush); }
.pill input:focus-visible + span{ outline:3px solid var(--cobalt); outline-offset:1px; }
.seat-card .check{ font-size:15px; }
.step-nav{ display:flex; gap:10px; }
.step-nav .btn{ flex:1; }
.step-nav .btn[hidden]{ display:none; }
.join-offer{ margin-top:6px; padding:18px; border-radius:16px; background:var(--blush); }
.join-offer h3{ font-size:21px; line-height:1.2; }
.join-offer h3:focus{ outline:none; }
.join-offer p{ margin-top:6px; font-size:15px; line-height:1.45; color:var(--plum-2); }
.offer-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.offer-actions .btn{ flex:1 1 140px; margin-top:0; width:auto; }
.offer-done{ font-size:15px; line-height:1.45; }

/* Member photos and profile pages */
.logo-box.photo{ border-radius:50%; background:var(--tint); }
.logo-box.photo img{ width:100%; height:100%; object-fit:cover; max-width:none; max-height:none; }
.profile-media{ display:flex; gap:14px; }
.profile-head.two{ grid-template-columns:none; }
@media (min-width:720px){ .profile-head.two{ grid-template-columns:270px 1fr; } }
.profile-head .logo-box.photo{ border-radius:50%; border-color:var(--tint); }
.profile-section + .profile-section{ margin-top:28px; }
.profile-section h2{ font-size:22px; margin-bottom:8px; }

/* Profile form images */
.images{ display:grid; gap:16px; }
.image-field{ display:grid; grid-template-columns:96px 1fr; gap:16px; align-items:center; }
.image-field .logo-box{ width:96px; height:96px; border:2px dashed var(--plum-2); background:var(--blush); font-size:13px; color:var(--plum-2); text-align:center; padding:6px; }
.image-field .logo-box.photo{ padding:0; }
.image-field input[type="file"]{ border-style:dashed; padding:10px; font-size:15px; }

/* Perks */
.perk-stats{ margin-top:36px; }
.perk-boot{ margin-top:16px; }
.perk-list{ list-style:none; margin:16px 0 0; padding:0; display:grid; gap:14px; align-items:start; }
@media (min-width:720px){ .perk-list{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px){ .perk-list{ grid-template-columns:repeat(3,1fr); } }
.perk-card{ background:var(--white); border-radius:20px; padding:20px; display:flex; flex-direction:column; gap:10px; min-width:0; }
.perk-head{ display:grid; grid-template-columns:44px 1fr; gap:14px; align-items:center; }
.perk-head canvas{ width:44px; height:44px; }
.perk-head div{ min-width:0; }
.perk-head h3{ font-size:20px; }
.perk-head p{ font-size:15px; color:var(--plum-2); line-height:1.35; }
.perk-offer{ font-size:22px; line-height:1.2; font-weight:700; letter-spacing:-0.01em; }
.perk-elig{ font-size:15px; color:var(--plum-2); line-height:1.45; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.perk-foot{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding-top:10px; border-top:2px solid var(--tint); }
.perk-value{ margin-left:auto; font-size:15px; font-weight:650; font-variant-numeric:tabular-nums; }
.perk-card details{ font-size:16px; }
.perk-card summary{ cursor:pointer; font-weight:600; color:var(--cobalt); font-size:15px; }
.perk-card details[open] summary{ margin-bottom:10px; }
.perk-card dl{ margin:0 0 14px; display:grid; gap:10px; }
.perk-card dt{ font-size:14px; font-weight:650; color:var(--plum-2); }
.perk-card dd{ margin:2px 0 0; line-height:1.45; overflow-wrap:anywhere; }
.perk-suggest .dir-form{ margin-top:28px; max-width:820px; }
.perk-note{ margin-top:32px; max-width:70ch; }
.perk-submit{ border:2px dashed var(--plum-2); border-radius:20px; padding:22px; display:flex; flex-direction:column; gap:10px; align-items:flex-start; background:var(--tint); }
.perk-submit h3{ font-size:22px; line-height:1.2; }
.perk-submit p{ font-size:16px; color:var(--plum-2); }
.perk-submit .btn{ margin-top:auto; }
