/* Roundtripski — "Glacier Modern" — static compilation of the Tailwind v4 utilities
   used by the app, plus the design-system tokens. Faithful to src/styles.css. */

:root {
  --radius: 0.75rem;
  --background: oklch(1 0 0);
  --foreground: oklch(0.16 0 0);
  --ink: oklch(0.145 0.004 285);
  --ink-foreground: oklch(0.985 0 0);
  --glacier: oklch(0.974 0 0);
  --surface: oklch(0.957 0 0);
  --hairline: oklch(0.145 0.004 285 / 8%);
  --faint: oklch(0.145 0.004 285 / 4%);
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.145 0.004 285);
  --primary: oklch(0.40 0.095 158);
  --primary-foreground: oklch(0.985 0 0);
  --muted: oklch(0.967 0.001 286);
  --muted-foreground: oklch(0.552 0.016 286);
  --accent: oklch(0.40 0.095 158);
  --accent-foreground: oklch(0.985 0 0);
  --border: oklch(0.145 0.004 285 / 10%);
  --input: oklch(0.145 0.004 285 / 12%);
  --ring: oklch(0.40 0.095 158 / 45%);
  --pastel: oklch(0.955 0.014 79);
  --font-sans: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
  --font-serif: "Instrument Serif", ui-serif, Georgia, serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
  --shadow-lift: 0 24px 60px -24px color-mix(in oklab, var(--ink) 28%, transparent);
  --shadow-panel: 0 1px 0 0 var(--hairline), 0 20px 50px -32px color-mix(in oklab, var(--ink) 30%, transparent);
  --ease-expo: cubic-bezier(0.16, 1, 0.3, 1);
}

/* Opt-in dark theme — applied by setting data-theme="dark" on a container
   (the admin + operator dashboards do this via a toggle). Scoped to that
   subtree so public pages stay light. */
[data-theme="dark"] {
  --background: oklch(0.17 0.004 285);
  --foreground: oklch(0.97 0 0);
  --ink: oklch(0.12 0.004 285);
  --ink-foreground: oklch(0.985 0 0);
  --glacier: oklch(0.22 0.004 285);
  --surface: oklch(0.245 0.004 285);
  --hairline: oklch(0.98 0 0 / 10%);
  --faint: oklch(0.98 0 0 / 4%);
  --card: oklch(0.205 0.004 285);
  --card-foreground: oklch(0.97 0 0);
  --primary: oklch(0.64 0.12 158);
  --primary-foreground: oklch(0.14 0 0);
  --muted: oklch(0.26 0.004 285);
  --muted-foreground: oklch(0.70 0.01 286);
  --accent: oklch(0.64 0.12 158);
  --accent-foreground: oklch(0.13 0 0);
  --border: oklch(0.98 0 0 / 12%);
  --input: oklch(0.98 0 0 / 14%);
  --ring: oklch(0.64 0.12 158 / 50%);
  --pastel: oklch(0.26 0.02 79);
  background-color: var(--background);
  color: var(--foreground);
}

*, *::before, *::after { box-sizing: border-box; border: 0 solid var(--border); }
button { background-color: transparent; }
/* Root is the footer's ink so over-scrolling past the bottom shows black, not white. */
html { -webkit-text-size-adjust: 100%; background-color: var(--ink); }
body { margin: 0; background-color: var(--background); color: var(--foreground); font-family: var(--font-sans); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
button, input, textarea, select { font: inherit; color: inherit; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, h4, h5, ul, dl, dd, figure { margin: 0; }
ul { padding: 0; list-style: none; }
::selection { background-color: color-mix(in oklab, var(--accent) 14%, transparent); color: var(--accent); }
:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }

/* named utilities from the design system */
.label { font-family: var(--font-sans); font-weight: 700; font-size: 0.6875rem; line-height: 1.2; text-transform: uppercase; letter-spacing: 0.1em; }
.display { font-family: var(--font-serif); font-weight: 400; letter-spacing: -0.015em; line-height: 0.95; }
.no-scrollbar { scrollbar-width: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }
@keyframes reveal-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .4; } }
.reveal { animation: reveal-up 0.9s var(--ease-expo) both; }
.animate-pulse { animation: pulse 1.6s cubic-bezier(0.4,0,0.6,1) infinite; }

/* display / position */
.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}
.isolate{isolation:isolate}.z-0{z-index:0}
.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}
.inset-0{inset:0}.-z-10{z-index:-10}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}
.top-0{top:0}.top-16{top:4rem}.bottom-3{bottom:0.75rem}.left-4{left:1rem}
.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}
.object-cover{object-fit:cover}
.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.min-w-0{min-width:0}
.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-end{align-items:flex-end}
.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}
.place-items-center{place-items:center}.self-start{align-self:flex-start}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}

/* sizing */
.w-full{width:100%}.w-px{width:1px}.w-56{width:14rem}
.h-4{height:1rem}.h-12{height:3rem}.h-16{height:4rem}.h-40{height:10rem}
.size-full{width:100%;height:100%}.size-1{width:.25rem;height:.25rem}.size-1\.5{width:.375rem;height:.375rem}
.size-3{width:.75rem;height:.75rem}.size-4{width:1rem;height:1rem}.size-7{width:1.75rem;height:1.75rem}
.size-11{width:2.75rem;height:2.75rem}.h-11{height:2.75rem}.w-11{width:2.75rem}
.size-9{width:2.25rem;height:2.25rem}.size-10{width:2.5rem;height:2.5rem}.size-14{width:3.5rem;height:3.5rem}
.min-h-screen{min-height:100vh}.min-h-80{min-height:20rem}
.max-w-7xl{max-width:80rem}.max-w-3xl{max-width:48rem}.max-w-2xl{max-width:42rem}.max-w-md{max-width:28rem}
.h-\[92vh\]{height:92vh}.min-h-\[38rem\]{min-height:38rem}.min-h-\[60vh\]{min-height:60vh}
.h-\[52vh\]{height:52vh}.h-\[60vh\]{height:60vh}
.w-\[min\(64rem\2c 88vw\)\]{width:min(64rem,88vw)}.w-\[min\(28rem\2c 70vw\)\]{width:min(28rem,70vw)}
.max-w-\[52ch\]{max-width:52ch}.max-w-\[46ch\]{max-width:46ch}.max-w-\[54ch\]{max-width:54ch}
.max-w-\[58ch\]{max-width:58ch}.max-w-\[36ch\]{max-width:36ch}.max-w-\[34ch\]{max-width:34ch}
.max-w-\[32ch\]{max-width:32ch}.max-w-\[22ch\]{max-width:22ch}.max-w-\[20ch\]{max-width:20ch}.max-w-\[18ch\]{max-width:18ch}
.max-w-\[85%\]{max-width:85%}.max-w-\[92%\]{max-width:92%}.resize-none{resize:none}

/* aspect */
.aspect-\[16\/8\]{aspect-ratio:16/8}.aspect-\[4\/5\]{aspect-ratio:4/5}

/* gap */
.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}
.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}
.gap-x-10{column-gap:2.5rem}.gap-y-6{row-gap:1.5rem}
.space-y-2\.5>*+*{margin-top:.625rem}.space-y-3>*+*{margin-top:.75rem}.space-y-4>*+*{margin-top:1rem}
.space-y-5>*+*{margin-top:1.25rem}.space-y-6>*+*{margin-top:1.5rem}

/* padding */
.p-2{padding:.5rem}.p-3{padding:.75rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-12{padding:3rem}
.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-8{padding-left:2rem;padding-right:2rem}
.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-4{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-5{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}
.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}
.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}
.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}
.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.pt-16{padding-top:4rem}.pt-32{padding-top:8rem}
.pb-1{padding-bottom:.25rem}.pb-4{padding-bottom:1rem}.pb-14{padding-bottom:3.5rem}.pb-20{padding-bottom:5rem}
.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-4{padding-right:1rem}

/* margin */
.mx-auto{margin-left:auto;margin-right:auto}
.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}
.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}
.mt-16{margin-top:4rem}.mt-24{margin-top:6rem}
.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}

/* typography */
.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}
.text-6xl{font-size:3.75rem;line-height:1}.text-7xl{font-size:4.5rem;line-height:1}.text-8xl{font-size:6rem;line-height:1}
.text-\[1\.0625rem\]{font-size:1.0625rem;line-height:1.7}.text-\[0\.9375rem\]{font-size:.9375rem;line-height:1.6}
.font-medium{font-weight:500}.font-semibold{font-weight:600}
.font-serif{font-family:var(--font-serif)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}
.uppercase{text-transform:uppercase}.italic{font-style:italic}.tracking-tight{letter-spacing:-.025em}
.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}
.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}
.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.line-through{text-decoration-line:line-through}.decoration-1{text-decoration-thickness:1px}

/* text colors */
.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-accent{color:var(--accent)}
.text-ink{color:var(--ink)}.text-ink-foreground{color:var(--ink-foreground)}.text-accent-foreground{color:var(--accent-foreground)}
.text-foreground\/80{color:color-mix(in oklab,var(--foreground) 80%,transparent)}
.text-ink-foreground\/70{color:color-mix(in oklab,var(--ink-foreground) 70%,transparent)}
.text-ink-foreground\/60{color:color-mix(in oklab,var(--ink-foreground) 60%,transparent)}
.text-ink-foreground\/50{color:color-mix(in oklab,var(--ink-foreground) 50%,transparent)}
.text-ink-foreground\/40{color:color-mix(in oklab,var(--ink-foreground) 40%,transparent)}
.fill-accent{fill:var(--accent)}
.fill-border{fill:var(--border)}
.size-3\.5{width:.875rem;height:.875rem}

/* backgrounds */
.bg-background{background-color:var(--background)}.bg-card{background-color:var(--card)}.bg-glacier{background-color:var(--glacier)}
.bg-surface{background-color:var(--surface)}.bg-ink{background-color:var(--ink)}.bg-ink-foreground{background-color:var(--ink-foreground)}.bg-accent{background-color:var(--accent)}.bg-border{background-color:var(--border)}
.bg-background\/80{background-color:color-mix(in oklab,var(--background) 80%,transparent)}
.bg-background\/90{background-color:color-mix(in oklab,var(--background) 90%,transparent)}
.bg-glacier\/95{background-color:color-mix(in oklab,var(--glacier) 95%,transparent)}
.bg-ink-foreground\/10{background-color:color-mix(in oklab,var(--ink-foreground) 10%,transparent)}
.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-g-from),var(--tw-g-via),var(--tw-g-to))}
.from-ink\/70{--tw-g-from:color-mix(in oklab,var(--ink) 70%,transparent)}
.via-ink\/20{--tw-g-via:color-mix(in oklab,var(--ink) 20%,transparent)}
.to-ink\/25{--tw-g-to:color-mix(in oklab,var(--ink) 25%,transparent)}
.mix-blend-multiply{mix-blend-mode:multiply}.opacity-25{opacity:.25}

/* borders */
.border{border-width:1px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}
.border-y{border-top-width:1px;border-bottom-width:1px}
.border-border{border-color:var(--border)}.border-hairline{border-color:var(--hairline)}
.border-ink-foreground\/10{border-color:color-mix(in oklab,var(--ink-foreground) 10%,transparent)}
.border-accent{border-color:var(--accent)}
.border-t-4{border-top-width:4px;border-top-style:solid}
.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}
.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}
.rounded-\[3px\]{border-radius:3px}.rounded-br-sm{border-bottom-right-radius:calc(var(--radius) - 4px)}

/* ring */
.ring-1{box-shadow:0 0 0 1px var(--tw-ring,var(--border))}
.ring-border{--tw-ring:var(--border)}
.ring-ink-foreground\/10{--tw-ring:color-mix(in oklab,var(--ink-foreground) 10%,transparent)}
.ring-ink-foreground\/20{--tw-ring:color-mix(in oklab,var(--ink-foreground) 20%,transparent)}

/* effects */
.backdrop-blur{backdrop-filter:blur(8px)}.backdrop-blur-md{backdrop-filter:blur(12px)}.backdrop-blur-xl{backdrop-filter:blur(24px)}
.shadow-panel{box-shadow:var(--shadow-panel)}.shadow-lift{box-shadow:var(--shadow-lift)}
.transition-colors{transition:color .2s,background-color .2s,border-color .2s,box-shadow .2s}
.transition-transform{transition:transform .2s}.transition-opacity{transition:opacity .2s}.transition-all{transition:all .2s}
.duration-700{transition-duration:.7s}.ease-\[var\(--ease-expo\)\]{transition-timing-function:var(--ease-expo)}
.accent-\[var\(--accent\)\]{accent-color:var(--accent)}

/* focus / focus-within */
.focus\:ring-2:focus{box-shadow:0 0 0 2px var(--tw-ring,var(--ring))}
.focus\:ring-ring:focus{--tw-ring:var(--ring)}
.focus-within\:ring-2:focus-within{box-shadow:0 0 0 2px var(--tw-ring,var(--ring))}
.focus-within\:ring-ring:focus-within{--tw-ring:var(--ring)}
.focus-within\:ring-ink-foreground\/45:focus-within{box-shadow:0 0 0 2px color-mix(in oklab,var(--ink-foreground) 45%,transparent)}

/* hover / group-hover / active */
.hover\:bg-surface:hover{background-color:var(--surface)}
.hover\:bg-ink:hover{background-color:var(--ink)}
.hover\:text-accent:hover{color:var(--accent)}
.hover\:text-foreground:hover{color:var(--foreground)}
.hover\:text-ink-foreground:hover{color:var(--ink-foreground)}
.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-85:hover{opacity:.85}
.hover\:scale-\[1\.03\]:hover{transform:scale(1.03)}
.hover\:border-accent\/40:hover{border-color:color-mix(in oklab,var(--accent) 40%,transparent)}
.group:hover .group-hover\:scale-\[1\.03\]{transform:scale(1.03)}
.active\:scale-95:active{transform:scale(.95)}.active\:scale-\[0\.98\]:active{transform:scale(.98)}
.decoration-ink-foreground\/25{text-decoration-color:color-mix(in oklab,var(--ink-foreground) 25%,transparent)}

/* additions — trust bar, wishlist, badges */
.top-4{top:1rem}.right-4{right:1rem}.bottom-4{bottom:1rem}.left-4{left:1rem}.top-3{top:.75rem}.right-3{right:.75rem}
.top-\[6\.25rem\]{top:6.25rem}.pt-\[6\.25rem\]{padding-top:6.25rem}.pt-24{padding-top:6rem}
.gap-x-6{column-gap:1.5rem}.gap-y-1{row-gap:.25rem}.gap-x-5{column-gap:1.25rem}
.gap-2\.5{gap:.625rem}.mt-7{margin-top:1.75rem}.mt-9{margin-top:2.25rem}
.px-7{padding-left:1.75rem;padding-right:1.75rem}
.bg-card\/90{background-color:color-mix(in oklab,var(--card) 90%,transparent)}
.bg-accent\/10{background-color:color-mix(in oklab,var(--accent) 10%,transparent)}
.bg-ink\/85{background-color:color-mix(in oklab,var(--ink) 85%,transparent)}
.bg-ink\/45{background-color:color-mix(in oklab,var(--ink) 45%,transparent)}
.bg-ink\/65{background-color:color-mix(in oklab,var(--ink) 65%,transparent)}
.hover\:bg-ink\/65:hover{background-color:color-mix(in oklab,var(--ink) 65%,transparent)}
.ring-ink-foreground\/15{--tw-ring:color-mix(in oklab,var(--ink-foreground) 15%,transparent)}
.rounded-\[1\.75rem\]{border-radius:1.75rem}
.rounded-\[2rem\]{border-radius:2rem}.pb-24{padding-bottom:6rem}
.text-ink-foreground\/80{color:color-mix(in oklab,var(--ink-foreground) 80%,transparent)}
.fill-none{fill:none}
.size-2{width:.5rem;height:.5rem}.size-5{width:1.25rem;height:1.25rem}.size-8{width:2rem;height:2rem}
.aspect-square{aspect-ratio:1/1}.aspect-\[3\/4\]{aspect-ratio:3/4}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.transition-\[transform\]{transition:transform .2s}.hover\:scale-110:hover{transform:scale(1.1)}
.shrink-0.rt-heart svg{transition:transform .15s ease}
.rt-heart:hover{transform:scale(1.08)}
.gap-x-8{column-gap:2rem}
.ml-auto{margin-left:auto}
.bottom-2{bottom:.5rem}.left-2{left:.5rem}
.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}
.gap-0\.5{gap:.125rem}.p-1\.5{padding:.375rem}
.mt-0\.5{margin-top:.125rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}
.leading-tight{line-height:1.25}
.rounded-t-md{border-top-left-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(var(--radius) - 2px)}
.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.7rem\]{font-size:.7rem}
.min-w-\[36rem\]{min-width:36rem}
.bg-accent\/30{background-color:color-mix(in oklab,var(--accent) 30%,transparent)}
.first\:border-t-0:first-child{border-top-width:0}
.size-6{width:1.5rem;height:1.5rem}
.space-y-2\.5>*+*{margin-top:.625rem}
/* extras used by the new listing form / dashboard hero */
.text-\[10px\]{font-size:10px;line-height:1.2}
.gap-y-2{row-gap:.5rem}
.mt-0\.5{margin-top:.125rem}
.bg-ink-foreground\/90{background-color:color-mix(in oklab,var(--ink-foreground) 90%,transparent)}
/* amber (warnings / needs-review badges) — used across the app but never defined */
.text-amber-600{color:#d97706}.text-amber-700{color:#b45309}
.bg-amber-500\/10{background-color:color-mix(in oklab,#f59e0b 10%,transparent)}
.bg-amber-500\/5{background-color:color-mix(in oklab,#f59e0b 5%,transparent)}
.border-amber-500\/30{border-color:color-mix(in oklab,#f59e0b 30%,transparent)}

/* breakpoints */
@media (min-width:640px){
  .sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-7xl{font-size:4.5rem;line-height:1}
  .sm\:block{display:block}.sm\:px-12{padding-left:3rem;padding-right:3rem}
  .sm\:p-8{padding:2rem}.sm\:p-10{padding:2.5rem}.sm\:p-12{padding:3rem}
}
@media (min-width:768px){
  .md\:flex{display:flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .md\:col-span-2{grid-column:span 2/span 2}.md\:items-center{align-items:center}
  .md\:hidden{display:none}
}
.order-1{order:1}.order-2{order:2}.order-first{order:-9999}
@media (min-width:1024px){
  .lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:order-none{order:0}
  .lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}
  .lg\:grid-cols-\[16rem_minmax\(0\2c 1fr\)\]{grid-template-columns:16rem minmax(0,1fr)}
  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_22rem\]{grid-template-columns:minmax(0,1fr) 22rem}
  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_28rem\]{grid-template-columns:minmax(0,1fr) 28rem}
  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_20rem\]{grid-template-columns:minmax(0,1fr) 20rem}
  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_22rem\]{grid-template-columns:minmax(0,1fr) 22rem}
  .lg\:items-center{align-items:center}
  .lg\:sticky{position:sticky}.lg\:top-24{top:6rem}.lg\:self-start{align-self:flex-start}
  .lg\:block{display:block}.lg\:text-6xl{font-size:3.75rem;line-height:1}
  .lg\:h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}
  .lg\:h-\[calc\(100vh-6\.25rem\)\]{height:calc(100vh - 6.25rem)}
  .lg\:h-\[calc\(100vh-12rem\)\]{height:calc(100vh - 12rem)}
  .lg\:top-28{top:7rem}
  .lg\:overflow-y-auto{overflow-y:auto}
  .lg\:border-b-0{border-bottom-width:0}.lg\:border-r{border-right-width:1px}
  .lg\:text-7xl{font-size:4.5rem;line-height:1}.lg\:text-8xl{font-size:6rem;line-height:1}
}

/* placeholder helper for the solid search field */
.placeholder\:text-ink\/45::placeholder{color:color-mix(in oklab,var(--ink) 45%,transparent);opacity:1}

/* ===== Motion layer — applied site-wide via the shared stylesheet ===== */
@media (prefers-reduced-motion: no-preference){
  a, button { transition: color .18s ease, background-color .2s ease, border-color .2s ease, box-shadow .28s var(--ease-expo), transform .2s var(--ease-expo); }

  /* card + tile hover lift */
  article.group, .group.rounded-2xl { transition: transform .5s var(--ease-expo), box-shadow .5s var(--ease-expo); }
  article.group:hover { transform: translateY(-6px); }

  /* primary action buttons: press + hover lift */
  a[href$="planner.dc.html"], button[type="submit"], .bg-accent { will-change: transform; }
  a[href$="planner.dc.html"]:hover, button[type="submit"]:hover { transform: translateY(-2px); box-shadow: var(--shadow-lift); }
  a:active, button:active { transform: translateY(0) scale(.97); }

  /* (nav-link underline slide removed by request) */

  /* concierge-style pulse dot everywhere it appears */
  @keyframes rt-ping { 0%{box-shadow:0 0 0 0 color-mix(in oklab,var(--accent) 55%,transparent)} 70%,100%{box-shadow:0 0 0 7px transparent} }

  @keyframes rt-up   { from{opacity:0; transform:translateY(46px)}  to{opacity:1; transform:none} }
  @keyframes rt-left { from{opacity:0; transform:translateX(-56px)} to{opacity:1; transform:none} }
  @keyframes rt-right{ from{opacity:0; transform:translateX(56px)}  to{opacity:1; transform:none} }
  @keyframes rt-zoom { from{opacity:0; transform:scale(.9)}         to{opacity:1; transform:none} }
  @keyframes rt-blur { from{opacity:0; filter:blur(10px); transform:translateY(24px)} to{opacity:1; filter:blur(0); transform:none} }

  /* scroll-driven reveals — different motion per element type */
  @supports (animation-timeline: view()){
    section article,
    section > div > div > .rounded-2xl,
    section .shadow-panel { animation: rt-up linear both; animation-timeline: view(); animation-range: entry 2% cover 26%; }
    section figure { animation: rt-zoom linear both; animation-timeline: view(); animation-range: entry 0% cover 24%; }
    section h2 { animation: rt-left linear both; animation-timeline: view(); animation-range: entry 0% cover 22%; }
    section h2 + p, section .label + h2 { animation: rt-right linear both; animation-timeline: view(); animation-range: entry 0% cover 26%; }
    section > div > .grid > div, dl > div { animation: rt-blur linear both; animation-timeline: view(); animation-range: entry 4% cover 30%; }
    footer > div > div > div { animation: rt-up linear both; animation-timeline: view(); animation-range: entry 0% cover 40%; }
    dl > div { animation-range: entry 0% cover 34%; }
  }
}

/* extra utilities for the black CTA cards */
.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}
.pt-4{padding-top:1rem}.pb-4{padding-bottom:1rem}
@media (min-width:640px){ .sm\:px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\:px-16{padding-left:4rem;padding-right:4rem} }

/* ===== extra motion — hide-on-scroll bars, hero parallax, icon nudges ===== */
@media (prefers-reduced-motion: no-preference){
  @keyframes rt-hide { 0%{max-height:64px} 100%{max-height:0; opacity:0; padding-top:0; padding-bottom:0; transform:translateY(-8px)} }
  @keyframes rt-heroshift { to { transform: scale(1.14) translateY(18px); } }
  .rt-heart:active{ transform: scale(1.35); }
  span[aria-hidden]{ display:inline-block; transition: transform .2s var(--ease-expo); }
  a:hover > span[aria-hidden], button:hover > span[aria-hidden]{ transform: translateX(3px); }
  nav .font-serif{ transition: transform .25s var(--ease-expo); }
  nav .font-serif:hover{ transform: scale(1.03); }

  @supports (animation-timeline: scroll()){
    /* the trust strip (2nd nav row) collapses away as you scroll down, returns on scroll up */
    nav > div + div { overflow: hidden; animation: rt-hide linear both; animation-timeline: scroll(root); animation-range: 0 150px; }
    /* Home hero parallax (both vertical zoom and sideways drift) is driven by
       home-hero.tsx via inline transforms; a CSS animation-timeline rule here
       would win over inline styles and cancel the sideways drift, so it is
       intentionally omitted. */
  }
  @supports (animation-timeline: view()){
    section ul li { animation: rt-up linear both; animation-timeline: view(); animation-range: entry 0% cover 22%; }
  }
}

/* ===== no horizontal scroll, anywhere ===== */
html, body { overflow-x: hidden; }
body { max-width: 100vw; }
/* Body stays light so page content and any rounded images sit on white; the
   root (html) is ink so over-scrolling past the footer shows black, matching the
   footer, not a white gap. (Do NOT set overscroll-behavior here — on some
   browsers it broke page scrolling entirely.) */
html { background: var(--ink); }
body { background: var(--background); }

/* rounder header */
.rounded-b-3xl{ border-bottom-left-radius:1.75rem; border-bottom-right-radius:1.75rem; }

/* clean activity meta chips (mono spec chips + assurance badges) */
.spec-row{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.spec-chip{ display:inline-flex; align-items:center; gap:.45rem; border-radius:999px; padding:.34rem .72rem; font-family:var(--font-serif); font-size:.95rem; line-height:1; color:var(--muted-foreground); background:var(--surface); box-shadow:inset 0 0 0 1px var(--border); white-space:nowrap; }
.spec-chip svg{ width:.85rem; height:.85rem; color:var(--accent); }
.assure-chip{ display:inline-flex; align-items:center; gap:.4rem; border-radius:999px; padding:.34rem .72rem; font-family:var(--font-serif); font-size:.95rem; font-weight:400; line-height:1; color:var(--accent); background:color-mix(in oklab, var(--accent) 10%, transparent); white-space:nowrap; }
.assure-chip svg{ width:.85rem; height:.85rem; }

/* ===== extra motion for subpages ===== */
@media (prefers-reduced-motion: no-preference){
  @keyframes rt-pop { from{opacity:0; transform:translateY(14px) scale(.96)} to{opacity:1; transform:none} }
  .rt-pop{ animation: rt-pop .6s var(--ease-expo) both; }
  .rt-lift{ transition: transform .3s var(--ease-expo), box-shadow .3s var(--ease-expo); }
  .rt-lift:hover{ transform: translateY(-4px); box-shadow: var(--shadow-lift); }
  article figure img{ transition: transform .5s var(--ease-expo); }
  article:hover figure img{ transform: scale(1.05); }
  a[class*="bg-accent"], button[class*="bg-accent"]{ transition: transform .2s var(--ease-expo), box-shadow .25s var(--ease-expo), opacity .2s; }
  a[class*="bg-accent"]:hover, button[class*="bg-accent"]:hover{ transform: translateY(-1px); box-shadow: var(--shadow-lift); }
  @supports (animation-timeline: view()){
    .rt-pop-scroll{ animation: rt-pop linear both; animation-timeline: view(); animation-range: entry 2% cover 26%; }
    aside > *, .rt-stagger > *{ animation: rt-up linear both; animation-timeline: view(); animation-range: entry 0% cover 24%; }
  }
}

/* ===== header: rounded bar that morphs into a floating bubble on scroll ===== */
.rt-nav{
  background: #ffffff;
  border-bottom-left-radius: 1.75rem; border-bottom-right-radius: 1.75rem;
  box-shadow: var(--shadow-panel);
}
.rt-nav, .rt-nav a, .rt-nav span, .rt-nav .text-accent, .rt-nav .text-muted-foreground, .rt-nav svg{ color: #111111; }
[data-theme="dark"] .rt-nav{ background: var(--card); }
[data-theme="dark"] .rt-nav, [data-theme="dark"] .rt-nav a, [data-theme="dark"] .rt-nav span, [data-theme="dark"] .rt-nav .text-muted-foreground, [data-theme="dark"] .rt-nav svg{ color: var(--foreground); }
[data-theme="dark"] .rt-nav.rt-scrolled > div:first-child{ background: var(--card) !important; }
.rt-nav .bg-accent, .rt-nav .bg-accent *{ color: var(--accent-foreground); }
@keyframes rt-navclear{ to{ background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } }
@keyframes rt-navbubble{
  to{
    margin-top: 12px; max-width: 62rem;
    border-radius: 999px;
    background: var(--card);
    box-shadow: var(--shadow-lift);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  }
}
/* class-based morph driven by rt-nav.js (reliable across engines) */
.rt-nav{ transition: background .3s ease, box-shadow .3s ease, -webkit-backdrop-filter .3s ease, backdrop-filter .3s ease, border-radius .4s var(--ease-expo); }
.rt-nav > div:first-child{ transition: margin .45s var(--ease-expo), max-width .45s var(--ease-expo), background .3s ease, box-shadow .3s ease, border-radius .45s var(--ease-expo); }
.rt-nav > div + div{ overflow: hidden; max-height: 64px; transition: max-height .4s var(--ease-expo), opacity .3s ease, padding .3s ease; }
.rt-nav.rt-scrolled{ background: transparent !important; box-shadow: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.rt-nav.rt-scrolled > div:first-child{ margin-top: 12px !important; max-width: 62rem !important; border-radius: 999px !important; background: var(--card) !important; box-shadow: var(--shadow-lift) !important; padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
.rt-nav.rt-scrolled > div + div{ max-height: 0 !important; opacity: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; }

/* hero: full viewport so the section below sits off-screen on load */
.h-\[100vh\]{height:100vh}.min-h-\[44rem\]{min-height:44rem}
/* hero background crossfade */
.hero-cycle{ position:absolute; inset:0; }
.hero-cycle img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; animation-name: rt-hero !important; animation-duration: 40s !important; animation-timing-function: linear !important; animation-iteration-count: infinite !important; animation-fill-mode: both !important; animation-timeline: auto !important; transform: none !important; }
.hero-cycle img:nth-child(1){ animation-delay:0s !important }
.hero-cycle img:nth-child(2){ animation-delay:8s !important }
.hero-cycle img:nth-child(3){ animation-delay:16s !important }
.hero-cycle img:nth-child(4){ animation-delay:24s !important }
.hero-cycle img:nth-child(5){ animation-delay:32s !important }
@keyframes rt-hero{ 0%{opacity:0} 3%{opacity:1} 18%{opacity:1} 21%{opacity:0} 100%{opacity:0} }
.bg-transparent{ background-color: transparent !important; }
/* hero horizontal scroll-snap carousel */
.hero-track{ position:absolute; inset:0; display:flex; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; touch-action:pan-x; }
.hero-track::-webkit-scrollbar{ display:none; }
.hero-track-grab{ cursor:grab; user-select:none; -webkit-user-select:none; }
.hero-track-grab:active{ cursor:grabbing; }
.hero-track > .hero-slide{ position:relative; flex:0 0 100%; width:100%; height:100%; scroll-snap-align:center; scroll-snap-stop:always; overflow:hidden; }
.hero-track > .hero-slide img{ width:100%; height:100%; object-fit:cover; transform:scale(1.12); will-change:transform; -webkit-user-drag:none; user-select:none; }
.hero-dots{ position:absolute; left:50%; bottom:20px; transform:translateX(-50%); display:flex; gap:8px; z-index:20; }
.hero-dots > button{ width:8px; height:8px; border-radius:999px; background:rgba(255,255,255,.45); border:0; padding:0; cursor:pointer; transition:width .3s ease, background .3s ease; }
.hero-dots > button.is-active{ width:26px; background:#fff; }
.hero-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:20; width:52px; height:52px; border-radius:999px; border:0; background:rgba(255,255,255,.16); color:#fff; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s ease; }
.hero-arrow:hover{ background:rgba(255,255,255,.3); }
.hero-arrow.prev{ left:24px; } .hero-arrow.next{ right:24px; }
/* footer ridge texture */
/* Seamless top-to-bottom blend: white page melts into the hazy sky, the ridge
   sits in the middle, and its dark base dissolves into the black footer with no
   hard edge (the ridge PNG has a flat cut bottom that used to seam against ink). */
.footer-ridge{ position:relative; overflow:hidden; background: var(--ink) !important; color: rgba(255,255,255,.62) !important; padding-top: 25rem !important; }
/* The ridge PNG already runs from a light sky at its top to near-black at its base,
   so it bridges the white page above into the dark footer with no dark band of its own.
   Keep the image shorter than the padding so the mountains never reach the footer text. */
.footer-ridge::before{ content:""; position:absolute; left:0; right:0; top:0; height:18rem; background:linear-gradient(to bottom, transparent 52%, var(--ink) 90%), url("/assets/footer-ridge.png") repeat-x bottom center; background-size:100% 18rem, auto 18rem; background-position:bottom center, bottom center; background-repeat:no-repeat, repeat-x; pointer-events:none; }
/* Melt the cream sky into the pure-white page across the very top few rem. */
.footer-ridge::after{ content:""; position:absolute; left:0; right:0; top:0; height:5rem; background:linear-gradient(to bottom, var(--background), transparent); pointer-events:none; }
.footer-ridge > *{ position:relative; z-index:1; }
.footer-ridge a:hover{ color: var(--accent) !important; }
.rounded-\[2\.5rem\]{border-radius:2.5rem}.rounded-\[2rem\]{border-radius:2rem}.rounded-\[1\.75rem\]{border-radius:1.75rem}
/* experiences filter sidebar: scrollable + tidy scrollbar */
@media (min-width:1024px){ .filter-aside{ position:sticky; top:7rem; max-height:calc(100vh - 8.5rem); overflow-y:auto; padding-right:.5rem; } }
.filter-aside::-webkit-scrollbar{ width:6px; }
.filter-aside::-webkit-scrollbar-thumb{ background:var(--border); border-radius:999px; }
.filter-chev{ transition: transform .25s var(--ease-expo); }
.filter-chev.open{ transform: rotate(180deg); }
.text-red{ color: #dc2626 !important; }
.fill-red{ fill: #dc2626 !important; }
.bg-pastel{ background-color: var(--pastel); }
.aspect-\[3\/4\]{ aspect-ratio: 3 / 4; }
.divide-y > * + *{ border-top-width: 1px; border-top-style: solid; }
.divide-border > * + *{ border-color: var(--border); }

/* ===== RtNewsletter modal animations (were inline in RtNewsletter.dc.html) ===== */
@keyframes rt-nl-fade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes rt-nl-pop{ from{ opacity:0; transform:translateY(24px) scale(.94); } to{ opacity:1; transform:none; } }

/* ===== blog article prose (MDX body) — built from the existing tokens ===== */
.rt-prose{ color:var(--foreground); font-size:1.0625rem; line-height:1.75; }
.rt-prose > p{ margin-top:1.5rem; color:color-mix(in oklab, var(--foreground) 88%, transparent); }
.rt-prose > p:first-child{ margin-top:0; }
.rt-prose h2{ font-family:var(--font-serif); font-weight:400; letter-spacing:-0.015em; line-height:1.05; font-size:1.875rem; margin-top:3rem; margin-bottom:.25rem; }
.rt-prose h3{ font-family:var(--font-serif); font-weight:400; line-height:1.1; font-size:1.375rem; margin-top:2rem; margin-bottom:.25rem; }
.rt-prose ul, .rt-prose ol{ margin-top:1.25rem; padding-left:0; display:flex; flex-direction:column; gap:.65rem; }
.rt-prose ul > li{ position:relative; padding-left:1.4rem; color:color-mix(in oklab, var(--foreground) 88%, transparent); }
.rt-prose ul > li::before{ content:""; position:absolute; left:.2rem; top:.65rem; width:.375rem; height:.375rem; border-radius:999px; background:var(--accent); }
.rt-prose ol{ counter-reset:rt; }
.rt-prose ol > li{ position:relative; padding-left:1.8rem; counter-increment:rt; color:color-mix(in oklab, var(--foreground) 88%, transparent); }
.rt-prose ol > li::before{ content:counter(rt) "."; position:absolute; left:0; top:0; font-family:var(--font-mono); font-size:.85rem; color:var(--accent); }
.rt-prose a{ color:var(--accent); text-decoration:underline; text-underline-offset:3px; text-decoration-color:color-mix(in oklab, var(--accent) 35%, transparent); }
.rt-prose strong{ font-weight:600; color:var(--foreground); }
.rt-prose em{ font-style:italic; }
.rt-prose blockquote{ margin-top:1.75rem; padding-left:1.25rem; border-left:3px solid var(--accent); font-family:var(--font-serif); font-size:1.4rem; line-height:1.35; color:var(--foreground); }
.rt-prose code{ font-family:var(--font-mono); font-size:.85em; background:var(--surface); padding:.1rem .35rem; border-radius:6px; }
.rt-prose hr{ margin:2.5rem 0; border:0; border-top:1px solid var(--hairline); }
.rt-prose .not-prose{ font-size:1rem; line-height:1.5; }

/* ===== utilities for the operator + auth pages (extend glacier.css, no build step) ===== */
.w-16{width:4rem}.w-20{width:5rem}
.max-w-sm{max-width:24rem}.max-w-5xl{max-width:64rem}
.whitespace-pre-line{white-space:pre-line}
.mx-2{margin-left:.5rem;margin-right:.5rem}
.resize-y{resize:vertical}
@media (min-width:640px){
  .sm\:col-span-2{grid-column:span 2/span 2}
  .sm\:p-10{padding:2.5rem}.sm\:p-12{padding:3rem}
}
.mt-14{margin-top:3.5rem}.pt-5{padding-top:1.25rem}
.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}
.hover\:bg-accent\/10:hover{background-color:color-mix(in oklab,var(--accent) 10%,transparent)}

/* ===== Always-on floating pill nav (no morph, no FOUC, soft shadow) ===== */
.rt-pillnav{ position:fixed; left:0; right:0; top:0; z-index:50; display:flex; justify-content:center; padding:12px 16px 0; pointer-events:none; }
.rt-pillnav > .rt-pillbar{ pointer-events:auto; width:100%; max-width:58rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; height:56px; padding:0 8px 0 22px; border-radius:999px; background:color-mix(in oklab, var(--card) 92%, transparent); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); box-shadow:0 6px 22px -16px color-mix(in oklab, var(--ink) 34%, transparent), inset 0 0 0 1px color-mix(in oklab, var(--ink) 6%, transparent); }
.rt-pillnav a, .rt-pillnav span, .rt-pillnav svg{ color:#111111; }
.rt-pillnav .rt-pill-cta{ display:inline-flex; align-items:center; gap:.5rem; border-radius:999px; padding:.5rem .9rem .5rem .75rem; font-size:.875rem; font-weight:500; box-shadow:inset 0 0 0 1px var(--border); transition:background-color .2s ease; }
.rt-pillnav .rt-pill-cta:hover{ background:var(--surface); }
/* Full-screen mobile menu — takes over the whole viewport as its own page. */
.rt-mobile-menu{ pointer-events:auto; position:fixed; inset:0; z-index:60; display:flex; flex-direction:column; background:var(--background); padding:14px 20px calc(env(safe-area-inset-bottom, 0px) + 24px); animation:rt-nl-fade .25s ease both; }
.rt-mobile-menu a, .rt-mobile-menu span, .rt-mobile-menu svg, .rt-mobile-menu button{ color:var(--foreground); }
.rt-mobile-menu-head{ display:flex; align-items:center; justify-content:space-between; height:56px; }
.rt-mobile-menu-links{ display:flex; flex-direction:column; margin-top:12px; }
.rt-mobile-menu-link{ display:flex; align-items:center; justify-content:space-between; padding:20px 4px; font-family:var(--font-serif); font-size:1.9rem; line-height:1.1; border-bottom:1px solid var(--hairline); }
.rt-mobile-menu-foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; padding-top:20px; }

/* ===== blog body images (Wikimedia photos embedded mid-article) ===== */
.rt-prose img{ width:100%; border-radius:1.25rem; margin:2rem 0 .5rem; display:block; }
.rt-prose img + em{ display:block; font-size:.8rem; color:var(--muted-foreground); font-style:normal; letter-spacing:.02em; margin-bottom:1.5rem; }

/* ===== blog rich elements: key-facts card, tip + fun-fact callouts ===== */
.rt-chip-icon{ display:inline-flex; width:1rem; height:1rem; margin-right:.5rem; vertical-align:-2px; }
.rt-chip-icon svg{ width:100%; height:100%; }
.rt-keyfacts{ margin:2.25rem 0; border-radius:1.25rem; background:var(--glacier); box-shadow:inset 0 0 0 1px var(--border); padding:1.5rem 1.75rem; }
.rt-keyfacts-title{ display:flex; align-items:center; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin:0 0 1rem; }
.rt-keyfacts-body ul{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.rt-keyfacts-body li{ position:relative; padding-left:1.1rem; font-size:.95rem; line-height:1.5; color:var(--foreground); }
.rt-keyfacts-body li::before{ content:""; position:absolute; left:0; top:.62rem; width:.35rem; height:.35rem; border-radius:999px; background:var(--accent); }
.rt-keyfacts-body strong{ font-weight:600; }
.rt-keyfacts-body p{ margin:0; }

.rt-tip, .rt-funfact{ margin:2rem 0; border-radius:1.25rem; padding:1.25rem 1.5rem; }
.rt-tip{ background:color-mix(in oklab, var(--accent) 8%, transparent); box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--accent) 22%, transparent); }
.rt-funfact{ background:var(--pastel); box-shadow:inset 0 0 0 1px var(--border); }
.rt-callout-label{ display:flex; align-items:center; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; margin:0 0 .5rem; }
.rt-tip .rt-callout-label{ color:var(--accent); }
.rt-funfact .rt-callout-label{ color:#8a6d1f; }
.rt-callout-body{ font-size:1rem; line-height:1.6; color:var(--foreground); }
.rt-callout-body p{ margin:0; }
.rt-callout-body p + p{ margin-top:.6rem; }

/* Bookable experience card injected through promo blog bodies (children-based:
   a photo, the title, a meta line and a booking link rendered as a button). */
.rt-bookcard{ margin:2.25rem 0; overflow:hidden; border-radius:1.25rem; background:var(--card); box-shadow:inset 0 0 0 1px var(--border), 0 4px 16px rgba(0,0,0,.05); }
.rt-bookcard p{ margin:0; padding:.1rem 1.5rem; font-size:.9rem; color:var(--muted-foreground); }
.rt-bookcard img{ display:block; width:100%; height:14rem; object-fit:cover; margin:0 0 .9rem; border-radius:0; }
.rt-bookcard p:has(img){ padding:0; }
.rt-bookcard strong{ display:block; padding-top:.2rem; font-family:var(--font-serif,Georgia,serif); font-weight:500; font-size:1.4rem; line-height:1.2; color:var(--foreground); }
.rt-bookcard a{ display:inline-flex; align-items:center; margin:.7rem 1.5rem 1.35rem; padding:.6rem 1.3rem; border-radius:999px; background:var(--accent); color:#fff !important; font-weight:600; font-size:.85rem; text-decoration:none !important; }
.rt-bookcard a:hover{ filter:brightness(1.06); }
/* Prose forces links green; keep solid CTA buttons white and un-underlined. */
.rt-prose a.rt-book-cta, a.rt-book-cta{ color:#fff; text-decoration:none; }

/* blog readable column width (was undefined, so prose stretched full width) */
.max-w-\[46rem\]{max-width:46rem}

/* ===== decorative motion for the operators apply page ===== */
@media (prefers-reduced-motion: no-preference){
  @keyframes rt-float{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-10px) } }
  @keyframes rt-spin-slow{ to{ transform:rotate(360deg) } }
  @keyframes rt-dash{ to{ stroke-dashoffset:-24 } }
  @keyframes rt-drift{ 0%,100%{ transform:translateX(0) } 50%{ transform:translateX(8px) } }
  .rt-float{ animation:rt-float 6s ease-in-out infinite; }
  .rt-float-slow{ animation:rt-float 9s ease-in-out infinite; }
  .rt-spin-slow{ animation:rt-spin-slow 40s linear infinite; transform-origin:center; }
  .rt-drift{ animation:rt-drift 8s ease-in-out infinite; }
  .rt-dash{ stroke-dasharray:2 7; animation:rt-dash 1.6s linear infinite; }
}
.rt-apply-hero{ position:relative; overflow:hidden; }
.rt-apply-hero .rt-deco{ position:absolute; pointer-events:none; opacity:.5; z-index:0; }

/* ===== extra utilities used by the operators apply page ===== */
.rounded-3xl{border-radius:calc(var(--radius) + 16px)}
.rounded-\[2rem\]{border-radius:2rem}
.rotate-3{transform:rotate(3deg)}.-rotate-3{transform:rotate(-3deg)}
.rotate-6{transform:rotate(6deg)}.-rotate-6{transform:rotate(-6deg)}
.rotate-12{transform:rotate(12deg)}.-rotate-12{transform:rotate(-12deg)}
.blur-2xl{filter:blur(40px)}.blur-3xl{filter:blur(64px)}
.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}
.bg-accent\/5{background-color:color-mix(in oklab,var(--accent) 5%,transparent)}
.bg-accent\/20{background-color:color-mix(in oklab,var(--accent) 20%,transparent)}
.bg-pastel\/60{background-color:color-mix(in oklab,var(--pastel) 60%,transparent)}
.border-accent\/20{border-color:color-mix(in oklab,var(--accent) 20%,transparent)}
.border-accent\/30{border-color:color-mix(in oklab,var(--accent) 30%,transparent)}
.text-accent\/30{color:color-mix(in oklab,var(--accent) 30%,transparent)}
.text-accent\/40{color:color-mix(in oklab,var(--accent) 40%,transparent)}
.text-accent\/50{color:color-mix(in oklab,var(--accent) 50%,transparent)}
.ring-1{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--accent) 14%,transparent)}

/* ===== more utilities used by the operators apply page ===== */
.w-24{width:6rem}.w-32{width:8rem}.w-40{width:10rem}.w-72{width:18rem}
.pb-8{padding-bottom:2rem}.px-14{padding-left:3.5rem;padding-right:3.5rem}
.mb-3{margin-bottom:.75rem}.gap-y-14{row-gap:3.5rem}
.top-32{top:8rem}.top-40{top:10rem}.left-1\/2{left:50%}
.-right-2{right:-.5rem}.-right-6{right:-1.5rem}.-right-8{right:-2rem}.-right-10{right:-2.5rem}
.-top-3{top:-.75rem}.-top-8{top:-2rem}.-top-10{top:-2.5rem}
.underline-offset-2{text-underline-offset:2px}

.h-1\.5{height:.375rem}

/* ===== utilities: dashboard editor, listing cards, planner colour hero ===== */
.size-20{width:5rem;height:5rem}.size-56{width:14rem;height:14rem}
.text-white{color:#fff}
.bg-white\/70{background-color:rgba(255,255,255,.7)}
.-right-16{right:-4rem}.-top-16{top:-4rem}.-bottom-20{bottom:-5rem}.right-24{right:6rem}
.mt-2\.5{margin-top:.625rem}
.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-\[4\/3\]{aspect-ratio:4/3}
.aspect-\[3\/2\]{aspect-ratio:3/2}.aspect-\[16\/10\]{aspect-ratio:16/10}
.duration-500{transition-duration:.5s}
.group:hover .group-hover\:scale-\[1\.04\]{transform:scale(1.04)}

/* ===== self-drawing mountain (AI planner empty state) ===== */
@media (prefers-reduced-motion: no-preference){
  @keyframes rt-draw{ from{ stroke-dashoffset:520 } to{ stroke-dashoffset:0 } }
  @keyframes rt-cloud{ 0%,100%{ transform:translateX(0) } 50%{ transform:translateX(14px) } }
  @keyframes rt-sun{ 0%,100%{ opacity:.55 } 50%{ opacity:1 } }
  .rt-draw{ stroke-dasharray:520; animation:rt-draw 2.6s var(--ease-expo) forwards; }
  .rt-draw-2{ animation-delay:.5s; }
  .rt-cloud{ animation:rt-cloud 7s ease-in-out infinite; }
  .rt-sun{ animation:rt-sun 4s ease-in-out infinite; transform-origin:center; }
}

/* ===== utilities: admin waitlist table + review modal ===== */
.max-h-32{max-height:8rem}.max-h-full{max-height:100%}.h-80{height:20rem}

/* ===== utilities: operator listing image manager ===== */
.border-2{border-width:2px}.border-dashed{border-style:dashed}
.right-2{right:.5rem}.top-2{top:.5rem}.left-3{left:.75rem}
.shadow{box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.08)}
.bg-ink\/80{background-color:color-mix(in oklab,var(--ink) 80%,transparent)}
.bg-ink\/70{background-color:color-mix(in oklab,var(--ink) 70%,transparent)}
.hover\:bg-pastel:hover{background-color:var(--pastel)}
.h-6{height:1.5rem}.w-10{width:2.5rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}
/* modal/overlay utilities (were missing → modals rendered inline) */
.z-\[100\]{z-index:100}.max-h-\[85vh\]{max-height:85vh}.bg-ink\/60{background-color:color-mix(in oklab,var(--ink) 60%,transparent)}
