:root{
  --bg:#10231a; --surface:#17301f; --tone:#1e3b2a; --ink:#ecebe6; --muted:#a9b9ae; --accent:#ff6b1f; --accent-ink:#10231a;
  --paper:#ecebe6; --paper-ink:#10231a; --paper-muted:#4a5f52;
  --m:28px; --gap:16px;
  --step-small:clamp(.8125rem,.79rem + .1vw,.875rem);
  --step-body:clamp(1.0625rem,1rem + .25vw,1.1875rem);
  --step-lead:clamp(1.25rem,1.1rem + .7vw,1.625rem);
  --display:'Anton',Impact,'Arial Narrow',sans-serif; --text:'Work Sans',system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 var(--step-body)/1.5 var(--text);-webkit-font-smoothing:antialiased}
h1,h2,h3,p,ul,dl,dd,figure{margin:0}
a{color:inherit}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer;text-align:left}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
::selection{background:var(--accent);color:var(--accent-ink)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:10px 16px;z-index:100}
.skip:focus{left:8px}
.display{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:-.01em;line-height:.9}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 34px;background:var(--accent);color:var(--accent-ink);border:0;font-weight:600;text-decoration:none;transition:background .2s,transform .2s var(--ease)}
.btn:hover{background:var(--ink)}
.btn:active{transform:translateY(1px)}

/* hero */
.hero{min-height:100svh;display:flex;flex-direction:column;padding:0 var(--m)}
.top{height:72px;display:flex;align-items:center;justify-content:space-between;font-size:15px;flex:none}
.top nav{display:flex;gap:28px}
.top a{text-decoration:none}
.top nav a:hover{color:var(--accent)}
.top .mark{font-weight:600}
.sentence{margin:auto 0;display:flex;align-items:baseline;gap:.2em;font-family:var(--display);text-transform:uppercase;font-size:clamp(4.5rem,9.6vw,12rem);line-height:.9;letter-spacing:.012em;white-space:nowrap}
.sentence .strip{flex:1;height:.72em;margin:0;overflow:hidden;align-self:baseline;background:var(--surface)}
.sentence .strip img{width:100%;height:100%;object-fit:cover}
.hero .act{display:flex;justify-content:center;margin-top:24px}
.hero .lede{margin:48px auto 48px;max-width:44ch;text-align:center;font-size:clamp(1.125rem,1.4vw,1.375rem);line-height:1.45}

/* prices */
.sec{padding:clamp(96px,11vw,180px) var(--m)}
.sec>h2{font-size:clamp(3.5rem,8vw,8.5rem);margin-bottom:56px}
.prices{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);align-items:start}
.prices .side{grid-column:1/5;position:sticky;top:48px}
.slip{background:var(--paper);color:var(--paper-ink);padding:32px 28px 56px;max-width:380px;clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),95% 100%,90% calc(100% - 14px),85% 100%,80% calc(100% - 14px),75% 100%,70% calc(100% - 14px),65% 100%,60% calc(100% - 14px),55% 100%,50% calc(100% - 14px),45% 100%,40% calc(100% - 14px),35% 100%,30% calc(100% - 14px),25% 100%,20% calc(100% - 14px),15% 100%,10% calc(100% - 14px),5% 100%,0 calc(100% - 14px));font-variant-numeric:tabular-nums}
.slip h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:28px;letter-spacing:0;margin-bottom:4px}
.slip .meta{font-size:14px;color:var(--paper-muted);margin-bottom:22px}
.slip .rows{display:grid;gap:10px}
.slip .r{display:flex;align-items:baseline;gap:8px;font-size:16px}
.slip .r i{flex:1;border-bottom:4px dotted var(--paper-ink);opacity:.45;transform:translateY(-4px)}
.slip .r{margin:0}
.slip .r span{color:var(--paper-muted)}
.slip .r b{font-weight:600;text-align:right}
.slip .q b{font-size:22px;line-height:1.2}
.slip .fine{margin-top:22px;font-size:14px;color:var(--paper-muted)}
.prices .list{grid-column:6/13}
.prices h3{font-weight:600;font-size:24px;margin:0 0 20px}
.prices .grp+.grp{margin-top:56px}
.job{display:grid;grid-template-columns:1fr auto;gap:2px 24px;width:100%;padding:16px 18px;margin:0 0 6px -18px;width:calc(100% + 36px);transition:background .2s,color .2s}
.job .n{font-size:21px;font-weight:500}
.job .p{font-size:21px;font-variant-numeric:tabular-nums;text-align:right}
.job .d{grid-column:1/-1;font-size:16px;color:var(--muted);max-width:52ch}
.job .t{grid-column:1/-1;font-size:14px;color:var(--muted)}
.job:hover{background:var(--surface)}
.job[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}
.job[aria-pressed=true] .d,.job[aria-pressed=true] .t{color:var(--accent-ink)}
.note{margin-top:40px;font-size:16px;color:var(--muted);max-width:56ch}

/* how */
.panel{position:relative;height:100svh;min-height:560px;overflow:hidden;background:var(--surface)}
.panel>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.42)}
.panel .verb{position:absolute;left:0;right:0;top:50%;transform:translateY(-52%);text-align:center;font-size:clamp(6rem,19vw,20rem);line-height:.9}
.panel .txt{position:absolute;left:0;bottom:0;z-index:1;max-width:calc(26ch + var(--m) * 2);padding:28px var(--m);font-size:18px;line-height:1.45;background:rgba(16,35,26,.82)}

/* hours */
.visit{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap)}
.visit .hrs{grid-column:1/6}
.hours{display:grid;gap:14px;font-size:19px;margin-bottom:40px;font-variant-numeric:tabular-nums}
.hours div{display:flex;justify-content:space-between;gap:16px}
.hours dt{color:var(--muted)}
.visit address{font-style:normal;font-size:19px;line-height:1.5}
.visit address a{text-decoration:none;color:var(--accent)}
.visit .pk{margin-top:20px;font-size:16px;color:var(--muted);max-width:44ch}
.visit .map{grid-column:7/13;min-height:420px;background:var(--surface)}
.visit iframe{width:100%;height:100%;min-height:420px;border:0;display:block}

/* faq */
.faq h2{font-size:clamp(3rem,5.5vw,6rem);margin-bottom:80px;max-width:16ch}
.qs{margin-left:calc((100% + var(--gap)) * 4 / 12)}
.qs details{margin-bottom:36px;padding:0}
.qs summary{list-style:none;cursor:pointer;font-size:clamp(1.375rem,1.7vw,1.625rem);display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.qs summary::-webkit-details-marker{display:none}
.qs summary::after{content:"+";font-size:28px;line-height:1;margin-top:-2px}
.qs details[open] summary::after{content:"–"}
.qs summary:hover{color:var(--accent)}
.qs details[open]{background:var(--surface);margin:-24px -24px 12px;padding:24px}
.qs details p{margin-top:16px;max-width:48ch;font-size:17px;color:var(--ink)}

/* booking */
.book{background:var(--paper);color:var(--paper-ink);padding:clamp(96px,11vw,180px) var(--m);display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap)}
.book .l{grid-column:1/6}
.book h2{font-size:clamp(3.25rem,7vw,7.5rem);margin-bottom:24px}
.book .l p{max-width:34ch;font-size:19px}
form{grid-column:7/13;display:grid;grid-template-columns:1fr 1fr;gap:20px 16px;align-content:start}
.field{display:grid;gap:6px;min-width:0}
.field.wide{grid-column:1/-1}
label{font-size:15px;font-weight:600}
input,select,textarea{width:100%;min-height:52px;padding:12px 14px;background:#dcdad2;border:0;border-radius:0;color:var(--paper-ink)}
textarea{min-height:120px;resize:vertical}
::placeholder{color:#5d6f63;opacity:1}
input[aria-invalid=true],select[aria-invalid=true]{background:#f1c9b6}
.err{min-height:1.2em;font-size:14px;color:#9d2d00;font-weight:600}
.book .btn{background:var(--paper-ink);color:var(--paper);width:100%}
.book .btn:hover{background:var(--accent);color:var(--accent-ink)}
.ok{grid-column:1/-1;padding:20px;background:var(--paper-ink);color:var(--paper)}

/* footer */
.foot{background:var(--accent);color:var(--accent-ink);min-height:92svh;padding:40px var(--m) 28px;display:flex;flex-direction:column}
.foot .top2{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);font-size:15px}
.foot .top2 p{grid-column:span 3}
.foot .top2 a{grid-column:12;justify-self:end}
.foot .big{margin-top:auto;display:block;font-family:var(--display);text-decoration:none;font-size:clamp(3.5rem,17.6vw,21rem);line-height:.9;letter-spacing:-.01em;white-space:nowrap}
.foot .big:hover{text-decoration:underline;text-decoration-thickness:.04em}
.foot .meta{margin-top:36px;display:flex;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;font-size:14px}
.foot .meta nav{display:flex;gap:20px;flex-wrap:wrap}
.foot .meta p{max-width:70ch}

/* motion */
@media (prefers-reduced-motion:no-preference){
  .js .top,.js .hero .act,.js .hero .lede{opacity:0;animation:rise 900ms var(--ease) forwards}
  .js .top{animation-delay:100ms}.js .hero .act{animation-delay:1050ms}.js .hero .lede{animation-delay:1200ms}
  .js .sentence .w{display:inline-block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
  .js .sentence .w span{display:block;transform:translateY(105%);animation:up 900ms var(--ease) forwards;animation-delay:calc(var(--i) * 110ms + 150ms)}
  .js .sentence .strip{clip-path:inset(0 100% 0 0);animation:shutter 1200ms var(--ease) 350ms forwards}
  .js .sentence .strip img{transform:scale(1.14);animation:settle 1600ms var(--ease) 350ms forwards}
  @keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  @keyframes up{to{transform:none}}
  @keyframes shutter{to{clip-path:inset(0 0 0 0)}}
  @keyframes settle{to{transform:scale(1)}}
  .js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity 700ms var(--ease),transform 900ms var(--ease);transition-delay:calc(var(--d,0) * 70ms)}
  .js [data-reveal].is-in{opacity:1;transform:none}
  .panel>img{transform:scale(1.08);transition:transform 2.4s var(--ease)}
  .panel.is-in>img{transform:scale(1)}
}
@media (max-width:900px){
  :root{--m:20px}
  .top nav a:last-child{display:none}
  .sentence{flex-direction:column;align-items:flex-start;font-size:21vw;gap:12px;margin:40px 0 0;white-space:normal}
  .sentence .strip{flex:none;width:100%;height:auto;aspect-ratio:2/1;align-self:stretch}
  .hero .act{margin-top:32px}
  .hero .lede{margin:28px 0 48px;text-align:left;font-size:16px}
  .hero .act{justify-content:flex-start}
  .prices{display:block}
  .prices .side{position:static;margin-bottom:48px}
  .prices .list{margin-top:0}
  .job{margin-left:-14px;width:calc(100% + 28px);padding:14px}
  .panel .verb{font-size:24vw}
  .panel .txt{right:0;max-width:none;font-size:16px}
  .visit{display:block}
  .visit .map{margin-top:40px;min-height:320px}
  .faq h2{font-size:12vw;margin-bottom:48px}
  .qs{margin-left:0}
  .qs details[open]{margin:-20px calc(var(--m) * -1) 12px;padding:20px var(--m)}
  .book{display:block}
  form{display:grid;grid-template-columns:1fr;margin-top:40px}
  .foot .top2 p{grid-column:span 12;margin-bottom:6px}
  .foot .top2 a{grid-column:1;justify-self:start;margin-top:10px}
  .foot .big{font-size:17vw;margin-top:80px}
}
