/* IGNITE 2026 — Apple-register black edition of the Art of Ceramic v4 system.
   Same type (Inter Tight display / Inter body), nav and pill language as artofceramic;
   the accent is "heat": the logo's ember → white-hot → electric blue, reserved for display type. */

@font-face { font-family: "WM"; src: url("/m/wm-800.woff2?v=3519e2b723") format("woff2"); font-weight: 800; font-display: swap; }

:root {
  --black: #000;
  --ink: #1d1d1f;
  --d-ink: #f5f5f7;
  --d-ink-2: #a1a1a6;
  --d-ink-3: #6e6e73;
  --d-line: rgba(255, 255, 255, .14);
  --d-tile: #101012;
  --heat: linear-gradient(100deg, #ff7a2f 0%, #ffb26b 24%, #fff0de 50%, #a9d4ff 74%, #3f8cff 100%);
  --ember: #ff8a3d;
  --volt: #4b9bff;
  --fd: "Inter Tight", "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --fb: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --fw: "WM", "Inter Tight", -apple-system, sans-serif;
  --ease: cubic-bezier(0.28, 0.11, 0.32, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --r-lg: 28px;
  --r-md: 18px;
  --nav: 52px;
  --gut: clamp(20px, 4vw, 48px);
  --sec: clamp(96px, 13vw, 168px);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: var(--nav); background: #000; }
body { margin: 0; background: #000; color: var(--d-ink); font: 400 17px/1.5 var(--fb); letter-spacing: -0.012em;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; }
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, p, ol, ul, dl, dd, dt, figure, blockquote { margin: 0; padding: 0; }
ol, ul { list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
:focus-visible { outline: 2px solid var(--volt); outline-offset: 3px; border-radius: 6px; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: #fff; color: #000; padding: 10px 16px; border-radius: 99px; }
.skip:focus { left: 12px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.wrap { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 var(--gut); }
.wrap.narrow { max-width: 940px; }
section { position: relative; }
.center { text-align: center; }

/* ---------- type ---------- */
.wm { font-family: var(--fw); font-weight: 800; letter-spacing: -0.02em; }
.eyebrow { font: 600 clamp(17px, 1.5vw, 21px)/1.2 var(--fd); letter-spacing: -0.01em; color: var(--d-ink-2); margin-bottom: 14px; }
.h-big { font: 700 clamp(44px, 7.4vw, 108px)/0.98 var(--fd); letter-spacing: -0.05em; text-wrap: balance; }
.h2 { font: 700 clamp(40px, 6vw, 80px)/1 var(--fd); letter-spacing: -0.045em; text-wrap: balance; }
.intro { font: 500 clamp(19px, 1.7vw, 24px)/1.38 var(--fb); letter-spacing: -0.018em; color: var(--d-ink-2); max-width: 40ch; }
.intro b { color: var(--d-ink); font-weight: 600; }
.intro.sm { font-size: 17px; }
.intro a, .acc a { color: #8cc4ff; }
.body { color: var(--d-ink-2); max-width: 46ch; }
.heat { background: var(--heat); background-size: 100% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-box-decoration-break: clone; padding-bottom: 0.06em; }
.sec-head { margin-bottom: clamp(40px, 6vw, 72px); }
.sec-head .intro { margin-top: 22px; }
.center-head { text-align: center; display: flex; flex-direction: column; align-items: center; }

/* ---------- buttons ---------- */
.pill { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px; border-radius: 99px;
  background: var(--d-ink); color: var(--ink); font: 500 17px/1 var(--fb); letter-spacing: -0.01em; white-space: nowrap;
  transition: background .3s var(--ease), transform .3s var(--ease), box-shadow .5s var(--ease); }
.pill:hover { background: #fff; box-shadow: 0 0 0 1px rgba(255,255,255,.3), 0 8px 40px -6px rgba(255, 138, 61, .55), 0 8px 50px -10px rgba(75, 155, 255, .5); }
.pill:active { transform: scale(.97); }
.pill.lg { min-height: 52px; padding: 0 30px; font-size: 18px; }
.pill.sm { min-height: 28px; padding: 0 13px; font-size: 12px; }
.more { display: inline-flex; align-items: center; gap: 4px; color: #8cc4ff; font-weight: 500; }
.more.lg { font-size: 18px; }
.more:hover { text-decoration: underline; text-underline-offset: 3px; }
.chev { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: transform .3s var(--ease); }
.more:hover .chev { transform: translateX(2px); }
.ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 30px; margin-top: 36px; }
.ctas.center { justify-content: center; }

/* ---------- local nav ---------- */
.lnav { position: sticky; top: 0; z-index: 50; height: var(--nav); background: rgba(8, 8, 9, .72); color: var(--d-ink);
  -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(255, 255, 255, .1); }
.lnav-in { height: 100%; max-width: 1180px; margin: 0 auto; padding: 0 var(--gut); display: flex; align-items: center; gap: 20px; }
.lnav-title { display: inline-flex; align-items: baseline; gap: 8px; margin-right: auto; white-space: nowrap; }
.lnav-title .wm { font-size: 19px; letter-spacing: .04em; }
.lnav-yr { font: 500 12px/1 var(--fb); color: var(--d-ink-2); letter-spacing: .02em; }
.lnav-menu { display: flex; align-items: center; gap: 22px; font-size: 12px; letter-spacing: -0.01em; }
.lnav-menu a { opacity: .8; transition: opacity .2s; white-space: nowrap; }
.lnav-menu a:hover { opacity: 1; }
.lnav-toggle { display: none; width: 32px; height: 32px; align-items: center; justify-content: center; margin-left: -14px; }
.lnav-toggle svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; transition: transform .35s var(--ease); }
@media (max-width: 900px) {
  .lnav { background: rgba(14, 14, 15, .86); }
  .lnav-toggle { display: inline-flex; }
  .lnav-title { margin-right: 0; }
  .lnav-book { margin-left: auto; }
  .lnav-menu { position: absolute; left: 0; right: 0; top: var(--nav); flex-direction: column; align-items: stretch; gap: 0; padding: 8px var(--gut) 24px;
    background: #111112; border-bottom: 1px solid rgba(255, 255, 255, .1); font-size: 17px; visibility: hidden; opacity: 0; transform: translateY(-8px);
    transition: opacity .35s var(--ease), transform .35s var(--ease), visibility 0s .35s; }
  .lnav-menu a { padding: 13px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); opacity: 1; }
  .lnav.open { background: #111112; }
  .lnav.open .lnav-menu { visibility: visible; opacity: 1; transform: none; transition: opacity .35s var(--ease), transform .35s var(--ease); }
  .lnav.open .lnav-toggle svg { transform: rotate(180deg); }
}

/* ---------- 1. ignition ---------- */
.ign { height: 300vh; background: #000; }
.ign-stick { position: sticky; top: var(--nav); height: calc(100vh - var(--nav)); height: calc(100svh - var(--nav)); overflow: hidden; contain: paint; }
.ign-cv { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; }
.ign-heat { display: none; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: var(--heat-o, .35);
  background:
    radial-gradient(42% 34% at var(--cx, 50%) var(--cy, 40%), rgba(255, 140, 60, .30), rgba(255, 90, 30, .08) 55%, transparent 75%),
    radial-gradient(30% 26% at calc(var(--cx, 50%) + 6%) calc(var(--cy, 40%) - 4%), rgba(70, 150, 255, .28), transparent 70%); }
.ign-inner { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 18px var(--gut) 28px; }
.ign-eyebrow { position: relative; z-index: 3; margin: 0; opacity: var(--copy-o, 1); transform: translateY(var(--copy-y, 0)); }
.ign-logo-slot { position: relative; width: min(72vw, 54vh); width: min(72vw, 54svh); aspect-ratio: 1; margin: clamp(-18px, -1.6vh, -6px) 0 clamp(-40px, -3.4vh, -16px); }
.ign-logo { position: absolute; inset: 0; width: 100%; height: 100%; transform-origin: 50.7% 38.2%;
  transform: scale(var(--ls, 1)); opacity: var(--lo, 1); will-change: transform, opacity; filter: brightness(var(--lb, 1)); }
.ign-copy { opacity: var(--copy-o, 1); transform: translateY(var(--copy-y, 0)); }
.hero-sub { font: 600 clamp(21px, 2vw, 28px)/1.22 var(--fd); letter-spacing: -0.028em; max-width: 30ch; margin: 0 auto; color: var(--d-ink); text-wrap: balance; }
.hero-when { margin-top: 12px; color: var(--d-ink-2); font-weight: 500; }
.ign-copy .ctas { margin-top: 26px; }
.ign-cap { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 0 var(--gut);
  opacity: var(--cap-o, 0); transform: scale(var(--cap-s, 1.06)); pointer-events: none; }
.ign-cap-h { font: 700 clamp(48px, 8vw, 120px)/0.98 var(--fd); letter-spacing: -0.052em; }
.ign-cap-s { margin-top: 22px; color: var(--d-ink-2); font: 500 clamp(17px, 1.5vw, 21px)/1.3 var(--fb); }
.ign-hint { position: absolute; left: 50%; bottom: 18px; z-index: 3; width: 1px; height: 36px; background: linear-gradient(rgba(255,255,255,0), rgba(255,255,255,.6)); opacity: var(--copy-o, 1); }
@media (max-width: 760px) {
  .ign { height: 200vh; }
  .ign-logo-slot { width: min(92vw, 52svh); margin: -10px 0 -34px; }
  .ign-inner { padding-top: 6px; }
  .hero-sub { font-size: 21px; }
  .ign-copy .ctas { gap: 16px 24px; margin-top: 22px; }
  .ign-hint { display: none; }
}
@media (max-height: 700px) and (max-width: 760px) { .ign-logo-slot { width: min(80vw, 46svh); } .hero-sub { font-size: 19px; } }

/* ---------- 2. statement ---------- */
.intro-sec { padding: var(--sec) 0 calc(var(--sec) * .8); }
.intro-sec .h-big { margin-bottom: 34px; }
.lit .w { transition: color .5s var(--ease), opacity .5s var(--ease); }
.lit .w:not(.on) { opacity: .2; }
.facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin-top: clamp(48px, 7vw, 80px); border-top: 1px solid var(--d-line); }
.facts > div { padding: 22px 18px 0 0; }
.facts dt { font-size: 12px; color: var(--d-ink-3); letter-spacing: .01em; margin-bottom: 6px; }
.facts dd { font: 600 clamp(17px, 1.6vw, 21px)/1.25 var(--fd); letter-spacing: -0.02em; }
@media (max-width: 760px) { .facts { grid-template-columns: 1fr 1fr; } .facts > div { padding-bottom: 18px; } }

/* ---------- 3. the four days ---------- */
.days { height: 420vh; }
.days-stick { position: sticky; top: var(--nav); height: calc(100vh - var(--nav)); height: calc(100svh - var(--nav)); overflow: hidden; contain: paint; }
.days-media, .dm { position: absolute; inset: 0; }
.dm { opacity: 0; will-change: opacity; backface-visibility: hidden; }
.dm.is-on { opacity: 1; }
.js .dm[data-i="0"] { opacity: 1; }
.dm picture { display: block; width: 100%; height: 100%; }
.dm video, .dm img { width: 100%; height: 100%; object-fit: cover; transform: scale3d(1.08, 1.08, 1); will-change: transform; backface-visibility: hidden; }
.days-shade { position: absolute; inset: 0; background:
  linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.5) 42%, rgba(0,0,0,.05) 75%),
  linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 40%), linear-gradient(180deg, rgba(0,0,0,.55), transparent 22%); }
.days-ui { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding-top: 26px; padding-bottom: clamp(36px, 7vh, 80px); }
.rev { max-width: 520px; }
.rev-track { position: relative; height: 3px; border-radius: 3px; background: rgba(255,255,255,.18); overflow: hidden; }
.rev-fill { position: absolute; inset: 0; background: var(--heat); transform-origin: 0 50%; transform: scaleX(var(--dp, 0)); box-shadow: 0 0 18px rgba(255,160,90,.8); will-change: transform; }
.rev-ticks { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 10px; font-size: 12px; color: var(--d-ink-3); }
.rev-ticks li { transition: color .5s var(--ease); }
.rev-ticks li.on { color: var(--d-ink); }
.days-list { position: relative; max-width: 560px; min-height: 340px; }
.day { position: absolute; left: 0; right: 0; bottom: 0; opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity .6s var(--ease), transform .8s var(--ease-out); pointer-events: none; will-change: opacity, transform; }
.days.scrub .day, .days.scrub .dm { transition: none; }
.day.is-on { opacity: 1; transform: none; pointer-events: auto; }
.day.was { transform: translateY(-28px); }
.day-k { display: flex; align-items: baseline; gap: 12px; color: var(--d-ink-2); font: 600 17px/1.2 var(--fd); letter-spacing: -0.01em; margin-bottom: 14px; }
.day-k .num { font: 800 15px/1 var(--fw); letter-spacing: .02em; background: var(--heat); -webkit-background-clip: text; background-clip: text; color: transparent; }
.day-h { font: 700 clamp(36px, 4.6vw, 64px)/1.02 var(--fd); letter-spacing: -0.045em; text-wrap: balance; }
.day-b { margin-top: 18px; color: rgba(245,245,247,.82); font-size: 17px; line-height: 1.5; max-width: 46ch; }
@media (max-width: 760px) {
  .days { height: 220vh; }
  .days-shade { background: linear-gradient(0deg, rgba(0,0,0,.94) 0%, rgba(0,0,0,.78) 38%, rgba(0,0,0,.1) 66%), linear-gradient(180deg, rgba(0,0,0,.55), transparent 22%); }
  .days-ui { padding-top: 18px; padding-bottom: 30px; }
  .days-list { min-height: 0; }
  .day-h { font-size: 34px; }
  .day-b { font-size: 15px; margin-top: 12px; }
  .day-k { font-size: 15px; margin-bottom: 10px; }
}

/* ---------- 4. quote ---------- */
.quote { padding: var(--sec) 0; }
.q-text { font: 700 clamp(36px, 5.4vw, 76px)/1.04 var(--fd); letter-spacing: -0.045em; text-wrap: balance; }
.q-text .w { color: #3a3a3d; transition: color .45s var(--ease), text-shadow .6s var(--ease); }
.q-text .w.hot { color: #ffc48f; text-shadow: 0 0 .35em rgba(255, 140, 60, .32); }
.q-text .w.on { color: var(--d-ink); text-shadow: none; }
.q-text .w.k { color: #3a3a3d; }
.q-text .w.on.k { background: var(--heat); -webkit-background-clip: text; background-clip: text; color: transparent; }
.q-by { display: flex; align-items: center; gap: 14px; margin-top: 28px; color: var(--d-ink-2); font-size: 15px; line-height: 1.35; }
.q-by b { color: var(--d-ink); font-weight: 600; }
.q-by img { flex: none; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; object-position: 50% 18%; }

/* ---------- 5. places rail ---------- */
.places { padding: var(--sec) 0; background: linear-gradient(#000, #0a0a0b 30%, #0a0a0b 70%, #000); }
.places .sec-head { margin-bottom: clamp(28px, 4vw, 48px); }
.rail-wrap { --edge: max(var(--gut), calc((100vw - 1180px) / 2 + var(--gut))); --cw: min(calc(100vw - var(--edge) - var(--gut) - 32px), 640px); --gap: 14px; }
.rail-tabs { display: flex; gap: 8px; margin-bottom: 20px; overflow-x: auto; scrollbar-width: none; }
.rail-tabs::-webkit-scrollbar { display: none; }
.rail-tab { flex: none; min-height: 36px; padding: 0 16px; border-radius: 99px; border: 1px solid var(--d-line); color: var(--d-ink-2); font-size: 14px; transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease); }
.rail-tab .t-sm { display: none; }
@media (max-width: 420px) { .rail-tab .t-lg { display: none; } .rail-tab .t-sm { display: inline; } }
.rail-tab.is-on { background: var(--d-ink); border-color: var(--d-ink); color: var(--ink); }
/* one ratio, one width; every card snaps with its left edge on the heading's text edge, the next one peeks */
.rail { display: flex; gap: var(--gap); overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; margin: 0; list-style: none;
  padding: 0 calc(100vw - var(--edge) - var(--cw)) 0 var(--edge); scroll-padding-left: var(--edge); -webkit-overflow-scrolling: touch; }
.rail::-webkit-scrollbar { display: none; }
.card { flex: none; width: var(--cw); scroll-snap-align: start; scroll-snap-stop: always; transform-origin: 0 50%; will-change: transform; }
.cm { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r-md); overflow: hidden; background: #111; transform: translateZ(0); }
.cm img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale3d(1.14, 1.14, 1); will-change: transform; backface-visibility: hidden; }
.cs { position: absolute; inset: 0; background: #000; opacity: 0; will-change: opacity; pointer-events: none; }
.card p { margin-top: 14px; font: 600 16px/1.3 var(--fd); letter-spacing: -0.012em; color: var(--d-ink); will-change: opacity, transform; }
.rail-ctl { display: flex; align-items: center; gap: 16px; margin-top: 16px; }
.rail-num { flex: none; display: flex; align-items: baseline; gap: 5px; font: 800 13px/1 var(--fw); letter-spacing: .04em; color: var(--d-ink-3); font-variant-numeric: tabular-nums; }
.rail-num b { font-weight: 800; font-size: 22px; background: var(--heat); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rail-num i { font-style: normal; opacity: .6; }
.rail-bar { flex: 1; height: 2px; background: rgba(255,255,255,.14); border-radius: 2px; overflow: hidden; }
.rail-bar span { display: block; height: 100%; width: 100%; background: var(--heat); transform-origin: 0 50%; transform: scaleX(var(--rp, .083)); will-change: transform; }
.rail-btn { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.1); display: inline-flex; align-items: center; justify-content: center; transition: background .3s; }
.rail-btn:hover { background: rgba(255,255,255,.18); }
.rail-btn svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 760px) { .rail-btn { display: none; } .rail-wrap { --gap: 12px; } .card p { font-size: 15px; margin-top: 12px; } }

/* ---------- 6. instructor ---------- */
.instr { padding: 0 0 var(--sec); }
.instr-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(36px, 6vw, 96px); align-items: center; }
.instr-photo { position: relative; border-radius: var(--r-lg); overflow: hidden; }
.instr-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 22%; }
.instr-photo::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.instr-copy .h2 { margin-bottom: 26px; }
.instr-copy .body { margin-top: 18px; }
.instr-inset { margin-top: 34px; width: min(100%, 360px); border-radius: var(--r-md); overflow: hidden; }
.instr-inset img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
@media (max-width: 900px) { .instr-grid { grid-template-columns: 1fr; } .instr-photo img { aspect-ratio: 4 / 4.4; } }

/* ---------- 7. bento ---------- */
.incl { padding: var(--sec) 0; }
.bento { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: minmax(260px, auto); gap: 14px; }
.tile { position: relative; overflow: hidden; border-radius: var(--r-lg); background: var(--d-tile); padding: 30px; display: flex; flex-direction: column; justify-content: flex-end; min-height: 300px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06); }
.tile h3 { font: 700 clamp(22px, 2vw, 28px)/1.1 var(--fd); letter-spacing: -0.03em; }
.tile p { margin-top: 10px; color: var(--d-ink-2); font-size: 15px; line-height: 1.45; max-width: 38ch; }
.tile.img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 1.2s var(--ease-out); }
.tile.img:hover img { transform: scale(1.08); }
.tile.img::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.55) 38%, rgba(0,0,0,0) 70%); }
.tile.img > div { position: relative; z-index: 2; }
.tile.img p { color: rgba(245,245,247,.78); }
.t-suite { grid-column: span 4; grid-row: span 2; min-height: 560px; }
.t-clin { grid-column: span 2; grid-row: span 2; }
.t-911 { grid-column: span 3; min-height: 380px; }
.t-car { grid-column: span 3; justify-content: space-between; }
.t-dine { grid-column: span 3; min-height: 380px; }
.t-ce { grid-column: span 3; justify-content: space-between; }
.t-ico { width: 54px; height: 54px; fill: none; stroke: #ffb26b; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.tile .ce-big { font: 800 clamp(80px, 9vw, 130px)/0.9 var(--fw); letter-spacing: -0.02em; }
.tile .ce-big.heat { color: transparent; margin-top: 0; max-width: none; }
@media (max-width: 900px) {
  .bento { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; gap: 12px; }
  .t-suite, .t-clin, .t-911, .t-dine { grid-column: span 2; grid-row: auto; min-height: 400px; }
  .t-car, .t-ce { grid-column: span 1; min-height: 260px; padding: 22px; }
  .t-car h3, .t-ce h3 { font-size: 19px; }
  .t-car p, .t-ce p { font-size: 13px; }
  .tile .ce-big { font-size: 64px; }
  .t-ico { width: 40px; height: 40px; }
  .tile { padding: 24px; }
}

/* ---------- 8. invest ---------- */
.invest { padding: calc(var(--sec) * 1.1) 0; overflow: hidden; }
.invest-glow { position: absolute; left: 50%; top: 50%; width: min(1100px, 160vw); aspect-ratio: 2 / 1; transform: translate(-50%, -50%) scale(var(--ig, .6)); opacity: var(--igo, 0);
  background: radial-gradient(50% 50% at 40% 50%, rgba(255,120,40,.22), transparent 70%), radial-gradient(40% 50% at 62% 50%, rgba(60,140,255,.2), transparent 70%); pointer-events: none; }
.price { margin: 6px 0 0; line-height: 1; }
.price .wm { display: inline-block; font-size: clamp(88px, 17vw, 230px); letter-spacing: -0.035em; line-height: 1; padding: 0 .04em .04em; }
.price-sub { text-wrap: balance; margin-top: 18px; font: 600 clamp(17px, 1.6vw, 21px)/1.3 var(--fd); color: var(--d-ink); letter-spacing: -0.015em; }
.price-when { margin-top: 8px; color: var(--d-ink-2); }

/* ---------- 9. faq ---------- */
.faq { padding: var(--sec) 0; border-top: 1px solid var(--d-line); }
.faq-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.faq-head { position: sticky; top: calc(var(--nav) + 40px); }
.faq-head .intro { margin-top: 20px; }
.acc details { border-bottom: 1px solid var(--d-line); }
.acc details:first-child { border-top: 1px solid var(--d-line); }
.acc summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px 0; cursor: pointer; }
.acc summary::-webkit-details-marker { display: none; }
.acc summary h3 { font: 600 clamp(19px, 1.7vw, 24px)/1.3 var(--fd); letter-spacing: -0.025em; }
.acc details p { padding: 0 48px 28px 0; color: var(--d-ink-2); max-width: 62ch; }
.plus { position: relative; flex: none; width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.08); transition: transform .4s var(--ease), background .3s; }
.plus::before, .plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.6px; margin: -.8px 0 0 -6px; background: currentColor; border-radius: 2px; }
.plus::after { transform: rotate(90deg); }
details[open] .plus { transform: rotate(45deg); background: rgba(255,255,255,.16); }
@media (max-width: 900px) { .faq-grid { grid-template-columns: 1fr; } .faq-head { position: static; } .acc details p { padding-right: 0; } }

/* ---------- 10. final ---------- */
.final { padding: calc(var(--sec) * 1.2) 0 var(--sec); overflow: hidden; }
.final-orb { position: absolute; left: 50%; top: 50%; width: min(900px, 150vw); aspect-ratio: 1; transform: translate(-50%, -50%); pointer-events: none; opacity: .9; }
.orb-cv { width: 100%; height: 100%; }
.final .wrap { position: relative; }
.final .intro { margin: 28px auto 0; }

/* ---------- footer ---------- */
.foot { padding: 64px 0 40px; border-top: 1px solid var(--d-line); font-size: 12px; color: var(--d-ink-2); }
.foot-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.foot-cols h2 { font: 600 12px/1.3 var(--fb); color: var(--d-ink); margin-bottom: 10px; }
.foot-cols a { display: block; padding: 4px 0; }
.foot-cols a:hover { color: var(--d-ink); }
.foot-legal { display: flex; align-items: center; gap: 22px; margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--d-line); flex-wrap: wrap; }
.foot-legal span { margin-right: auto; }
.foot-logo img { height: 22px; width: auto; }
@media (max-width: 760px) { .foot-cols { grid-template-columns: 1fr 1fr; } }

/* ---------- reveals ---------- */
.js .rv { opacity: 0; transform: translateY(36px); transition: opacity 1s var(--ease), transform 1.2s var(--ease-out); }
.js .rv.in { opacity: 1; transform: none; }
.js .ign-inner > * { animation: rise 1.3s var(--ease-out) backwards; }
.js .ign-inner > .ign-logo-slot { animation: logoin 1.8s var(--ease-out) backwards; }
.js .ign-inner > .ign-copy { animation-delay: .45s; }
@keyframes rise { from { opacity: 0; transform: translateY(24px); } }
@keyframes logoin { from { opacity: 0; transform: scale(.86); filter: blur(10px); } }

@media (prefers-reduced-motion: reduce) {
  .ign { height: auto; }
  .ign-stick { position: relative; top: 0; height: auto; min-height: calc(100svh - var(--nav)); }
  .ign-cap, .ign-hint { display: none; }
  .days { height: auto; }
  .days-stick { position: relative; top: 0; height: auto; }
  .days-media { display: none; }
  .days-shade { display: none; }
  .days-list { min-height: 0; display: grid; gap: 48px; }
  .day { position: static; opacity: 1; transform: none; }
  .rev { display: none; }
  .days-ui { padding-top: var(--sec); padding-bottom: var(--sec); }
  .js .rv { opacity: 1; transform: none; transition: none; }
  .js .ign-inner > * { animation: none; }
  .lit .w:not(.on) { opacity: 1; }
  .q-text .w { color: var(--d-ink); }
  *, *::before, *::after { transition-duration: .01ms !important; }
}


/* ---------- 4b. in their words: IGNITE testimonial film ---------- */
.voices { padding: 0 0 var(--sec); }
.vo-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); grid-template-areas: 'film head' 'film copy'; column-gap: clamp(40px, 7vw, 112px); align-content: center; max-width: 1040px; margin: 0 auto; }
.vo-head { grid-area: head; align-self: end; }
.vo-film { grid-area: film; align-self: center; }
.vo-copy { grid-area: copy; align-self: start; }
.vo-film { position: relative; }
.vo-film::before { content: ""; position: absolute; inset: 8% -6% -4%; z-index: 0; border-radius: 40px; background: radial-gradient(60% 50% at 50% 70%, rgba(255,122,47,.55), rgba(255,122,47,0) 70%), radial-gradient(50% 40% at 50% 20%, rgba(63,140,255,.3), rgba(63,140,255,0) 70%); filter: blur(40px); opacity: .7; pointer-events: none; }
.vo-frame { position: relative; z-index: 1; aspect-ratio: 9 / 16; border-radius: var(--r-lg); overflow: hidden; background: #111; box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 40px 80px -40px rgba(0,0,0,.9); }
.vo-v { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vo-play { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 14px; padding-bottom: 28px; background: linear-gradient(0deg, rgba(0,0,0,.72), rgba(0,0,0,0) 38%); color: #fff; transition: opacity .5s var(--ease); }
.vo-play .pi { position: relative; left: auto; top: auto; margin: 0; width: 78px; height: 78px; border-radius: 99px; background: rgba(255,255,255,.22); -webkit-backdrop-filter: blur(16px) saturate(160%); backdrop-filter: blur(16px) saturate(160%); display: flex; align-items: center; justify-content: center; transition: transform .4s var(--ease), box-shadow .5s; box-shadow: 0 0 0 0 rgba(255,138,61,0); }
.vo-play .pi svg { width: 28px; height: 28px; fill: #fff; margin-left: 3px; }
.vo-play:hover .pi { transform: scale(1.08); box-shadow: 0 0 44px -4px rgba(255,138,61,.7); }
.vo-lbl { font-size: 14px; font-weight: 600; letter-spacing: -0.01em; }
.vo-lbl i { font-style: normal; color: rgba(255,255,255,.66); font-weight: 500; margin-left: 6px; }
.vo-frame.is-live .vo-play { opacity: 0; pointer-events: none; }
.vo-head .h2 { margin-bottom: clamp(28px, 3vw, 44px); }
.vo-q p { font: 700 clamp(24px, 2.6vw, 36px)/1.18 var(--fd); letter-spacing: -0.035em; color: var(--d-ink); text-wrap: pretty; }
.vo-q footer { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; margin-top: 18px; font-size: 15px; color: var(--d-ink-2); }
.vo-q footer b { color: var(--d-ink); font-weight: 600; }
.vo-q2 { margin-top: 36px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.1); }
.vo-q2 p { font-size: clamp(20px, 1.8vw, 24px); color: var(--d-ink-2); }
@media (max-width: 860px) {
  .vo-grid { grid-template-columns: 1fr; grid-template-areas: 'head' 'film' 'copy'; row-gap: 0; }
  .vo-film { margin-bottom: 44px !important; }
  .vo-film { width: min(78vw, 340px); margin: 0 auto; }
}

/* ---------- notify (future dates) ---------- */
.notify .h2 { margin-top: 14px; }
.nf { margin: 30px auto 0; display: flex; gap: 10px; max-width: 520px; flex-wrap: wrap; justify-content: center; }
.nf-in { flex: 1 1 260px; min-height: 52px; padding: 0 22px; border-radius: 999px; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.06); color: #fff; font: 500 17px/1 var(--fb, inherit); -webkit-appearance: none; appearance: none; }
.nf-in::placeholder { color: rgba(255,255,255,.5); }
.nf-in:focus { outline: none; border-color: #ff7a2f; box-shadow: 0 0 0 3px rgba(255,122,47,.25); }
.nf-in[aria-invalid="true"] { border-color: #ff5a4f; }
.nf-btn { min-height: 52px; border: 0; cursor: pointer; }
.nf-btn[disabled] { opacity: .6; cursor: default; }
.nf-msg { flex-basis: 100%; min-height: 1.4em; margin: 6px 0 0; font-size: 15px; color: var(--d-ink-2); }
.nf-msg.ok { color: #fff; }
.nf-msg.err { color: #ff8a80; }
.nf.done .nf-in, .nf.done .nf-btn { display: none; }
.nf-fine { margin-top: 14px; font-size: 13px; color: var(--d-ink-2); }
@media (max-width: 520px) { .nf-btn { flex: 1 1 100%; } }
