/* Ayvro, after hours. Cobalt evenings, marigold plans, ink tables. Single light theme by design. */
@font-face{font-family:Schibsted;src:url('/fonts/schibsted-grotesk-latin.woff2') format('woff2');font-weight:400 900;font-display:swap}
@font-face{font-family:Newsreader;src:url('/fonts/newsreader-latin.woff2') format('woff2');font-display:swap}
:root{--ink:#14163b;--paper:#f3f4fa;--card:#fff;--cobalt:#2e44ff;--cobalt-deep:#1f2fcc;--marigold:#ffb71b;--lilac:#e3e6ff;--muted:#5b5f80;--line:#d5d8ee;--danger:#c2361f;--verified:#1d9bf0;--radius:18px;--gutter:max(20px,5vw);--sans:Schibsted,'Helvetica Neue',Arial,sans-serif;--serif:Newsreader,Georgia,serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans)}
a{color:inherit;text-underline-offset:4px}img{max-width:100%}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--cobalt);outline-offset:3px}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(52px,9vw,128px);line-height:.9;letter-spacing:-.055em;font-weight:800;margin-bottom:28px;text-wrap:balance}
h1 em,h2 em{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:-.04em}
h2{font-size:clamp(34px,4.6vw,60px);line-height:.98;letter-spacing:-.045em;font-weight:800;margin-bottom:18px;text-wrap:balance}
h3{font-size:22px;line-height:1.15;letter-spacing:-.02em;font-weight:700;margin-bottom:8px}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
.intro,.lede{font-size:19px;line-height:1.5;max-width:560px;color:var(--muted)}
[hidden]{display:none!important}

/* Shell */
.demo-banner{background:var(--marigold);text-align:center;font-size:11px;font-weight:700;letter-spacing:.06em;padding:8px var(--gutter)}
.site-header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:16px}
.wrap{max-width:1320px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
main{max-width:1320px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.wordmark{font-size:32px;font-weight:900;letter-spacing:-.07em;text-decoration:none;line-height:1}
.wordmark span{color:var(--cobalt)}
nav{display:flex;gap:6px;align-items:center;font-size:15px;font-weight:600}
nav a{text-decoration:none;padding:9px 14px;border-radius:999px}
nav a:hover{background:var(--lilac)}
nav .nav-swipe{background:var(--marigold)}nav .nav-swipe:hover{background:#ffc94f}
.nav-pill{background:var(--ink);color:#fff;margin-left:6px}.nav-pill:hover{background:var(--cobalt)}
.site-footer{background:var(--ink);color:#fff;margin-top:100px}
.site-footer .wrap{padding-block:56px 40px;display:grid;gap:40px}
.footer-mark{font-size:clamp(90px,19vw,260px);font-weight:900;letter-spacing:-.08em;line-height:.8;margin:0}
.footer-mark span{color:var(--marigold)}
.footer-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center;font-size:14px}
.footer-row div{display:flex;gap:22px;flex-wrap:wrap}
.footer-row p{margin:0;font-family:var(--serif);font-style:italic;font-size:22px}

/* Controls */
.button,button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:13px 24px;border:2px solid var(--ink);border-radius:999px;background:var(--ink);color:#fff;font-weight:700;font-size:15px;text-decoration:none;cursor:pointer;transition:background .15s,transform .15s}
.button:hover,button:hover{background:var(--cobalt);border-color:var(--cobalt)}
.button:active,button:active{transform:translateY(1px)}
button:disabled{opacity:.45;cursor:not-allowed}
.button-big{min-height:62px;padding:16px 30px;font-size:17px;background:var(--marigold);color:var(--ink);border-color:var(--ink);box-shadow:4px 4px 0 var(--ink)}
.button-big:hover{background:#ffc94f;border-color:var(--ink);transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}
.secondary{background:transparent;color:var(--ink)}.secondary:hover{background:var(--lilac);border-color:var(--ink)}
.quiet{background:transparent;border:0;color:var(--muted);text-decoration:underline;padding:10px 0;min-height:44px;font-weight:600}.quiet:hover{background:transparent;color:var(--ink)}
.text-link{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:15px}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
form{display:grid;gap:18px;margin:20px 0}
label{display:grid;gap:7px;font-size:14px;font-weight:600}
input,textarea,select{width:100%;min-width:0;background:#fff;border:2px solid var(--line);border-radius:12px;padding:12px 14px}
input:focus,textarea:focus,select:focus{border-color:var(--cobalt);outline:none}
input:disabled{background:var(--lilac);color:var(--muted)}
textarea{resize:vertical}
label.checkbox{display:flex;gap:12px;font-size:13px;font-weight:500;align-items:flex-start}
input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:var(--cobalt)}
.form-note{font-size:13px;color:var(--muted)}
input:-webkit-autofill{-webkit-box-shadow:0 0 0 50px #fff inset!important;-webkit-text-fill-color:var(--ink)!important}

/* Home */
section{margin-bottom:96px;scroll-margin-top:90px}
.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:center;padding-top:64px;margin-bottom:64px}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:700;background:var(--card);border:2px solid var(--ink);border-radius:999px;padding:7px 16px 7px 12px;margin-bottom:28px}
.kicker i{width:10px;height:10px;border-radius:50%;background:#1fbf6a;box-shadow:0 0 0 4px #1fbf6a33}
.hero h1 em{color:var(--cobalt)}
.cta-row{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:34px}
.hero-deck{position:relative;display:block;height:470px;text-decoration:none;color:var(--ink)}
.mini{position:absolute;inset:10px 30px 30px 10px;border:2px solid var(--ink);border-radius:22px;padding:28px;display:flex;flex-direction:column;gap:12px;box-shadow:6px 8px 0 var(--ink);transition:transform .35s}
.mini h3{font-size:clamp(28px,3vw,40px);line-height:1;letter-spacing:-.045em;font-weight:800;margin:0}
.mini p{margin:0;font-family:var(--serif);font-size:19px;line-height:1.3}
.mini small{margin-top:auto;font-size:13px;font-weight:700}
.mini .eyebrow{font-family:var(--sans);font-size:11px;line-height:1.4;margin:0}
.mini-1{background:var(--ink);color:#fff;transform:rotate(-7deg) translate(-14px,22px)}
.mini-2{background:var(--cobalt);color:#fff;transform:rotate(4deg) translate(18px,8px)}
.mini-3{background:var(--marigold);transform:rotate(-1.5deg)}
.mini-1 .eyebrow{color:var(--marigold)}
.hero-deck:hover .mini-1{transform:rotate(-10deg) translate(-30px,26px)}
.hero-deck:hover .mini-2{transform:rotate(7deg) translate(34px,10px)}
.hero-deck:hover .mini-3{transform:rotate(-3deg) translateY(-6px)}
.stamp-demo{position:absolute;bottom:56px;right:22px;border:3px solid var(--ink);background:#fff;color:var(--ink);padding:4px 12px;border-radius:8px;font-weight:900;font-size:22px;transform:rotate(10deg)}
.ticker{overflow:hidden;background:var(--ink);color:#fff;margin:0 calc(var(--gutter) * -1) 96px;padding:16px 0;border-block:2px solid var(--ink)}
.ticker div{display:flex;gap:36px;width:max-content;font-size:20px;font-weight:700;letter-spacing:-.02em;animation:ticker 60s linear infinite}
.ticker span::after{content:'✺';color:var(--marigold);margin-left:36px}
@keyframes ticker{to{transform:translateX(-50%)}}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px;flex-wrap:wrap}
.section-heading h2{margin:0}
.section-heading span{font-size:13px;font-weight:700;color:var(--muted)}
.empty{border:2px dashed var(--line);border-radius:var(--radius);background:var(--card);padding:40px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.empty h3{font-size:28px}.empty p{color:var(--muted);margin-bottom:0;max-width:560px}
.how{background:var(--cobalt);color:#fff;border-radius:28px;padding:clamp(28px,5vw,64px)}
.how .eyebrow{color:var(--marigold)}
.how ol{list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;counter-reset:step}
.how li{background:#ffffff14;border:2px solid #ffffff33;border-radius:var(--radius);padding:26px}
.how li::before{counter-increment:step;content:counter(step,decimal-leading-zero);display:block;font-size:44px;font-weight:900;letter-spacing:-.05em;color:var(--marigold);line-height:1;margin-bottom:22px}
.how li b{font-size:22px;letter-spacing:-.02em}
.how li p{opacity:.85;margin:8px 0 0}
.faq{max-width:820px}
.faq details{border-bottom:2px solid var(--line);padding:20px 0}
.faq summary{cursor:pointer;font-weight:700;font-size:19px;list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq summary::after{content:'+';font-size:26px;line-height:1;color:var(--cobalt)}
.faq details[open] summary::after{content:'–'}
.faq summary::-webkit-details-marker{display:none}
.faq details p{color:var(--muted);padding-top:12px;margin:0;max-width:640px}
.mobile-cta{display:none}

/* Event cards: ticket stubs */
.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.event-card{position:relative;background:var(--card);border:2px solid var(--ink);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.event-card:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}
.event-card>img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-bottom:2px dashed var(--ink)}
.card-content h3 a{text-decoration:none}.card-content h3 a::after{content:'';position:absolute;inset:0}
.card-content p:not(.eyebrow){margin-bottom:4px;color:var(--muted);font-size:14px}
.card-content .eyebrow{color:var(--cobalt)}
.card-content .text-link{margin-top:auto;padding-top:16px}
.proof{display:flex;align-items:center;gap:4px;margin:14px 0 0;font-size:13px;font-weight:700}
.avatar{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--lilac);border:2px solid #fff;font-size:12px;font-weight:800;margin-right:-8px}
.avatar img{border-radius:50%;object-fit:cover;width:100%;height:100%}
.proof>span:last-child{margin-left:14px}
.verified-tick{display:inline-flex;vertical-align:-.08em;margin-left:.2em;color:var(--verified);line-height:0;cursor:help}
.verified-tick svg{width:.78em;height:.78em;min-width:14px;min-height:14px}
.avatar{position:relative}.avatar .verified-tick{position:absolute;right:-5px;bottom:-5px;margin:0}.avatar .verified-tick svg{width:14px;height:14px}

/* Dated events with a waitlist: ticket stubs. The date tears off on the left. */
.stub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:96px}
.waitlist-section .stub-grid{margin-bottom:0}
.event-stub{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr);background:var(--card);border:2px solid var(--ink);border-radius:22px;box-shadow:5px 6px 0 var(--ink);transition:transform .2s,box-shadow .2s}
.event-stub:hover{transform:translate(-2px,-2px);box-shadow:7px 8px 0 var(--ink)}
.event-stub::before,.event-stub::after{content:'';position:absolute;left:92px;width:22px;height:22px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);z-index:1}
.event-stub::before{top:-12px;clip-path:inset(50% 0 0 0)}.event-stub::after{bottom:-12px;clip-path:inset(0 0 50% 0)}
.stub-date{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--ink);color:#fff;border-radius:19px 0 0 19px;border-right:2px dashed var(--paper);padding:18px 6px}
.stub-date span{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--marigold)}
.stub-date strong{font-size:48px;font-weight:900;line-height:.9;letter-spacing:-.05em}
.event-stub:nth-child(2n) .stub-date{background:var(--cobalt)}
.stub-body{display:flex;flex-direction:column;min-width:0;padding:24px 26px 24px 30px}
.stub-body .eyebrow{color:var(--cobalt);margin-bottom:8px}
.event-stub.is-full .eyebrow{color:var(--muted)}
.stub-body h3{font-size:clamp(23px,2.4vw,30px);line-height:1.05;letter-spacing:-.03em;margin-bottom:8px}
.stub-body h3 a{text-decoration:none;color:inherit}.stub-body h3 a::after{content:'';position:absolute;inset:0;border-radius:22px}
.stub-when{font-family:var(--serif);font-style:italic;font-size:19px;margin-bottom:14px}
.stub-meta{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:6px}
.stub-meta li{font-size:13px;font-weight:700;line-height:1.3;border:2px solid var(--ink);border-radius:999px;padding:4px 11px;background:var(--paper)}
.stub-body .proof{margin:0 0 16px}
.stub-cta{margin-top:auto;align-self:flex-start;background:var(--marigold);border:2px solid var(--ink);border-radius:999px;padding:10px 18px;font-weight:800;font-size:15px;box-shadow:3px 3px 0 var(--ink)}
.event-stub.is-full .stub-cta{background:var(--card)}
.events-heading{margin-bottom:40px}
.swipe-next{display:flex;align-items:center;justify-content:space-between;gap:32px;background:var(--marigold);border:2px solid var(--ink);border-radius:28px;box-shadow:6px 7px 0 var(--ink);padding:clamp(26px,4.5vw,52px)}
.swipe-next>div{max-width:620px}.swipe-next p:not(.eyebrow){margin:0;font-size:17px}
.swipe-next h2 em{color:var(--cobalt)}
.swipe-next .button-big{flex:none;background:var(--ink);color:#fff}.swipe-next .button-big:hover{background:var(--cobalt);border-color:var(--ink)}
@media(max-width:760px){.swipe-next{flex-direction:column;align-items:stretch}.swipe-next .button-big{width:100%}}
.library-heading{padding-top:0}
.library-heading h2{font-size:clamp(42px,6vw,84px);line-height:.92;letter-spacing:-.05em}
.library-heading h2 em{color:var(--cobalt)}
/* Partnered events: both brands on a black strip, the partner's acid yellow for their fee. */
.cobrand{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.cobrand-ayvro{font:800 17px/1 var(--sans);letter-spacing:-.04em;text-transform:none;color:#fff}.cobrand-ayvro i{font-style:normal;color:var(--marigold)}
.cobrand-x{color:#e8ff3d;font-weight:400}
.cobrand-partner{font:600 13px/1 ui-monospace,'SF Mono',Menlo,Consolas,monospace;letter-spacing:.06em;text-transform:uppercase;color:#e8ff3d}
.event-stub.is-partner{grid-template-rows:auto auto 1fr}
.stub-image{grid-column:1/-1;width:100%;height:auto;aspect-ratio:16/7;object-fit:cover;object-position:50% 45%;border-bottom:2px solid var(--ink)}
.event-stub:not(.is-partner) .stub-image{border-radius:19px 19px 0 0}
.event-stub:has(.stub-image) .stub-date{border-radius:0 0 0 19px}
.event-stub.is-partner::before{display:none}
.stub-cobrand{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#0a0a0a;color:#f5f1e8;border-radius:19px 19px 0 0;padding:11px 18px;font:600 11px/1.2 ui-monospace,'SF Mono',Menlo,Consolas,monospace;letter-spacing:.12em;text-transform:uppercase}
.event-stub.is-partner .stub-date{background:#0a0a0a;border-radius:0 0 0 19px;border-right-color:#f5f1e8;border-top:2px dashed #3a3a3a}
.event-stub.is-partner .stub-date span{color:#e8ff3d}
.event-stub.is-partner .stub-cta{background:#e8ff3d}
.stub-meta li.is-fee{background:#e8ff3d}
.event-tabs{display:inline-flex;flex-wrap:wrap;gap:6px;padding:5px;margin-top:6px;border:2px solid var(--ink);border-radius:999px;background:var(--card)}
.event-tabs a{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;font-weight:800;font-size:15px;text-decoration:none;color:var(--ink)}
.event-tabs a:hover{background:var(--lilac)}
.event-tabs a[aria-current]{background:var(--ink);color:#fff}
.event-tabs span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--lilac);color:var(--ink);font-size:12px}
.event-tabs a[aria-current] span{background:var(--marigold)}
.page-heading .tab-note{margin:16px 0 0;font-size:16px}
.detail-cobrand{display:inline-flex;background:#0a0a0a;border-radius:999px;padding:11px 20px;margin-bottom:22px}
.host-line{margin-top:30px;padding-top:20px;border-top:2px dashed var(--line)}.host-line .eyebrow{color:var(--cobalt);margin-bottom:8px}.host-line p:not(.eyebrow){margin:0 0 6px}
.entry-fee strong{background:#e8ff3d;padding:1px 5px;border-radius:4px}
.solo-note{border:2px dashed var(--ink);border-radius:14px;padding:10px 14px;font-size:15px}
.team-invite{background:var(--lilac);border:2px solid var(--ink);border-radius:14px;padding:12px 14px;font-size:15px;margin-bottom:14px}
.detail-layout.is-partner .team-invite{background:#e8ff3d}
.team-panel{margin-top:22px;padding-top:20px;border-top:2px dashed var(--line)}
.team-panel h3{font-size:24px;line-height:1.05;letter-spacing:-.03em}.team-panel h3 em{font-family:var(--serif);font-weight:400;color:var(--cobalt)}
.team-link{display:flex;gap:8px;margin:14px 0 10px}.team-link input{flex:1;min-width:0;font-size:13px}
.team-list{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:6px}
.team-list li{display:flex;align-items:center;gap:8px;border:2px solid var(--ink);border-radius:12px;padding:8px 12px;background:var(--card);font-size:15px}
.team-list small{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--cobalt)}
.team-list span{margin-left:auto;font-size:12px;font-weight:700;color:var(--muted)}
@media(max-width:640px){.event-tabs{display:flex;flex-wrap:nowrap}.event-tabs a{flex:1;justify-content:center;padding:9px 8px;font-size:14px}}
.referral-tag{background:var(--marigold)}
/* Invite friends: one big share button, WhatsApp and copy underneath. */
.invite-box{display:grid;gap:12px}
.invite-title{margin:0;font:900 22px/1.05 var(--sans);letter-spacing:-.03em}.invite-sub{margin:-6px 0 0;font-size:15px;color:var(--muted)}
.invite-go{width:100%;justify-content:center;font-size:19px}
.invite-alt{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.invite-alt>*{display:flex;align-items:center;justify-content:center;min-height:48px;border:2px solid var(--ink);border-radius:999px;background:var(--card);color:var(--ink);font:700 15px/1 var(--sans);text-decoration:none;padding:0 12px;cursor:pointer}
.invite-alt>*:hover{background:var(--lilac)}.invite-wa{background:#d9fdd3!important}
.share-panel .invite-box{margin:0}
.ticket-page .invite-box,.dw-done .invite-box{margin:22px auto 6px;max-width:440px;text-align:left;background:var(--card);border:2px solid var(--ink);border-radius:22px;box-shadow:4px 5px 0 var(--ink);padding:20px}
.invite-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px;align-items:center;background:var(--cobalt);color:#fff;border:2px solid var(--ink);border-radius:24px;box-shadow:5px 6px 0 var(--ink);padding:clamp(22px,3.5vw,36px);margin:0 0 28px}
.invite-hero .eyebrow{color:var(--marigold)}.invite-hero h2{font-size:clamp(30px,4vw,44px);color:#fff;margin:4px 0 12px}.invite-hero h2 em{font-family:var(--serif);font-weight:400;color:var(--marigold)}
.invite-stats{margin:0 0 10px;font-size:17px}.invite-stats b{font:900 26px/1 var(--sans);letter-spacing:-.03em;color:var(--marigold)}
.invite-bar{height:14px;border:2px solid var(--ink);border-radius:999px;background:#fff;overflow:hidden}.invite-bar span{display:block;height:100%;min-width:10px;background:var(--marigold);border-right:2px solid var(--ink)}
.invite-next{margin:8px 0 0;font-size:14px;font-weight:700}
.invite-hero .form-note{color:#dfe3ff;margin:12px 0 0;font-size:13px}
.invite-hero .invite-alt>*{border-color:#fff}
@media(max-width:760px){.invite-hero{grid-template-columns:1fr;gap:18px}}
.invite-banner{background:var(--marigold);border-bottom:2px solid var(--ink)}
.invite-banner .wrap{display:flex;align-items:center;gap:12px;padding-block:12px}
.invite-banner p{margin:0;display:grid;line-height:1.2;flex:1;min-width:0}.invite-banner b{font-size:17px}.invite-banner p span{font-size:13px}
.invite-face{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--card);border:2px solid var(--ink);font:900 20px/1 var(--sans)}
.invite-banner .button{flex:none;min-height:42px;padding:8px 16px;font-size:14px}
@media(max-width:520px){.invite-banner p span{display:none}.invite-banner b{font-size:16px}}
.partner-fields{border:2px dashed var(--line);border-radius:14px;padding:12px 16px;margin:12px 0}
@media(max-width:960px){.stub-grid{grid-template-columns:1fr}}
@media(max-width:640px){.event-stub{grid-template-columns:76px minmax(0,1fr)}.event-stub::before,.event-stub::after{left:64px}.stub-date strong{font-size:36px}.stub-body{padding:20px 18px 20px 24px}.stub-when{font-size:17px}}
@media(prefers-reduced-motion:reduce){.event-stub{transition:none}}

/* Plan library */
.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.plan-card{border:2px solid var(--ink);border-radius:24px;padding:26px;display:flex;flex-direction:column;min-width:0;box-shadow:5px 6px 0 var(--ink)}
.plan-weekday{background:var(--ink);color:#fff}.plan-weekday .eyebrow{color:var(--marigold)}
.plan-weekend{background:var(--marigold);color:var(--ink)}
.plan-card h3{font-size:30px;line-height:1;letter-spacing:-.045em;font-weight:800;margin-bottom:12px}
.plan-hook{font-family:var(--serif);font-size:18px;line-height:1.35;margin-bottom:18px}
.plan-steps{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:8px;font-size:14px;counter-reset:s}
.plan-steps li{display:grid;grid-template-columns:28px 1fr;gap:4px}
.plan-steps li::before{counter-increment:s;content:counter(s,decimal-leading-zero);font-size:12px;font-weight:800;opacity:.6;padding-top:2px}
.plan-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px;font-weight:800;border-top:2px solid currentColor;padding-top:14px;margin-top:auto}
.plan-cta{margin-top:16px;align-self:flex-start;font-weight:800;text-decoration:none;border:2px solid currentColor;border-radius:999px;padding:9px 16px}
.plan-cta:hover{background:#fff;color:var(--ink);border-color:var(--ink)}
.section-heading h2 em{color:var(--cobalt)}
.page-heading .actions{margin-top:26px}

/* Plan formula: glyph + glyph + glyph */
.formula{display:flex;align-items:flex-start;gap:6px;margin:4px 0 18px}
.formula i{font-style:normal;font-weight:900;font-size:20px;line-height:62px;opacity:.55}
.glyph{display:grid;justify-items:center;gap:6px;min-width:0;flex:1;max-width:96px;text-align:center}
.glyph svg{width:62px;height:62px;padding:9px;border-radius:16px;background:#ffffff1f;border:2px solid currentColor;box-sizing:border-box}
.plan-weekend .glyph svg,.idea-weekend .glyph svg,.mini-3 .glyph svg{background:#ffffff8c}
.glyph small{font-size:11px;font-weight:800;letter-spacing:.02em;line-height:1.2}
.cost{font-weight:800}
.cost-free{display:inline-flex;align-items:center;gap:6px}
.cost-free::before{content:'';width:8px;height:8px;border-radius:50%;background:#1fbf6a;box-shadow:0 0 0 3px #1fbf6a40}
.mini .formula{margin:2px 0 4px}.mini .glyph svg{width:46px;height:46px;padding:7px}
/* How costs work */
.costs{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:40px;align-items:center;background:var(--card);border:2px solid var(--ink);border-radius:28px;padding:clamp(26px,4vw,48px);scroll-margin-top:90px}
.costs h2 em{color:var(--cobalt)}
.costs-copy p:not(.eyebrow){color:var(--muted);margin:0}
.costs-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;position:relative}
.costs-steps li{border:2px solid var(--ink);border-radius:20px;padding:20px;display:grid;gap:6px;align-content:start;background:var(--paper)}
.costs-steps li:nth-child(2){background:var(--marigold)}
.costs-steps .glyph svg{width:56px;height:56px;background:#fff}
.costs-steps b{font-size:15px;margin-top:6px}
.costs-steps strong{font-size:34px;font-weight:900;letter-spacing:-.05em;line-height:1}
.costs-steps p{font-size:14px;margin:4px 0 0;color:var(--ink);opacity:.8}
.costs-compact{margin-top:-30px}

/* Inner pages */
.page-heading{padding-top:64px;margin-bottom:56px;max-width:980px}
.page-heading p:not(.eyebrow){max-width:620px;color:var(--muted);font-size:18px}
.page-heading h1 em{color:var(--cobalt)}
.prose{max-width:720px;font-size:17px;line-height:1.75;overflow-wrap:anywhere}
.prose h2{font-size:34px;margin-top:10px}
.rich-prose p{margin-bottom:1.1em}.rich-prose ul{padding-left:1.4em}
.rich-prose blockquote{margin:1em 0;padding:10px 20px;border-left:4px solid var(--marigold);background:var(--card);border-radius:0 12px 12px 0}
.rich-prose code{background:var(--lilac);padding:2px 6px;border-radius:6px}
.detail-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:56px;padding-top:56px;align-items:start}
.detail-layout h1{font-size:clamp(48px,6.5vw,92px)}
.detail-layout .eyebrow{color:var(--cobalt)}
.detail-image{width:100%;height:auto;border-radius:22px;border:2px solid var(--ink);margin:10px 0 32px}
.booking-panel,.profile-panel,.auth-panel,.swipe-done{background:var(--card);border:2px solid var(--ink);border-radius:26px;padding:32px;box-shadow:6px 6px 0 var(--ink)}
.booking-panel{position:sticky;top:96px}
.booking-panel h2{font-size:48px}
.booking-panel p{font-size:15px;margin-bottom:8px}
.badge{display:inline-block;background:var(--marigold);border:2px solid var(--ink);border-radius:999px;padding:6px 16px;font-weight:800;font-size:14px}
.member-details{padding:18px 0;display:grid;gap:10px}
.member-details p{margin:0;font-size:14px}
.auth-panel{max-width:600px;margin:56px auto 40px}
.auth-panel h1{font-size:clamp(48px,7vw,76px)}
.auth-panel h1 em{color:var(--cobalt)}
.google-signin{width:100%;margin-top:8px}
.auth-or{margin:20px 0 4px;text-align:center;font-size:14px;color:var(--muted)}
.demo-tools{border-top:2px dashed var(--line);margin-top:28px;padding-top:24px}
.demo-tools h2{font-size:24px}
.member-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:start}
.member-layout h2{font-size:40px}
.plan{padding:24px 0;border-bottom:2px solid var(--line)}
.plan .eyebrow{color:var(--cobalt)}
.danger{border-top:2px solid var(--line);margin-top:30px;padding-top:20px;font-size:13px}
.danger summary{cursor:pointer;font-weight:700}
.danger button{background:var(--danger);border-color:var(--danger)}
.notice{background:#fff3d6;border:2px solid var(--marigold);padding:14px 16px;border-radius:14px;font-size:14px}
.attendee-photo{width:48px;height:48px;border-radius:50%;object-fit:cover}

/* Organizer desk */
.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}
.admin-tabs a{text-decoration:none;font-weight:700;border:2px solid var(--ink);border-radius:999px;padding:8px 16px}
.admin-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px}
.admin-box{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);padding:26px;margin-bottom:24px}
.admin-box h2{font-size:30px}
.admin-record{padding:18px 0;border-bottom:1px solid var(--line)}
.admin-record h3{font-size:20px}.admin-record p{font-size:14px;overflow-wrap:anywhere}
.admin-links{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--lilac);padding:15px;border-radius:12px}
.admin-search{margin:14px 0}
.two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.metrics{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.metrics span{background:var(--card);border:2px solid var(--line);border-radius:14px;padding:14px 18px;font-size:13px;font-weight:600}
.metrics strong{display:block;font-size:30px;letter-spacing:-.04em}
.table-wrap{overflow-x:auto;background:var(--card);border:2px solid var(--line);border-radius:var(--radius)}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{border-bottom:1px solid var(--line);padding:13px 14px;text-align:left;vertical-align:top}
th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
tr:last-child td{border-bottom:0}
td p{margin:2px 0 0;color:var(--muted);font-size:13px}
td button{font-size:13px;padding:8px 14px;min-height:38px}
td details summary{cursor:pointer;font-weight:700}

/* Status toast */
#status:not(:empty){position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:30;background:var(--ink);color:#fff;padding:15px 22px;border-radius:14px;max-width:calc(100% - 32px);width:max-content;box-shadow:0 8px 30px #14163b40;font-weight:600}
#status[data-error=true]{background:var(--danger)}

/* Swipe */
.swipe-heading{padding-top:44px;margin-bottom:28px}
.swipe-heading h1{font-size:clamp(46px,6.5vw,88px);margin-bottom:16px}
.swipe{max-width:560px;margin:0 auto 40px}
.swipe-filters{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap}
.chip{min-height:42px;padding:8px 16px;background:var(--card);color:var(--ink);font-size:14px;border-width:2px}
.chip small{opacity:.55;margin-left:2px}
.chip[aria-pressed=true]{background:var(--ink);color:#fff}
.chip:hover{background:var(--lilac);border-color:var(--ink)}.chip[aria-pressed=true]:hover{background:var(--cobalt);border-color:var(--cobalt)}
.swipe-progress{height:8px;background:var(--lilac);border-radius:999px;overflow:hidden;border:2px solid var(--ink)}
.swipe-progress span{display:block;height:100%;width:0;background:var(--cobalt);transition:width .3s}
.swipe-count{font-size:13px;font-weight:800;letter-spacing:.08em;margin:10px 0 14px;min-height:1.5em}
.swipe-deck{position:relative;height:610px;margin-bottom:28px}
.idea-card{position:absolute;inset:0;border:2px solid var(--ink);border-radius:26px;padding:30px;display:flex;flex-direction:column;overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;transition:transform .26s ease;box-shadow:6px 8px 0 var(--ink)}
.idea-card.dragging{transition:none;cursor:grabbing}
.idea-card[data-pos="0"]{z-index:3}
.idea-card[data-pos="1"]{z-index:2;transform:translateY(12px) rotate(2.5deg) scale(.97);pointer-events:none}
.idea-card[data-pos="2"]{z-index:1;transform:translateY(24px) rotate(-2deg) scale(.94);pointer-events:none}
.idea-card.flying{z-index:4;pointer-events:none}
.idea-weekday{background:var(--ink);color:#fff}.idea-weekday .eyebrow{color:var(--marigold)}
.idea-weekend{background:var(--marigold);color:var(--ink)}
.idea-card h2{font-size:clamp(34px,7vw,46px);line-height:.98;letter-spacing:-.05em;margin:4px 0 14px}
.idea-hook{font-family:var(--serif);font-size:20px;line-height:1.35;margin-bottom:18px}
.idea-plan{margin:0 0 auto;padding:0;list-style:none;counter-reset:plan;display:grid;gap:9px;font-size:15px}
.idea-plan li{display:grid;grid-template-columns:30px 1fr;gap:6px}
.idea-plan li::before{counter-increment:plan;content:counter(plan,decimal-leading-zero);font-size:12px;font-weight:800;padding-top:3px;opacity:.6}
.idea-meta{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;font-weight:800;border-top:2px solid currentColor;padding-top:14px;margin-top:18px}
.idea-tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.idea-tags span{font-size:12px;font-weight:700;border:2px solid currentColor;border-radius:999px;padding:2px 10px}
.stamp{position:absolute;top:30px;padding:6px 14px;border:3px solid var(--ink);border-radius:10px;font-size:30px;font-weight:900;letter-spacing:-.03em;pointer-events:none;opacity:0}
.stamp-yes{left:22px;transform:rotate(-12deg);background:#1fbf6a;color:#fff;opacity:var(--yes,0)}
.stamp-no{right:22px;transform:rotate(12deg);background:#fff;color:var(--ink);opacity:var(--no,0)}
.stamp-later{left:50%;top:auto;bottom:90px;transform:translateX(-50%) rotate(-4deg);background:var(--cobalt);color:#fff;opacity:var(--later,0)}
.swipe-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.swipe-btn{flex:1;min-height:60px;font-size:17px}
.swipe-no{background:var(--card);color:var(--ink)}.swipe-no:hover{background:var(--lilac);border-color:var(--ink)}
.swipe-later{flex:.8;background:var(--marigold);color:var(--ink)}.swipe-later:hover{background:#ffc94f;border-color:var(--ink)}
.swipe-yes{background:var(--cobalt);border-color:var(--ink)}.swipe-yes:hover{background:var(--cobalt-deep);border-color:var(--ink)}
.swipe-tip{text-align:center;margin-top:14px;display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}.swipe-tip .quiet{min-height:32px;padding:4px 0;font-size:13px}
.swipe-costs{text-align:center;margin-top:0}
.swipe-done h3{font-size:18px;margin-top:4px}
.swipe-done:focus{outline:none}
.swipe-picks{padding-left:20px;margin:0 0 22px;display:grid;gap:4px;font-weight:600}

@media(max-width:960px){
  .hero{grid-template-columns:1fr;gap:20px;padding-top:40px}
  .hero-deck{height:400px;max-width:460px;width:100%;justify-self:center}
  .event-grid,.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .costs{grid-template-columns:1fr}
  .how ol,  .detail-layout,.member-layout,.admin-grid{grid-template-columns:1fr;gap:28px}
  .booking-panel{position:static}
}
@media(max-width:640px){
  body{font-size:15px}
  .site-header .wrap{padding-block:12px}
  .wordmark{font-size:27px}
  nav{gap:0;font-size:13px}nav a{padding:8px 9px}.nav-pill{margin-left:2px}
  nav .nav-about,nav .nav-games,nav .nav-merch{display:none}
  h1{font-size:58px}
  .intro,.lede{font-size:17px}
  .hero{padding-top:28px;margin-bottom:40px}
  .kicker{font-size:12px;margin-bottom:20px}
  .cta-row .button-big{display:none}.cta-row{margin-top:20px}
  .hero-deck{height:360px}
  .mini{padding:22px;inset:10px 22px 26px 6px}
  .mini p{font-size:16px}
  .ticker{margin-bottom:64px}.ticker div{font-size:17px}
  section{margin-bottom:64px}
  .event-grid,.plan-grid{grid-template-columns:1fr}
  .empty{padding:26px}
  .how{border-radius:22px}
    .page-heading{padding-top:36px;margin-bottom:36px}
  .booking-panel,.profile-panel,.auth-panel,.swipe-done{padding:24px;border-radius:22px}
  .auth-panel{margin-top:28px}
  .two-fields{grid-template-columns:1fr}
  .mobile-cta{display:flex;position:fixed;left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:15}
  .site-footer{margin-top:64px}.site-footer .wrap{padding-bottom:110px}
  #status:not(:empty){bottom:90px}
  .swipe-heading{padding-top:22px;margin-bottom:16px}.swipe-heading h1{font-size:46px;margin-bottom:10px}
  .swipe-heading p:not(.eyebrow){font-size:15px;margin-bottom:0}
  .swipe-filters{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(var(--gutter) * -1) 18px;padding:3px var(--gutter);scrollbar-width:none}
  .chip{flex:none}
  .swipe-deck{height:min(620px,calc(100svh - 200px));min-height:560px}
  .costs-steps{grid-template-columns:1fr}.costs-compact{margin-top:0}
  .swipe-btn{font-size:15px;padding:12px 10px}
  .idea-card .formula{margin-bottom:12px}.idea-card h2{font-size:32px}
  .idea-card{padding:24px}.idea-hook{font-size:18px}.idea-plan{font-size:14px}
  .swipe-done .actions{flex-direction:column}.swipe-done .actions>*{width:100%}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker div{animation:none}.idea-card,.mini,.swipe-progress span,.event-card{transition:none}}
meter{width:90px;height:12px;vertical-align:middle}
/* Swipe: phase, done-anytime, relevance reason, next steps */
.swipe-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px}
.swipe-phase{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--cobalt);margin:0 0 2px}
.swipe-top .swipe-count{margin:0;font-size:13px;letter-spacing:0;font-weight:600;color:var(--muted)}
.done-btn{min-height:42px;padding:8px 16px;font-size:14px;flex:none}
.swipe-progress{margin-bottom:16px}
.idea-why{display:inline-block;align-self:flex-start;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:999px;font-size:12px;font-weight:800;padding:3px 10px;margin:-6px 0 12px}
.swipe-nudge{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#e9fbef;border:2px solid #1fbf6a;border-radius:16px;padding:12px 14px;margin-bottom:14px;font-size:14px}
.swipe-nudge p{margin:0}.swipe-nudge button{min-height:42px;padding:8px 16px;font-size:14px;flex:none}
.next-steps{list-style:none;padding:0;margin:18px 0 22px;display:grid;gap:8px;counter-reset:ns}
.next-steps li{display:grid;grid-template-columns:34px 1fr;column-gap:12px;align-items:start;padding:12px 14px;border:2px solid var(--line);border-radius:16px;color:var(--muted)}
.next-steps li::before{counter-increment:ns;content:counter(ns);grid-row:span 2;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:var(--lilac);color:var(--ink)}
.next-steps b{color:var(--ink)}.next-steps span{font-size:13px}
.next-steps .is-done{border-color:#1fbf6a}.next-steps .is-done::before{content:'✓';background:#1fbf6a;color:#fff}
.next-steps .is-current{border-color:var(--ink);background:#fff8e6;color:var(--ink)}.next-steps .is-current::before{background:var(--marigold)}
.top-match{background:var(--ink);color:#fff;border-radius:18px;padding:18px 20px;margin-bottom:18px}
.top-match .eyebrow{color:var(--marigold);margin-bottom:6px}.top-match h3{font-size:24px;margin-bottom:4px}.top-match p{margin:0;font-family:var(--serif);font-size:17px;opacity:.9}
@media(max-width:640px){.swipe-nudge{flex-direction:column;align-items:stretch}.done-btn{padding:8px 12px}}
.top-match .eyebrow{font-family:var(--sans);font-size:12px}
.done-primary{margin:6px 0 4px}.done-primary>*{min-width:240px}
@media(max-width:640px){.done-primary>*{width:100%}}
.email-sent{border-top:2px dashed var(--line);padding-top:22px;margin:22px 0}
.email-sent:focus{outline:none}
.email-sent h2{font-size:34px;margin-bottom:10px}
.email-sent .quiet{min-height:auto;padding:0;font-size:inherit}
label small{font-weight:500;color:var(--muted)}
.member-layout.is-new .profile-panel{order:-1;border-color:var(--cobalt);box-shadow:6px 6px 0 var(--cobalt)}
.page-heading p+.quiet{margin-top:4px}
/* Swipe focus mode: page scroll locked while the deck is in use */
html.swipe-locked,html.swipe-locked body{overflow:hidden;overscroll-behavior:none}
html.swipe-locked .swipe-deck{height:calc(100svh - 280px);min-height:430px;max-height:640px}
@media(max-width:640px){html.swipe-locked .swipe-costs{display:none}html.swipe-locked .swipe-deck{height:calc(100svh - 250px)}}
/* Flagship */
.flagship{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:center;background:var(--cobalt);color:#fff;border:2px solid var(--ink);border-radius:28px;padding:clamp(26px,4vw,52px);box-shadow:8px 8px 0 var(--ink)}
.flagship .eyebrow{color:var(--marigold)}
.flagship h2 em{color:var(--marigold)}
.flagship-copy p:not(.eyebrow){opacity:.9;max-width:520px}
.flagship .text-link{color:#fff}
.plan-card{position:relative}
.plan-flagship{background:#fff;color:var(--ink)}
.plan-flagship .eyebrow{color:var(--cobalt)}
.flag-ribbon{position:absolute;top:-14px;right:20px;background:var(--marigold);color:var(--ink);border:2px solid var(--ink);border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px}
.plan-note{font-size:13px;line-height:1.45;border-left:3px solid currentColor;padding-left:10px;margin:0 0 16px;opacity:.85}
.idea-flagship{background:#fff;color:var(--ink);border-color:var(--cobalt);box-shadow:6px 8px 0 var(--cobalt)}
.idea-flagship .eyebrow{color:var(--cobalt)}
.idea-card .plan-note{margin:10px 0 0}
@media(max-width:960px){.flagship{grid-template-columns:1fr}}
@media(max-width:640px){.done-primary .button-big{font-size:16px;padding:14px 18px}}
.swipe-reset{margin:14px 0 0;text-align:center}
.legal h2{font-size:26px;margin:36px 0 10px}.legal ul{display:grid;gap:8px}.legal li{line-height:1.6}
.community-links{border-top:2px dashed var(--line);margin-top:18px;padding-top:16px}.community-links p{margin:0 0 10px}
/* Swipe start: compact on phones, details on demand, buttons always in reach, a first-card hint */
.idea-more-toggle{display:none;align-self:flex-start;background:transparent;color:inherit;border:2px solid currentColor;border-radius:999px;min-height:34px;padding:4px 12px;font-size:13px;margin:0 0 12px}
.idea-more-toggle:hover{background:#ffffff26;border-color:currentColor}
.swipe-hint{position:absolute;left:14px;right:14px;top:10px;display:flex;justify-content:space-between;gap:10px;opacity:0;pointer-events:none;transition:opacity .3s}
.swipe-hint b{background:var(--ink);color:#fff;border:2px solid #fff;border-radius:999px;padding:5px 12px;font-size:13px;white-space:nowrap}
.idea-card.hinting .swipe-hint{opacity:1}
@media(prefers-reduced-motion:no-preference){.idea-card[data-pos="0"].hinting{animation:swipe-nudge 1.6s var(--ease,ease-in-out) 2}}
@keyframes swipe-nudge{0%,100%{transform:none}20%{transform:translateX(34px) rotate(3deg)}45%{transform:translateX(-34px) rotate(-3deg)}65%{transform:none}}
@media(max-width:640px){
  .swipe-heading{padding-top:14px;margin-bottom:10px}
  .swipe-heading .eyebrow{display:none}
  .swipe-heading h1{font-size:34px;margin-bottom:6px}
  .swipe-heading h1 br{display:none}
  .swipe-intro-more{display:none}
  .swipe-top{margin-bottom:8px}
  .swipe-progress{margin-bottom:10px}
  .swipe-deck,html.swipe-locked .swipe-deck{height:min(500px,calc(100svh - 310px));min-height:360px;margin-bottom:12px}
  .idea-card{padding:20px}
  .idea-card .formula{margin-bottom:10px}
  .idea-card .glyph svg{width:52px;height:52px;padding:8px}
  .idea-card h2{font-size:30px;margin-bottom:8px}
  .idea-hook{font-size:17px;margin-bottom:12px}
  .idea-more-toggle{display:inline-flex}
  .idea-card:not(.open) .idea-more{display:none}
  .idea-card.open{overflow-y:auto}
  .idea-meta{margin-top:auto}
  .swipe-actions{position:sticky;bottom:0;z-index:6;background:var(--paper);padding:10px 0 max(10px,env(safe-area-inset-bottom));margin:0}
  .swipe-tip{margin-top:6px}
}
/* Host view: door list, guest tags and the one-time WhatsApp invite list. */
.host-tag{display:inline-block;background:var(--lilac);border-radius:999px;padding:3px 10px;margin:0 4px 4px 0;font-size:12px;font-weight:700}
.door-guest h3{margin-bottom:6px}.door-guest .actions{margin-top:10px}
.door-guest .button-big{width:100%;max-width:360px}
.swiper-invites{padding-left:22px}.swiper-invites li{padding:14px 0;border-bottom:1px solid var(--line)}
.swiper-invites p{margin:6px 0 10px;font-size:14px;color:var(--muted);overflow-wrap:anywhere}
/* /host: the host recruitment page. Reuses hero, ticker, how, costs and faq; adds the boards below. */
.host-deck .mini-3 .formula{margin:0}.host-deck .mini-3 h3{font-size:clamp(34px,4vw,52px)}
.host-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.host-want{background:var(--card);border:2px solid var(--ink);border-radius:22px;padding:24px;display:grid;gap:4px;align-content:start;box-shadow:5px 6px 0 var(--ink)}
.host-want>strong{font-size:56px;line-height:.9;font-weight:900;letter-spacing:-.06em;color:var(--cobalt)}
.host-want>p{margin:0;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.host-want h3{font-size:24px;line-height:1.05;letter-spacing:-.035em;margin:8px 0 10px}
.host-want .formula{margin-bottom:12px}.host-want .glyph svg{width:40px;height:40px;padding:6px}
.host-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.host-path{border:2px solid var(--ink);border-radius:24px;padding:28px;display:grid;gap:8px;align-content:start;background:var(--card)}
.host-path:nth-child(2){background:var(--marigold)}.host-path:nth-child(3){background:var(--ink);color:#fff}.host-path:nth-child(3) .eyebrow{color:var(--marigold)}
.host-path .glyph svg{width:56px;height:56px;background:#fff;color:var(--ink)}
.host-path .eyebrow{margin:10px 0 0}.host-path h3{font-size:32px;line-height:1;letter-spacing:-.045em;margin:0}
.host-path p{margin:6px 0 0}.host-path small{margin-top:10px;font-size:13px;font-weight:700;opacity:.75}
.host-perks>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 36px;margin-top:36px}
.host-perks h2 em,.host-standard h2 em,.host-safety h2 em,.host-apply h2 em{color:var(--cobalt)}
.host-perks article{border-top:2px solid var(--ink);padding-top:18px}
.host-perks .glyph svg{width:48px;height:48px;padding:8px}
.host-perks h3{font-size:21px;letter-spacing:-.025em;margin:14px 0 6px}.host-perks p{color:var(--muted);margin:0}
.how .how-five{grid-template-columns:repeat(5,minmax(0,1fr))}.how-five li{padding:22px}.how-five li b{font-size:19px}
.host-standard>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.host-standard article{background:var(--card);border:2px solid var(--line);border-radius:18px;padding:22px}
.host-standard strong{display:block;font-size:34px;font-weight:900;letter-spacing:-.05em;line-height:1;margin-bottom:10px}
.host-standard p{margin:0;color:var(--muted)}
.host-safety{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:40px;align-items:start;background:var(--lilac);border-radius:28px;padding:clamp(26px,4vw,52px)}
.host-safety h2 em{color:var(--cobalt)}.host-safety>div p:not(.eyebrow){color:var(--muted)}
.host-safety ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.host-safety li{background:var(--card);border:2px solid var(--ink);border-radius:16px;padding:16px 18px 16px 50px;position:relative;font-weight:600}
.host-safety li::before{content:'✓';position:absolute;left:16px;top:14px;width:22px;height:22px;border-radius:50%;background:var(--cobalt);color:#fff;font-size:13px;display:grid;place-items:center}
.host-apply{max-width:820px;background:var(--card);border:2px solid var(--ink);border-radius:28px;padding:clamp(26px,4vw,52px);box-shadow:8px 8px 0 var(--ink)}
.host-apply>p:not(.eyebrow):not(.notice){color:var(--muted);font-size:17px}
.host-apply form{display:grid;gap:22px;margin-top:26px}
.host-apply fieldset{border:0;padding:0;margin:0;display:grid;gap:10px;min-width:0}
.host-apply legend{font-size:14px;font-weight:700;margin-bottom:10px;padding:0}
.host-kinds{grid-template-columns:repeat(3,minmax(0,1fr))}
.host-kind{display:flex;gap:10px;align-items:flex-start;border:2px solid var(--line);border-radius:16px;padding:16px;cursor:pointer;font-weight:500;font-size:13px}
.host-kind b{display:block;font-size:16px;margin-bottom:4px}
.host-kind input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:var(--cobalt)}
.host-kind:has(input:checked){border-color:var(--cobalt);background:var(--lilac)}
.host-plans legend{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:11px}
.host-plan-picker{display:grid;gap:14px}.host-plan-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0}
.host-plan-head span{font-size:13px;font-weight:700;color:var(--cobalt)}.host-plan-picker .form-note{margin:-8px 0 0}
.host-plans>div{display:flex;flex-wrap:wrap;gap:8px}
.plan-chip{position:relative;display:inline-flex;align-items:center;gap:8px;border:2px solid var(--line);border-radius:999px;padding:9px 14px;font-size:14px;font-weight:600;cursor:pointer;background:#fff}
.plan-chip input{position:absolute;opacity:0;width:1px;height:1px}
.plan-chip small{font-size:11px;font-weight:800;color:var(--cobalt);background:var(--lilac);border-radius:999px;padding:2px 8px}
.plan-chip:hover{border-color:var(--ink)}
.plan-chip:has(input:checked){background:var(--cobalt);border-color:var(--cobalt);color:#fff}.plan-chip:has(input:checked) small{background:#fff}
.plan-chip:has(input:checked)::before{content:'✓';font-weight:900}
.plan-chip:has(input:focus-visible){outline:3px solid var(--cobalt);outline-offset:2px}
.plan-chip:has(input:disabled){opacity:.45;cursor:not-allowed}
.host-slots{grid-template-columns:repeat(3,minmax(0,1fr))}
.host-apply .button-big{justify-self:start}
@media(max-width:960px){.host-board,.host-perks>div,.host-standard>div{grid-template-columns:repeat(2,minmax(0,1fr))}.how .how-five{grid-template-columns:1fr}.host-safety{grid-template-columns:1fr}}
@media(max-width:640px){.host-board,.host-paths,.host-perks>div,.host-standard>div,.host-kinds,.host-plans,.host-slots{grid-template-columns:1fr}.host-apply .button-big{width:100%}.host-want>strong{font-size:46px}}
@media(max-width:820px){.host-paths{grid-template-columns:1fr}}

/* Vibe check, feedback and "what Ayvro knows" (profiling.js) */
.vibe,.feedback{max-width:640px;display:grid;gap:18px}
.vibe fieldset,.feedback fieldset{border:2px solid var(--line);border-radius:var(--radius);background:var(--card);padding:22px;margin:0;min-width:0}
.vibe legend,.feedback legend{font-size:22px;font-weight:700;letter-spacing:-.02em;padding:0;float:left;width:100%;margin-bottom:16px}
.vibe legend .eyebrow{display:block;font-size:12px;margin-bottom:6px}
.feedback legend{font-size:18px}
.vibe-option,.vibe-skip,.scale label{position:relative}
.vibe-options{display:grid;gap:10px;clear:both}
.vibe-option input,.vibe-skip input,.scale input{position:absolute;opacity:0;width:1px;height:1px}
.vibe-option span{display:block;padding:16px 18px;border:2px solid var(--ink);border-radius:14px;font-weight:700;font-size:17px;cursor:pointer;background:#fff;transition:background .15s,transform .15s}
.vibe-option span:hover{background:var(--lilac)}
.vibe-option input:checked+span{background:var(--marigold);box-shadow:4px 4px 0 var(--ink);transform:translate(-2px,-2px)}
.vibe-option input:focus-visible+span,.vibe-skip input:focus-visible+span,.scale input:focus-visible+span{outline:3px solid var(--cobalt);outline-offset:3px}
.vibe-skip{display:inline-block;margin-top:12px;font-size:14px;color:var(--muted);cursor:pointer}
.vibe-skip span{text-decoration:underline}.vibe-skip input:checked+span{color:var(--ink);font-weight:700}
.vibe-final .checkbox{clear:both;margin-bottom:16px}
.vibe-progress{display:none;height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.vibe-progress span{display:block;height:100%;width:0;background:var(--cobalt);transition:width .25s}
.vibe.is-cards .vibe-progress{display:block}
.vibe.is-cards fieldset{min-height:340px}
.vibe-nav{display:flex;justify-content:space-between;align-items:center}
.scale{display:flex;flex-wrap:wrap;gap:6px;clear:both}
.scale label{flex:1 0 40px;max-width:56px}
.scale span{display:flex;align-items:center;justify-content:center;height:44px;border:2px solid var(--ink);border-radius:10px;font-weight:700;cursor:pointer;background:#fff}
.scale input:checked+span{background:var(--ink);color:#fff}
.scale-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:6px 0 0}
.meet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.knows-panel{margin-top:32px;padding-top:24px;border-top:2px solid var(--line)}
.knows-panel h3{font-size:16px;margin:20px 0 8px}
.knows-list{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:8px}
.knows-list li{display:flex;justify-content:space-between;gap:12px;font-size:14px;border-bottom:1px solid var(--line);padding-bottom:8px}
.knows-list span{color:var(--muted)}.knows-list b{text-align:right}
.feedback-prompt{border:2px solid var(--ink);border-radius:var(--radius);padding:18px;background:var(--marigold);margin-bottom:24px}
.trait-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0}
.trait-chips span{font-size:12px;font-weight:600;padding:3px 10px;border-radius:99px;background:var(--lilac)}
.trait-chips span.first{background:var(--marigold)}
.trait-chips small{width:100%;color:var(--muted);font-size:12px}
.mix-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.mix-col h3{font-size:16px}
.mix-nudges{font-size:14px;padding-left:18px;color:var(--ink)}
.mix-nudges li{margin-bottom:6px}

/* Party games (/games, games.js + site/games.js). Cards size from their container so one card can fill a phone. */
.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;margin-bottom:60px}
.deck-tile{display:flex;flex-direction:column;gap:14px;text-decoration:none;color:var(--ink);background:var(--card);border:2px solid var(--line);border-radius:var(--radius);padding:14px;transition:transform .15s,box-shadow .15s}
.deck-tile:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink);border-color:var(--ink)}
.deck-info{display:flex;flex-direction:column;gap:6px;padding:0 6px 6px}.deck-info b{font-size:20px}.deck-info small{color:var(--muted)}
.tt-cover{container-type:inline-size;background:var(--ink);color:#fff;border-radius:14px;padding:20px 22px;min-height:230px;display:flex;flex-direction:column}
.tt-cover.c-fuse{background:var(--cobalt)}.tt-cover.c-desi-global{background:var(--marigold);color:var(--ink)}.tt-cover.c-this-or-that{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.tt-cover.c-desi-global .tt-sub,.tt-cover.c-this-or-that .tt-sub,.tt-cover.c-desi-global .tt-formula,.tt-cover.c-this-or-that .tt-formula{color:var(--cobalt)}.tt-cover.c-desi-global .tt-tag,.tt-cover.c-this-or-that .tt-tag{color:var(--muted)}.tt-cover.c-desi-global .tt-title b{color:var(--cobalt)}
.tt-eyebrow{font-size:11px;font-size:3.4cqw;letter-spacing:.16em;text-transform:uppercase;font-weight:700;opacity:.8;margin:0}
.tt-title{font-size:76px;font-size:23cqw;line-height:.88;letter-spacing:-.05em;font-weight:800;margin:4cqw 0 2cqw}.tt-title b{color:var(--marigold)}
.tt-sub{font-size:36px;font-size:11cqw;color:var(--marigold);margin:0 0 2cqw;line-height:1}.tt-tag{font-size:20px;font-size:6cqw;color:var(--lilac);margin:0 0 auto}
.tt-formula{display:flex;align-items:center;gap:5px;gap:1.5cqw;color:var(--marigold)}.tt-formula svg{width:30px;width:9cqw;height:30px;height:9cqw}.tt-formula i{font-style:normal;font-weight:700;opacity:.7}
.games-cta{text-align:center;padding:48px 0}.games-cta p{max-width:520px;margin:12px auto 24px;color:var(--muted)}
.game-head{padding:32px 0 20px}.game-head h1{font-size:clamp(36px,6vw,64px);line-height:1;margin:10px 0}.game-head p{color:var(--muted);max-width:600px}
.game-setup{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:36px;align-items:start}
.setup-col h2{margin-top:0}.setup-col h3{margin:24px 0 10px;font-size:16px}
.setup-mode{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.setup-mode input,.chip-check input{position:absolute;opacity:0;width:1px;height:1px}
.setup-mode span,.chip-check span{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:2px solid var(--ink);border-radius:999px;font-weight:700;font-size:14px;cursor:pointer;background:#fff}
.setup-mode input:checked+span{background:var(--ink);color:#fff}.chip-check input:checked+span{background:var(--lilac)}.chip-check input:not(:checked)+span{opacity:.5;text-decoration:line-through}
.setup-mode input:focus-visible+span,.chip-check input:focus-visible+span{outline:3px solid var(--cobalt);outline-offset:3px}
.suit-picks{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.chip-check .dot,.game .dot{display:inline-block;width:12px;height:12px;border-radius:50%;border:1.5px solid var(--ink)}
.dot.s-marigold{background:var(--marigold)}.dot.s-cobalt{background:var(--cobalt)}.dot.s-white{background:#fff}.dot.s-ink{background:var(--ink)}.dot.s-wild{background:#fff;box-shadow:inset 0 0 0 3px var(--marigold)}
.name-add{display:flex;gap:8px}.name-add input{flex:1}
.name-chips{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.name-chips li{display:inline-flex;align-items:center;gap:4px;background:var(--marigold);border:2px solid var(--ink);border-radius:999px;padding:2px 4px 2px 14px;font-weight:700}
.name-chips .quiet{min-height:32px;padding:0 8px;text-decoration:none;font-size:18px;color:var(--ink)}
.stepper{display:flex;align-items:center;gap:16px}.stepper output{font-size:40px;font-weight:800;min-width:56px;text-align:center}.stepper button{width:56px;padding:0;font-size:24px}
.setup-rules{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);padding:16px}.setup-rules .tt-cover{max-width:320px}.setup-rules ol{padding-left:20px;font-size:15px}.setup-rules li{margin-bottom:6px}
.game-play{max-width:680px;margin:0 auto;text-align:center}
.game-turn{font-size:22px;font-weight:800;min-height:34px;margin:0 0 14px}
.game-stage{display:flex;justify-content:center;cursor:pointer;min-height:200px;-webkit-tap-highlight-color:transparent}
.game-stage>.tt-card{width:min(100%,380px)}
.game-controls{display:flex;gap:10px;justify-content:center;align-items:center;margin:22px 0 14px;flex-wrap:wrap}
.game-tools{display:flex;gap:14px;justify-content:center;align-items:center;flex-wrap:wrap;font-size:14px;color:var(--muted)}.game-tools .quiet{font-size:14px}
.game-end{background:var(--card);border:2px dashed var(--ink);border-radius:var(--radius);padding:40px 24px;width:min(100%,380px)}
.game-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:40px}.game-list-title{grid-column:1/-1;margin:0}
.game.is-live .game-cards{display:none}
/* One card */
.tt-card{container-type:inline-size;position:relative;aspect-ratio:63/88;border-radius:16px;display:flex;flex-direction:column;text-align:left;overflow:hidden;background:#fff;color:var(--ink);box-shadow:0 10px 30px rgba(20,22,59,.18);--accent:var(--cobalt);padding:24px 22px 20px}
.game-cards .tt-card{box-shadow:none;border:2px solid var(--line)}
.tt-head{display:flex;justify-content:space-between;align-items:center;margin:0;font-size:12px;font-size:3.6cqw;letter-spacing:.14em;text-transform:uppercase;font-weight:800;gap:7px;gap:2cqw}
.tt-head>span:first-child{display:flex;align-items:center;gap:7px;gap:2cqw}.tt-head svg{width:30px;width:9cqw;height:30px;height:9cqw;color:var(--accent)}
.tt-head .tt-formula{gap:3px;gap:1cqw;color:var(--accent)}.tt-head .tt-formula svg{width:25px;width:7.5cqw;height:25px;height:7.5cqw}
.tt-text,.tt-a,.tt-b{font-weight:800;letter-spacing:-.02em;line-height:1.08;margin:9cqw 0 auto}
.tt-xxl{font-size:40px;font-size:12cqw}.tt-xl{font-size:34px;font-size:10.4cqw}.tt-l{font-size:29px;font-size:8.9cqw}.tt-m{font-size:26px;font-size:7.8cqw}.tt-s{font-size:22px;font-size:6.8cqw}
.tt-body{font-size:18px;font-size:5.6cqw;line-height:1.35;margin:4cqw 0 auto}
.tt-foot{margin:0;font-size:16px;font-size:4.8cqw}.tt-foot em{font-family:var(--serif)}
.tt-mark{position:absolute;right:6cqw;bottom:13cqw;opacity:.16;line-height:0}.tt-mark svg{width:99px;width:30cqw;height:99px;height:30cqw}
.tt-plan{font-family:var(--serif);font-style:italic;font-size:17px;font-size:5.2cqw;margin:4cqw 0 0;opacity:.85}.tt-plan b{font-family:var(--sans);font-style:normal;font-size:12px;font-size:3.6cqw;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.tt-card.s-marigold{background:var(--marigold);--accent:var(--ink)}
.tt-card.s-cobalt{background:var(--cobalt);color:#fff;--accent:var(--marigold)}.tt-card.s-cobalt .tt-mark,.tt-card.s-ink .tt-mark{opacity:.22}
.tt-card.s-white{--accent:var(--cobalt)}.tt-card.s-white .tt-head{color:var(--cobalt)}
.tt-card.s-ink{background:var(--ink);color:#fff;--accent:var(--marigold)}
.tt-card.s-wild{box-shadow:inset 0 0 0 4cqw var(--marigold),0 10px 30px rgba(20,22,59,.18);padding:32px 30px}
/* This or that: two halves with "or" on the seam */
.tt-card.k-duel{padding:0}.k-duel .tt-head{padding:24px 22px 0}
.k-duel .tt-a,.k-duel .tt-b{margin:0;flex:1;display:flex;align-items:center;padding:0 22px}
.k-duel .tt-b{background:var(--ink);color:#fff}.k-duel.s-cobalt .tt-b,.k-duel.s-ink .tt-b{background:var(--marigold);color:var(--ink)}.k-duel.s-white .tt-b{background:var(--cobalt)}
.k-duel .tt-or{align-self:center;font-family:var(--serif);font-style:italic;font-size:26px;font-size:8cqw;width:56px;width:17cqw;height:56px;height:17cqw;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--ink);border:3px solid var(--ink);margin:-8.5cqw 0;z-index:1;position:relative}
.k-duel .tt-foot{padding:0 22px 20px;background:var(--ink);color:#fff}.k-duel.s-cobalt .tt-foot,.k-duel.s-ink .tt-foot{background:var(--marigold);color:var(--ink)}.k-duel.s-white .tt-foot{background:var(--cobalt)}
/* Fuse: a topic and a twist side by side, joined by a "+" */
.tt-pair{display:flex;align-items:center;width:100%;max-width:560px}
.tt-pair .tt-card{flex:1;aspect-ratio:auto;min-height:300px}.tt-pair .tt-card:first-child{border-radius:16px 0 0 16px}.tt-pair .tt-card:last-child{border-radius:0 16px 16px 0}
.tt-join{flex:none;width:44px;height:44px;margin:0 -22px;z-index:1;border-radius:50%;background:#fff;border:3px solid var(--ink);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px}
@media(max-width:640px){
  .game-setup{grid-template-columns:1fr}.setup-rules .tt-cover{display:none}
  .tt-pair{flex-direction:column}.tt-pair .tt-card{width:100%;min-height:190px}.tt-pair .tt-card:first-child{border-radius:16px 16px 0 0}.tt-pair .tt-card:last-child{border-radius:0 0 16px 16px}.tt-join{margin:-22px 0}
  .tt-pair .tt-text{font-size:33px;font-size:10cqw;margin-top:5cqw}
  .game-head{padding-top:18px}
}
@media(prefers-reduced-motion:reduce){.deck-tile{transition:none}}
.tt-sub em,.tt-tag em,.tt-foot em,.tt-plan{font-family:var(--serif);font-style:italic;font-weight:400}.tt-cover .tt-formula{margin-top:14px}
.game-play,.game-setup{scroll-margin-top:84px}
.tt-pair .tt-mark{display:none}

/* Game buttons: chunky pills with an offset ink shadow that press down when tapped. */
.gbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 20px;border:2.5px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font:700 15px/1 var(--sans);text-decoration:none;cursor:pointer;box-shadow:3px 3px 0 var(--ink);transition:transform .12s,box-shadow .12s,background .15s;-webkit-tap-highlight-color:transparent;white-space:nowrap}
.gbtn:hover{background:var(--lilac);color:var(--ink);border-color:var(--ink);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}
.gbtn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.gbtn:focus-visible{outline:3px solid var(--cobalt);outline-offset:3px}
.gbtn:disabled{opacity:.35;cursor:default;transform:none;box-shadow:none}.gbtn:disabled:hover{background:#fff}
.gbtn .gi{flex:none;width:20px;height:20px}
.gbtn-primary{background:var(--marigold)}.gbtn-primary:hover{background:#ffc94f}
.gbtn-cobalt{background:var(--cobalt);color:#fff}.gbtn-cobalt:hover{background:var(--cobalt-deep);color:#fff}
.gbtn-ink{background:var(--ink);color:#fff;box-shadow:3px 3px 0 var(--marigold)}.gbtn-ink:hover{background:var(--cobalt);color:#fff;box-shadow:4px 4px 0 var(--marigold)}.gbtn-ink:active{box-shadow:1px 1px 0 var(--marigold)}
.gbtn-lilac{background:var(--lilac)}.gbtn-lilac:hover{background:#d3d8ff}
.gbtn-lg{min-height:60px;padding:14px 30px;font-size:18px;box-shadow:5px 5px 0 var(--ink)}.gbtn-lg:hover{box-shadow:6px 6px 0 var(--ink)}.gbtn-lg:active{box-shadow:1px 1px 0 var(--ink)}.gbtn-lg .gi{width:22px;height:22px}
.gbtn-sm{min-height:38px;padding:7px 14px;font-size:13px;box-shadow:2px 2px 0 var(--ink)}.gbtn-sm .gi{width:16px;height:16px}.gbtn-sm:hover{box-shadow:3px 3px 0 var(--ink)}
.gbtn-round{width:56px;min-height:56px;padding:0}.gbtn-round .gi{width:24px;height:24px}
.gbtn-block{width:100%;margin-top:28px}
.deck-tile .gbtn{align-self:flex-start;margin-top:6px}.deck-tile:hover .gbtn-ink{background:var(--cobalt)}
.game-head .gbtn{margin-bottom:6px}
.game-controls .gbtn-lg{flex:1;max-width:300px}
.game-tools{gap:10px;margin-top:4px}
.left-badge{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:13px;color:var(--ink);background:var(--marigold);border-radius:999px;padding:8px 14px}.left-badge .gi{width:16px;height:16px}
/* Setup: a segmented turn picker, round steppers, chunky name and suit chips. */
.setup-mode.segmented{display:inline-flex;gap:0;padding:4px;border:2.5px solid var(--ink);border-radius:999px;background:#fff;box-shadow:3px 3px 0 var(--ink);flex-wrap:nowrap;max-width:100%}
.segmented span{border:0;padding:10px 16px;font-size:14px;background:transparent;transition:background .15s,color .15s}
.segmented input:checked+span{background:var(--ink);color:#fff}
.segmented label:not(:has(input:checked)) span:hover{background:var(--lilac)}
.stepper output{font-size:44px;min-width:64px}
.name-chips li{box-shadow:2px 2px 0 var(--ink);padding:4px 4px 4px 14px}
.chip-x{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-height:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:18px;font-weight:800;box-shadow:none}.chip-x:hover{background:var(--ink);color:#fff}
.chip-check span{box-shadow:2px 2px 0 var(--ink);transition:transform .12s,box-shadow .12s}.chip-check span:active{transform:translate(2px,2px);box-shadow:none}
.chip-check input:not(:checked)+span{opacity:1;text-decoration:none;border-style:dashed;box-shadow:none;color:var(--muted);background:transparent}
.chip-check input:checked+span{background:#fff}
.name-add .gbtn{flex:none}
@media(max-width:640px){
  .game-controls{gap:8px}.game-controls .gbtn-lg{order:-1;flex-basis:100%;max-width:none}
  .segmented span{padding:9px 12px;font-size:13px}
  .game-tools .gbtn-sm{padding:7px 11px}
}
@media(prefers-reduced-motion:reduce){.gbtn,.chip-check span{transition:none}}

/* Plan pages (/plans/<id>) */
.plan-card h3 a{color:inherit;text-decoration:none}
.plan-card h3 a:hover{text-decoration:underline;text-decoration-thickness:2px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:28px 0 0;margin:0;font-size:13px;font-weight:700;color:var(--muted)}
.crumbs li+li::before{content:'/';margin-right:6px;opacity:.5}
.crumbs a{color:inherit}
.plan-detail{padding-top:24px}
.plan-detail h2{font-size:28px;margin:36px 0 14px}
.plan-detail .plan-steps{font-size:17px;gap:12px}
.plan-who{padding-left:20px;display:grid;gap:8px;color:var(--muted);max-width:620px}
.plan-facts{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;margin:0 0 22px;font-size:15px}
.plan-facts dt{font-weight:800}
.plan-facts dd{margin:0}
.plan-detail .booking-panel .button{margin-bottom:10px}
/* /host application: one question at a time (host-apply.js adds .is-stepped) and the voice note. */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.host-step{display:grid;gap:12px}.host-step .form-note{margin:-4px 0 0}
.host-q{font-size:clamp(22px,3vw,30px);font-weight:800;letter-spacing:-.035em;line-height:1.1;margin:0}
.host-q small{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);vertical-align:middle;margin-left:6px}
.is-stepped .host-step{display:none}.is-stepped .host-step.is-current{display:grid;animation:host-step-in .25s ease-out}
@keyframes host-step-in{from{opacity:0;transform:translateY(8px)}}
.host-progress{display:grid;gap:8px}.host-count{margin:0;font-size:13px;font-weight:700;color:var(--muted)}
.host-track{height:6px;border-radius:999px;background:var(--lilac);overflow:hidden}.host-track span{display:block;height:100%;width:0;background:var(--cobalt);transition:width .25s}
.host-nav{display:flex;justify-content:space-between;gap:12px}.host-nav button:only-child,.host-nav [hidden]+button{margin-left:auto}
.voice-note{border:2px solid var(--line);border-radius:20px;padding:14px;display:grid;gap:10px;background:var(--paper);transition:border-color .2s,background .2s}
.voice-note[data-state=recording]{border-color:var(--danger);background:#fff5f3}
.voice-note[data-state=ready],.voice-note[data-state=playing]{border-color:var(--cobalt);background:#fff}
.voice-row{display:flex;align-items:center;gap:14px;min-height:64px}
.voice-btn{flex:none;width:58px;height:58px;min-height:0;padding:0;border-radius:50%;border:2px solid var(--ink);background:var(--marigold);color:var(--ink);box-shadow:3px 3px 0 var(--ink);display:grid;place-items:center;position:relative}
.voice-btn:hover{background:#ffc94f;border-color:var(--ink)}
.voice-btn svg{width:26px;height:26px;fill:currentColor;display:none}
.voice-note[data-state=idle] .i-mic,.voice-note[data-state=recording] .i-stop,.voice-note[data-state=ready] .i-play,.voice-note[data-state=playing] .i-pause{display:block}
.voice-note[data-state=recording] .voice-btn{background:var(--danger);border-color:var(--danger);color:#fff;box-shadow:none;animation:voice-pulse 1.4s ease-out infinite}
.voice-note[data-state=ready] .voice-btn,.voice-note[data-state=playing] .voice-btn{background:var(--cobalt);border-color:var(--ink);color:#fff}
.voice-note[data-state=saving] .voice-btn{background:var(--lilac);box-shadow:none;pointer-events:none}
.voice-spin{display:none;width:24px;height:24px;border-radius:50%;border:3px solid var(--cobalt);border-right-color:transparent;animation:voice-spin .8s linear infinite}
.voice-note[data-state=saving] .voice-spin{display:block}
@keyframes voice-pulse{0%{box-shadow:0 0 0 0 #c2361f66}100%{box-shadow:0 0 0 14px #c2361f00}}
@keyframes voice-spin{to{transform:rotate(360deg)}}
.voice-middle{flex:1;min-width:0;position:relative;height:48px;display:flex;align-items:center}
.voice-copy{display:grid;gap:2px;font-size:14px;line-height:1.3}.voice-copy b{font-size:16px}.voice-copy span{color:var(--muted)}
.voice-wave{position:absolute;inset:0;width:100%;height:100%;display:none}
.voice-note:not([data-state=idle]) .voice-copy{display:none}.voice-note:not([data-state=idle]) .voice-wave{display:block}
.voice-note[data-state=ready] .voice-wave,.voice-note[data-state=playing] .voice-wave{cursor:pointer}
.voice-time{flex:none;font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;min-width:4.5ch;text-align:right}
.voice-note[data-state=recording] .voice-time{color:var(--danger)}
.voice-foot{display:flex;justify-content:space-between;align-items:center;gap:8px 16px;flex-wrap:wrap;padding:0 4px}
.voice-status{margin:0;font-size:13px;color:var(--muted)}
.voice-actions{display:none;gap:16px}.voice-note[data-state=ready] .voice-actions,.voice-note[data-state=playing] .voice-actions{display:flex}
.voice-link{min-height:0;padding:0;border:0;background:none;color:var(--ink);font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.voice-link:hover{background:none;color:var(--cobalt)}.voice-danger{color:var(--danger)}
@media(prefers-reduced-motion:reduce){.voice-note[data-state=recording] .voice-btn,.voice-spin{animation:none}}
@media(max-width:640px){.voice-row{gap:10px}.voice-btn{width:52px;height:52px}.voice-copy span{font-size:13px}}
.voice-mini{max-width:460px;padding:10px 12px;margin:2px 0 12px}.voice-mini .voice-row{min-height:48px}.voice-mini .voice-btn{width:44px;height:44px;box-shadow:2px 2px 0 var(--ink)}.voice-mini .voice-btn svg{width:20px;height:20px}.voice-mini .voice-middle{height:36px}
@media(prefers-reduced-motion:reduce){.is-stepped .host-step.is-current{animation:none}.host-track span{transition:none}}
@media(max-width:640px){.host-nav button{flex:1}}

/* /me/profile: the profile studio. Levels, badges, photos, voice intro, words, prompts, friends. */
.pts{flex:none;font-size:13px;font-weight:800;background:var(--marigold);border:2px solid var(--ink);border-radius:999px;padding:4px 12px}
.pts.is-done{background:var(--cobalt);border-color:var(--cobalt);color:#fff}
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.photo-slot{position:relative;aspect-ratio:3/4;border-radius:18px;overflow:hidden;margin:0}
.photo-slot.is-empty{border:2px dashed var(--line);display:grid;place-content:center;justify-items:center;gap:4px;color:var(--muted);font-size:13px;font-weight:700;cursor:pointer;background:var(--paper)}
.photo-slot.is-empty input{position:absolute;inset:0;opacity:0;cursor:pointer}.photo-slot.is-empty input:disabled{cursor:default}
.photo-slot.is-next{border-color:var(--cobalt);color:var(--cobalt);background:var(--lilac)}.photo-slot.is-empty:not(.is-next){opacity:.6}
.photo-slot:focus-within{outline:3px solid var(--cobalt);outline-offset:2px}
.photo-plus{font-size:36px;line-height:1;font-weight:400}
.photo-slot.is-filled{border:2px solid var(--ink)}.photo-slot img{width:100%;height:100%;object-fit:cover;display:block}
.photo-main{position:absolute;top:8px;left:8px;background:var(--marigold);border:2px solid var(--ink);border-radius:999px;padding:2px 10px;font-size:11px;font-weight:800}
.photo-slot figcaption{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;gap:8px;padding:28px 10px 10px;background:linear-gradient(transparent,#14163bcc)}
.photo-slot figcaption .voice-link{color:#fff}.photo-slot figcaption .voice-danger{color:#ffd2c9;margin-left:auto}
.photo-slot.is-busy{opacity:.6;pointer-events:none}.photo-slot.is-busy .photo-plus{animation:voice-spin 1s linear infinite}
.word-chips{display:flex;flex-wrap:wrap;gap:8px}
.prompt-card{display:grid;gap:8px;border:2px solid var(--line);border-radius:16px;padding:12px;background:var(--paper)}
.prompt-card select{font-weight:700}
.word-cloud{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.word-cloud li{background:var(--lilac);border-radius:999px;padding:6px 14px;font-weight:800;color:var(--cobalt)}
.word-cloud .n-2{font-size:18px}.word-cloud .n-3{font-size:21px}.word-cloud .n-4,.word-cloud .n-5{font-size:24px;background:var(--marigold);color:var(--ink)}
.share-link{display:flex;gap:8px;flex-wrap:wrap}.share-link input{flex:1 1 220px;font-size:13px}
.profile-card{margin-bottom:36px}.profile-card h3{margin-bottom:10px}.profile-card .button{margin:6px 14px 0 0}
.profile-meter{height:10px;border-radius:999px;background:var(--lilac);overflow:hidden;margin-bottom:10px}.profile-meter span{display:block;height:100%;background:var(--cobalt)}
:is(.profile-meter,.invite-bar) .w-0{width:0%}:is(.profile-meter,.invite-bar) .w-5{width:5%}:is(.profile-meter,.invite-bar) .w-10{width:10%}:is(.profile-meter,.invite-bar) .w-15{width:15%}:is(.profile-meter,.invite-bar) .w-20{width:20%}:is(.profile-meter,.invite-bar) .w-25{width:25%}:is(.profile-meter,.invite-bar) .w-30{width:30%}:is(.profile-meter,.invite-bar) .w-35{width:35%}:is(.profile-meter,.invite-bar) .w-40{width:40%}:is(.profile-meter,.invite-bar) .w-45{width:45%}:is(.profile-meter,.invite-bar) .w-50{width:50%}:is(.profile-meter,.invite-bar) .w-55{width:55%}:is(.profile-meter,.invite-bar) .w-60{width:60%}:is(.profile-meter,.invite-bar) .w-65{width:65%}:is(.profile-meter,.invite-bar) .w-70{width:70%}:is(.profile-meter,.invite-bar) .w-75{width:75%}:is(.profile-meter,.invite-bar) .w-80{width:80%}:is(.profile-meter,.invite-bar) .w-85{width:85%}:is(.profile-meter,.invite-bar) .w-90{width:90%}:is(.profile-meter,.invite-bar) .w-95{width:95%}:is(.profile-meter,.invite-bar) .w-100{width:100%}
.level-chip{display:inline-block;font-size:12px;font-weight:800;border-radius:999px;padding:3px 10px;background:var(--lilac);color:var(--ink)}
.level-chip.is-complete{background:var(--cobalt);color:#fff}
.door-face{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--ink);float:right;margin-left:12px}
.describe-panel h1 em,.describe-done h1 em{color:var(--cobalt)}.describe-panel form{display:grid;gap:18px}

/* Popups: a dismissible toast (status messages) and a confirm dialog. Both close with ✕ or Esc. */
#status:not(:empty){position:static;transform:none;background:none;padding:0;box-shadow:none;max-width:none;width:auto;border-radius:0;color:inherit;font-weight:600}
.toast{position:fixed;left:50%;bottom:24px;z-index:40;display:flex;align-items:center;gap:10px;max-width:calc(100% - 32px);width:max-content;padding:12px 10px 12px 20px;background:var(--ink);color:#fff;border:2.5px solid var(--ink);border-radius:16px;box-shadow:4px 4px 0 var(--marigold);transform:translate(-50%,24px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.toast.is-open{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast.is-error{background:var(--danger);border-color:var(--ink);box-shadow:4px 4px 0 var(--ink)}
.toast #status{margin:0;font-size:15px;line-height:1.35}
.toast-x{flex:none;width:34px;height:34px;min-height:0;padding:0;border:2px solid rgba(255,255,255,.55);border-radius:50%;background:transparent;color:#fff;font-size:15px;line-height:1}
.toast-x:hover{background:#fff;color:var(--ink);border-color:#fff}
@media(max-width:640px){.toast{bottom:90px}}
dialog.sheet{width:min(440px,calc(100% - 32px));padding:28px 24px 22px;border:2.5px solid var(--ink);border-radius:22px;background:var(--card);color:var(--ink);box-shadow:6px 6px 0 var(--ink)}
dialog.sheet::backdrop{background:rgba(20,22,59,.45);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
dialog.sheet h2{font-size:24px;margin:0 36px 8px 0;letter-spacing:-.02em}
dialog.sheet p{color:var(--muted);margin:0 0 20px}
.sheet-x{position:absolute;top:14px;right:14px;width:38px;height:38px;min-height:0;padding:0;border:2px solid var(--ink);border-radius:50%;background:#fff;color:var(--ink);font-size:15px;box-shadow:2px 2px 0 var(--ink)}
.sheet-x:hover{background:var(--lilac);color:var(--ink)}
.sheet-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.gbtn-danger{background:var(--danger);color:#fff}.gbtn-danger:hover{background:#a92c18;color:#fff}
@media(max-width:640px){dialog.sheet{margin:auto auto 16px}.sheet-actions .gbtn{flex:1}}
@media(prefers-reduced-motion:reduce){.toast{transition:none}}
.deck-tile{position:relative}.deck-badge{position:absolute;top:-12px;right:16px;z-index:1;background:var(--marigold);color:var(--ink);border:2.5px solid var(--ink);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:800;letter-spacing:.04em;box-shadow:2px 2px 0 var(--ink);transform:rotate(3deg)}
.tt-cover.c-diwali{background:linear-gradient(160deg,#2a1a5e,var(--ink) 70%)}.tt-cover.c-diwali .tt-title b{color:#ffd166}
.tt-cover.c-house-party{background:var(--marigold);color:var(--ink)}.tt-cover.c-house-party .tt-sub,.tt-cover.c-house-party .tt-formula,.tt-cover.c-house-party .tt-title b{color:var(--cobalt)}.tt-cover.c-house-party .tt-tag{color:var(--muted)}

/* Deck covers v2: the deck's own name is the headline, and each cover hints at how the deck plays. */
.tt-cover{position:relative;overflow:hidden;min-height:270px;padding:20px 22px 22px;background:var(--ink);color:#fff;--accent:var(--marigold);box-shadow:inset 0 0 0 2.5px var(--ink)}
.tt-cover .tt-eyebrow{font-size:12px;font-size:3.6cqw;opacity:.85}
.tt-cover .tt-title{line-height:.9;letter-spacing:-.045em;font-weight:800;margin:3cqw 0 3cqw;max-width:92%}
.tt-cover .tt-title.fit-xl{font-size:76px;font-size:25cqw}.tt-cover .tt-title.fit-l{font-size:60px;font-size:19.5cqw}.tt-cover .tt-title.fit-m{font-size:54px;font-size:17cqw}
.tt-cover .tt-title b{color:var(--accent)}
.tt-cover .tt-tag{font-size:17px;font-size:5.6cqw;color:inherit;opacity:.85;margin:0}
.tt-art{display:flex;align-items:center;gap:2.5cqw;margin-top:auto;padding-top:14px;color:var(--accent)}
.tt-art svg{width:42px;height:42px;width:13cqw;height:13cqw}.tt-art i{font-style:normal;font-weight:800;font-size:24px;font-size:7cqw;opacity:.8}
/* Table Talk: the original, ink with one big speech bubble */
.tt-cover.c-table-talk .tt-art svg{width:64px;height:64px;width:20cqw;height:20cqw}.tt-cover.c-table-talk .tt-art{justify-content:flex-end}
/* Diwali Night: deep violet, gold title, a row of glowing diyas */
.tt-cover.c-diwali{background:radial-gradient(circle at 80% 0,#5b2c9e 0,transparent 55%),linear-gradient(170deg,#311a66,#14163b 80%);--accent:#ffd166}
.tt-cover.c-diwali .tt-title{color:#ffd166}.tt-cover.c-diwali .tt-art{justify-content:space-between;filter:drop-shadow(0 0 6px rgba(255,183,27,.75))}
/* House Party: marigold with confetti */
.tt-cover.c-house-party{background-color:var(--marigold);color:var(--ink);--accent:var(--cobalt);background-image:radial-gradient(circle at 88% 14%,var(--cobalt) 0 6px,transparent 7px),radial-gradient(circle at 72% 30%,#fff 0 4px,transparent 5px),radial-gradient(circle at 93% 46%,var(--ink) 0 4px,transparent 5px),radial-gradient(circle at 64% 82%,var(--cobalt) 0 5px,transparent 6px),radial-gradient(circle at 82% 70%,#fff 0 6px,transparent 7px),radial-gradient(circle at 46% 92%,var(--ink) 0 3px,transparent 4px)}
.tt-cover.c-house-party .tt-art{color:var(--ink)}
/* Fuse: two half cards joined by a plus */
.tt-cover.c-fuse{background:var(--cobalt);--accent:var(--marigold)}
.tt-cover.c-fuse .tt-art{gap:0;align-items:stretch}
.tt-cover .half{flex:1;display:flex;align-items:center;padding:12px 14px;font-weight:800;font-size:16px;font-size:5cqw;border:2.5px solid var(--ink);min-height:62px}
.tt-cover .half-a{background:#fff;color:var(--cobalt);border-radius:12px 0 0 12px;border-right:0}.tt-cover .half-b{background:var(--marigold);color:var(--ink);border-radius:0 12px 12px 0;border-left:0;justify-content:flex-end}
.tt-cover .tt-plus{flex:none;align-self:center;width:38px;height:38px;margin:0 -19px;z-index:1;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px}
/* Desi × Global: lilac with the food, film and metro glyphs */
.tt-cover.c-desi-global{background:var(--lilac);color:var(--ink);--accent:var(--cobalt)}.tt-cover.c-desi-global .tt-art i{color:var(--marigold);opacity:1}
/* This or That: marigold over ink, "or" on the seam */
.tt-cover.c-this-or-that{background:linear-gradient(180deg,var(--marigold) 0 60%,var(--ink) 60%);color:var(--ink);--accent:var(--cobalt)}
.tt-cover.c-this-or-that .tt-tag{position:absolute;left:22px;right:22px;bottom:22px;color:#fff;opacity:.9}
.tt-cover.c-this-or-that .tt-art{position:absolute;left:0;right:0;top:60%;margin:0;padding:0;justify-content:center;transform:translateY(-50%)}
.tt-cover .tt-or{width:58px;height:58px;border-radius:50%;background:#fff;color:var(--ink);border:3px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;font-size:28px}
/* On the Plan: ink with the four plans as badges */
.tt-cover.c-plans{--accent:var(--marigold)}.tt-cover .dot-glyph{display:flex;align-items:center;justify-content:center;width:50px;height:50px;width:16cqw;height:16cqw;border-radius:50%;background:var(--marigold);color:var(--ink)}.tt-cover .dot-glyph svg{width:62%;height:62%}
.game-head h1 em{color:var(--cobalt)}
.deck-tile .tt-cover{height:280px;min-height:0}
@media(max-width:640px){
  .deck-tile .tt-cover{height:auto;aspect-ratio:4/5}
  .deck-grid{grid-template-columns:1fr 1fr;gap:16px 12px}
  .deck-tile{padding:6px;gap:8px;border-radius:16px}
  .deck-info{padding:0 4px 4px;gap:4px}.deck-info b{font-size:15px}.deck-info>span:not(.gbtn),.deck-info small{display:none}
  .deck-info .gbtn{min-height:34px;padding:6px 12px;font-size:12px;align-self:stretch}
  .tt-cover{min-height:0;padding:12px 12px 14px;border-radius:11px}
  .tt-cover .tt-tag{display:none}
  .tt-cover .half{min-height:44px;padding:6px 8px;font-size:0}.tt-cover .tt-plus{width:28px;height:28px;margin:0 -14px;font-size:16px}
  .tt-cover .tt-or{width:42px;height:42px;font-size:20px}
  .deck-badge{font-size:10px;padding:3px 8px;right:8px}
}

/* Party modes (/games/<mode>, party.js + site/party/*.js) */
.mode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:60px}
.mode-tile{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--card);border:2.5px solid var(--ink);border-radius:18px;text-decoration:none;color:var(--ink);box-shadow:3px 3px 0 var(--ink);transition:transform .12s,box-shadow .12s}
.mode-tile:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}.mode-tile:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.mode-tile>.gi{margin-left:auto;flex:none;width:22px;height:22px}
.mode-icon{flex:none;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;border:2.5px solid var(--ink);background:var(--marigold)}.mode-icon svg{width:34px;height:34px}
.mode-text{display:flex;flex-direction:column;gap:2px;min-width:0}.mode-text b{font-size:18px}.mode-text span{font-size:14px;color:var(--muted)}.mode-text small{font-size:12px;font-weight:700;color:var(--cobalt)}
.m-heads-up .mode-icon,.mode-hero.m-heads-up{background:var(--cobalt);color:#fff}.m-secret-vote .mode-icon,.mode-hero.m-secret-vote{background:var(--lilac)}.m-mafia .mode-icon,.mode-hero.m-mafia{background:var(--ink);color:var(--marigold)}
.m-two-truths .mode-icon,.mode-hero.m-two-truths{background:#fff}.m-story-chain .mode-icon,.mode-hero.m-story-chain{background:var(--cobalt);color:#fff}.m-spin .mode-icon,.mode-hero.m-spin{background:var(--lilac)}.m-quiz .mode-icon,.mode-hero.m-quiz{background:var(--ink);color:#fff}
.mode-hero{display:flex;align-items:center;gap:14px;padding:18px;border-radius:16px;border:2.5px solid var(--ink);background:var(--marigold);color:var(--ink)}.mode-hero svg{width:56px;height:56px;flex:none}.mode-hero p{margin:0;font-family:var(--serif);font-style:italic;font-size:20px}
.pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.pack input{position:absolute;opacity:0;width:1px;height:1px}.pack{position:relative}
.pack span{display:flex;flex-direction:column;gap:2px;padding:14px;border:2.5px solid var(--ink);border-radius:14px;background:#fff;cursor:pointer;box-shadow:2px 2px 0 var(--ink)}.pack small{color:var(--muted)}
.pack input:checked+span{background:var(--marigold);box-shadow:4px 4px 0 var(--ink);transform:translate(-2px,-2px)}.pack input:focus-visible+span{outline:3px solid var(--cobalt);outline-offset:3px}
.party-play{max-width:640px}
.party-card{background:var(--card);border:2.5px solid var(--ink);border-radius:22px;padding:28px 22px;box-shadow:5px 5px 0 var(--ink);text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.party-card p{margin:0;color:var(--muted)}.party-card .eyebrow{color:var(--cobalt)}
.party-big{font-size:clamp(30px,7vw,48px);line-height:1.02;letter-spacing:-.03em;margin:0}
.party-huge{font-size:clamp(72px,22vw,140px);line-height:1;margin:0;letter-spacing:-.05em}
.party-card .topic{font-size:clamp(24px,5.5vw,36px);line-height:1.12;margin:4px 0;letter-spacing:-.02em}
.party-controls{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:6px;width:100%}
.party-tools{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.handoff{background:var(--ink);color:#fff;border-radius:22px;padding:44px 22px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:5px 5px 0 var(--marigold)}
.handoff h2{font-size:clamp(40px,10vw,64px);margin:0;color:var(--marigold);letter-spacing:-.04em}.handoff p{margin:0;color:var(--lilac)}
/* Timer ring: --progress goes 1 → 0 */
.ring{--progress:1;width:170px;height:170px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--cobalt) calc(var(--progress)*360deg),var(--lilac) 0);position:relative;margin:8px 0}
.ring::before{content:'';position:absolute;inset:12px;border-radius:50%;background:var(--card)}
.ring-num{position:relative;font-size:52px;font-weight:800;letter-spacing:-.04em}
.ring.over{background:var(--danger)}.ring.over .ring-num{font-size:34px}
.ring.buzzed{animation:buzz .4s}@keyframes buzz{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.ring-sm{width:86px;height:86px}.ring-sm::before{inset:8px}.ring-sm .ring-num{font-size:26px}
/* Heads Up: full-screen halves you can tap, the word huge in the middle */
.party.is-playing .heads-screen{position:fixed;inset:0;z-index:60;display:grid;grid-template-columns:1fr 1fr;background:var(--ink)}
.heads-half{min-height:100%;border:0;border-radius:0;font-size:18px;font-weight:800;color:#fff;opacity:.9;align-items:flex-end;padding-bottom:28px}
.heads-half.pass{background:#2a2d5e}.heads-half.got{background:var(--cobalt)}.heads-half:hover{background:inherit}
.heads-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;pointer-events:none;padding:20px}
.heads-word{font-size:clamp(40px,11vw,96px);line-height:1;color:#fff;text-align:center;margin:0;letter-spacing:-.03em}
.heads-flash{position:absolute;inset:0;display:none;align-items:center;justify-content:center;font-size:64px;font-weight:800;color:var(--ink);pointer-events:none}
.heads-flash.is-got{display:flex;background:var(--marigold)}.heads-flash.is-pass{display:flex;background:var(--lilac)}
.heads-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.heads-list li{padding:4px 10px;border-radius:99px;font-size:14px;font-weight:700;background:var(--lilac)}.heads-list li.is-got{background:var(--marigold)}
/* Votes and scores */
.vote-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;width:100%}
.vote-btn[aria-pressed=true]{background:var(--marigold)}
.vote-bars,.score-table{list-style:none;padding:0;margin:6px 0;width:100%;display:grid;gap:8px;text-align:left}
.vote-bars li{display:grid;grid-template-columns:minmax(70px,auto) 1fr auto;gap:10px;align-items:center}
.vote-bars .bar{--w:0;height:16px;border-radius:99px;background:var(--lilac);position:relative;overflow:hidden}
.vote-bars .bar::after{content:'';position:absolute;inset:0;width:calc(var(--w)*100%);background:var(--cobalt);border-radius:inherit;animation:grow .8s ease-out}
.vote-bars li.is-top .bar::after{background:var(--marigold)}@keyframes grow{from{width:0}}
.score-table li{display:flex;justify-content:space-between;padding:12px 16px;border:2px solid var(--line);border-radius:14px;font-size:18px}.score-table li.is-top{border-color:var(--ink);background:var(--marigold)}
/* Mafia */
.role-holder{position:relative;width:100%;min-height:200px}
.role-card{visibility:hidden;padding:22px;border-radius:18px;background:var(--ink);color:#fff;display:flex;flex-direction:column;gap:8px;align-items:center}.role-card p{color:var(--lilac)}.role-card h2{color:var(--marigold)}
.role-holder.is-open .role-card{visibility:visible}.role-holder.is-open .role-cover{opacity:0}
.role-cover{position:absolute;inset:0;border-radius:18px;background:var(--lilac);color:var(--ink);border:2.5px dashed var(--ink);font-size:18px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}
.peek{width:100%;text-align:left;margin-top:8px}.peek summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--muted)}
.roles-list,.alive-list{list-style:none;padding:0;margin:6px 0;width:100%;display:grid;gap:6px;text-align:left}
.alive-list li{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:2px solid var(--line);border-radius:12px;font-weight:700}
.roles-list li.is-out,.alive-list li.is-out{opacity:.45;text-decoration:line-through}
.narrate .topic{font-size:clamp(26px,6vw,40px)}
/* Two truths, story chain */
.truths-form{display:grid;gap:12px;width:100%;text-align:left}
.truths-list{list-style:none;counter-reset:t;padding:0;margin:4px 0;width:100%;display:grid;gap:10px;text-align:left}
.truths-list li{counter-increment:t;padding:14px 16px 14px 52px;border:2.5px solid var(--ink);border-radius:14px;font-weight:700;font-size:18px;position:relative;background:#fff}
.truths-list li::before{content:counter(t);position:absolute;left:14px;top:12px;width:26px;height:26px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px}
.truths-list li.is-lie{background:var(--danger);color:#fff}.truths-list li.is-true{background:var(--lilac)}
.story-prev{margin:0;padding:14px 16px;border-left:5px solid var(--marigold);background:var(--lilac);border-radius:10px;font-family:var(--serif);font-style:italic;font-size:20px}
.story-custom{width:100%}
.story-full{text-align:left;padding-left:22px;margin:4px 0;display:grid;gap:10px;font-size:18px}.story-full small{display:block;color:var(--muted);font-size:12px;font-weight:700}
/* Spin */
.spin-dial{--size:min(78vw,320px);width:var(--size);height:var(--size);border-radius:50%;border:3px solid var(--ink);background:radial-gradient(circle,#fff 0 30%,var(--lilac) 31%);position:relative;box-shadow:4px 4px 0 var(--ink)}
.spin-name{--a:0deg;position:absolute;left:50%;top:50%;transform:rotate(var(--a)) translateY(calc(var(--size)/-2 + 22px)) rotate(calc(-1*var(--a))) translate(-50%,-50%);font-weight:800;font-size:13px;background:var(--marigold);border:2px solid var(--ink);border-radius:99px;padding:3px 9px;white-space:nowrap;transform-origin:0 0}
.spin-arrow{--turn:0deg;position:absolute;left:50%;top:50%;width:18px;height:46%;margin-left:-9px;transform-origin:50% 100%;transform:translateY(-100%) rotate(var(--turn));transition:transform 2.5s cubic-bezier(.17,.67,.2,1)}
.spin-arrow::before{content:'';position:absolute;left:0;right:0;top:0;bottom:0;background:var(--ink);clip-path:polygon(50% 0,100% 22%,64% 22%,64% 100%,36% 100%,36% 22%,0 22%);}
.spin-out{min-height:40px;display:flex;flex-direction:column;align-items:center;gap:8px}
@media(max-width:640px){.party-card{padding:22px 16px}.mode-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.spin-arrow{transition-duration:.01s}.vote-bars .bar::after,.ring.buzzed{animation:none}.mode-tile{transition:none}}

/* Party modes v2: a themed stage per game, a header band, avatars, pop-in cards and confetti on reveals. */
.party-stage{--theme:var(--marigold);--theme-ink:var(--ink);position:relative;border-radius:28px;padding:14px;background:var(--theme);box-shadow:6px 6px 0 var(--ink);border:2.5px solid var(--ink);overflow:hidden}
.party-stage::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.22) 1.5px,transparent 1.6px);background-size:18px 18px;pointer-events:none}
.party-stage.m-heads-up,.party-stage.m-story-chain,.party-stage.m-would-you-rather{--theme:var(--cobalt);--theme-ink:#fff}
.party-stage.m-mafia,.party-stage.m-quiz,.party-stage.m-undercover,.party-stage.m-mood-dj{--theme:var(--ink);--theme-ink:#fff}
.party-stage.m-secret-vote,.party-stage.m-spin,.party-stage.m-how-desi,.party-stage.m-two-truths{--theme:var(--lilac);--theme-ink:var(--ink)}
.party-stage.m-antakshari{--theme:linear-gradient(160deg,#ff8a3d,#ffb71b)}.party-stage.m-pictionary,.party-stage.m-emoji-charades{--theme:#ffd166}
.party-stage.m-speed-friending,.party-stage.m-guess-the-guest,.party-stage.m-taboo{--theme:#ff6b4a;--theme-ink:#fff}
.party-band{position:relative;display:flex;align-items:center;gap:10px;color:var(--theme-ink);padding:4px 6px 14px;font-size:15px}
.party-band svg{width:30px;height:30px;flex:none}.party-band b{font-size:17px;letter-spacing:-.01em}.party-band span{margin-left:auto;font-size:13px;font-weight:700;opacity:.85;text-align:right}
.party-stage>.party-card,.party-stage>.handoff{position:relative;animation:card-in .32s cubic-bezier(.2,.9,.3,1.25)}
@keyframes card-in{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.party-stage>.handoff{background:var(--ink);box-shadow:none;border:2.5px solid var(--ink)}
.party-card{box-shadow:none;border-width:2.5px}
/* Avatars: one colour per name, used everywhere a person appears */
.avatar{--hue:220;display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;border-radius:50%;background:hsl(var(--hue) 85% 62%);color:#14163b;font-weight:800;font-size:14px;border:2px solid var(--ink)}
.avatar.sm{width:24px;height:24px;font-size:12px;border-width:1.5px}.avatar.lg{width:88px;height:88px;font-size:40px;border-width:3px;box-shadow:4px 4px 0 var(--marigold)}
.handoff .avatar.lg{box-shadow:4px 4px 0 var(--marigold);animation:bob 1.6s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-6px)}}
.name-chips li{gap:6px;padding-left:6px}
.pair-name{display:inline-flex;align-items:center;gap:6px;font-weight:800}
.vote-btn{gap:8px;justify-content:flex-start}
.vote-bars b{display:flex;align-items:center;gap:6px}
/* Confetti */
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:5}
.confetti i{--x:50%;--d:0px;--r:0deg;--t:1200ms;--c:var(--marigold);position:absolute;top:-12px;left:var(--x);width:9px;height:14px;background:var(--c);border-radius:2px;animation:fall var(--t) cubic-bezier(.25,.6,.4,1) forwards}
@keyframes fall{to{transform:translate(var(--d),640px) rotate(var(--r));opacity:.2}}
/* Speed friending */
.pairs{list-style:none;padding:0;margin:0;width:100%;display:grid;gap:8px}
.pairs li{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;padding:10px 12px;border:2px solid var(--line);border-radius:14px;background:#fff}.pairs i{font-style:normal;font-weight:800;color:var(--cobalt)}
/* Antakshari */
.big-letter{font-size:clamp(96px,30vw,160px);font-weight:800;line-height:1;letter-spacing:-.05em;color:var(--ink);text-shadow:5px 5px 0 var(--marigold)}
.letter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:6px;width:100%}
.gbtn.letter{min-height:44px;padding:0;font-size:18px}
.score-table.compact li{padding:8px 12px;font-size:15px}
/* Pictionary */
.sketch-card{gap:10px}.sketch-top{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left}.sketch-top .topic{margin:0}
.sketch{width:100%;height:min(58vh,420px);border:2.5px solid var(--ink);border-radius:16px;background:#fff;touch-action:none;cursor:crosshair}
.swatches{display:flex;gap:8px;align-items:center;justify-content:center}
.swatch{--ink:#14163b;width:34px;height:34px;min-height:0;padding:0;border-radius:50%;background:var(--ink);border:3px solid #fff;box-shadow:0 0 0 2px var(--ink)}.swatch:hover{background:var(--ink)}.swatch[aria-pressed=true]{box-shadow:0 0 0 3px var(--ink),0 0 0 6px var(--marigold)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;width:100%}
.gallery figure{margin:0;border:2px solid var(--ink);border-radius:14px;overflow:hidden;background:#fff}.gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.gallery figcaption{padding:6px 8px;font-size:12px;text-align:left}
/* Taboo */
.taboo-card{width:100%;border:3px solid var(--ink);border-radius:18px;overflow:hidden}
.taboo-word{margin:0;padding:22px 12px;background:var(--cobalt);color:#fff;font-size:clamp(30px,8vw,44px);letter-spacing:-.02em}
.taboo-card .eyebrow{margin:12px 0 4px;color:var(--danger)}
.taboo-banned{list-style:none;padding:0 0 14px;margin:0;display:grid;gap:4px;font-size:20px;font-weight:700;text-decoration:line-through;text-decoration-color:var(--danger);text-decoration-thickness:3px}
.taboo-tally{font-size:34px;font-weight:800}
/* How desi */
.meter{position:relative;width:100%;height:64px;border-radius:999px;border:2.5px solid var(--ink);background:linear-gradient(90deg,var(--marigold),#fff 50%,var(--cobalt));margin:6px 0}
.meter-end{position:absolute;top:50%;transform:translateY(-50%);font-weight:800;font-size:13px;max-width:40%}.meter-end.left{left:14px;text-align:left}.meter-end.right{right:14px;text-align:right;color:#fff}
.meter-mark{--at:50%;position:absolute;top:-10px;bottom:-10px;left:var(--at);width:10px;margin-left:-5px;border-radius:6px;border:2px solid var(--ink)}
.meter-mark.target{background:var(--marigold);box-shadow:0 0 0 6px rgba(255,183,27,.35)}.meter-mark.guess{background:var(--cobalt)}
.meter-slider{width:100%;accent-color:var(--cobalt);height:36px}
/* Would you rather */
.wyr{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:0;width:100%}
.wyr-a,.wyr-b{min-height:130px;display:flex;align-items:center;justify-content:center;padding:14px;font-size:18px;font-weight:800;border:2.5px solid var(--ink);text-align:center}
.wyr-a{background:var(--marigold);color:var(--ink);border-radius:16px 0 0 16px;border-right:0}.wyr-b{background:var(--cobalt);color:#fff;border-radius:0 16px 16px 0;border-left:0}
.wyr .tt-or{width:48px;height:48px;margin:0 -24px;z-index:1;border-radius:50%;background:#fff;border:3px solid var(--ink);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;font-size:22px}
.wyr-pick button{cursor:pointer;font:inherit;font-weight:800;font-size:18px;box-shadow:none}.wyr-pick button:hover{filter:brightness(1.06)}.wyr-pick .wyr-a:hover{background:var(--marigold);color:var(--ink)}.wyr-pick .wyr-b:hover{background:var(--cobalt);color:#fff}
.wyr-split{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
.wyr-col{border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:6px;align-items:center;border:2.5px solid var(--ink)}
.wyr-count{font-size:44px;font-weight:800;line-height:1}.wyr-people{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;font-size:13px}
/* Emoji charades */
.emoji-big{font-size:clamp(64px,18vw,110px);line-height:1.15;letter-spacing:.06em;padding:10px 0}
/* Mood DJ */
.vibe-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.vibe-chip{gap:8px}.vibe-n{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;border-radius:99px;background:var(--ink);color:#fff;font-size:12px}
.dj-ticket{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:baseline;text-align:left;width:100%;padding:16px;border:2.5px dashed var(--ink);border-radius:16px;background:var(--lilac)}
.dj-ticket span{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.dj-ticket b{font-size:18px}
@media(max-width:640px){.party-stage{padding:10px;border-radius:22px}.wyr-a,.wyr-b{min-height:110px;font-size:15px;padding:10px}}
@media(prefers-reduced-motion:reduce){.party-stage>.party-card,.party-stage>.handoff,.handoff .avatar.lg{animation:none}}
.wyr-a{padding-right:30px}.wyr-b{padding-left:30px}

/* /me/profile: the profile quest. A live Ayvro card on one side, one quest at a time on the other. */
.quest{padding-top:36px}
.quest-stage{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:48px;align-items:start}
.quest-card-col{position:sticky;top:92px;display:grid;gap:14px}
.quest-main,.quest-card-col{min-width:0}
.quest-eyebrow a{text-decoration:none}.quest-privacy{text-align:center;margin:0}
.ayvro-card{--card-bg:var(--lilac);--card-ink:var(--ink);--card-accent:var(--cobalt);position:relative;overflow:hidden;background:var(--card-bg);color:var(--card-ink);border:2.5px solid var(--ink);border-radius:26px;padding:20px;box-shadow:8px 8px 0 var(--ink);display:grid;gap:10px;transform:rotate(-1.5deg);transition:transform .3s}
.ayvro-card:hover{transform:rotate(0deg) translateY(-3px)}
.ayvro-card.lvl-2{--card-bg:var(--marigold)}.ayvro-card.lvl-3{--card-bg:var(--cobalt);--card-ink:#fff;--card-accent:var(--marigold)}
.ayvro-card.lvl-4{--card-bg:var(--ink);--card-ink:#fff;--card-accent:var(--marigold)}
.ayvro-card.lvl-5{--card-bg:linear-gradient(135deg,#ffb71b,#ff8fb1 35%,#8f9bff 65%,#2e44ff);--card-ink:var(--ink);--card-accent:#fff}
.ayvro-card.lvl-5{background:var(--card-bg)}
.card-shine{position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,#ffffff55 45%,transparent 60%);transform:translateX(-120%);pointer-events:none}
.ayvro-card.is-bumped{animation:card-bump .5s ease-out}.ayvro-card.is-bumped .card-shine{animation:card-shine .9s ease-out}
@keyframes card-bump{40%{transform:rotate(1deg) scale(1.03)}}@keyframes card-shine{to{transform:translateX(120%)}}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.card-brand{font-size:22px;font-weight:900;letter-spacing:-.05em}.card-brand i{font-style:normal;color:var(--card-accent)}
.card-level{font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:999px;padding:3px 10px}
.card-photo{aspect-ratio:1;border-radius:18px;border:2.5px solid var(--ink);overflow:hidden;background:#ffffff66;display:grid;place-items:center}
.card-photo img{width:100%;height:100%;object-fit:cover;display:block}
.card-silhouette{width:55%;fill:none;stroke:currentColor;stroke-width:6;stroke-dasharray:10 8;opacity:.5}
.card-name{font-size:34px;line-height:1;letter-spacing:-.045em;margin:6px 0 0}
.card-city{margin:0;font-size:13px;font-weight:700;opacity:.75}
.card-line{margin:0;font-family:var(--serif);font-size:18px;line-height:1.3}
.card-empty{opacity:.55;font-style:italic}
.card-words{list-style:none;padding:0;margin:2px 0;display:flex;flex-wrap:wrap;gap:6px}
.card-words li{background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:999px;padding:3px 12px;font-size:13px;font-weight:800;transform:rotate(-2deg)}
.card-words li:nth-child(2){transform:rotate(2deg);background:var(--marigold)}.card-words li:nth-child(3){transform:rotate(-1deg)}
.card-words li.is-empty{background:transparent;border-style:dashed;color:inherit;opacity:.5}
.ayvro-card.lvl-2 .card-words li:nth-child(2){background:#fff}
.card-quote{margin:0;border-left:4px solid var(--card-accent);padding:2px 0 2px 12px;font-weight:700;font-size:15px}
.card-quote small{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;opacity:.7;margin-bottom:2px}
.card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px}
.card-voice{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;opacity:.6}.card-voice.has-voice{opacity:1}
.card-voice svg{width:22px;height:22px}
.card-badges{display:flex;gap:4px}.card-badges i{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#fff;color:var(--ink);border:2px solid var(--ink)}
.card-badges svg{width:18px;height:18px}
.card-xp{height:8px;border-radius:999px;background:#ffffff55;border:2px solid var(--ink);overflow:hidden}.card-xp span{display:block;height:100%;background:var(--card-accent);transition:width .7s}
.ayvro-card.lvl-5 .card-xp span{background:var(--ink)}
.quest-head h1{font-size:clamp(44px,6vw,80px);margin-bottom:18px}.quest-head h1 em{color:var(--cobalt)}
.quest-xp{position:relative;display:grid;gap:8px;max-width:560px}
.quest-xp-bar{height:16px;border-radius:999px;background:#fff;border:2.5px solid var(--ink);overflow:hidden}
.quest-xp-bar span{display:block;height:100%;background:repeating-linear-gradient(-45deg,var(--marigold) 0 10px,#ffc94f 10px 20px);border-right:2.5px solid var(--ink);transition:width .7s cubic-bezier(.2,.8,.2,1)}
.quest-xp p{margin:0;font-weight:700;font-size:14px}.quest-xp b{font-size:22px;letter-spacing:-.03em}
.xp-pop{position:absolute;right:0;top:-6px;background:var(--cobalt);color:#fff;border:2px solid var(--ink);border-radius:999px;padding:3px 12px;font-weight:900;font-size:14px;animation:xp-pop 1.6s ease-out forwards;pointer-events:none}
@keyframes xp-pop{0%{transform:translateY(8px) scale(.6);opacity:0}20%{transform:translateY(-6px) scale(1.1);opacity:1}100%{transform:translateY(-34px);opacity:0}}
.quest-perk{font-size:14px;color:var(--muted);margin:10px 0 0}
.quest-map{display:flex;gap:8px;margin:28px 0 22px;overflow-x:auto;padding:4px 4px 8px;scrollbar-width:none}
.quest-dot{flex:none;display:grid;justify-items:center;gap:6px;width:78px;text-decoration:none;color:var(--ink)}
.quest-dot span{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;border:2px dashed var(--muted);background:#fff;opacity:.7;position:relative}
.quest-dot svg{width:30px;height:30px}.quest-dot small{font-size:11px;font-weight:800;text-align:center;line-height:1.2}
.quest-dot.is-done span{border:2px solid var(--ink);background:var(--marigold);opacity:1}
.quest-dot.is-done span::after{content:'✓';position:absolute;right:-6px;top:-6px;width:20px;height:20px;border-radius:50%;background:#1fbf6a;color:#fff;border:2px solid var(--ink);font-size:11px;font-weight:900;display:grid;place-items:center}
.quest-dot.is-current span{border:2.5px solid var(--ink);opacity:1;box-shadow:3px 3px 0 var(--cobalt);transform:translateY(-2px)}
.quest-step{background:var(--card);border:2.5px solid var(--ink);border-radius:26px;padding:clamp(22px,3vw,36px);box-shadow:6px 6px 0 var(--ink);margin-bottom:22px;display:grid;gap:14px}
.quest.is-playing .quest-step{display:none}.quest.is-playing .quest-step.is-current{display:grid;animation:quest-in .35s cubic-bezier(.2,.8,.2,1)}
@keyframes quest-in{from{opacity:0;transform:translateX(24px) rotate(1deg)}}
.quest-kicker{margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cobalt)}
.quest-step h2{font-size:clamp(30px,4vw,46px);line-height:1;margin:0;outline:none}.quest-step h2 em{color:var(--cobalt)}
.quest-blurb{margin:0;color:var(--muted)}
.quest-nav{display:flex;justify-content:space-between;gap:12px;margin-top:6px}
.quest-step.is-done{box-shadow:6px 6px 0 #1fbf6a}
.quest-react{min-height:1.4em;margin:0;font-family:var(--serif);font-size:19px;color:var(--cobalt)}
.quest-finale h2{font-size:clamp(34px,5vw,56px)}
.quest:not(.is-playing) .quest-finale{display:none}
.prompt-machine{display:grid;gap:12px}
.prompt-slot{position:relative;border:2.5px solid var(--ink);border-radius:20px;background:var(--marigold);padding:22px 22px 20px;min-height:120px;display:grid;align-content:center;box-shadow:4px 4px 0 var(--ink);overflow:hidden}
.prompt-label{position:absolute;top:10px;left:16px;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.prompt-slot p{margin:10px 0 0;font-size:clamp(22px,3vw,28px);font-weight:800;letter-spacing:-.03em;line-height:1.15}
.prompt-slot.is-spinning p{filter:blur(1.5px);opacity:.75}
.prompt-slot.is-landed{animation:slot-land .45s cubic-bezier(.2,1.6,.4,1)}
@keyframes slot-land{0%{transform:scale(.96)}60%{transform:scale(1.03)}}
.prompt-controls button svg{width:22px;height:22px}.prompt-machine>button{justify-self:start}
.prompt-answered{list-style:none;padding:0;margin:4px 0 0;display:grid;gap:8px}
.prompt-answered li{border:2px solid var(--ink);border-radius:16px;padding:12px 14px;display:grid;gap:2px;background:var(--paper)}
.prompt-answered small{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.prompt-answered span{font-weight:700}.prompt-answered button{justify-self:start;margin-top:4px}
.quest-step form{display:grid;gap:14px}.quest-step form>button{justify-self:start}
.quest-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,30px);opacity:0;z-index:45;background:var(--ink);color:#fff;border:2.5px solid var(--ink);border-radius:999px;padding:12px 22px;font-weight:800;box-shadow:4px 4px 0 var(--marigold);pointer-events:none;transition:opacity .25s,transform .25s;max-width:calc(100% - 32px)}
.quest-toast.is-open{opacity:1;transform:translate(-50%,0)}.quest-toast.is-badge{background:var(--marigold);color:var(--ink);box-shadow:4px 4px 0 var(--ink)}.quest-toast.is-error{background:var(--danger)}
.levelup{position:fixed;inset:0;z-index:60;background:#14163bcc;display:grid;place-items:center;padding:16px;overflow:hidden}
.levelup[hidden]{display:none}
.levelup-box{position:relative;z-index:1;background:var(--marigold);color:var(--ink);border:3px solid var(--ink);border-radius:28px;padding:36px 32px;max-width:420px;text-align:center;box-shadow:10px 10px 0 var(--cobalt);animation:levelup-in .5s cubic-bezier(.2,1.5,.4,1)}
.levelup-box h2{font-size:clamp(34px,6vw,50px);line-height:1;margin:0 0 10px}.levelup-box .eyebrow{margin-bottom:8px}
@keyframes levelup-in{from{transform:scale(.6) rotate(-6deg);opacity:0}}
.confetti{position:absolute;inset:0;pointer-events:none}
.confetti i{position:absolute;top:-20px;left:var(--x);width:10px;height:16px;border:2px solid var(--ink);border-radius:3px;transform:scale(var(--s));animation:confetti 2.6s var(--d) cubic-bezier(.2,.6,.4,1) forwards}
.confetti .c0{background:var(--marigold)}.confetti .c1{background:var(--cobalt)}.confetti .c2{background:#fff}.confetti .c3{background:#1fbf6a}
@keyframes confetti{to{transform:translateY(110vh) rotate(var(--r)) scale(var(--s))}}
/* Badges, in the site's own language: glyph tiles, ink outlines, hard shadows, a stamp when earned. */
.quest-badges{margin:40px 0 0}.quest-badges h2{font-size:clamp(28px,3vw,38px)}.quest-badges h2 em{color:var(--cobalt)}
.quest-badges ul{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.badge-card{position:relative;display:grid;justify-items:center;text-align:center;gap:6px;padding:18px 10px 14px;border-radius:20px;border:2px dashed #b9bdd9;background:transparent;color:var(--muted)}
.badge-card b{font-size:14px;letter-spacing:-.01em;color:var(--ink);opacity:.6}.badge-card small{font-size:11px;font-weight:700;line-height:1.3}
.badge-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:16px;border:2px dashed #b9bdd9;color:#9da2c4;margin-bottom:4px}
.badge-icon svg{width:36px;height:36px}
.badge-card.is-earned{border:2.5px solid var(--ink);background:var(--marigold);color:var(--ink);box-shadow:4px 4px 0 var(--ink);transform:rotate(-1.5deg)}
.badge-card.is-earned:nth-child(4n+2){background:var(--cobalt);color:#fff;transform:rotate(1.5deg)}
.badge-card.is-earned:nth-child(4n+3){background:var(--ink);color:#fff;transform:rotate(-1deg);box-shadow:4px 4px 0 var(--marigold)}
.badge-card.is-earned:nth-child(4n){background:var(--lilac);transform:rotate(1deg)}
.badge-card.is-earned b{color:inherit;opacity:1}
.badge-card.is-earned .badge-icon{border:2px solid currentColor;background:#ffffff26;color:inherit}
.badge-card.is-earned small{display:none}
.badge-card.is-earned::after{content:'Got it';position:absolute;top:-10px;right:-8px;background:#1fbf6a;color:#fff;border:2.5px solid var(--ink);border-radius:8px;padding:1px 8px;font-size:12px;font-weight:900;transform:rotate(10deg)}
@media(max-width:960px){.quest-stage{grid-template-columns:minmax(0,1fr);gap:28px}.quest-card-col{position:static;max-width:380px;justify-self:center;width:100%}}
@media(max-width:640px){.quest{padding-top:20px}.ayvro-card{padding:16px;gap:8px;box-shadow:6px 6px 0 var(--ink)}.card-photo{aspect-ratio:16/10}.card-name{font-size:28px}.card-line{font-size:16px}.quest-badges ul{grid-template-columns:repeat(2,minmax(0,1fr))}.quest-head h1{font-size:44px}.quest-nav button{flex:1}}
@media(prefers-reduced-motion:reduce){.ayvro-card,.ayvro-card.is-bumped,.ayvro-card.is-bumped .card-shine,.quest.is-playing .quest-step.is-current,.levelup-box,.xp-pop,.prompt-slot.is-landed{animation:none;transition:none}}
/* "Your basics" quest: stat lines that type straight onto the card. */
.basics-form{gap:18px!important}
.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.stat{display:grid;gap:4px;border:2px solid var(--ink);border-radius:16px;padding:10px 14px 8px;background:var(--paper);transition:box-shadow .15s,transform .15s}
.stat:focus-within{box-shadow:4px 4px 0 var(--cobalt);transform:translate(-1px,-1px)}
.stat span{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--cobalt)}
.stat span small{color:var(--muted);letter-spacing:.04em;font-weight:700}
.stat input{border:0;padding:2px 0;background:transparent;font-size:18px;font-weight:700;border-radius:0}
.stat input:focus{outline:none}
.stat-chips{border:0;padding:0;margin:0;display:grid;gap:8px;min-width:0}
.stat-chips legend{font-size:13px;font-weight:800;margin-bottom:8px;padding:0}.stat-chips legend small{font-weight:600;color:var(--muted)}
.stat-chips input[name=gender_self]{max-width:280px}
.card-aka{margin:-4px 0 0;font-size:13px;font-weight:800;color:var(--card-accent)}.card-aka:empty{display:none}
.ayvro-card.lvl-1 .card-aka,.ayvro-card.lvl-2 .card-aka,.ayvro-card.lvl-5 .card-aka{color:var(--ink);opacity:.75}
.card-job{margin:0;font-size:15px;font-weight:800}
@media(max-width:640px){.stat-grid{grid-template-columns:1fr}}
.quest-account{margin:40px 0 0;background:var(--card);border:2px solid var(--line);border-radius:24px;padding:24px;display:grid;gap:12px}
.quest-account h2{font-size:28px;margin:0}.quest-account p{margin:0}.quest-account .actions{margin:0}
.quest-plans{margin:40px 0 0;display:grid;gap:12px}.quest-plans h2{font-size:28px;margin:0}
.quest-feedback{display:block;margin:0 0 16px;background:var(--marigold);border:2px solid var(--ink);border-radius:16px;padding:12px 16px;font-weight:800;text-decoration:none;box-shadow:3px 3px 0 var(--ink)}
/* The vibe check inside its quest: one this-or-that at a time. */
.vibe-inline{gap:16px!important}
.vibe-dots{display:flex;gap:6px}.vibe-dots i{flex:1;height:6px;border-radius:999px;background:var(--lilac)}.vibe-dots i.is-done{background:var(--cobalt)}.vibe-dots i.is-on{background:var(--marigold)}
.vibe-inline:not(.is-stepped) .vibe-dots{display:none}
.vibe-q{border:0;padding:0;margin:0;display:grid;gap:12px;min-width:0}
.vibe-inline.is-stepped .vibe-q{display:none}.vibe-inline.is-stepped .vibe-q.is-on{display:grid;animation:quest-in .3s ease-out}
.vibe-q legend{font-size:clamp(22px,3vw,28px);font-weight:800;letter-spacing:-.03em;line-height:1.15;padding:0;margin-bottom:12px}
.vibe-q legend small{display:block;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cobalt);margin-bottom:6px}
.vibe-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.vibe-opt{position:relative;display:grid;place-items:center;text-align:center;min-height:72px;padding:14px;border:2.5px solid var(--ink);border-radius:18px;background:#fff;font-weight:800;font-size:16px;cursor:pointer;box-shadow:3px 3px 0 var(--ink);transition:transform .12s,box-shadow .12s}
.vibe-opt:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}
.vibe-opt input{position:absolute;opacity:0;width:1px;height:1px}
.vibe-opt:has(input:checked){background:var(--marigold)}.vibe-opt:has(input:focus-visible){outline:3px solid var(--cobalt);outline-offset:2px}
.vibe-q [data-vibe-skip]{justify-self:start}
.vibe-done{gap:16px}.vibe-done button{justify-self:start}
/* /admin/members: every member's Ayvro card in a grid. */
.member-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.member-filters input[type=search]{flex:1 1 260px}.member-filters select{flex:0 1 180px}
.member-bar{display:flex;flex-wrap:wrap;gap:12px 28px;margin-bottom:12px}
.member-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.member-chips>span{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.member-chips .chip{display:inline-flex;align-items:center;border:2px solid var(--line);border-radius:999px;text-decoration:none;font-weight:700;min-height:36px;padding:6px 14px}
.member-chips .chip.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px;align-items:start}
.member-card{transform:none;box-shadow:5px 5px 0 var(--ink);padding:16px;gap:8px}.member-card:hover{transform:translateY(-3px)}
.member-card .card-photo{aspect-ratio:4/3}.member-card .card-name{font-size:24px}.member-card .card-line{font-size:15px}
.member-initial{font-size:64px;font-weight:900;opacity:.4}
.member-complete{font-size:11px;font-weight:900;background:#1fbf6a;color:#fff;border:2px solid var(--ink);border-radius:8px;padding:2px 8px;transform:rotate(6deg)}
.member-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:4px 0 0;background:#ffffff40;border:2px solid var(--ink);border-radius:12px;padding:8px}
.member-facts div{min-width:0}.member-facts dt{font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;opacity:.7}.member-facts dd{margin:0;font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-contact{margin:0;font-size:12px;font-weight:700;overflow-wrap:anywhere}.member-contact a{color:inherit}
/* Door tickets: a stub with a tear line, the QR on the right. */
.door-ticket{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0;background:var(--marigold);color:var(--ink);border:2.5px solid var(--ink);border-radius:22px;box-shadow:6px 6px 0 var(--ink);margin:0 0 22px;overflow:visible}
.door-ticket::before,.door-ticket::after{content:'';position:absolute;right:calc(var(--qr,190px) + 12px);width:24px;height:24px;border-radius:50%;background:var(--paper);border:2.5px solid var(--ink)}
.door-ticket::before{top:-14px;clip-path:inset(50% 0 0 0)}.door-ticket::after{bottom:-14px;clip-path:inset(0 0 50% 0)}
.ticket-main{padding:20px 22px;display:grid;gap:4px;align-content:center;border-right:2.5px dashed var(--ink);min-width:0}
.ticket-main .eyebrow{margin:0}.ticket-main h3{font-size:24px;line-height:1.05;margin:4px 0 0;letter-spacing:-.03em}.ticket-main p{margin:0;font-size:14px}
.ticket-name{font-size:30px!important;font-weight:900;letter-spacing:-.04em;margin-top:8px!important}
.ticket-code{display:grid;justify-items:center;gap:6px;padding:16px;background:#fff;border-radius:0 20px 20px 0}
.ticket-qr{width:var(--qr,190px);height:var(--qr,190px);display:block}
.ticket-code small{font-size:11px;font-weight:700;max-width:var(--qr,190px);text-align:center;color:var(--muted)}
.door-ticket.is-used{grid-template-columns:1fr;background:#1fbf6a;color:#fff}.door-ticket.is-used .ticket-main{border:0}.door-ticket.is-used::before,.door-ticket.is-used::after{display:none}
.booking-panel .door-ticket{--qr:150px;grid-template-columns:1fr}.booking-panel .door-ticket .ticket-main{border-right:0;border-bottom:2.5px dashed var(--ink)}.booking-panel .door-ticket .ticket-code{border-radius:0 0 20px 20px}.booking-panel .door-ticket::before,.booking-panel .door-ticket::after{display:none}
.ticket-page{max-width:560px;margin:32px auto;display:grid;gap:18px}.ticket-page .door-ticket{--qr:240px;grid-template-columns:1fr}.ticket-page .ticket-main{border-right:0;border-bottom:2.5px dashed var(--ink)}.ticket-page .ticket-code{border-radius:0 0 20px 20px}.ticket-page .door-ticket::before,.ticket-page .door-ticket::after{display:none}
.ticket-link{margin:8px 0}
.ticket-scan h1 em{color:var(--cobalt)}
@media(max-width:640px){.door-ticket{--qr:220px;grid-template-columns:1fr}.ticket-main{border-right:0;border-bottom:2.5px dashed var(--ink)}.ticket-code{border-radius:0 0 20px 20px}.door-ticket::before,.door-ticket::after{display:none}}
/* Host door scanner. */
.scanner{max-width:640px;margin:0 auto;padding-top:20px;display:grid;gap:16px}
.scanner-head a{font-size:14px}.scanner-head h1{font-size:56px;margin:6px 0 4px}.scanner-head p{margin:0;color:var(--muted)}
.scanner-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.scanner-counts span{background:var(--card);border:2px solid var(--ink);border-radius:14px;padding:10px;font-size:12px;font-weight:700;text-align:center}
.scanner-counts strong{display:block;font-size:30px;letter-spacing:-.04em;line-height:1}
.scanner-counts span:first-child{background:#1fbf6a;color:#fff}
.scanner-cam{position:relative;aspect-ratio:3/4;max-height:62vh;background:var(--ink);border:2.5px solid var(--ink);border-radius:22px;overflow:hidden;display:grid;place-items:center}
.scanner-cam video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.scanner.is-live .scanner-cam video{opacity:1}
.scanner-frame{position:absolute;inset:18% 14%;border:4px solid var(--marigold);border-radius:22px;box-shadow:0 0 0 999px #14163b66;opacity:0}
.scanner.is-live .scanner-frame{opacity:1}
.scanner-cam [data-start]{position:relative;z-index:1}
.scanner-hint{position:absolute;left:12px;right:12px;bottom:12px;margin:0;text-align:center;color:#fff;font-weight:700;font-size:14px;z-index:1}
.scan-result{position:fixed;inset:0;z-index:70;display:grid;place-content:center;justify-items:center;gap:10px;padding:24px;text-align:center;color:#fff;background:var(--ink)}
.scan-result[hidden]{display:none}
.scan-result.is-ok{background:#12a35a}.scan-result.is-warn{background:#c98a00}.scan-result.is-bad,.scan-result.is-offline{background:var(--danger)}
.scan-face{width:132px;height:132px;border-radius:50%;border:4px solid #fff;overflow:hidden;display:grid;place-items:center;background:#ffffff33;font-size:56px;font-weight:900}
.scan-face:empty{display:none}.scan-face img{width:100%;height:100%;object-fit:cover}
.scan-title{font-size:clamp(34px,9vw,56px);font-weight:900;letter-spacing:-.04em;line-height:1;margin:0}
.scan-sub{font-size:18px;margin:0;max-width:420px}
.scan-result button{min-width:220px;background:#fff;color:var(--ink);border-color:#fff}.scan-result button.secondary{background:transparent;color:#fff}
.scanner-list ul{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}
.scanner-list li{display:flex;align-items:center;gap:12px;background:var(--card);border:2px solid var(--line);border-radius:16px;padding:10px 12px}
.scanner-list li b{flex:1;font-size:17px}.scanner-list li.is-in{border-color:#1fbf6a;background:#eafaf1}
.scan-avatar{width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--lilac);display:grid;place-items:center;font-weight:900;flex:none}.scan-avatar img{width:100%;height:100%;object-fit:cover}
.scan-in{font-weight:900;color:#12a35a}
/* /describe/:code: describe a friend in three words. */
.dw{max-width:560px;margin:24px auto 40px;display:grid;justify-items:center;text-align:center;gap:14px}
.dw[hidden]{display:none}
.dw-avatar{width:132px;height:132px;border-radius:50%;background:var(--marigold);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);display:grid;place-items:center;overflow:hidden;transform:rotate(-3deg)}
.dw-avatar img{width:100%;height:100%;object-fit:cover}.dw-avatar span{font-size:68px;font-weight:900;letter-spacing:-.04em}
.dw .eyebrow{margin:6px 0 0}
.dw h1{font-size:clamp(44px,12vw,72px);line-height:.95;margin:0}.dw h1 em{color:var(--cobalt)}
.dw-sub{color:var(--muted);margin:0;max-width:420px}
.dw-slots{list-style:none;padding:0;margin:8px 0 4px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%}
.dw-slot{min-height:64px;border:2.5px dashed #b9bdd9;border-radius:18px;display:grid;place-items:center;font-weight:900;font-size:22px;color:#b9bdd9;padding:6px;transition:transform .2s}
.dw-slot.is-filled{border:2.5px solid var(--ink);background:var(--cobalt);box-shadow:4px 4px 0 var(--ink);color:#fff}
.dw-slot:nth-child(2).is-filled{background:var(--marigold);color:var(--ink)}.dw-slot:nth-child(3).is-filled{background:var(--ink)}
.dw-slot.just-filled{animation:dw-pop .35s cubic-bezier(.2,1.6,.4,1)}
@keyframes dw-pop{0%{transform:scale(.8)}100%{transform:scale(1)}}
.dw-word{all:unset;cursor:pointer;font-size:15px;font-weight:800;line-height:1.15;overflow-wrap:anywhere}
.dw-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.dw-chips.is-shuffled .dw-chip{animation:dw-in .3s ease-out both}
@keyframes dw-in{from{opacity:0;transform:translateY(6px)}}
.dw-chip{min-height:44px;padding:9px 15px;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font-size:15px;font-weight:700;box-shadow:2px 2px 0 var(--ink)}
.dw-chip:hover{background:var(--lilac);color:var(--ink);border-color:var(--ink)}
.dw-chip.is-on{background:var(--ink);color:#fff}.dw-chip:disabled{opacity:.4;box-shadow:none}
.dw-more{min-height:0;padding:6px 12px;background:none;border:0;color:var(--cobalt);font-weight:800;text-decoration:underline;text-underline-offset:4px}
.dw-more:hover{background:none;color:var(--ink)}
.dw-type{display:flex;gap:8px;width:100%;max-width:420px}.dw-type input{flex:1;border:2px solid var(--ink);border-radius:999px;padding:12px 16px}
.dw-error{min-height:1.2em;margin:0;color:var(--danger);font-weight:700}
.dw-send{width:100%;max-width:420px}.dw-send:disabled{opacity:.55;transform:none;box-shadow:2px 2px 0 var(--ink)}
.dw-done.is-sent .dw-avatar{animation:dw-bounce .7s cubic-bezier(.2,1.6,.4,1)}
@keyframes dw-bounce{0%{transform:scale(.6) rotate(-12deg)}100%{transform:scale(1) rotate(-3deg)}}
.dw-sent{list-style:none;padding:0;margin:4px 0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.dw-sent li{background:var(--cobalt);color:#fff;border:2.5px solid var(--ink);border-radius:999px;padding:8px 16px;font-weight:900;box-shadow:3px 3px 0 var(--ink);animation:dw-fly .5s calc(var(--i,0)*120ms + 150ms) cubic-bezier(.2,1.4,.4,1) both}
.dw-sent li:nth-child(2){background:var(--marigold);color:var(--ink)}.dw-sent li:nth-child(3){background:var(--ink)}
@keyframes dw-fly{from{opacity:0;transform:translateY(30px) rotate(-8deg)}}
.dw-done .button-big{width:100%;max-width:420px}
.describe-photo-toggle{margin-top:6px}
@media(prefers-reduced-motion:reduce){.dw-slot.just-filled,.dw-chips.is-shuffled .dw-chip,.dw-done.is-sent .dw-avatar,.dw-sent li{animation:none}}
.sr-copy{position:fixed;top:0;left:-9999px;opacity:0}

/* AYVRO Merch (/merch): interest-first concept catalogue. Bone canvas that matches the concept boards, poster-style
   type (heavy grotesk + cobalt italic serif), ink-outlined cards with offset shadows, women first. */
body:has(.mx),body:has(.mx) .site-header{background:#f6f3ec}html:has(.mx),body:has(.mx){overflow-x:clip}
.mx{--bone:#f6f3ec;--orange:#ff6a1f;--plum:#4b1f4f;padding:0 0 120px}
.mx h1{font-size:clamp(48px,7vw,104px);font-weight:900;letter-spacing:-.06em;line-height:.88;margin:18px 0 22px}
.mx h1 em,.mx h2 em{font-family:var(--serif);font-weight:400;font-style:italic;color:var(--cobalt);letter-spacing:-.04em}
.mx h2{font-weight:900;letter-spacing:-.05em}
.mx-pill{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border-radius:999px;padding:7px 16px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin:0}
.mx-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange)}
.mx-kicker{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--cobalt);margin-bottom:10px}
.mx-lede{font-size:clamp(17px,1.6vw,20px);line-height:1.45;max-width:46ch;color:#2b2e4a}
.mx-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border:2.5px solid var(--ink);border-radius:999px;background:var(--cobalt);color:#fff;font-weight:800;font-size:16px;text-decoration:none;box-shadow:4px 4px 0 var(--ink);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.mx-btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}.mx-btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.mx-btn b{min-width:24px;height:24px;border-radius:999px;background:var(--marigold);color:var(--ink);display:inline-grid;place-items:center;font-size:13px;padding:0 6px}
.mx-btn-ghost{background:#fff;color:var(--ink)}.mx-btn-block{width:100%}
.mx-btn[disabled]{opacity:.6;cursor:progress}
.mx-hero{display:grid;gap:28px;padding:28px 0 36px;align-items:center}
.mx-hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 22px}
.mx-facts{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:var(--muted)}.mx-facts b{color:var(--ink);font-size:18px}
.mx-hero-art{margin:0;position:relative;border:2.5px solid var(--ink);border-radius:26px;overflow:hidden;box-shadow:8px 8px 0 var(--ink);background:#ddd}
.mx-hero-art img,.mx-look img{display:block;width:100%;height:auto}
.mx-hero-art figcaption,.mx-look figcaption{position:absolute;left:12px;bottom:12px;background:rgba(20,22,59,.82);color:#fff;font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px}
.mx-marquee{margin:8px calc(50% - 50vw) 0;background:var(--ink);color:var(--marigold);border-block:2.5px solid var(--ink);overflow:hidden;white-space:nowrap;transform:rotate(-1.2deg)}
.mx-marquee div{display:inline-flex;gap:22px;padding:14px 0;font-weight:900;font-size:clamp(20px,2.6vw,30px);letter-spacing:-.03em;text-transform:uppercase;animation:mx-roll 38s linear infinite}
.mx-marquee i{font-style:normal;color:var(--orange)}
@keyframes mx-roll{to{transform:translateX(-50%)}}
.mx-why{padding:64px 0 24px}.mx-why h2{font-size:clamp(34px,5vw,64px);max-width:16ch}
.mx-why-grid{display:grid;gap:14px;margin-top:22px}
.mx-why-grid p{margin:0;background:#fff;border:2.5px solid var(--ink);border-radius:20px;padding:20px;box-shadow:4px 4px 0 var(--ink);font-size:16px;line-height:1.45}
.mx-why-grid p:nth-child(2){background:var(--marigold)}.mx-why-grid p:nth-child(3){background:var(--cobalt);color:#fff}
.mx-why-grid b{display:block;font-size:22px;letter-spacing:-.03em;margin-bottom:4px}
.mx-shop{padding-top:40px}
.mx-shop-head{position:sticky;top:0;z-index:5;background:var(--bone);padding:14px 0 12px;border-bottom:2px solid var(--ink)}
.mx-shop-head h2{font-size:clamp(30px,4vw,48px);margin:0 0 12px}
.mx-tabs{display:inline-flex;justify-self:start;width:max-content;border:2.5px solid var(--ink);border-radius:999px;overflow:hidden;background:#fff;box-shadow:3px 3px 0 var(--ink)}
.mx-tab{padding:10px 20px;font-weight:800;text-decoration:none;display:flex;gap:6px;align-items:baseline}.mx-tab small{font-size:12px;opacity:.6}
.mx-tab+.mx-tab{border-left:2px solid var(--ink)}
.mx-tab[aria-current=page]{background:var(--ink);color:#fff}.mx-tab[aria-current=page] small{opacity:.8;color:var(--marigold)}
.mx-chips{display:flex;gap:8px;overflow-x:auto;margin:12px calc(-1*var(--gutter)) 0;padding:2px var(--gutter) 4px;scrollbar-width:none}.mx-chips::-webkit-scrollbar{display:none}
.mx-chip{flex:none;border:2px solid var(--ink);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:700;text-decoration:none;background:transparent}
.mx-chip[aria-current=true]{background:var(--marigold)}
.mx-note{font-size:13px;color:var(--muted);margin:16px 0 18px}
.mx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}
.mx-card{position:relative;display:flex;flex-direction:column;gap:10px}
.mx-card-link{text-decoration:none;display:flex;flex-direction:column;gap:10px}
.mx-media{position:relative;display:block;aspect-ratio:4/5;border:2.5px solid var(--ink);border-radius:20px;overflow:hidden;background:var(--bone);box-shadow:4px 4px 0 var(--ink);transition:transform .2s ease,box-shadow .2s ease}
.mx-media picture,.mx-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.mx-back{opacity:0;transition:opacity .35s ease}
.mx-card:hover .mx-back,.mx-card.is-flipped .mx-back,.mx-card-link:focus-visible .mx-back{opacity:1}
.mx-card:hover .mx-media{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.mx-concept{position:absolute;top:10px;left:10px;z-index:1;background:#fff;border:2px solid var(--ink);border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px}
.mx-flip{color:var(--ink);box-shadow:none;min-height:0;position:absolute;right:10px;top:10px;z-index:2;border:2px solid var(--ink);background:#fff;border-radius:999px;font-size:12px;font-weight:800;padding:4px 10px;cursor:pointer}
.mx-flip[aria-pressed=true]{background:var(--ink);color:#fff}
.mx-meta{display:grid;gap:2px;padding:0 2px}
.mx-code{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.mx-name{font-size:18px;font-weight:900;letter-spacing:-.03em;line-height:1.1}
.mx-colour{font-size:13px;color:#3a3d5c}
.mx-price{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--cobalt)}
.mx-save{color:var(--ink);box-shadow:none;border:2px solid var(--ink);background:#fff;border-radius:999px;min-height:42px;font-weight:800;font-size:14px;cursor:pointer}
.mx-save .mx-save-on,.mx-save[aria-pressed=true] .mx-save-off{display:none}.mx-save[aria-pressed=true] .mx-save-on{display:inline}
.mx-save[aria-pressed=true]{background:var(--marigold)}
.mx-empty{padding:28px;border:2.5px dashed var(--ink);border-radius:20px;text-align:center;font-weight:700}
.mx-how{margin:70px 0 0;background:var(--ink);color:#fff;border-radius:28px;padding:34px 24px;box-shadow:8px 8px 0 var(--cobalt)}
.mx-how h2{font-size:clamp(30px,4vw,48px)}
.mx-how ol{list-style:none;counter-reset:s;padding:0;margin:0 0 24px;display:grid;gap:14px}
.mx-how li{counter-increment:s;display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:start;font-size:16px;line-height:1.45;color:#dfe2ff}
.mx-how li::before{content:counter(s);width:40px;height:40px;border-radius:50%;background:var(--marigold);color:var(--ink);display:grid;place-items:center;font-weight:900}
.mx-how li b{color:#fff;display:block;font-size:18px}
.mx-look{display:grid;gap:24px;margin-top:70px;align-items:center}
.mx-look figure{margin:0;position:relative;border:2.5px solid var(--ink);border-radius:26px;overflow:hidden;box-shadow:8px 8px 0 var(--orange)}
.mx-look h2{font-size:clamp(32px,4.4vw,56px)}
.mx-dock{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:20;display:flex;align-items:center;gap:12px;background:var(--cobalt);color:#fff;text-decoration:none;font-weight:800;border:2.5px solid var(--ink);border-radius:999px;padding:12px 14px 12px 22px;box-shadow:4px 4px 0 var(--ink)}
.mx-dock b{background:var(--marigold);color:var(--ink);border-radius:999px;min-width:28px;height:28px;display:grid;place-items:center;padding:0 6px}
.mx-dock.is-bump{animation:mx-bump .4s ease}@keyframes mx-bump{50%{transform:translateX(-50%) scale(1.08)}}
dialog.mx-sheet{border:2.5px solid var(--ink);padding:0;background:var(--bone);color:var(--ink);width:100%;max-width:100%;max-height:92vh;margin:auto 0 0;border-radius:26px 26px 0 0;box-shadow:0 -6px 0 var(--ink)}
dialog.mx-sheet[open]{animation:mx-up .3s cubic-bezier(.2,.9,.3,1)}@keyframes mx-up{from{transform:translateY(40px);opacity:0}}
dialog.mx-sheet::backdrop{background:rgba(20,22,59,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.mx-sheet-bar{position:sticky;top:0;height:0;z-index:3}
.mx-sheet-x{color:var(--ink);padding:0;min-height:0;box-shadow:3px 3px 0 var(--ink);position:absolute;right:12px;top:12px;width:42px;height:42px;border-radius:50%;border:2px solid var(--ink);background:#fff;font-weight:900;cursor:pointer}
.mx-sheet [data-sheet-body]{padding:66px 18px 28px}
.mx-sheet .mx-detail{padding-top:0}
.mx-page{padding-top:18px}
.mx-return{display:inline-block;font-weight:800;text-decoration:none;margin:6px 0 14px}
.mx-detail{display:grid;gap:26px}
.mx-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.mx-gallery figure{margin:0;position:relative;border:2.5px solid var(--ink);border-radius:20px;overflow:hidden;background:var(--bone);aspect-ratio:4/5}
.mx-gallery figure img{width:100%;height:100%;object-fit:cover;display:block}
.mx-gallery figcaption{position:absolute;left:8px;bottom:8px;background:#fff;border:2px solid var(--ink);border-radius:999px;font-size:11px;font-weight:800;padding:2px 9px}
.mx-board{grid-column:1/-1;border:2px solid var(--ink);border-radius:16px;background:#fff;padding:10px 14px}
.mx-board summary{cursor:pointer;font-weight:800}.mx-board img{width:100%;height:auto;border-radius:10px;margin-top:10px;display:block}.mx-board p{font-size:13px;color:var(--muted);margin:8px 0 0}
.mx-title{font-size:clamp(38px,5vw,64px)!important;margin:6px 0 6px!important}
.mx-price-lg{font-family:var(--serif);font-style:italic;font-size:24px;color:var(--cobalt);margin:0 0 12px}
.mx-status{font-size:14px;color:#3a3d5c;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:10px 12px}
.mx-status span{display:inline-block;background:var(--marigold);border-radius:999px;font-weight:800;font-size:12px;padding:1px 9px;margin-right:6px}
.mx-story{font-size:17px;line-height:1.5}
.mx-specs{display:grid;gap:0;margin:0 0 20px;border-top:2px solid var(--ink)}
.mx-specs div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:10px 0;border-bottom:1.5px solid #d9d3c6}
.mx-specs dt{font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.mx-specs dd{margin:0}.mx-specs small{color:var(--orange);font-weight:800;text-transform:uppercase;font-size:10px;letter-spacing:.1em}
.mx-pick{display:grid;gap:14px;background:#fff;border:2.5px solid var(--ink);border-radius:22px;padding:18px;box-shadow:5px 5px 0 var(--ink)}
.mx-pick fieldset,.mx-consent{border:0;padding:0;margin:0}.mx-pick legend,.mx-consent legend{font-weight:900;margin-bottom:8px}
.mx-sizes{display:flex;flex-wrap:wrap;gap:8px}
.mx-size input{position:absolute;opacity:0;pointer-events:none}
.mx-size span{display:inline-grid;place-items:center;min-width:52px;height:44px;padding:0 12px;border:2px solid var(--ink);border-radius:12px;font-weight:800;cursor:pointer;background:#fff}
.mx-size input:checked+span{background:var(--ink);color:#fff}.mx-size input:focus-visible+span{outline:3px solid var(--cobalt);outline-offset:2px}
.mx-field{display:grid;gap:6px;font-weight:800;font-size:14px}.mx-field small,.mx-check small{font-weight:600;color:var(--muted)}
.mx-field input{min-height:48px;border:2px solid var(--ink);border-radius:12px;padding:0 14px;background:#fff;font-weight:500;font-size:16px}
.mx-hint{font-size:13px;color:var(--muted);margin:0}
.mx-pair{margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.mx-pair .mx-kicker{grid-column:1/-1;margin:0}
.mx-pair a{text-decoration:none;font-weight:800;font-size:14px;display:grid;gap:6px}.mx-pair picture{display:block;border:2px solid var(--ink);border-radius:14px;overflow:hidden;aspect-ratio:4/5}.mx-pair img{width:100%;height:100%;object-fit:cover;display:block}
.mx-list-head h1{margin-top:14px}
.mx-list-grid{display:grid;gap:28px;margin-top:10px}
.mx-h2{font-size:28px!important;display:flex;align-items:center;gap:10px}.mx-h2 b{font-size:14px;background:var(--marigold);border:2px solid var(--ink);border-radius:999px;padding:0 9px}
.mx-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.mx-item{display:grid;grid-template-columns:84px 1fr;gap:12px;background:#fff;border:2.5px solid var(--ink);border-radius:18px;padding:10px;box-shadow:3px 3px 0 var(--ink)}
.mx-item img{width:84px;height:105px;object-fit:cover;border-radius:10px;border:1.5px solid var(--ink);display:block}
.mx-item h3{font-size:17px;margin:0 0 2px;letter-spacing:-.02em}.mx-item p{margin:0;font-size:13px;color:var(--muted)}
.mx-item-edit{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;align-items:center}
.mx-item-edit select,.mx-item-edit input{min-height:38px;border:2px solid var(--ink);border-radius:10px;padding:0 8px;background:#fff;font-size:14px;max-width:100%}
.mx-item-edit input{flex:1 1 140px;min-width:0}
.mx-remove{border:0;background:none;box-shadow:none;min-height:0;text-decoration:underline;font-weight:700;cursor:pointer;color:var(--danger);padding:4px}
.mx-item.is-gone{opacity:.55}.mx-item.is-gone h3::after{content:" · no longer available";font-size:12px;color:var(--danger)}
.mx-form{display:grid;gap:12px;background:#fff;border:2.5px solid var(--ink);border-radius:24px;padding:20px;box-shadow:6px 6px 0 var(--cobalt)}
.mx-two{display:grid;gap:12px}
.mx-check{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;font-size:15px;line-height:1.4;margin-bottom:8px;cursor:pointer}
.mx-check input{width:22px;height:22px;accent-color:var(--cobalt);margin:1px 0 0}
.mx-err{color:var(--danger);font-weight:700;font-size:14px;margin:0}.mx-err:empty{display:none}
.mx-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.mx-done{background:var(--marigold);border:2.5px solid var(--ink);border-radius:24px;padding:22px;box-shadow:6px 6px 0 var(--ink);display:grid;gap:14px}
.mx-done h2{font-size:clamp(26px,3.4vw,38px);margin:0}
.mx-admin-row{display:grid;gap:8px;grid-template-columns:1fr;border-top:1px solid var(--line);padding:12px 0}
@media(min-width:640px){.mx-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 20px}.mx-why-grid{grid-template-columns:repeat(3,1fr)}.mx-two{grid-template-columns:1fr 1fr}.mx-pair{grid-template-columns:repeat(2,minmax(0,160px))}}
@media(min-width:900px){
  .mx-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);padding:48px 0 56px;gap:48px}
  .mx-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .mx-shop-head{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:24px}.mx-shop-head h2{margin:0}.mx-chips{grid-column:1/-1}
  .mx-how{padding:48px;display:grid;grid-template-columns:1fr 1.2fr;gap:20px 48px;align-items:start}.mx-how ol{margin:0}.mx-how .mx-btn{grid-column:2;justify-self:start}
  .mx-look{grid-template-columns:1.1fr 1fr;gap:48px}
  .mx-detail{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:start}
  .mx-info{position:sticky;top:20px}
  .mx-list-grid{grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:40px;align-items:start}
  dialog.mx-sheet{width:min(1100px,calc(100% - 64px));margin:auto;border-radius:28px;box-shadow:8px 8px 0 var(--ink);max-height:90vh}
  .mx-admin-row{grid-template-columns:200px auto auto auto 1fr auto;align-items:center}
}
@media(prefers-reduced-motion:reduce){.mx-marquee div,dialog.mx-sheet[open],.mx-dock.is-bump{animation:none}.mx-btn,.mx-media,.mx-back{transition:none}}
.mx-flip:hover,.mx-save:hover,.mx-sheet-x:hover{background:var(--lilac);border-color:var(--ink)}.mx-save[aria-pressed=true]:hover{background:var(--marigold)}.mx-flip[aria-pressed=true]:hover{background:var(--ink)}
.mx-remove:hover{background:none;border-color:transparent;color:var(--danger)}button.mx-btn:hover{background:var(--cobalt);border-color:var(--ink)}
.mx-done .mx-pill{justify-self:start}

/* Drop 01 store: swatches, join flow, store info. */
.sw-acid-black{background:#2b2b2e}.sw-bone{background:#ece6da}.sw-butter{background:#f5df8f}.sw-charcoal{background:#3a3a3d}.sw-cobalt{background:#2e44ff}.sw-cocoa{background:#5a3a28}.sw-coral{background:#ff7f66}.sw-cream{background:#f4ecd8}.sw-marigold{background:#ffb71b}.sw-orange{background:#ff6a1f}.sw-plum{background:#4b1f4f}.sw-sand{background:#d8c7a6}
.mx-tag{position:absolute;top:10px;left:10px;z-index:1;background:#fff;border:2px solid var(--ink);border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px}
.mx-swatches{display:flex;gap:5px;margin:2px 0}.mx-swatches i{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--ink);display:block}
.mx-join{display:flex;align-items:center;justify-content:center;min-height:44px;border:2.5px solid var(--ink);border-radius:999px;background:var(--ink);color:#fff;font-weight:800;font-size:14px;text-decoration:none;box-shadow:3px 3px 0 var(--marigold);transition:transform .15s ease}
.mx-join:hover{transform:translate(-1px,-1px);background:var(--cobalt)}
.mx-colours{display:flex;flex-wrap:wrap;gap:8px}
.mx-colour input{position:absolute;opacity:0;pointer-events:none}
.mx-colour span{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px 0 8px;border:2px solid var(--ink);border-radius:999px;font-weight:800;cursor:pointer;background:#fff;font-size:14px}
.mx-colour span i{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--ink);display:block}.mx-colour small{font-weight:600;color:var(--muted)}
.mx-colour input:checked+span{background:var(--ink);color:#fff}.mx-colour input:checked+span small{color:var(--marigold)}.mx-colour input:focus-visible+span{outline:3px solid var(--cobalt);outline-offset:2px}
.mx-done-box{background:var(--marigold);border:2.5px solid var(--ink);border-radius:20px;padding:16px 18px;box-shadow:4px 4px 0 var(--ink);margin-bottom:16px}
.mx-done-box p{margin:0 0 10px;font-size:17px;line-height:1.35}
.mx-joined{list-style:none;padding:0;margin:0;display:grid;gap:6px}.mx-joined li{display:flex;justify-content:space-between;align-items:center;background:#fff;border:2px solid var(--ink);border-radius:12px;padding:6px 6px 6px 12px;font-weight:800}
.mx-leave{border:0;background:none;box-shadow:none;min-height:0;padding:6px 10px;color:var(--danger);text-decoration:underline;font-weight:700;font-size:14px;cursor:pointer}
.mx-leave:hover{background:none;border-color:transparent;color:var(--danger)}
.mx-info-list{margin-top:20px;display:grid;gap:8px}
.mx-info-block{border:2px solid var(--ink);border-radius:16px;background:#fff;padding:12px 16px}.mx-info-block summary{cursor:pointer;font-weight:900;font-size:16px}.mx-info-block p{margin:10px 0 0;line-height:1.5}
.mx-guide table{width:100%;border-collapse:collapse;margin-top:10px;font-size:14px;font-variant-numeric:tabular-nums}.mx-guide caption{text-align:left;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding-bottom:6px}
.mx-guide th,.mx-guide td{text-align:left;padding:7px 8px;border-bottom:1.5px solid #e4ded1}.mx-guide th{background:var(--bone)}.mx-guide p{font-size:14px;color:#3a3d5c}
.mx-guide-link{margin-top:10px}.mx-guide-link summary{cursor:pointer;font-weight:800;color:var(--cobalt);text-decoration:underline}
.mx-store{display:grid;gap:22px;margin-top:70px}.mx-store h2{font-size:clamp(30px,4vw,48px)}.mx-store>div{display:grid;gap:10px;align-content:start}
.mx-store .mx-how{margin:0;display:block;padding:28px 24px}.mx-store .mx-how h3{font-size:28px;color:#fff;letter-spacing:-.03em;margin:0 0 18px}.mx-store .mx-how h3 em{font-family:var(--serif);font-weight:400;color:var(--marigold)}
.mx-list .mx-item{grid-template-columns:84px 1fr}.mx-item picture{display:block;width:84px;height:105px;border-radius:10px;overflow:hidden;border:1.5px solid var(--ink)}.mx-item picture img{width:100%;height:100%;object-fit:cover}.mx-item h3 a{text-decoration:none}
@media(min-width:900px){.mx-store{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:start}.mx-store .mx-how{position:sticky;top:20px}}
.pay-box{display:grid;gap:8px;margin:12px 0}.pay-box .notice{margin:0}.pay-box .button{justify-self:start}
.pay-line{font-size:15px}.pay-tag.is-low{background:#fde7e2;color:var(--danger)}

/* Homepage (/): safety first. A ticket that lists what every plan comes with, then the proof. Text and CSS only. */
.hs-hero{display:grid;gap:36px;align-items:center;padding-top:36px;margin-bottom:56px}
.hs-hero h1{font-size:clamp(42px,6.2vw,88px);margin-bottom:16px}.hs-hero h1 em{color:var(--cobalt)}
.hs-second{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.6vw,30px);color:var(--ink);margin:0 0 18px;letter-spacing:-.02em}
.hs-hero .lede{max-width:52ch}
.hs-proof{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.hs-proof li{background:var(--card);border:2px solid var(--ink);border-radius:999px;padding:7px 14px;font-size:14px;box-shadow:3px 3px 0 var(--ink)}.hs-proof b{font-size:16px;color:var(--cobalt)}
.hs-ticket{position:relative;background:var(--card);border:2.5px solid var(--ink);border-radius:26px;box-shadow:8px 8px 0 var(--ink);overflow:hidden;max-width:460px;justify-self:center;width:100%}
.hs-ticket-top{position:relative;background:var(--ink);color:#fff;padding:22px 24px 26px;border-bottom:2.5px dashed var(--marigold)}
.hs-ticket-kicker{margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--marigold)}
.hs-ticket-title{margin:0;font-size:40px;font-weight:900;letter-spacing:-.05em;line-height:.95}.hs-ticket-title em{font-family:var(--serif);font-weight:400;color:var(--marigold)}
.hs-ticket-top::before,.hs-ticket-top::after{content:"";position:absolute;width:28px;height:28px;border-radius:50%;background:var(--paper);border:2.5px solid var(--ink);bottom:-15px}.hs-ticket-top::before{left:-16px}.hs-ticket-top::after{right:-16px}
.hs-ticket ul{list-style:none;margin:0;padding:20px 24px 8px;display:grid;gap:12px}
.hs-ticket li{display:flex;align-items:center;gap:12px;font-weight:700;font-size:16px}
.hs-check{flex:none;width:30px;height:30px;border-radius:50%;background:var(--marigold);border:2px solid var(--ink);display:grid;place-items:center;font-weight:900;font-size:15px}
.hs-check .verified-tick{display:grid;place-items:center;color:var(--verified)}
.hs-ticket-foot{margin:0;padding:12px 24px 18px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hs-safety{margin-bottom:64px}.hs-safety h2 em,.hs-rules h2 em,.hs-women h2 em,.hs-join h2 em{color:var(--cobalt)}
.hs-grid{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:14px}
.hs-grid li{background:var(--card);border:2px solid var(--ink);border-radius:var(--radius);padding:20px;box-shadow:4px 4px 0 var(--ink)}
.hs-grid h3{margin:12px 0 6px}.hs-grid p{margin:0;color:#3a3d5c}
.hs-ico{width:44px;height:44px;border-radius:14px;background:var(--lilac);border:2px solid var(--ink);display:grid;place-items:center;color:var(--cobalt)}.hs-ico svg{width:28px;height:28px}
.hs-ico-tick{background:#e6f4fe;color:var(--verified)}.hs-ico-tick .verified-tick svg{width:26px;height:26px}
.hs-rules{display:grid;gap:24px;background:var(--ink);color:#fff;border-radius:28px;padding:clamp(26px,5vw,56px);margin-bottom:64px;box-shadow:8px 8px 0 var(--marigold)}
.hs-rules .eyebrow{color:var(--marigold)}.hs-rules h2 em{color:var(--marigold)}.hs-rules p{color:#d9dcff}.hs-rules .text-link{color:#fff}
.hs-rules ol{list-style:none;counter-reset:r;margin:0;padding:0;display:grid;gap:12px}
.hs-rules li{counter-increment:r;display:grid;grid-template-columns:44px 1fr;gap:4px 14px;background:#ffffff12;border:2px solid #ffffff2e;border-radius:18px;padding:16px}
.hs-rules li::before{content:counter(r);grid-row:span 2;width:40px;height:40px;border-radius:50%;background:var(--marigold);color:var(--ink);display:grid;place-items:center;font-weight:900}
.hs-rules li b{font-size:19px;letter-spacing:-.02em}.hs-rules li span{color:#d9dcff}
.hs-women{margin-bottom:64px}.hs-faq{display:grid;gap:10px;margin-top:22px;max-width:820px}
.hs-faq details{background:var(--card);border:2px solid var(--ink);border-radius:18px;padding:16px 20px}.hs-faq summary{cursor:pointer;font-weight:800;font-size:18px}.hs-faq p{margin:10px 0 0;color:#3a3d5c}
.hs-ran{margin-bottom:64px}.hs-ran-grid{display:grid;gap:14px}
.hs-ran article{background:var(--marigold);border:2px solid var(--ink);border-radius:var(--radius);padding:22px;box-shadow:4px 4px 0 var(--ink)}.hs-ran article:nth-child(2){background:var(--lilac)}.hs-ran h3{font-size:26px;letter-spacing:-.03em;margin:4px 0 6px}.hs-ran p{margin:0}
.hs-join{text-align:center;padding:56px 0 24px}.hs-join p{color:var(--muted);margin-bottom:22px}
@media(min-width:760px){.hs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hs-ran-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.hs-hero{grid-template-columns:minmax(0,1.4fr) minmax(0,.7fr);gap:56px;padding-top:64px}.hs-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hs-rules{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:48px}}
.guest-sort{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:end;margin:12px 0}
.guest-sort-by{display:grid;gap:4px;margin:0;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.guest-sort select{min-height:44px;max-width:52vw}.guest-sort .admin-search{margin:0;min-height:44px}
.guest-sort.is-live [data-sort-submit]{display:none}.guest-sort.is-live{grid-template-columns:auto minmax(0,1fr)}
@media(max-width:520px){.guest-sort,.guest-sort.is-live{grid-template-columns:minmax(0,1fr)}.guest-sort select{max-width:none;width:100%}}

/* Feedback by personal link (/feedback/<token>): blue ticket cards, mobile-first. */
.fb{max-width:640px;margin:0 auto;padding:28px 0 80px;display:grid;gap:18px}
.fb-ticket{background:var(--ink);color:#fff;border-radius:24px;padding:22px 24px;border-bottom:3px dashed var(--marigold);box-shadow:6px 6px 0 var(--cobalt)}
.fb-kicker,.fb-step{margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--marigold)}
.fb-ticket-title{margin:0;font-size:clamp(30px,6vw,44px);font-weight:900;letter-spacing:-.04em;line-height:.98}.fb-ticket-sub{margin:8px 0 0;color:#cfd3ff;font-size:14px}
.fb-form{display:grid;gap:18px}
.fb-card{background:var(--cobalt);color:#fff;border:2.5px solid var(--ink);border-radius:24px;padding:22px;box-shadow:6px 6px 0 var(--ink);display:grid;gap:12px}
.fb-card-alt{background:#fff;color:var(--ink)}.fb-card-alt .fb-step{color:var(--cobalt)}
.fb-card h1,.fb-card h2{font-size:clamp(26px,5vw,36px);line-height:1.02;letter-spacing:-.04em;margin:0}
.fb-card textarea{width:100%;border:2px solid var(--ink);border-radius:16px;padding:12px 14px;font:inherit;font-size:16px;background:#fff;color:var(--ink);resize:vertical}
.fb-hint{margin:0;font-size:13px;font-weight:700;opacity:.85}
.fb-chips{display:flex;flex-wrap:wrap;gap:8px}
.fb-chip input{position:absolute;opacity:0;pointer-events:none}
.fb-chip span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font-weight:700;font-size:14px;cursor:pointer}
.fb-chip input:checked+span{background:var(--marigold)}.fb-chip input:focus-visible+span{outline:3px solid var(--marigold);outline-offset:2px}
.fb-card-alt .fb-chip input:checked+span{background:var(--ink);color:#fff}
.fb-consent{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;background:#fff;border:2px solid var(--ink);border-radius:16px;padding:14px;font-weight:700;cursor:pointer}
.fb-consent input{width:22px;height:22px;accent-color:var(--cobalt);margin:1px 0 0}
.fb-card-solo{background:#fff;color:var(--ink)}.fb-card-solo p{margin:0}.fb-card-solo .button{justify-self:start}
.fb-answers{background:var(--lilac);border-radius:16px;padding:14px;display:grid;gap:8px}
.fb-tags{display:inline-flex;flex-wrap:wrap;gap:6px}.fb-tags i{font-style:normal;font-size:12px;font-weight:800;background:var(--marigold);color:var(--ink);border-radius:999px;padding:2px 9px}
.fb-notes{display:grid;gap:12px;margin:14px 0}
.fb-note{background:var(--cobalt);color:#fff;border:2px solid var(--ink);border-radius:18px;padding:16px;box-shadow:4px 4px 0 var(--ink)}.fb-note:not(.is-featured){background:#fff;color:var(--ink)}
.fb-note-who{margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.85}.fb-note-q{margin:0 0 8px;font-family:var(--serif);font-style:italic;font-size:20px;line-height:1.3}
.fb-note-wish{margin:6px 0 0;font-size:14px}.fb-note-wish i{font-style:normal;font-size:12px;font-weight:800;background:var(--lilac);color:var(--ink);border-radius:999px;padding:2px 8px;margin-left:4px}
@media(min-width:760px){.fb-notes{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fb-next{list-style:none;padding:0;margin:0;display:grid;gap:8px}.fb-next a{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border:2px solid var(--ink);border-radius:14px;padding:12px 14px;text-decoration:none;background:var(--lilac)}.fb-next span{color:var(--muted);font-size:14px}
.fb-share{border:2px dashed var(--ink);border-radius:16px;padding:14px;margin-top:14px}.fb-share p{margin:0 0 8px}.fb-share-url{font-family:ui-monospace,Menlo,monospace;font-size:14px;word-break:break-all}
.fb-founder{display:inline-block;background:var(--marigold);color:var(--ink);border-radius:999px;padding:1px 8px;margin-right:4px;letter-spacing:.06em}.fb-note.is-founder{border-style:dashed}
.cancelled-banner{display:grid;gap:10px;margin:0 0 24px;padding:20px 22px;border:2px solid var(--ink);border-radius:var(--radius);background:var(--card);box-shadow:4px 5px 0 var(--ink)}.cancelled-banner h2{margin:0;font-size:clamp(22px,4vw,30px)}.cancelled-banner p{margin:0}
.cancelled-pill{display:inline-block;padding:2px 10px;border-radius:999px;background:#fde7e2;color:var(--danger);font-weight:800;letter-spacing:.06em}
.event-stub.is-cancelled{opacity:.62;filter:grayscale(1)}.event-stub.is-cancelled .stub-note{margin:6px 0 0;font-size:14px}

/* Homepage, pop pass: the old hero is back on top; the safe-community block and guests' words get the same loud cards. */
.hs-safety{margin-top:24px}.hs-safe-head{max-width:900px}.hs-safe-head h2{font-size:clamp(38px,5.6vw,72px)}
.hs-grid li{transition:transform .18s,box-shadow .18s}
.hs-grid li:nth-child(3n+1){background:#fff8e6}.hs-grid li:nth-child(3n+2){background:#f1f3ff}
.hs-grid li:hover{transform:translate(-2px,-3px) rotate(-.6deg);box-shadow:7px 8px 0 var(--ink)}

/* "What people say about us": the group chat after. Chat-bubble stickers, slightly rotated, hard navy shadows;
   a swipeable strip on phones, a loose masonry on desktop. The quote is a real excerpt in bold sans. */
.hs-voices{margin:0 0 64px}.hs-voices-head h2 em{color:var(--cobalt)}
.hs-chats{display:flex;align-items:flex-start;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin:18px calc(-1*var(--gutter)) 0;padding:12px var(--gutter) 26px;scrollbar-width:none}
.hs-chats::-webkit-scrollbar{display:none}
.hs-chat{flex:0 0 min(84%,340px);scroll-snap-align:center;margin:0;display:grid;gap:12px;align-content:start;padding:16px 18px 18px;border:2.5px solid var(--ink);border-radius:24px 24px 24px 6px;background:var(--cobalt);color:#fff;box-shadow:6px 7px 0 var(--ink);transform:rotate(-2deg)}
.hs-chat.c-1{background:var(--marigold);color:var(--ink);transform:rotate(2.5deg);border-radius:24px 24px 6px 24px}
.hs-chat.c-2{background:#fff;color:var(--ink);transform:rotate(-1deg)}
.hs-chat.c-3{background:var(--ink);color:#fff;transform:rotate(2deg);box-shadow:6px 7px 0 var(--cobalt)}
.hs-chat figcaption{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 8px;font-size:14px}
.hs-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--marigold);color:var(--ink);border:2px solid var(--ink);font-weight:900;font-size:16px}
.c-1 .hs-av{background:#fff}.c-2 .hs-av{background:var(--lilac)}
.hs-chat figcaption b{font-size:16px;font-weight:800}
.hs-pill{grid-column:1/-1;justify-self:start;max-width:100%;padding:3px 10px;border:2px solid currentColor;border-radius:999px;font-size:12px;font-weight:800;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-pull{margin:0;font:800 clamp(22px,2.6vw,28px)/1.12 var(--sans);letter-spacing:-.03em}
.hs-full{margin:0;display:grid;gap:8px}.hs-full p{margin:0;font:600 16px/1.45 var(--sans);opacity:.92}
.hs-chat mark{color:inherit;background:linear-gradient(transparent 52%,var(--marigold) 52%,var(--marigold) 92%,transparent 92%);padding:0 2px}
.hs-chat.c-1 mark{background:linear-gradient(transparent 52%,#fff 52%,#fff 92%,transparent 92%)}.hs-chat.c-2 mark{background:linear-gradient(transparent 52%,#bcc5ff 52%,#bcc5ff 92%,transparent 92%)}
.hs-moods{display:flex;flex-wrap:wrap;gap:6px;margin:0}.hs-moods span{padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.2);font-size:12px;font-weight:800}
.c-1 .hs-moods span,.c-2 .hs-moods span{background:rgba(20,22,59,.08)}
@media(min-width:900px){
  .hs-chats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:26px 30px;overflow:visible;margin:24px 0 0;padding:8px 6px 20px}
  .hs-chat{flex:none}.hs-chat:nth-child(3n+2){margin-top:34px}.hs-chat:nth-child(3n){margin-top:10px}
}
@media(prefers-reduced-motion:no-preference){.hs-chat{transition:transform .18s}.hs-chat:hover{transform:rotate(0) translateY(-3px)}}
