@font-face{font-family:"Fraunces Display";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Fraunces144Soft-Bold.woff2) format("woff2")}@font-face{font-family:"Fraunces";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Fraunces72ptSoft-Regular.woff2) format("woff2")}@font-face{font-family:"Fraunces";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Fraunces72ptSoft-SemiBold.woff2) format("woff2")}@font-face{font-family:"Figtree";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Figtree-Regular.woff2) format("woff2")}@font-face{font-family:"Figtree";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Figtree-SemiBold.woff2) format("woff2")}@font-face{font-family:"Figtree";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Figtree-Bold.woff2) format("woff2")}@font-face{font-family:"Display Fallback";src:local("Georgia Bold"),local("Georgia-Bold"),local("Times New Roman Bold");font-weight:700;size-adjust:81%;ascent-override:121%;descent-override:32%;line-gap-override:0%}@font-face{font-family:"Serif Fallback";src:local("Georgia Bold"),local("Georgia-Bold"),local("Times New Roman Bold");font-weight:600 900;size-adjust:86%;ascent-override:114%;descent-override:30%;line-gap-override:0%}@font-face{font-family:"Sans Fallback";src:local("Arial"),local("ArialMT"),local("Helvetica"),local("Roboto");font-weight:400;size-adjust:99%;ascent-override:96%;descent-override:25%;line-gap-override:0%}@font-face{font-family:"Sans Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Helvetica Bold"),local("Roboto Bold");font-weight:600 900;size-adjust:96%;ascent-override:99%;descent-override:26%;line-gap-override:0%}
:root{--hl-ink:#16203A;--hl-on-ink:#FFFFFF;--hl-sky50:#F3F7FD;--hl-paper:#FFF7EC;--hl-paper-deep:#F8EBD9;--hl-night:#11162B;--hl-night-surface:#1C2342;--hl-night-deep:#0B0C14;--hl-surface:#FFFFFF;--hl-surface-alt:#F7F9FC;--hl-sunk:#EBF1F9;--hl-paper-sunk:#F3E7D6;--hl-star:#BF8000;--hl-shadow:#16203A;--hl-line:#E3E8F1;--hl-line-strong:#CBD3E1;--hl-muted:#596781;--hl-faint:#8C98AF;--hl-coral:#FF6A55;--hl-sunflower:#FFC233;--hl-leaf:#2FBF7F;--hl-lagoon:#16A3B8;--hl-sky:#3D86F5;--hl-violet:#8B5CF6;--hl-success:#2FBF7F;--hl-warning:#FFC233;--hl-danger:#E5484D;--hl-link:#0B6E7D;--hl-scrim:rgba(22, 32, 58, 0.48);--hl-coral-ink:#B83D2C;--hl-coral-tint:#FFEDEB;--hl-coral-deep:#E61C00;--hl-sunflower-ink:#8A5A00;--hl-sunflower-tint:#FFF8E7;--hl-sunflower-deep:#996B00;--hl-leaf-ink:#13744A;--hl-leaf-tint:#E6F7F0;--hl-leaf-deep:#208458;--hl-lagoon-ink:#0B6E7D;--hl-lagoon-tint:#E3F4F6;--hl-lagoon-deep:#117F8F;--hl-sky-ink:#1E5FCC;--hl-sky-tint:#E8F0FE;--hl-sky-deep:#166EF3;--hl-violet-ink:#6A3BD1;--hl-violet-tint:#F1EBFE;--hl-violet-deep:#8452F5;color-scheme:light;
--ink:var(--hl-ink);--on-ink:var(--hl-on-ink);--paper:var(--hl-paper);--paper-2:var(--hl-paper-deep);--bg:var(--hl-paper);--card:var(--hl-surface);
--night:var(--hl-night);--night-2:var(--hl-night-surface);--muted:var(--hl-muted);--scrim:var(--hl-scrim);
--line:rgba(22,32,58,.1);--line-strong:rgba(22,32,58,.2);--soft:#F3E7D6;--glass:rgba(255,250,243,.82);
--coral:var(--hl-coral);--sun:var(--hl-sunflower);--leaf:var(--hl-leaf);--lagoon:var(--hl-lagoon);--sky:var(--hl-sky);--violet:var(--hl-violet);
--coral-d:#D9452F;--sun-d:#E0A100;--leaf-d:#1E9A63;--lagoon-d:#0E8193;--sky-d:#2467D6;--violet-d:#6D3FE0;--ink-d:#05080F;
--display:"Fraunces Display","Display Fallback",Georgia,serif;--serif:"Fraunces","Serif Fallback","Iowan Old Style", "Palatino Linotype", Georgia, serif;--sans:"Figtree","Sans Fallback",ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
--g:16px;--max:1240px;--rainbow:conic-gradient(from 200deg, #FF6A55, #FFC233, #2FBF7F, #16A3B8, #3D86F5, #8B5CF6, #FF6A55);
--shadow:0 1px 2px rgba(22,32,58,.05),0 10px 30px -6px rgba(22,32,58,.12);--shadow-lg:0 2px 6px rgba(22,32,58,.06),0 30px 70px -12px rgba(22,32,58,.28);
--lock:#16203A;--sally-line:#16203A;--ease:cubic-bezier(.2,.8,.2,1);--spring:cubic-bezier(.34,1.56,.64,1)}
.hl-chip-coral{background:var(--hl-coral-tint);color:var(--hl-coral-ink)}.hl-chip-sunflower{background:var(--hl-sunflower-tint);color:var(--hl-sunflower-ink)}.hl-chip-leaf{background:var(--hl-leaf-tint);color:var(--hl-leaf-ink)}.hl-chip-lagoon{background:var(--hl-lagoon-tint);color:var(--hl-lagoon-ink)}.hl-chip-sky{background:var(--hl-sky-tint);color:var(--hl-sky-ink)}.hl-chip-violet{background:var(--hl-violet-tint);color:var(--hl-violet-ink)}
.sally{overflow:visible;--sally-bob:-6px;--sally-sway:2.2deg}
.sally .sally-sway,.sally .sally-bob,.sally .sally-layer{transform-box:view-box}
.sally .sally-sway{transform-origin:120px 110px;animation:sally-sway 5600ms cubic-bezier(0.45, 0, 0.55, 1) infinite}
.sally .sally-bob{animation:sally-bob 2800ms cubic-bezier(0.45, 0, 0.55, 1) infinite}
.sally .sally-layer-eyes-open{animation:sally-blink-open 4200ms step-end infinite}
.sally .sally-layer-eyes-closed{animation:sally-blink-closed 4200ms step-end infinite}
.sally .sally-layer-arm-wave{animation:sally-wave 700ms ease-in-out infinite alternate}
.sally .sally-layer-puffs{animation:sally-puffs 6s linear infinite}
.sally .sally-layer-trail path[stroke-dasharray]{animation:sally-trail 1.1s linear infinite}
.sally .sally-layer-confetti{transform-origin:120px 60px;animation:sally-confetti 1.6s ease-in-out infinite alternate}
.sally .sally-layer-zzz{animation:sally-zzz 3.2s ease-in-out infinite}
.sally-think{--sally-bob:-6px}
.sally-think .sally-bob{animation-duration:2200ms}
.sally-cheer{--sally-bob:-9px}
.sally-cheer .sally-bob{animation-duration:1400ms}
.sally-sleep{--sally-bob:-3px;--sally-sway:1deg}
.sally-sleep .sally-bob{animation-duration:4200ms}
.sally-fly{--sally-bob:-4px;--sally-sway:1.2deg}
.sally-fly .sally-bob{animation-duration:2000ms}
.sally-fly .sally-layer-puffs{animation-duration:1.4s}
@keyframes sally-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(var(--sally-bob))}}
@keyframes sally-sway{0%,100%{transform:rotate(calc(var(--sally-sway) * -1))}50%{transform:rotate(var(--sally-sway))}}
@keyframes sally-blink-open{0%{opacity:1}96.7%{opacity:0}100%{opacity:1}}
@keyframes sally-blink-closed{0%{opacity:0}96.7%{opacity:1}100%{opacity:0}}
@keyframes sally-wave{from{transform:rotate(-8deg)}to{transform:rotate(8deg)}}
@keyframes sally-puffs{0%{transform:translateX(10px);opacity:0}15%,80%{opacity:1}100%{transform:translateX(-16px);opacity:0}}
@keyframes sally-trail{to{stroke-dashoffset:-8.6}}
@keyframes sally-confetti{from{transform:translateY(-2px) scale(.98);opacity:.75}to{transform:translateY(4px) scale(1.02);opacity:1}}
@keyframes sally-zzz{0%{transform:translate(-4px,8px);opacity:0}30%,70%{opacity:1}100%{transform:translate(6px,-8px);opacity:0}}
@media (prefers-reduced-motion:reduce){.sally *{animation:none!important}.sally .sally-layer-eyes-closed{opacity:0}}
.sally-static *{animation:none!important}
.sally{color:var(--sally-line)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:84px;background:var(--paper)}
body{margin:0;min-height:100dvh;font:400 17px/1.55 var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;text-rendering:optimizeLegibility}
img,svg,video,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:1.5px;text-underline-offset:3px}
button,input,textarea,select{font:inherit;color:inherit}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px;border-radius:12px}
::selection{background:var(--sun);color:var(--ink)}
.serif{font-family:var(--serif);font-weight:600;letter-spacing:-.01em}
.display{font-family:var(--display);font-weight:700;letter-spacing:-.03em;line-height:.98}
.muted{color:var(--muted)}
.num-t{font-variant-numeric:tabular-nums}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ic{flex:none}
[hidden]{display:none!important}

/* ---------- frame ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--g)}
.narrow{max-width:780px;margin:0 auto;padding:0 var(--g)}
.backdrop{display:none}
@media (min-width:720px){
  :root{--g:28px}
  .backdrop{display:block;position:fixed;inset:0;z-index:-1;overflow:hidden;background:var(--paper)}
  .backdrop img{width:100%;height:100%;object-fit:cover;transform:scale(1.25);filter:blur(56px) saturate(1.3);opacity:.8}
  .backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,247,236,.2),rgba(255,247,236,.55))}
  .backdrop.sky{background:var(--paper)}
}
@media (min-width:1100px){:root{--g:40px}}

/* ---------- header ---------- */
.top{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;height:72px;padding:0 var(--g);transition:background .25s,box-shadow .25s}
.top::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5);opacity:0;transition:opacity .25s;box-shadow:0 1px 0 var(--line)}
.top.scrolled::before{opacity:1}
.top.over{position:absolute;inset:0 0 auto;color:#fff}
.top.over::before{display:none}
.logo{display:inline-flex;align-items:center;gap:9px;min-height:44px;text-decoration:none;font:700 25px/1 var(--display);letter-spacing:-.04em}
.logo svg,.logo .mark{transition:transform .5s var(--spring)}
.logo:hover svg,.logo:hover .mark{transform:translateY(-3px) rotate(-6deg)}
.logo .dot{color:var(--hl-coral-ink);font:800 15px/1 var(--sans);letter-spacing:0;margin-left:2px}
.top.over .logo .dot{color:#fff;opacity:.8}
.top-r{display:flex;gap:8px;align-items:center}
.ibtn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);cursor:pointer;text-decoration:none}
.top.over .ibtn{border-color:rgba(255,255,255,.35);background:rgba(14,20,36,.28);color:#fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.nav{display:none;gap:2px;padding:4px;border-radius:999px}
.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;text-decoration:none;font-weight:600;font-size:15.5px;color:var(--ink);transition:background .2s}
.nav a:hover{background:rgba(22,32,58,.06)}
.nav a[aria-current]{background:var(--ink);color:#fff}
.menu{position:relative}
.menu summary{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--card);border:1px solid var(--line-strong);cursor:pointer;list-style:none}
.menu summary::-webkit-details-marker{display:none}
.menu[open] summary{background:var(--ink);color:#fff;border-color:var(--ink)}
.menu nav{position:absolute;right:0;top:54px;display:grid;gap:2px;min-width:230px;padding:8px;border-radius:24px;background:var(--card);box-shadow:var(--shadow-lg);border:1px solid var(--line)}
.menu nav a{display:flex;align-items:center;min-height:48px;padding:0 14px;border-radius:14px;text-decoration:none;font-weight:600}
.menu nav a:hover{background:var(--paper)}
.top-login{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;font-weight:700;font-size:15.5px;text-decoration:none;color:inherit;transition:background .2s}
.top-login:hover{background:rgba(22,32,58,.06)}
.top .btn-coral .ic,.top .btn-coral svg{flex:none}
.hide-sm{display:none!important}
.show-xs{display:none}
@media (max-width:420px){.hide-xs{display:none}.show-xs{display:inline}.logo{font-size:23px;gap:7px}.logo svg,.logo .mark{width:30px;height:auto}.top{gap:8px}.top .btn-sm{padding:0 14px}}
@media (max-width:359px){.top .btn-coral svg{display:none}.top .btn-sm{padding:0 12px}.top-r{gap:6px}}
@media (min-width:980px){.nav{display:flex}.menu{display:none}.hide-sm{display:inline-flex!important}}

/* ---------- buttons, chips ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border-radius:999px;border:1.5px solid transparent;font:700 16px/1.1 var(--sans);text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform .16s var(--ease),box-shadow .16s var(--ease),background .2s;-webkit-tap-highlight-color:transparent}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(2px)}
.btn[disabled],.btn[aria-disabled=true]{opacity:.5;pointer-events:none}
.btn-ink{background:var(--ink);color:#fff;box-shadow:0 4px 0 var(--ink-d)}
.btn-ink:hover{box-shadow:0 6px 0 var(--ink-d)}.btn-ink:active{box-shadow:0 1px 0 var(--ink-d)}
.btn-coral{background:var(--coral);color:var(--ink);box-shadow:0 4px 0 var(--coral-d)}
.btn-coral:hover{box-shadow:0 6px 0 var(--coral-d)}.btn-coral:active{box-shadow:0 1px 0 var(--coral-d)}
.btn-sun{background:var(--sun);color:var(--ink);box-shadow:0 4px 0 var(--sun-d)}
.btn-ghost{background:var(--card);border-color:var(--line-strong);color:var(--ink)}
.btn-white{background:#fff;color:#16203A;box-shadow:0 4px 0 rgba(0,0,0,.25)}
.btn-line-w{background:transparent;border-color:rgba(255,255,255,.45);color:#fff}
.btn-wide{width:100%}
.btn-sm{min-height:44px;padding:0 18px;font-size:15px}
.btn-sm.btn-coral,.btn-sm.btn-ink{box-shadow:0 3px 0 var(--coral-d)}
.btn-sm.btn-ink{box-shadow:0 3px 0 var(--ink-d)}
.btn-get{position:relative;min-height:56px;padding:0 28px;font-size:17px;color:#fff;border:3.5px solid transparent;background:linear-gradient(#16203A,#16203A) padding-box,var(--rainbow) border-box;box-shadow:0 5px 0 var(--ink-d),0 14px 30px -10px rgba(139,92,246,.55)}
.btn-get:hover{box-shadow:0 7px 0 var(--ink-d),0 18px 36px -10px rgba(255,106,85,.6)}
.btn-get:active{box-shadow:0 1px 0 var(--ink-d)}
.btn-get .price{opacity:.8;font-weight:400}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-weight:600;font-size:15px;text-decoration:none;cursor:pointer;transition:transform .18s var(--spring),border-color .2s,background .2s}
.chip:hover{border-color:var(--ink);transform:translateY(-2px) rotate(-1deg)}
.chip[aria-current],.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip .e{font-size:18px;line-height:1}
.chip .muted{font-weight:400}
.chip.live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 3px color-mix(in srgb,var(--coral) 28%,transparent);animation:pulse 2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--coral) 10%,transparent)}}
.scroller{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--g));padding:4px var(--g) 8px;scroll-padding:0 var(--g)}
.scroller::-webkit-scrollbar{display:none}
.scroller>*{flex:none}
.tag{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:8px;font:700 12.5px/1.4 var(--sans);white-space:nowrap;background:var(--hl-lagoon-tint);color:var(--hl-lagoon-ink)}
.eyebrow,.kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 13px;border-radius:999px;font:700 12.5px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;background:var(--card);color:var(--ink);border:1.5px solid var(--line);text-decoration:none}
.eyebrow::before,.kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--coral)}

/* ---------- Sally ---------- */
.sally-wrap{display:inline-block;line-height:0}
.sally-wrap svg{width:100%;height:auto;color:var(--sally-line)}.sally-wrap img{display:block;width:100%;height:auto}
.sally-on-dark svg{color:#C9D2E3}

/* ---------- section headings, rows, poster cards ---------- */
.sec{margin-top:72px}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.sec-h h2{font:700 clamp(30px,4.2vw,48px)/1 var(--display);letter-spacing:-.03em;text-wrap:balance}
.sec-h a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:700;font-size:15px;color:var(--ink);text-decoration:none;white-space:nowrap;border-bottom:2px solid var(--coral)}
.sec-sub{margin:-10px 0 20px;color:var(--muted);font-size:17px;max-width:60ch}
.row{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(160px,46%,240px);gap:14px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--g));padding:6px var(--g) 14px;scroll-padding:0 var(--g)}
.row::-webkit-scrollbar{display:none}
.row>*{scroll-snap-align:start}
@media (min-width:720px){.row{grid-auto-flow:row;grid-template-columns:repeat(4,1fr);overflow:visible;margin:0;padding:0;gap:22px}}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 14px}
@media (min-width:720px){.grid{grid-template-columns:repeat(3,1fr);gap:28px 22px}}
@media (min-width:1100px){.grid{grid-template-columns:repeat(4,1fr)}}
.pcard{display:block;text-decoration:none;color:inherit;min-width:0}
.pcard-art{position:relative;aspect-ratio:4/5;border-radius:24px;overflow:hidden;background:var(--soft);box-shadow:0 1px 2px rgba(22,32,58,.06),0 12px 26px -12px rgba(22,32,58,.35);transition:transform .35s var(--spring),box-shadow .35s}
.pcard:hover .pcard-art{transform:translateY(-6px) rotate(-1.2deg);box-shadow:0 2px 4px rgba(22,32,58,.06),0 26px 40px -16px rgba(22,32,58,.45)}
.pcard-art img,.pcard-art svg{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.pcard:hover .pcard-art img{transform:scale(1.05)}
.pcard-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,14,28,.8))}
.pcard-t{position:absolute;z-index:1;left:14px;right:14px;bottom:14px;color:#fff;font:700 22px/1.02 var(--display);letter-spacing:-.02em;text-wrap:balance;text-shadow:0 1px 12px rgba(0,0,0,.25)}
.pcard-t small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:6px;font:500 12.5px/1.3 var(--sans);letter-spacing:0;opacity:.92;text-wrap:pretty}
.pcard-b{position:absolute;z-index:1;top:12px;left:12px;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:var(--sun);color:#16203A;font:800 11.5px/1 var(--sans);letter-spacing:.02em}
.pcard-m{display:flex;justify-content:space-between;gap:8px;margin-top:10px;font-size:14px;color:var(--muted)}
.pcard-m b{color:var(--ink);font-weight:700;flex:none;white-space:nowrap}
.pcard-m span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- avatars ---------- */
.av{position:relative;display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;color:#fff;font:700 15px/1 var(--sans);background:var(--av,var(--sky));overflow:visible}
.av img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.av .crown{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--card);color:var(--sun);box-shadow:0 0 0 2px var(--bg)}
.avs{display:flex;align-items:center}
.avs .av{width:48px;height:48px;box-shadow:0 0 0 3px var(--bg);margin-right:-8px}
.avs .more{background:var(--soft);color:var(--ink)}

/* ---------- page heads (content pages): a headline over stepped brick blocks ---------- */
.phead{position:relative;overflow:hidden;padding:30px 0 56px;margin-bottom:12px}
.phead .wrap{position:relative;z-index:1}
.phead .kicker{margin-bottom:16px}
.phead h1{font:700 clamp(46px,7.4vw,96px)/.92 var(--display);letter-spacing:-.04em;max-width:13ch;text-wrap:balance}
.phead .lead{margin-top:18px;font-size:clamp(17px,1.6vw,20px);line-height:1.5;max-width:54ch;text-wrap:pretty}
.phead .bricks{position:absolute;right:max(16px,4vw);bottom:0;width:min(36vw,440px);height:auto;pointer-events:none}
.phead .bricks .brk{transform-box:fill-box;transform-origin:50% 100%;animation:drop .9s var(--spring) both;animation-delay:calc(.1s + var(--i) * .08s)}
@keyframes drop{0%{transform:translateY(-120%);opacity:0}40%{opacity:1}}
@media (max-width:899px){.phead .bricks{width:150px;right:12px;opacity:.95}.phead{padding-bottom:40px}.phead h1{max-width:none;padding-right:0}}
@media (max-width:899px){.phead .lead,.phead form,.phead .filters,.phead .chips{position:relative;z-index:2}.phead h1{padding-right:96px}}
.phead.tint-sun{background:var(--sun)}.phead.tint-sky{background:#C4E0FF}.phead.tint-leaf{background:#BFEBD5}.phead.tint-coral{background:#FFCDC2}.phead.tint-violet{background:#DCD0FF}.phead.tint-paper{background:var(--paper-2)}
.phead .kicker{background:rgba(255,255,255,.7);border-color:transparent}
.phead .crumbs,.phead .crumbs a{color:var(--ink)}
.phead .crumbs li+li::before{background:var(--ink)}
/* page heads with their own brick art: a city's trip board (wide) or a country build (square); explore gets a trio */
.phead.has-art{padding:26px 0 0}
.phead-grid{display:grid;gap:4px}
.phead.has-art .phead-txt{padding-bottom:22px;min-width:0}
.phead-art{position:relative;display:grid;justify-items:center;pointer-events:none}
.phead-art img{display:block;max-width:none;height:auto;filter:drop-shadow(0 16px 16px rgba(22,32,58,.16))}
.art-board .phead-art img{width:min(100%,560px);margin:0 auto -4px}
.art-landmark .phead-art img{width:min(54vw,210px);margin:-8px auto 4px}
.art-trio .phead-art{display:none}
@media (max-width:899px){.phead.has-art h1{padding-right:0}}
@media (min-width:900px){
.phead.has-art{padding:30px 0 0}
.phead-grid{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);align-items:center;gap:clamp(20px,3vw,48px)}
.phead.has-art .phead-txt{padding-bottom:56px}
.art-board .phead-art img{width:100%;max-width:660px;margin:0 0 -10px}
.art-landmark .phead-grid,.art-trio .phead-grid{grid-template-columns:minmax(0,1fr) 400px}
.art-landmark .phead-art{align-self:end}
.art-landmark .phead-art img{width:380px;margin:0 0 -20px}
.art-trio .phead-art{display:block;align-self:stretch;min-height:300px}
.art-trio .phead-art img{position:absolute}
.art-trio .phead-art>img:first-child{right:10px;bottom:-18px;width:270px;z-index:2}
.art-trio .phead-art .m1{right:236px;bottom:40px;width:190px;z-index:1}
.art-trio .phead-art .m2{right:96px;bottom:176px;width:170px}
}
@media (min-width:900px) and (prefers-reduced-motion:no-preference){.phead-art img{animation:art-in .9s var(--spring) both}.art-trio .phead-art .m1{animation-delay:.12s}.art-trio .phead-art .m2{animation-delay:.24s}}
@keyframes art-in{from{opacity:0;transform:translateY(26px) scale(.96)}to{opacity:1;transform:none}}
/* one or two events on a hub: wide feature cards */
.evf-list{display:grid;gap:16px}
@media (min-width:900px){.evf-list.n2{grid-template-columns:1fr 1fr}}
.evf{display:grid;grid-template-columns:minmax(110px,38%) minmax(0,1fr);gap:clamp(14px,2.4vw,30px);align-items:center;padding:12px;border-radius:28px;background:var(--card);border:1.5px solid var(--line);color:var(--ink);text-decoration:none;transition:transform .25s var(--spring),border-color .2s}
.evf:hover{transform:translateY(-3px);border-color:var(--ink)}
.evf-art{position:relative;aspect-ratio:3/4;border-radius:20px;overflow:hidden;background:var(--paper-2)}
.evf-art img,.evf-art svg{display:block;width:100%;height:100%;object-fit:cover}
.evf-txt{display:grid;gap:10px;justify-items:start;min-width:0;padding:6px 8px 6px 0}
.evf-date{display:inline-flex;padding:6px 11px;border-radius:999px;background:var(--sun);font:800 12.5px/1 var(--sans);letter-spacing:.02em}
.evf h3{font:700 clamp(26px,3.6vw,48px)/.95 var(--display);letter-spacing:-.035em;text-wrap:balance}
.evf p{font-size:16px;line-height:1.5;max-width:46ch}
.evf .evf-meta{color:var(--muted);font-size:14.5px;font-weight:600}
.evf .btn{margin-top:6px}
@media (max-width:519px){.evf h3{font-size:24px}.evf p:not(.evf-meta){display:none}.evf .btn{min-height:44px;padding:0 16px;font-size:15px}}
@media (min-width:900px){.evf-list.n1 .evf{grid-template-columns:300px minmax(0,1fr);max-width:980px;padding:16px}}
.search{position:relative;display:flex;align-items:center;gap:8px;max-width:620px;margin-top:26px;padding:6px 6px 6px 18px;border-radius:999px;background:#fff;border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink)}
.search>.ic{color:var(--muted)}
.search .inp{border:0;min-height:44px;padding:0 4px;background:transparent;box-shadow:none!important;border-radius:0}
.search .btn{flex:none}
.filters{display:grid;gap:6px;margin-top:18px;max-width:900px}
.filters .scroller{margin-left:0;padding-left:0}
.phead .chip{background:rgba(255,255,255,.75);border-color:transparent}
.phead .chip[aria-current]{background:var(--ink);color:#fff}
.hub-cities{justify-content:flex-start;margin-top:22px;max-width:900px}
.plan-band{display:grid;gap:22px;align-items:center;margin-top:72px;padding:36px clamp(20px,4vw,48px);border-radius:32px;background:var(--coral);color:var(--ink)}
.plan-band h2{font:700 clamp(34px,4.6vw,58px)/.95 var(--display);letter-spacing:-.035em}
.plan-band p{margin-top:10px;font-size:17px;max-width:40ch;font-weight:400}
@media (min-width:900px){.plan-band{grid-template-columns:1fr 1.1fr}}
.up-link{margin-top:40px}
.up-link a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:700;font-size:17px;text-decoration:none;border-bottom:2px solid var(--coral)}

/* ---------- editorial pages (places, guides): head, gallery, main + sticky aside ---------- */
.doc-head{padding-top:22px}
.doc-head h1{font:700 clamp(40px,6vw,76px)/.95 var(--display);letter-spacing:-.04em;max-width:18ch;text-wrap:balance;margin-top:6px}
.doc-head .kicker{margin:4px 0 14px}
.doc-head .lead{margin-top:16px;font-size:clamp(17px,1.5vw,20px);line-height:1.5;max-width:60ch;opacity:.85;text-wrap:pretty}
.doc-head .ps-meta{margin-top:16px;font-size:15px;gap:8px 16px}
.doc-head .ql{margin-top:18px}
.byline{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:15px}
.byline .av{width:36px;height:36px;font-size:13px}
.doc-cta{margin-top:20px;max-width:640px}
p.doc-cta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;font-weight:700}
.doc-cta .ask{box-shadow:0 4px 0 var(--ink);padding:10px 10px 10px 14px}
.doc-cta .ask textarea{font-size:17px;min-height:52px}
@media (min-width:980px){p.doc-cta{display:none}}
.gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:26px 0 0;border-radius:28px}
.gallery::-webkit-scrollbar{display:none}
.gallery figure{position:relative;flex:none;width:min(88%,560px);margin:0;scroll-snap-align:start;border-radius:24px;overflow:hidden;background:var(--soft)}
.gallery figure:first-child{width:min(100%,760px)}
.gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.gallery figcaption{position:absolute;left:10px;bottom:8px;max-width:calc(100% - 20px);padding:4px 8px;border-radius:6px;background:rgba(10,14,28,.55);color:#fff;font-size:11px;line-height:16px}.gallery figcaption a{color:inherit;text-decoration:none}
.doc-hero{margin:28px 0 0;border-radius:30px;overflow:hidden;aspect-ratio:16/8;background:var(--soft)}
.doc-hero img,.doc-hero svg{width:100%;height:100%;object-fit:cover}
.doc{display:grid;gap:36px;margin-top:34px}
@media (min-width:980px){.doc{grid-template-columns:minmax(0,1fr) 360px;gap:64px;align-items:start}.doc-side{position:sticky;top:96px}}
.doc-main{min-width:0;max-width:740px}
.doc-main .lede{font-size:20px;line-height:1.6;margin-bottom:8px}
.doc-main .doc-src{margin-top:28px;font-size:15px;line-height:1.55;color:var(--muted)}
.doc-main .aitags{margin:0 0 22px;background:var(--paper-2)}
.doc-main .faq{padding:0}
.doc-main .faq .h2{margin-top:12px}
.doc-side{display:grid;gap:16px;min-width:0}
.side-card{padding:6px 20px 18px;border-radius:26px;background:var(--card);border:1.5px solid var(--line)}
.side-card .ps-sec:first-child{border-top:0}
.side-card h2{font:800 12.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.side-card .checked{margin-top:16px}
.doc-side .mapbox{margin:0}
.doc-side .map{border-radius:26px;border:3px solid #fff;box-shadow:var(--shadow)}
.side-plan{display:grid;gap:10px;padding:22px;border-radius:26px;background:var(--sun);color:var(--ink)}
.side-plan b{font:700 26px/1 var(--display);letter-spacing:-.03em}
.side-plan p{font-size:15px;font-weight:400}
.side-plan .ask{box-shadow:0 4px 0 var(--ink);padding:10px 10px 10px 14px}
.side-plan .ask textarea{font-size:16px;min-height:52px}
.side-plan .ask-hint{display:none}
/* a guide's free way out under its plan card (.own-link: css/share.ts), lined up with the cards, only its words a target */
.more-sec .own-link{justify-content:flex-start;width:fit-content;margin-top:16px}

/* ---------- 404, /trips/new, creator ---------- */
.nf-sally{position:absolute;right:max(20px,8vw);top:10px;width:170px}
@media (max-width:899px){.nf-sally{width:110px;top:0;right:10px}}
.phead .ask{margin-top:28px;max-width:620px}
.nf-chips{justify-content:flex-start;margin-top:22px}
.hello{position:relative;display:grid;justify-items:center;text-align:center;gap:6px;padding:28px 0 8px}
.hello h1{font:700 clamp(46px,7vw,84px)/.92 var(--display);letter-spacing:-.04em;max-width:12ch;margin-top:8px}
.hello h1 .soft{display:block;font:600 .38em/1.2 var(--sans);letter-spacing:0;color:var(--muted);margin-bottom:12px}
.hello .ask{margin-top:24px}
.creator-h1{font:700 clamp(40px,6vw,64px)/.95 var(--display);letter-spacing:-.04em;margin-top:10px}

/* ---------- breadcrumbs, related, link lists ---------- */
.crumbs{display:flex;flex-wrap:wrap;gap:2px;font-size:14px;font-weight:600;color:var(--muted);margin:0 0 16px}
.crumbs a{text-decoration:none;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;margin:-6px 0}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.crumbs li{display:inline-flex;align-items:center}
.crumbs li+li::before{content:"";width:6px;height:6px;margin:0 9px 0 4px;border-radius:2px;background:var(--coral);transform:rotate(45deg)}
.crumbs [aria-current]{color:var(--ink)}
.links{display:grid;gap:10px}
@media (min-width:720px){.links.two-col{grid-template-columns:1fr 1fr}.links.three-col{grid-template-columns:repeat(3,1fr)}}
.lk{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;min-height:64px;padding:12px 16px 12px 12px;border-radius:20px;background:var(--card);border:1.5px solid var(--line);text-decoration:none;color:inherit;transition:transform .2s var(--spring),border-color .2s}
.lk:hover{transform:translateY(-2px);border-color:var(--ink)}
.lk i{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--b,var(--sun));color:var(--ink);font-style:normal;font-size:20px}
.lk b{display:block;font-weight:700;font-size:16px;line-height:1.25}
.lk small{display:block;color:var(--muted);font-size:13.5px;line-height:1.4;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lk .ic{color:var(--muted)}
.lk i.lk-art{overflow:visible}
.lk-art img{display:block;width:56px;height:56px;max-width:none;margin:-10px -6px -2px;filter:drop-shadow(0 4px 4px rgba(22,32,58,.18))}
.more-sec{margin-top:56px}
.more-sec h2{font:700 clamp(28px,3.6vw,40px)/1 var(--display);letter-spacing:-.03em;margin-bottom:18px}

/* ---------- content blocks ---------- */
.card{padding:22px;border-radius:28px;background:var(--card);border:1.5px solid var(--line)}
.h2{font:700 clamp(28px,3.4vw,38px)/1.02 var(--display);letter-spacing:-.03em;margin-bottom:16px;text-wrap:balance}
.faq details{border-bottom:1.5px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:14px 0;font-weight:700;font-size:17px;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ic{transition:transform .25s var(--spring);color:var(--ink);flex:none}
.faq details[open] summary .ic{transform:rotate(90deg)}
.faq details p{padding:0 0 18px;color:var(--muted);font-size:16px;line-height:1.65}
.srcs{display:grid;gap:12px}
.srcs li{display:grid;grid-template-columns:20px 1fr;gap:10px;font-size:15px;line-height:1.45}
.srcs .ic{color:var(--muted);margin-top:2px}
.srcs a{font-weight:700;word-break:break-word}
.srcs small{display:block;color:var(--muted);font-size:13.5px}
.checked{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--hl-leaf-tint);color:var(--ink);font-size:13.5px;font-weight:700}
.checked .ic{color:var(--hl-leaf-ink)}
.prose{font-size:18px;line-height:1.72}
.prose p+p{margin-top:16px}
.prose h2{font:700 clamp(28px,3.2vw,36px)/1.05 var(--display);letter-spacing:-.025em;margin:44px 0 14px}
.prose h3{font:700 20px/1.3 var(--sans);margin:28px 0 8px}
.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:2px}
.prose .bul,.prose ol{display:grid;gap:10px;margin:16px 0;padding-left:22px}
.prose .bul{list-style:disc}
.prose .bul li::marker{color:var(--coral)}
.prose ol{list-style:decimal}
.prose .bul+p,.prose ol+p,.prose .tbl+p{margin-top:16px}
.legal{max-width:780px;margin:0 auto;padding:24px var(--g) 8px}
.legal h1{font:700 clamp(40px,7vw,64px)/1 var(--display);letter-spacing:-.035em;margin-top:16px;text-wrap:balance}
.legal .upd{margin-top:12px;font-size:15px;color:var(--muted)}
.legal .chips{justify-content:flex-start;margin-top:20px}
.legal .chip{min-height:44px;font-size:14.5px}
.toc{margin:28px 0 6px;padding:20px 22px;border-radius:24px;background:var(--card);border:1.5px solid var(--line)}
.toc h2{font:800 12.5px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.toc ol{display:grid;gap:6px;padding-left:20px;list-style:decimal;font-size:16px;line-height:1.45}
.toc a{color:var(--ink);text-decoration:none}
.toc a:hover{text-decoration:underline}
.legal .prose h2{scroll-margin-top:90px;font-size:clamp(26px,3vw,32px)}
.legal .prose ul{display:grid;gap:8px;margin:12px 0;padding-left:22px;list-style:disc}
.legal .prose ul+p,.legal .prose dl+p{margin-top:14px}
.legal .prose b{font-weight:700}
.legal .prose code{font:500 .86em/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;padding:1px 5px;border-radius:6px;background:var(--soft);overflow-wrap:anywhere}
.procs{display:grid;gap:10px;margin:16px 0}
.procs div{padding:14px 16px;border-radius:18px;background:var(--card);border:1.5px solid var(--line);font-size:15.5px;line-height:1.55}
.procs dt{font-weight:700}
.procs dd{margin:2px 0 0}
.procs dd+dd{margin-top:4px;color:var(--muted);font-size:14.5px}
.addr{font-style:normal;margin:12px 0}
.procs code{font-size:.84em}
.tbl{overflow-x:auto;margin:16px 0;-webkit-overflow-scrolling:touch}
.tbl table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.45}
.tbl th,.tbl td{padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1.5px solid var(--line)}
.tbl th{font-weight:700;white-space:nowrap}

/* ---------- forms ---------- */
.field{display:grid;gap:6px}
.field label,.field .lbl{font-weight:700;font-size:15px}
.field small{color:var(--muted);font-size:13.5px}
.inp{width:100%;min-height:52px;padding:12px 16px;border-radius:16px;border:1.5px solid var(--line-strong);background:var(--card);font-size:16px;color:var(--ink)}
textarea.inp{min-height:100px;resize:vertical;line-height:1.5}
.inp:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--sun) 55%,transparent)}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative;display:inline-flex}
.opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.opt span{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line-strong);background:var(--card);font-weight:600;font-size:15px}
.opt input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}
.opt input:focus-visible+span{outline:3px solid var(--sky);outline-offset:2px}
.form{display:grid;gap:20px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* ---------- prompt box (home, /trips/new, 404, footer) ---------- */
.ask{position:relative;width:100%;max-width:640px;padding:14px 12px 12px 20px;border-radius:30px;background:var(--card);border:2px solid var(--ink);box-shadow:0 6px 0 var(--ink);text-align:left;transition:box-shadow .2s,transform .2s}
.ask:focus-within{transform:translateY(-2px);box-shadow:0 8px 0 var(--ink),0 0 0 6px color-mix(in srgb,var(--sun) 60%,transparent)}
.ask textarea{display:block;width:100%;min-height:62px;max-height:220px;padding:6px 4px 4px 0;border:0;outline:none;resize:none;background:transparent;font:500 19px/1.45 var(--sans);color:var(--ink)}
.ask textarea::placeholder{color:color-mix(in srgb,var(--muted) 85%,transparent)}
.ask-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.ask-hint{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--muted)}
.ask .btn-get{min-height:52px;font-size:16px}
.caret{display:inline-block;width:2px;height:1.1em;margin-left:1px;vertical-align:-.15em;background:var(--coral);animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}

/* ---------- store buttons ---------- */
.stores{display:flex;flex-wrap:wrap;gap:10px}
.store{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;padding:0 20px;border-radius:16px;background:#000;color:#fff;text-decoration:none;font-weight:700;border:1.5px solid rgba(255,255,255,.18);transition:transform .16s var(--ease)}
.store:hover{transform:translateY(-2px)}
.store small{display:block;font-size:10.5px;font-weight:400;opacity:.8;line-height:1}
.store span{text-align:left;line-height:1.15;font-size:17px}

/* ---------- get the app: the QR dialog (every page) and /get on a computer ---------- */
.getapp{display:grid;justify-items:center;gap:14px;text-align:center;padding:6px 0 2px}
.getapp h1,.getapp h2{max-width:14ch;font:700 clamp(32px,4.2vw,42px)/1 var(--display);letter-spacing:-.035em;text-wrap:balance}
.getapp-sub{max-width:34ch;font-size:16px;color:var(--muted)}
.getapp-qr{margin:4px 0 2px;padding:14px 14px 10px;border:3px solid transparent;border-radius:26px;background:linear-gradient(#fff,#fff) padding-box,var(--rainbow) border-box;box-shadow:var(--shadow)}
.getapp-qr svg{width:184px;height:184px}
.getapp-qr figcaption{margin-top:6px;font-size:13.5px;font-weight:700;color:#16203A}
.getapp .stores{justify-content:center}
.getapp-web{display:inline-flex;align-items:center;gap:2px;min-height:44px;font-weight:700;text-decoration:none}
.getapp-web:hover{text-decoration:underline}
.sheet.getapp-sheet{max-width:440px}
.getapp-sheet .sheet-in{padding-top:20px;padding-bottom:28px}
.getapp-sheet .getapp{padding-inline:34px}
.getapp-page{display:grid;place-items:center;min-height:calc(100dvh - 260px);padding-top:16px;padding-bottom:24px}
.getapp-card{position:relative;width:100%;max-width:500px;padding:32px 24px 22px;border-radius:32px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-lg)}
.getapp-art{display:none}
@media (min-width:900px){.getapp-art{display:block;position:absolute;top:28px;right:-150px}}

/* ---------- footer ---------- */
.foot{position:relative;margin-top:110px;color:#fff;background:var(--night);overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}
.foot-cta{position:relative;background:var(--sun);color:var(--ink);padding:64px 0 0}
.foot-cta .wrap{display:grid;gap:8px;align-items:end}
.foot-cta-t{display:grid;gap:16px;justify-items:start;padding-bottom:56px}
.foot-cta h2{font:700 clamp(48px,8vw,104px)/.9 var(--display);letter-spacing:-.045em}
.foot-cta p{font-size:19px;font-weight:600;max-width:34ch}
.foot-cta .ask{max-width:600px;margin-top:6px}
.foot-cta-art{position:relative;display:grid;justify-items:end;align-self:end}
.foot-steps{width:min(100%,380px);height:auto;margin-bottom:-1px}
.foot-sally{position:absolute;right:46%;bottom:58%;width:clamp(110px,14vw,170px)!important}
@media (min-width:900px){.foot-cta .wrap{grid-template-columns:1.25fr 1fr;gap:40px}.foot-steps{width:min(100%,460px)}}
@media (max-width:899px){.foot-cta-t{padding-bottom:12px}.foot-cta-art{height:210px}.foot-steps{position:absolute;right:0;bottom:0;width:300px}.foot-sally{right:auto;left:0;bottom:30px;width:120px!important}}
.foot-in{display:grid;gap:44px;padding-top:64px;padding-bottom:28px}
.foot-top{display:grid;gap:16px;justify-items:start}
@media (min-width:900px){.foot-top{grid-template-columns:auto 1fr auto;align-items:center;gap:32px}}
.foot-top p{max-width:40ch;color:rgba(255,255,255,.72);font-size:16px}
.foot .logo{color:#fff;font-size:28px}
.foot .logo .dot{color:var(--sun)}
.foot-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 20px}
@media (min-width:720px){.foot-cols{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.foot-cols{grid-template-columns:repeat(5,minmax(0,1fr))}}
.foot h3{font:800 12.5px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--sun);margin-bottom:10px}
.foot li a{display:flex;align-items:center;min-height:44px;color:rgba(255,255,255,.84);text-decoration:none;font-size:15.5px;font-weight:400;line-height:1.3;transition:color .15s,transform .2s var(--spring)}
.foot li a:hover{color:#fff;transform:translateX(3px);text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:2px}
.foot-legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-size:14px;color:rgba(255,255,255,.6)}
.foot-help{flex-basis:100%;font-size:15.5px;color:rgba(255,255,255,.6)}
.foot-help a{display:inline-flex;align-items:center;min-height:44px;color:#fff;font-weight:600;text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:2px;text-underline-offset:4px}
.foot-big{margin:24px 0 -0.21em;padding:0 var(--g);font:700 clamp(84px,21.5vw,330px)/1 var(--display);letter-spacing:-.06em;text-align:center;white-space:nowrap;color:transparent;background:linear-gradient(90deg,var(--coral),var(--sun),var(--leaf),var(--lagoon),var(--sky),var(--violet));-webkit-background-clip:text;background-clip:text;opacity:.95;user-select:none}

/* ---------- misc ---------- */
.toast{position:fixed;left:50%;bottom:calc(110px + env(safe-area-inset-bottom));z-index:60;transform:translate(-50%,20px);padding:12px 18px;border-radius:999px;background:var(--ink);color:#fff;font-weight:700;font-size:14.5px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.toast.on{opacity:1;transform:translate(-50%,0)}
.empty{display:grid;justify-items:center;gap:12px;padding:56px 20px;text-align:center}
.empty h1,.empty h2{font:700 clamp(36px,6vw,64px)/1 var(--display);letter-spacing:-.03em}
.empty p{color:var(--muted);max-width:40ch;font-size:17px}
.stat{display:flex;gap:26px;margin-top:16px}
.stat div b{display:block;font:700 28px/1.05 var(--display)}
.stat div span{font-size:13.5px;color:var(--muted)}
.split{display:grid;gap:28px}
@media (min-width:900px){.split{grid-template-columns:1.1fr .9fr;align-items:center;gap:48px}}
.how{display:grid;grid-auto-flow:column;grid-auto-columns:80%;gap:14px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--g));padding:6px var(--g) 10px;scroll-snap-type:x mandatory}
.how::-webkit-scrollbar{display:none}
.how li{scroll-snap-align:start;padding:22px;border-radius:26px;background:var(--card);border:1.5px solid var(--line)}
.how b{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:var(--ink);font:700 20px/1 var(--display);margin-bottom:14px}
.how h2{font:700 18px/1.3 var(--sans);margin-bottom:6px}
.how p{font-size:15px;color:var(--muted)}
.how h3{font:700 18px/1.3 var(--sans);margin-bottom:6px}
@media (min-width:720px){.how{grid-auto-flow:row;grid-template-columns:repeat(3,1fr);overflow:visible;margin:0;padding:0}}

/* ---------- /gifts ---------- */
.gifts-cta{margin-top:22px}
.gifts-what{display:grid;gap:12px}
.gifts-what li{display:grid;align-content:start;grid-template-columns:auto minmax(0,1fr);column-gap:14px;row-gap:4px;padding:18px;border-radius:24px;background:var(--card);border:1.5px solid var(--line)}
.gifts-what .ic{grid-row:1/3;margin-top:2px;color:var(--coral)}
.gifts-what b{font-weight:700;font-size:17px}
.gifts-what span{color:var(--muted);font-size:15px;line-height:1.5}
@media (min-width:720px){.gifts-what{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.gifts-what{grid-template-columns:repeat(4,1fr)}.gifts-what li{grid-template-columns:1fr}.gifts-what .ic{grid-row:auto;margin-bottom:8px}}
.gplan{display:grid;gap:12px;align-content:start;min-width:0}
.gplan-go{justify-self:start}
.gifts-who{display:grid;gap:12px}
.gifts-who li{padding:20px;border-radius:24px;background:var(--paper-2)}
.gifts-who h3{margin-bottom:6px;font:700 18px/1.3 var(--sans)}
.gifts-who p{color:var(--muted);font-size:15.5px;line-height:1.55}
@media (min-width:720px){.gifts-who{grid-template-columns:repeat(2,1fr)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}html{scroll-behavior:auto}}

/* ---------- trip hero ---------- */
.hero{position:relative}
.hero-art{position:relative;aspect-ratio:4/5;max-height:min(78vh,620px);width:100%;overflow:hidden;background:var(--soft)}
.hero-art img,.hero-art>svg{width:100%;height:100%;object-fit:cover}
.hero-art::before{content:"";position:absolute;inset:0 0 auto;height:120px;z-index:1;background:linear-gradient(rgba(10,14,28,.42),transparent)}
.hero-art::after{content:"";position:absolute;inset:auto 0 0;height:46%;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--bg) 70%,transparent) 55%,var(--bg))}
.hero-body{position:relative;z-index:2;margin-top:-118px;padding:0 var(--g)}
.hero-body h1{margin:14px 0 10px;font:600 42px/1.02 var(--serif);letter-spacing:-.02em;text-wrap:balance}
.hero-body .tagline{font-size:17.5px;line-height:1.45;color:var(--muted);text-wrap:pretty}
.facts{display:grid;gap:12px;margin:22px 0 0}
.facts li{display:flex;align-items:flex-start;gap:12px;font-size:16px;line-height:1.4}
.facts .ic{margin-top:1px;color:var(--muted)}
.facts small{display:block;color:var(--muted);font-size:14px}
.byline{display:flex;align-items:center;gap:10px;margin-top:18px;text-decoration:none;font-size:15px}
.byline .av{width:36px;height:36px;font-size:13px}
.byline b{font-weight:600}
.cta{margin-top:24px}
.cta-note{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;margin-top:12px;font-size:13px;color:var(--muted)}
.cta-note span{display:inline-flex;align-items:center;gap:5px}
.cta-note a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px;padding:6px 2px;margin:-6px -2px}
.lede{margin-top:22px;font-size:16.5px;line-height:1.65;text-wrap:pretty}
.lede p+p{margin-top:12px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.tags .chip{min-height:38px;font-size:14px;box-shadow:none;cursor:default}

.blk{padding:0 var(--g);margin-top:28px}
.blk-h{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:16px;color:var(--muted)}
.blk-h .ic{color:var(--sun)}
.rsvp{position:fixed;z-index:20;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:clamp(10px,4vw,26px);padding:28px 12px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--bg) 88%,transparent) 42%);pointer-events:none}
.bub{pointer-events:auto;position:relative;display:grid;place-items:center;align-content:center;gap:3px;width:clamp(86px,26vw,100px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.4);color:#fff;font:600 14px/1.1 var(--sans);text-shadow:0 1px 6px rgba(0,0,0,.25);cursor:pointer;background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.55),transparent 42%),linear-gradient(150deg,var(--b1),var(--b2));box-shadow:0 12px 30px -8px color-mix(in srgb,var(--b2) 70%,transparent),inset 0 -8px 18px rgba(0,0,0,.12);transition:transform .15s ease}
.bub:active{transform:scale(.95)}
.bub .e{font-size:32px;line-height:1;text-shadow:none}
.bub[aria-pressed=true]{outline:3px solid var(--ink);outline-offset:3px}
.bub-go{--b1:#4FD69C;--b2:#16A3B8}.bub-maybe{--b1:#FFD166;--b2:#FF6A55}.bub-no{--b1:#7FB2FF;--b2:#8B5CF6}
.has-rsvp main{padding-bottom:150px}
.has-bar main{padding-bottom:100px}


/* ---------- days, place cards ---------- */
.days{padding:0 var(--g)}
.day{margin-top:36px}
.day-h{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:6px}
.day-k{font:700 13px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--dc)}
.day-k span{color:var(--muted);font-weight:400;letter-spacing:0;text-transform:none}
.day-h h3{margin-top:8px;font:600 26px/1.15 var(--serif);letter-spacing:-.01em;text-wrap:balance}
.used{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:13px;color:var(--muted);white-space:nowrap}
.day-sum{color:var(--muted);font-size:15px;line-height:1.55;margin:6px 0 16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.place{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;padding:12px;border-radius:22px;background:var(--card);border:1px solid var(--line);box-shadow:0 1px 2px rgba(22,32,58,.04);transition:border-color .2s,box-shadow .3s,transform .2s}
.place.lit{border-color:var(--dc);box-shadow:0 0 0 1px var(--dc),0 10px 28px rgba(22,32,58,.14);transform:translateY(-1px)}
/* the card you're reading (trip.js): lit in its day's colour */
.place.on{border-color:color-mix(in srgb,var(--dc) 55%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--dc) 35%,transparent),0 22px 50px -22px color-mix(in srgb,var(--dc) 70%,transparent)}
.place:has(h4 a:hover){border-color:var(--line-strong)}
.place:has(h4 a:focus-visible){outline:2px solid var(--ink);outline-offset:2px}
.place h4 a{outline:0}
.place h4 a::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit}
/* a stop's photo, or its category's tile; the day's colour under both, so no card is ever blank. With a photo, the
   photo carries the card on a phone (full width, on top); from tablet width up it's a column beside the text
   (share/styles.ts) */
.place-ph{position:relative;width:96px;height:96px;border-radius:15px;overflow:hidden;background:linear-gradient(150deg,var(--dc),color-mix(in srgb,var(--dc) 30%,var(--card-solid,#fff)))}
.place.has-ph{grid-template-columns:minmax(0,1fr);gap:12px}
.has-ph .place-ph{width:auto;height:auto;aspect-ratio:3/2;border-radius:16px}
.has-ph .place-b{padding:0 4px 4px}
.place-ph img{width:100%;height:100%;object-fit:cover;transition:transform .9s ease}
/* the photo of the card you're reading drifts in, slowly */
@media (prefers-reduced-motion:no-preference){.place.on .place-ph img{transform:scale(1.07);transition:transform 9s cubic-bezier(.2,.6,.3,1)}}
.place-ph .pn{left:7px;top:7px}
.has-ph .place-ph .pn{left:10px;top:10px;width:30px;height:30px;font-size:14.5px;box-shadow:0 0 0 2.5px rgba(255,255,255,.9),0 4px 12px rgba(0,0,0,.35)}
/* the photo's credit (Google's and Wikimedia's terms): on the photo, bottom right */
.cr{position:absolute;z-index:1;right:6px;bottom:6px;max-width:calc(100% - 12px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:2px 6px;border-radius:6px;background:rgba(6,7,12,.55);color:rgba(255,255,255,.86);font:500 10.5px/1.4 var(--sans);pointer-events:none}
/* no photo we may show: the category's colour and icon, over faint rings like a pin's */
.tile{--tc:var(--hl-lagoon);position:relative;display:grid;place-items:center;width:100%;height:100%;color:#fff;background:radial-gradient(85% 75% at 50% 40%,color-mix(in srgb,var(--tc) 62%,transparent),transparent 72%),linear-gradient(160deg,color-mix(in srgb,var(--tc) 42%,#10111A),#0B0C14 88%)}
.tile::before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 50% 46%,transparent 0 11px,rgba(255,255,255,.09) 11px 12px);-webkit-mask-image:radial-gradient(circle at 50% 46%,#000 15%,transparent 68%);mask-image:radial-gradient(circle at 50% 46%,#000 15%,transparent 68%)}
.tile .ic{position:relative;filter:drop-shadow(0 4px 10px rgba(0,0,0,.4))}
.tile-coral{--tc:var(--hl-coral)}.tile-violet{--tc:var(--hl-violet)}.tile-leaf{--tc:var(--hl-leaf)}.tile-sunflower{--tc:var(--hl-sunflower)}.tile-sky{--tc:var(--hl-sky)}
.pn{position:absolute;z-index:1;left:20px;top:20px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--dc);color:#fff;font:700 13px/1 var(--sans);box-shadow:0 0 0 2px var(--card)}
.place-b{min-width:0}
.place-time{font:600 12px/1 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:2px 0 6px}
.place h4{font:600 16.5px/1.28 var(--sans);letter-spacing:-.01em}
.place h4 a{text-decoration-color:var(--line-strong)}
.place h4 a:hover{text-decoration-color:currentColor}
.place .tag{margin-top:6px}
.place-why{margin-top:8px;font-size:14px;line-height:1.5;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rate{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:9px;font-size:13.5px}
.rate b{font-weight:600}
.rate .muted{font-size:13px}
.dur{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:8px;background:var(--soft);font-weight:600;font-size:12.5px;color:var(--ink)}
.stars{display:inline-block;line-height:0}
.leg{display:flex;align-items:center;gap:10px;height:46px;margin-left:47px}
.leg::before{content:"";width:2px;align-self:stretch;background:repeating-linear-gradient(var(--dc) 0 5px,transparent 5px 10px);opacity:.7}
.leg span{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);font:600 12.5px/1.2 var(--sans);color:var(--muted)}
/* stops with no way between them (no leg: a note, the first stop after an arrival) still get a gap */
.stops>:not(.leg)+:not(.leg){margin-top:12px}
.note-item{padding:14px 16px;border-radius:18px;background:color-mix(in srgb,var(--sun) 14%,var(--card));font-size:14.5px;line-height:1.5}
.lday{position:relative;padding:16px 16px 14px 20px;border-radius:22px;background:var(--card);border:1px solid var(--line);overflow:hidden;margin-top:12px}
.lday::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--dc)}
.lday-k{font:700 12.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--dc)}
.lday h3{margin:9px 0 4px;font:600 21px/1.2 var(--serif);text-wrap:balance}
.lday p{font-size:14px;color:var(--muted)}
/* the locked days fade out under the one card that follows [insp 06, 29] */
.lk-list{-webkit-mask-image:linear-gradient(#000 25%,transparent 96%);mask-image:linear-gradient(#000 25%,transparent 96%)}
.closed+.unlock,.closed+.rlock{margin-top:-56px}
.unlock{position:relative;margin:28px var(--g) 0;padding:26px 20px 22px;border-radius:28px;background:var(--lock);color:#fff;overflow:hidden;box-shadow:var(--shadow-lg)}
.unlock::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:2px;background:var(--rainbow);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.9;pointer-events:none}
.unlock .sally-wrap{position:absolute;right:8px;top:6px}
.unlock h2{font:600 28px/1.1 var(--serif);max-width:12ch;margin-bottom:8px}
.unlock>p{color:rgba(255,255,255,.72);font-size:15px;max-width:28ch}
.incl{display:grid;gap:10px;margin:18px 0 20px}
.incl li{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.4}
.incl .ic{color:var(--leaf);margin-top:1px}
.unlock .btn-get{width:100%;border-color:transparent;background:linear-gradient(#fff,#fff) padding-box,var(--rainbow) border-box;color:#16203A}
.unlock .cta-note{max-width:none;color:rgba(255,255,255,.6)}

/* ---------- map ---------- */
.mapbox{margin:20px var(--g) 0}
.map-legend{display:flex;gap:8px;margin-bottom:10px;overflow-x:auto;scrollbar-width:none}
.map-legend .chip{flex:none;font-size:13.5px;padding:0 13px;box-shadow:none}
.map-legend .chip i{width:10px;height:10px;border-radius:50%;background:var(--dc)}
.map-legend .chip.closed i{background:none;box-shadow:inset 0 0 0 2px var(--dc)}
.map-legend .chip[aria-current]{background:color-mix(in srgb,var(--dc) 30%,var(--card-solid,#fff));border-color:var(--dc);color:var(--ink)}
.map{position:relative;aspect-ratio:4/3;border-radius:22px;overflow:hidden;border:1px solid var(--line);background:#EDE3D3;isolation:isolate}
.map>.gl,.smap-i>.gl{position:absolute;inset:0;width:100%;height:100%;--hm-font:var(--sans)}
.gl{opacity:0;transition:opacity .4s,filter .6s}
.ready>.gl{opacity:1}
.map-open{position:absolute;left:10px;top:10px;z-index:2}
/* the pins, routes and Sally are the map engine's (client/map) */

.buybar{position:fixed;z-index:20;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px var(--g) calc(10px + env(safe-area-inset-bottom));background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);border-top:1px solid var(--line);transform:translateY(0);transition:transform .25s ease}
.buybar.hide{transform:translateY(110%)}

.buybar .p b{display:block;font:700 22px/1.1 var(--sans)}
.buybar .p small{font-size:12.5px;color:var(--muted)}
.buybar .btn-get{min-height:52px;font-size:16px}

/* ---------- sheets (dialogs) ---------- */
.sheet{position:fixed;inset:auto 0 0;width:100%;max-width:520px;max-height:94dvh;margin:0 auto;padding:0;border:0;border-radius:26px 26px 0 0;color:var(--ink);background:var(--card);box-shadow:var(--shadow-lg)}
.sheet::backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.sheet[open]{animation:up .28s cubic-bezier(.2,.8,.2,1)}
@keyframes up{from{transform:translateY(40px);opacity:0}}
.sheet-in{position:relative;max-height:94dvh;overflow-y:auto;overscroll-behavior:contain;padding:10px var(--g) calc(24px + env(safe-area-inset-bottom))}
.sheet-in:focus{outline:none}
.grab{width:40px;height:5px;border-radius:3px;background:var(--line-strong);margin:0 auto 8px}
.sheet-x{position:sticky;top:0;z-index:3;display:grid;place-items:center;width:44px;height:44px;margin:-4px -6px -40px auto;border:0;border-radius:50%;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--ink);cursor:pointer}
@media (min-width:720px){.sheet{inset:0;margin:auto;height:fit-content;border-radius:26px}.sheet-in{padding:20px 28px 28px}.grab{display:none}}
.co-sum{display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;margin:8px 0 18px;padding-right:44px}
.co-sum img,.co-sum svg{width:72px;height:90px;border-radius:14px;object-fit:cover}
.co-sum h2{font:600 22px/1.15 var(--serif)}
.co-sum p{font-size:14px;color:var(--muted);margin-top:4px}
.co-proof{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:14px;color:var(--muted)}
.co-price{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;margin:4px 0 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.co-price b{font:700 26px/1 var(--sans)}
.co-price span{font-size:13.5px;color:var(--muted)}
.co-pay{display:grid;gap:10px}
.co-wallet{min-height:52px;border-radius:14px}
.co-wallet[aria-busy]{background:var(--soft)}
.co-wallet[data-count="0"]{min-height:0}
/* closed but laid out, so Stripe has drawn the wallet buttons before the sheet opens (checkout.js mounts them early) */
#checkout:not([open]){display:block;visibility:hidden;pointer-events:none}
/* the wallet step holds the page still on a phone: a drag on the sheet or its backdrop scrolled the page behind it and, in
   Facebook's browser, slid the bars in and out, which moved the pay buttons. Text entry (card form, gift fields) is left
   as it was, for the keyboard. */
@media (max-width:719px),(hover:none){html:has(#checkout[open]:not([data-mode=gift]) #co-card[hidden]){overflow:hidden}}
.co-inapp{display:grid;gap:10px;padding:18px 16px 14px;border-radius:18px;background:var(--soft);text-align:center}
.co-inapp-t{font-weight:700;font-size:16.5px;color:var(--ink)}
.co-inapp-m{margin-bottom:4px;font-size:14.5px;line-height:1.4;color:var(--muted);text-wrap:pretty}
.co-inapp-how{font-size:13px;line-height:1.4;color:var(--muted);text-wrap:pretty}
.co-inapp[data-stuck] .co-inapp-how{color:var(--ink);font-weight:600}
.co-inapp-url{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line-strong);border-radius:12px;background:var(--card);color:var(--ink);font:14px var(--sans)}
.co-or{display:flex;align-items:center;gap:12px;margin:4px 0 0;color:var(--muted);font-size:13px}
.co-or::before,.co-or::after{content:"";flex:1;height:1px;background:var(--line)}
.co-card{display:grid;gap:12px;margin-top:6px}
.co-err{min-height:20px;margin-top:10px;color:var(--coral);font-size:14px;font-weight:600}
.co-off{padding:14px 16px;border-radius:16px;background:var(--soft);font-size:14.5px;color:var(--muted)}
.co-done{display:grid;justify-items:center;text-align:center;padding:12px 0 6px}
.co-done h2{font:600 30px/1.1 var(--serif);margin:12px 0 6px;outline:none}
.co-done>p{color:var(--muted);font-size:15px;max-width:32ch}
.co-done #co-open{margin-top:16px}
.co-trip{width:100%;margin:12px 0 6px;text-align:left}
.co-trip li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.co-trip li i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--dc);color:#fff;font:700 13px/1 var(--sans);font-style:normal}
.co-trip b{display:block;font-weight:600;font-size:15px}
.co-trip span{font-size:13px;color:var(--muted)}
.co-apps{display:grid;gap:10px;width:100%;margin-top:16px}
/* gift mode (checkout.js sets data-mode="gift"): their name, yours, a note, how they get it; then the gift link */
#checkout:not([data-mode=gift]) .co-gift-only{display:none!important}
#checkout[data-mode=gift] .co-not-gift{display:none!important}
.co-kicker{display:inline-flex;align-items:center;gap:6px;margin-bottom:6px;font:700 12px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--coral)}
.co-sum .co-kicker svg{width:15px;height:15px;border-radius:0}
.share .co-kicker,.share .gift-link .ic{color:color-mix(in srgb,var(--t1,#FF6A55) 65%,#fff)}
.co-gift{display:grid;gap:14px;margin:0 0 16px}
.co-gift .inp{min-height:48px;padding:10px 14px;border-radius:14px}
.co-gift textarea.inp{min-height:84px}
.co-gift .field label .muted{font-weight:400}
.co-g-how{border:0;padding:0;margin:0;min-width:0}
.co-g-how legend{padding:0;margin-bottom:8px}
.co-g-hint{margin-top:-4px;font-size:13.5px;line-height:1.4;color:var(--muted)}
.co-g-hint:empty{display:none}
.share .opt input:checked+span{color:var(--on-ink)}
.co-gift-done{display:grid;gap:10px;width:100%;margin:18px 0 4px;text-align:left}
.co-gift-done .inp{font-size:15px}
.co-gift-done .lbl{font-weight:700;font-size:15px}
#checkout[data-mode=gift] .co-trip{display:none}
/* ink buttons on the night shell: the ink is ivory there, so the label takes the night colour */
.share .btn-ink{color:var(--on-ink)}
.co-g-btns{display:flex;flex-wrap:wrap;gap:10px}
.co-g-btns .btn{flex:1 1 130px}
.co-g-sent{font-size:14.5px;font-weight:600}
.co-g-card{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;color:var(--muted);font-weight:600;font-size:14.5px;text-decoration:underline;text-underline-offset:3px}
/* "Give it as a gift": the quiet second way out of a plan page's buy button */
.gift-link{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;margin-top:12px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line-strong);color:var(--ink);font-weight:600;font-size:15.5px;text-decoration:none;transition:background .2s,border-color .2s}
.gift-link:hover{background:var(--soft);border-color:var(--ink)}
.gift-link .ic{color:var(--coral)}
.unlock .gift-link{border-color:rgba(255,255,255,.28);color:#fff}
/* "Or let Sally plan your own, free": a plan page's free way out, under the buy button (a text link, not a third button) */
.own-link{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;margin-top:6px;color:var(--ink);font-weight:600;font-size:15px;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:4px}
.own-link .ic{color:var(--sun)}
.unlock .own-link{color:#fff;text-decoration-color:rgba(255,255,255,.4)}

/* ---------- /gift/<code>: the reveal (on the night shell, the invite's layout) ---------- */
.gift .inv-from .ic{color:color-mix(in srgb,var(--t1,#FF6A55) 65%,#fff)}
.gnote{margin:22px var(--g) 0}
.gnote-k{font:700 12px/1.2 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.gnote .anote-b{margin:10px 0 0;white-space:pre-line}
.gnote .anote-sig .sig:empty{display:none}
.gift-act{padding:0 var(--g)}
.gift-act .cta{margin-top:22px}
.g-err{text-align:center}
.g-err:empty{min-height:0;margin:0}
.gift-msg{margin-top:22px;padding:22px 20px 20px;border-radius:22px;background:var(--card);border:1px solid var(--line);text-align:center}
.gift-msg h2{margin-bottom:6px;font:600 22px/1.2 var(--serif)}
.gift-msg p{max-width:34ch;margin:0 auto 16px;color:var(--muted);font-size:15px;line-height:1.5}
.gift-giver{margin:22px var(--g) 0;padding:18px 18px 10px;border-radius:22px;background:color-mix(in srgb,var(--t1,#FF6A55) 14%,rgba(255,255,255,.04));border:1px solid color-mix(in srgb,var(--t1,#FF6A55) 38%,transparent)}
.gift-giver h2{display:flex;align-items:center;gap:8px;font:700 16.5px/1.3 var(--sans)}
.gift-giver p{margin:6px 0 14px;color:var(--muted);font-size:14.5px;line-height:1.45}
.gift-giver .rs-link{margin-top:6px}
.gift[data-giver] .gift-cta{display:none}
.g-days li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.g-days li:last-child{border-bottom:0}
.g-days i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--dc);color:#fff;font:700 13px/1 var(--sans);font-style:normal}
.g-days b{display:block;font-weight:600;font-size:15.5px;line-height:1.3}
.g-days small{font-size:13px;color:var(--muted)}
.gcard{display:none}

/* place sheet */
.car{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:-10px calc(-1 * var(--g)) 0;border-radius:26px 26px 0 0}
.car::-webkit-scrollbar{display:none}
.car figure{position:relative;flex:none;width:100%;margin:0;scroll-snap-align:center}
.car img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.car figcaption{position:absolute;left:10px;bottom:8px;max-width:calc(100% - 20px);padding:4px 8px;border-radius:6px;background:rgba(10,14,28,.55);color:#fff;font-size:11px;line-height:16px}.car figcaption a{color:inherit;text-decoration:none}
.gattr{font-size:11.5px;font-weight:600;color:var(--muted);letter-spacing:.01em}
@media (min-width:720px){.car{margin:-20px -28px 0}}
.ps-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:18px}
.ps-h h2{font:600 24px/1.2 var(--sans);letter-spacing:-.015em}
.ps-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:8px;font-size:14px}
.ps-meta span{display:inline-flex;align-items:center;gap:5px}
/* the place's own page, when it has one */
.ps-page{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;margin-top:16px;padding:12px 14px 12px 16px;border-radius:18px;background:var(--soft);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600;font-size:15.5px;line-height:1.3}
.ps-page small{display:block;margin-top:2px;font-weight:400;font-size:13.5px;color:var(--muted)}
.ps-page .ic{flex:none;color:var(--muted)}
.ps-page:hover{border-color:var(--line-strong)}
.ql{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.ql .btn{min-height:44px;padding:0 14px;font-size:14.5px;font-weight:600}
.aitags{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-top:16px;padding:10px;border-radius:18px;background:var(--soft)}
.aitags span{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 12px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:14px}
.ps-sec{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.ps-sec h3{font:600 15px/1.3 var(--sans);margin-bottom:8px}
.ps-sec p,.ps-sec li{font-size:15px;line-height:1.6;color:var(--muted)}
.ps-sec ul{display:grid;gap:6px}
.ps-sec li{display:flex;gap:8px}
.ps-sec li::before{content:"";flex:none;width:6px;height:6px;margin-top:9px;border-radius:50%;background:var(--sun)}



/* the printed gift card (Print the card on /gift/<code>): only the card, on paper colours */
@media print{
  body.gift-pg>*:not(main),body.gift-pg main>*:not(.gcard){display:none!important}
  body.gift-pg main{padding:0!important}
  .gcard{display:grid!important;grid-template-columns:58mm minmax(0,1fr);gap:9mm;max-width:172mm;margin:8mm auto 0;padding:8mm;border:1.5px solid rgba(22,32,58,.18);border-radius:7mm;color:#16203A;break-inside:avoid}
  .gcard-art{aspect-ratio:3/4;border-radius:4mm;overflow:hidden}
  .gcard-art img,.gcard-art svg{width:100%;height:100%;object-fit:cover}
  .gcard-b{display:flex;flex-direction:column}
  .gcard-k{font:700 9pt/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#5F6478}
  .gcard h2{margin:3mm 0 2mm;font:700 25pt/1.02 var(--display);letter-spacing:-.03em}
  .gcard-from{font:600 12pt/1.3 var(--sans)}
  .gcard-msg{margin-top:5mm;font:400 12.5pt/1.55 var(--serif);white-space:pre-line}
  .gcard-qr{display:flex;align-items:center;gap:5mm;margin-top:auto;padding-top:6mm;border-top:1px dashed rgba(22,32,58,.25);font-size:10pt;line-height:1.45}
  .gcard-qr svg{flex:none;width:30mm;height:30mm}
  .gcard-qr b{display:block;font-weight:700;word-break:break-all}
}
