
:root{
  --bg:#07142b; --bg-2:#0d1d3c; --well:#0a1833; --ink:#ffffff; --ink-2:#c5cddd; --ink-3:#97a3bb;
  --line:rgba(255,255,255,.1); --shell:rgba(255,255,255,.045);
  --red:#e2211c; --red-deep:#c11a16; --accent:#ff7a70; --accent-ink:#ffffff; --navy:#11286d;
  --err:#ff9a90; --ok:#7fe0a0;
  --spring:cubic-bezier(.32,.72,0,1);
  --display:"Barlow Condensed", ui-sans-serif, system-ui, sans-serif;
  --body:"Geist", ui-sans-serif, system-ui, sans-serif;
}
.light{--bg:#f2f4f8; --bg-2:#ffffff; --well:#f2f4f8; --ink:#0b1630; --ink-2:#3a4762; --ink-3:#56627c;
  --line:rgba(11,22,48,.1); --shell:rgba(11,22,48,.04); --accent:#c11a16; --err:#b3261e; --ok:#1d7a3e;
  background:var(--bg); color:var(--ink)}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:3;opacity:.03;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
html body a:focus-visible, html body button:focus-visible, html body input:focus-visible, html body select:focus-visible, html body summary:focus-visible{outline-color:var(--accent)!important}
a{color:inherit}
img{display:block;max-width:100%}
.wrap{width:min(1240px,100% - 32px);margin-inline:auto}

/* nav */
.nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:2;display:flex;align-items:center;gap:20px;
  padding:6px 6px 6px 18px;border-radius:999px;background:rgba(7,20,43,.74);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 20px 40px -24px rgba(0,0,0,.6);white-space:nowrap;color:#fff}
.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;font:800 19px/1 var(--display);letter-spacing:.02em;text-transform:uppercase}
.brand .mark{width:40px;height:12px;flex:none}
.brand b{color:#ff7a70;font-weight:800}
.nav a.navlink{font-size:14px;color:#c5cddd;text-decoration:none;display:inline-flex;align-items:center;min-height:44px;transition:color .4s var(--spring)}
.nav a.navlink:hover{color:#fff}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:14px;min-height:52px;padding:6px 6px 6px 24px;border-radius:999px;border:0;cursor:pointer;
  background:var(--red);color:#fff;font:600 16px/1 var(--body);text-decoration:none;
  box-shadow:0 18px 36px -18px rgba(226,33,28,.7),inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .5s var(--spring),box-shadow .5s var(--spring),background .5s var(--spring)}
.btn:hover{background:var(--red-deep)}
.btn .ic{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.16);display:grid;place-items:center;transition:transform .5s var(--spring)}
.btn:hover .ic{transform:translate(2px,-1px) scale(1.06)}
.btn:active{transform:scale(.98)}
.btn.small{min-height:44px;font-size:14px;padding:4px 4px 4px 16px;box-shadow:none}
.btn.small .ic{width:34px;height:34px}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.btn.ghost .ic{background:var(--shell)}

/* eyebrow */
.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:7px 13px 7px 11px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line);background:var(--shell);
  font:600 11px/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}
.eyebrow::before{content:"";width:14px;height:3px;border-radius:2px;background:var(--red)}

/* type */
h1,h2.big{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:-.005em}
h1{font-size:clamp(58px,9vw,132px);line-height:.86;margin:24px 0 26px}
h1 em{font-style:italic;color:#fff;position:relative;display:inline-block}
h1 em::after{content:"";position:absolute;left:.04em;right:.02em;bottom:.04em;height:.12em;background:var(--red);z-index:-1;transform-origin:left;animation:bar 1.1s .5s var(--spring) both}
@keyframes bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
h2.big{font-size:clamp(44px,6.4vw,92px);line-height:.88;margin:20px 0 20px;max-width:14ch}
.intro{color:var(--ink-2);max-width:50ch;font-size:18px}

/* hero */
.hero{position:relative;isolation:isolate;min-height:100dvh;padding:140px 0 100px;display:grid;align-items:center;overflow:hidden;color:#fff}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:62% 40%;animation:drift 18s var(--spring) both}
@keyframes drift{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(7,20,43,.97) 0%,rgba(7,20,43,.9) 34%,rgba(7,20,43,.5) 62%,rgba(7,20,43,.68) 100%),
             linear-gradient(0deg,rgba(7,20,43,1) 0%,rgba(7,20,43,0) 30%)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center}
.lede{font-size:clamp(18px,1.6vw,21px);color:#d6dcea;max-width:32ch}
.facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px;list-style:none}
.facts li{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);font-size:14px;color:#e6eaf2}
.facts svg{color:#ff7a70}

/* double bezel */
.shell{padding:8px;border-radius:32px;background:var(--shell);box-shadow:inset 0 0 0 1px var(--line)}
.core{border-radius:24px;background:var(--bg-2);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 40px 80px -44px rgba(0,0,0,.55);padding:clamp(22px,3vw,34px)}
.hero .shell{background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}

/* form (light card on the photo) */
.form{--bg-2:#ffffff; --well:#f2f4f8; --ink:#0b1630; --ink-2:#3a4762; --ink-3:#56627c; --line:rgba(11,22,48,.12); --accent:#c11a16; --err:#b3261e; --ok:#1d7a3e;
  color:var(--ink);box-shadow:0 50px 100px -40px rgba(0,0,0,.8)}
.form h2{font:800 34px/1 var(--display);text-transform:uppercase;letter-spacing:.005em}
.form p.sub{color:var(--ink-3);font-size:15px;margin:8px 0 22px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field{margin-bottom:14px}
label{display:block;font-size:13px;font-weight:500;color:var(--ink-2);margin-bottom:6px}
input[type=text],input[type=tel],input[type=email],input[type=number],select{width:100%;min-height:48px;padding:12px 14px;border-radius:14px;border:0;
  background:var(--well);color:var(--ink);font:400 16px/1.2 var(--body);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .4s var(--spring),background .4s var(--spring)}
input:hover,select:hover{box-shadow:inset 0 0 0 1px rgba(11,22,48,.28)}
input:focus,select:focus{background:#fff}
input[aria-invalid=true]{box-shadow:inset 0 0 0 1.5px var(--err)}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:0}
.seg legend{font-size:13px;font-weight:500;color:var(--ink-2);margin-bottom:6px}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg label{margin:0;min-height:48px;display:grid;place-items:center;border-radius:14px;background:var(--well);box-shadow:inset 0 0 0 1px var(--line);
  color:var(--ink-2);font-size:15px;font-weight:500;cursor:pointer;transition:all .4s var(--spring)}
.seg input:checked+label{background:var(--navy);box-shadow:none;color:#fff}
.seg input:focus-visible+label{outline:3px solid var(--accent);outline-offset:2px}
.kid{display:none}
.kid.on{display:block}
.err{display:block;color:var(--err);font-size:13px;margin-top:6px;min-height:0}
.err:empty{display:none}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--ink-3);line-height:1.45;margin:6px 0 18px}
.consent input{margin-top:0;width:24px;height:24px;accent-color:var(--navy);flex:none}
.consent label{font-size:13px;color:var(--ink-3);font-weight:400;margin:0;min-height:44px;cursor:pointer}
.form .btn{width:100%;justify-content:space-between}
.hp{position:absolute;left:-9999px}
.done{display:none;text-align:left}
.done.on{display:block}
.done h2{color:var(--ok)}
.form-status{font-size:14px;color:var(--err);margin-top:10px}

/* sections */
section.band{padding:clamp(90px,12vw,160px) 0}
.head-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 48px}
.head-row .intro{margin-bottom:12px}

/* photo bento */
.bento{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(220px,auto);gap:16px;margin-top:56px;list-style:none}
.bento li:nth-child(1){grid-column:span 7;grid-row:span 2}
.bento li:nth-child(2){grid-column:span 5}
.bento li:nth-child(3){grid-column:span 5}
.bento li:nth-child(4){grid-column:span 12}
.tile{position:relative;display:block;height:100%;min-height:320px;border-radius:24px;overflow:hidden;text-decoration:none;color:#fff;isolation:isolate;background:#0d1d3c}
.bento li{padding:7px;border-radius:31px;background:var(--shell);box-shadow:inset 0 0 0 1px var(--line)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--spring)}
.tile:hover img{transform:scale(1.045)}
.tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,20,43,0) 35%,rgba(7,20,43,.92) 100%)}
.tile .cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(20px,2.6vw,30px);display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.tile .tag{font:600 11px/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:#ffb3ad}
.tile h3{font:800 clamp(32px,3.4vw,48px)/.9 var(--display);text-transform:uppercase;margin:8px 0 6px}
.tile p{color:#d6dcea;font-size:15px;max-width:36ch}
.tile .go{flex:none;width:48px;height:48px;border-radius:50%;background:var(--red);display:grid;place-items:center;transition:transform .6s var(--spring)}
.tile:hover .go{transform:translate(3px,-3px) scale(1.06)}
.bento li:nth-child(4) .tile{min-height:360px}
.bento li:nth-child(4) .tile img{object-position:50% 45%}

/* steps */
.how-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:56px}
.how-photo{grid-column:span 5;grid-row:span 3;border-radius:31px;padding:7px;background:var(--shell);box-shadow:inset 0 0 0 1px var(--line)}
.how-photo img{width:100%;height:100%;min-height:420px;object-fit:cover;border-radius:24px}
.steps{grid-column:span 7;display:grid;gap:16px;list-style:none}
.step .core{display:grid;grid-template-columns:auto 1fr;gap:6px 22px;align-items:start}
.num{font:800 54px/.8 var(--display);color:var(--red);grid-row:span 3}
.steps h3{font:800 28px/1 var(--display);text-transform:uppercase;letter-spacing:.005em}
.steps p{color:var(--ink-2);font-size:16px}
.bubble{margin-top:12px;max-width:380px;padding:12px 15px;border-radius:20px 20px 20px 6px;background:var(--well);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);font-size:15px;line-height:1.5}
.bubble.me{margin-left:auto;margin-top:8px;max-width:64px;text-align:center;border-radius:20px 20px 6px 20px;background:var(--navy);box-shadow:none;color:#fff;font-weight:600}

/* schedule */
.sched{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:56px}
.sched .adult{grid-column:span 7}
.sched .kids{grid-column:span 5}
.sched h3{font:800 32px/1 var(--display);text-transform:uppercase;margin-bottom:6px}
.sched .note{color:var(--ink-3);font-size:14px;margin-bottom:18px}
.slots{list-style:none;display:grid;gap:8px}
.slots li{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border-radius:14px;background:var(--well);box-shadow:inset 0 0 0 1px var(--line);font-size:15px}
.slots li span:last-child{color:var(--ink-2);text-align:right}
.slots li span:first-child{font-weight:600;white-space:nowrap}

/* location + faq */
.split{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:56px}
.addr{font:800 clamp(34px,3.6vw,48px)/.95 var(--display);text-transform:uppercase;margin:14px 0 22px}
.muted{color:var(--ink-2)}
details{border-radius:16px;background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--line);margin-bottom:10px}
summary{cursor:pointer;list-style:none;padding:16px 18px;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:56px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--accent);font-weight:400;font-size:22px;line-height:1;transition:transform .5s var(--spring)}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 18px 16px;color:var(--ink-2);font-size:16px}

/* final */
.final{position:relative;isolation:isolate;overflow:hidden;text-align:center;color:#fff}
.final > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.final::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,20,43,.86),rgba(7,20,43,.94))}
.final h2.big{margin-inline:auto;max-width:12ch}
.final .intro{margin:0 auto 36px;color:#d6dcea}

footer{padding:56px 0 64px;background:#050f22;color:var(--ink-3);font-size:14px;border-top:3px solid var(--red)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
.foot-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px;width:100%;margin-bottom:28px}
.foot-nav h2{font:600 12px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
.foot-nav ul{list-style:none;display:grid;gap:4px}
.foot-nav a{color:var(--ink-2);text-decoration:none;font-size:14px;display:inline-flex;align-items:center;min-height:44px}
.foot-nav a:hover{color:var(--ink)}

/* motion */
.rv{opacity:0;transform:translateY(40px);filter:blur(8px);transition:opacity 1s var(--spring),transform 1s var(--spring),filter 1s var(--spring)}
.rv.in{opacity:1;transform:none;filter:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;filter:none;transition:none}.hero-bg img,h1 em::after{animation:none}}

@media (max-width:900px){
  .hero{padding:110px 0 64px;min-height:auto}
  .hero::before{background:linear-gradient(180deg,rgba(7,20,43,.45) 0%,rgba(7,20,43,.78) 38%,rgba(7,20,43,1) 62%)}
  .hero-bg{bottom:auto;height:720px}
  .hero-bg img{object-position:58% 30%}
  .hero-grid,.split{grid-template-columns:1fr;gap:40px}
  .bento li,.sched .adult,.sched .kids,.how-photo,.steps{grid-column:span 12!important;grid-row:auto!important}
  .how-photo img{min-height:280px;max-height:360px}
  .tile{min-height:300px}
  .nav a.navlink{display:none}
}
@media (max-width:420px){
  .row{grid-template-columns:1fr}
  .nav{gap:10px;padding-left:14px}
  .brand{font-size:17px}
  .brand .mark{width:30px;height:9px}
  .step .core{grid-template-columns:1fr}
  .num{grid-row:auto;font-size:44px}
}
.foot-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px;width:100%;margin-bottom:28px}.foot-nav h2{font:600 12px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}.foot-nav ul{list-style:none;display:grid;gap:4px}.foot-nav a{color:var(--ink-2);text-decoration:none;font-size:14px;display:inline-flex;align-items:center;min-height:44px}.foot-nav a:hover{color:var(--ink)}

.page-hero{position:relative;isolation:isolate;overflow:hidden;padding:170px 0 70px;color:#fff;margin-bottom:50px}
.page-hero .ph-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,20,43,.96) 0%,rgba(7,20,43,.86) 45%,rgba(7,20,43,.55) 100%),linear-gradient(0deg,rgba(7,20,43,1) 0%,rgba(7,20,43,0) 40%)}
.page-hero h1{font-size:clamp(46px,6.6vw,96px);line-height:.88;margin:20px 0 22px;max-width:16ch}
.page-hero .lede{color:#d6dcea}
.page-hero .crumbs,.page-hero .crumbs a{color:#c5cddd}
.crumbs{font-size:13px;color:var(--ink-3);margin-bottom:18px}
.crumbs a{color:var(--ink-2);display:inline-flex;align-items:center;min-height:44px}
.prose{max-width:68ch}
.prose h2{font:800 clamp(30px,3.2vw,42px)/1 var(--display);text-transform:uppercase;margin:48px 0 14px}
.prose h3{font:700 24px/1.1 var(--display);text-transform:uppercase;margin:28px 0 8px}
.prose p,.prose li{color:var(--ink-2);font-size:18px;line-height:1.7}
.prose p{margin:0 0 16px}
.prose ul,.prose ol{margin:0 0 18px 22px}
.prose li{margin-bottom:6px}
.prose strong{color:var(--ink);font-weight:600}
.prose a{color:var(--accent)}
.body-band{padding:20px 0 90px}
.two{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:start}
.side{position:sticky;top:100px}
.side h3{font:800 30px/1 var(--display);text-transform:uppercase;margin-bottom:8px}
.side p{color:var(--ink-2);font-size:15px;margin-bottom:18px}
.side .btn{width:100%;justify-content:space-between}
.links{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;list-style:none;margin-top:28px}
.links a{display:flex;align-items:center;min-height:52px;padding:12px 16px;border-radius:14px;background:var(--well);box-shadow:inset 0 0 0 1px var(--line);text-decoration:none;font-size:15px;color:var(--ink-2);transition:color .4s var(--spring)}
.links a:hover{color:var(--ink)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-top:40px;list-style:none}
.cards a{text-decoration:none;display:block;height:100%}
.cards .core{height:100%}
.cards h2{font:800 28px/1 var(--display);text-transform:uppercase;margin:10px 0 8px}
.cards p{color:var(--ink-2);font-size:15px}
.kicker{font:600 11px/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.cards a:hover h2{color:var(--accent)}
.cards h2{transition:color .4s var(--spring)}
.foot-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:28px;width:100%;margin-bottom:28px}
.foot-nav h2{font:600 12px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
.foot-nav ul{list-style:none;display:grid;gap:4px}
.foot-nav a{color:var(--ink-2);text-decoration:none;font-size:14px;display:inline-flex;align-items:center;min-height:44px}
.foot-nav a:hover{color:var(--ink)}
.two>*{min-width:0}
.prose .slots{margin:0}
.prose .slots li{font-size:15px;line-height:1.4;color:var(--ink);margin:0}
.prose .slots li span:last-child{color:var(--ink-2)}
.prose .sched{grid-template-columns:1fr}
.prose .sched .adult,.prose .sched .kids{grid-column:auto}
.prose details p{font-size:16px}
.side a[href^=mailto]{display:inline-flex;align-items:center;min-height:44px}
@media (max-width:900px){.two{grid-template-columns:1fr;gap:36px}.side{position:static}.page-hero{padding:120px 0 44px;margin-bottom:30px}}
