:root{
  --mist:#E6EBDB;      /* hero sage mist */
  --paper:#F7F3EB;     /* section ground */
  --card:#FFFCF6;
  --leaf:#3E5B3A;      /* primary: text links, buttons */
  --leaf-deep:#2F4730;
  --sage:#9DB08A;
  --birch:#E3C49B;
  --birch-dark:#C3935E;
  --walnut:#4A3526;    /* ink */
  --walnut-soft:#6E5A4A;
  --blush:#EBC3B3;
  --butter:#F2D98B;
  --line:#E3D7C3;
  --display:"Fraunces","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --body:"Nunito","Avenir Next","Segoe UI",system-ui,sans-serif;
  --r-lg:28px; --r-md:18px; --r-sm:12px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--walnut);font:17px/1.6 var(--body);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:var(--leaf);text-underline-offset:3px}
h1,h2,h3,h4{font-family:var(--display);font-variation-settings:"SOFT" 100;font-weight:600;color:var(--walnut);margin:0;text-wrap:balance;letter-spacing:-.012em}
h1{font-size:clamp(40px,6.2vw,72px);line-height:1.02}
h2{font-size:clamp(30px,4vw,46px);line-height:1.08}
h3{font-size:21px;line-height:1.25}
h4{font-size:19px}
p{margin:0}
:focus-visible{outline:3px solid var(--birch-dark);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:-999px;top:8px;background:var(--card);padding:8px 14px;border-radius:10px;z-index:50}
.skip:focus{left:12px}
.wrap{max-width:1160px;margin:0 auto;padding-inline:24px}
.narrow{max-width:780px}
.sec-lede{font-size:19px;color:var(--walnut-soft);max-width:56ch;margin-top:14px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--leaf);color:#FBF8F1;font:800 16px/1 var(--body);padding:16px 26px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;box-shadow:0 2px 0 var(--leaf-deep);transition:transform .15s ease,background .15s ease}
.btn:hover{background:var(--leaf-deep);transform:translateY(-1px)}
.btn:active{transform:translateY(1px);box-shadow:none}
.btn-ghost{background:transparent;color:var(--leaf);box-shadow:inset 0 0 0 2px var(--leaf)}
.btn-ghost:hover{background:rgba(62,91,58,.08)}
.btn-small{padding:11px 18px;font-size:15px}

/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(230,235,219,.86);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px)}
.top-in{max-width:1160px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--walnut)}
.brand span{font-family:var(--display);font-variation-settings:"SOFT" 100;font-weight:700;font-size:23px;letter-spacing:-.02em}
.mark{width:36px;height:36px}
.top nav{display:flex;align-items:center;gap:26px}
.top nav a:not(.btn){color:var(--walnut);text-decoration:none;font-weight:700;font-size:15.5px}
.top nav a:not(.btn):hover{color:var(--leaf)}

/* hero */
.hero{background:var(--mist);position:relative;overflow:hidden}
.hero-in{max-width:1160px;margin:0 auto;padding:56px 24px 40px;display:grid;grid-template-columns:1.02fr 1fr;gap:48px;align-items:center}
.kicker{font-weight:700;color:var(--leaf);font-size:15.5px;margin-bottom:18px}
.lede{font-size:20px;line-height:1.55;color:var(--walnut-soft);margin-top:22px;max-width:36em}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-facts{list-style:none;padding:0;margin:34px 0 0;display:flex;flex-wrap:wrap;gap:10px 28px;color:var(--walnut-soft);font-size:15.5px}
.hero-facts b{font-family:var(--display);font-variation-settings:"SOFT" 100;color:var(--walnut);font-size:22px;font-weight:600;margin-right:4px}
.scene{margin:0}
.scene svg{display:block;width:100%;height:auto;filter:drop-shadow(0 18px 30px rgba(74,53,38,.14))}
.scene figcaption{font-size:13.5px;color:var(--walnut-soft);text-align:center;margin-top:10px}
.scene-sign{font-family:var(--display);font-variation-settings:"SOFT" 100;font-weight:700;font-size:15px;fill:var(--walnut)}

/* fence band + peekers */
.fence-band{position:relative;height:200px;margin-top:-10px;overflow:hidden}
.slats{position:absolute;left:0;right:0;bottom:0;display:block}
.peekers{position:absolute;inset:0;max-width:1160px;margin:0 auto}
.peek{position:absolute;bottom:64px;transform-origin:50% 100%;cursor:pointer}
.peek.lion{left:8%;width:112px}
.peek.giraffe{left:34%;width:104px;bottom:52px}
.peek.zebra{left:61%;width:100px}
.peek.elephant{left:82%;width:128px}
@media (prefers-reduced-motion:no-preference){
  .peek{animation:peek .9s cubic-bezier(.3,1.5,.5,1) both}
  .peek.lion{animation-delay:.35s}
  .peek.giraffe{animation-delay:.55s}
  .peek.zebra{animation-delay:.75s}
  .peek.elephant{animation-delay:.95s}
  .peek.giggle{animation:giggle .6s ease}
}
@keyframes peek{from{transform:translateY(110%)}to{transform:translateY(0)}}
@keyframes giggle{0%,100%{transform:rotate(0)}20%{transform:rotate(-7deg)}45%{transform:rotate(6deg)}70%{transform:rotate(-3deg)}}

/* two-column helpers */
.two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.two-even{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
section{padding-block:96px}
.hero{padding-block:0}

/* yard */
.yard{background:var(--paper)}
.pieces{margin:34px 0 0;display:grid;gap:18px}
.pieces div{display:grid;gap:2px}
.pieces dt{font-weight:800;font-size:17.5px;display:flex;align-items:center;gap:10px}
.pieces dd{margin:0 0 0 26px;color:var(--walnut-soft)}
.dot{width:14px;height:14px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 2px rgba(74,53,38,.12);flex:none}
.plan{margin:0;background:var(--card);border-radius:var(--r-lg);padding:22px;box-shadow:0 1px 0 var(--line),0 24px 50px -30px rgba(74,53,38,.35)}
.plan svg{display:block;width:100%;height:auto}
.plan figcaption{font-size:14px;color:var(--walnut-soft);margin-top:10px;text-align:center}
.plan-l{font:700 13px var(--body);fill:var(--walnut)}
.plan-l.light{fill:#F3EADB}

/* party */
.party{background:var(--mist)}
.ticket{margin-top:34px;display:grid;grid-template-columns:1.35fr 1fr;background:var(--card);border-radius:var(--r-lg);overflow:hidden;box-shadow:0 30px 60px -36px rgba(74,53,38,.4)}
.ticket-main{padding:40px 44px;position:relative}
.ticket-main::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:repeating-linear-gradient(90deg,var(--birch) 0 26px,var(--birch-dark) 26px 30px)}
.price{font-family:var(--display);font-variation-settings:"SOFT" 100;font-size:64px;font-weight:600;line-height:1;margin-top:14px;color:var(--leaf)}
.price .from{font-family:var(--body);font-size:17px;font-weight:700;color:var(--walnut-soft);vertical-align:middle;margin-right:6px}
.price-note{color:var(--walnut-soft);font-size:15px;margin-top:8px}
.ticks{list-style:none;padding:0;margin:26px 0 30px;display:grid;gap:10px}
.ticks li{padding-left:32px;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:50%;background:var(--sage) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.ticket-side{background:#F3ECDF;padding:40px 36px;border-left:2px dashed var(--line)}
.extras{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:16px}
.extras b{display:block;font-size:17px}
.extras span{color:var(--walnut-soft);font-size:15px}
.side-note{margin-top:22px;font-size:14px;color:var(--walnut-soft)}
.occasions{margin-top:26px;color:var(--walnut-soft);font-size:17px;max-width:62ch}

/* timeline */
.how{background:var(--paper)}
.timeline{list-style:none;padding:0;margin:44px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:26px;position:relative}
.timeline::before{content:"";position:absolute;left:0;right:0;top:15px;height:4px;border-radius:4px;background:repeating-linear-gradient(90deg,var(--birch) 0 14px,transparent 14px 22px)}
.timeline li{position:relative;padding-top:46px}
.timeline li::before{content:"";position:absolute;top:4px;left:0;width:26px;height:26px;border-radius:50%;background:var(--butter);box-shadow:0 0 0 6px var(--paper)}
.timeline li:nth-child(2)::before{background:var(--blush)}
.timeline li:nth-child(3)::before{background:var(--sage)}
.timeline li:nth-child(4)::before{background:var(--birch)}
.time{display:block;font-weight:800;color:var(--leaf);font-size:15px;margin-bottom:6px;font-variant-numeric:tabular-nums}
.timeline p{color:var(--walnut-soft);margin-top:8px;font-size:16px}

/* themes */
.themes{background:var(--mist)}
.theme-row{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:36px}
.theme{margin:0;background:var(--card);border-radius:var(--r-lg);overflow:hidden}
.theme svg{display:block;width:100%;height:auto}
.theme figcaption{padding:22px 26px 26px}
.theme figcaption p{color:var(--walnut-soft);margin-top:6px}

/* care */
.care{background:var(--paper)}
.care-list{list-style:none;padding:0;margin:30px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:28px 32px}
.care-list h3{font-size:19px;text-wrap:pretty}
.care-list p{color:var(--walnut-soft);margin-top:6px;font-size:16px}
.space{background:var(--card);border-radius:var(--r-lg);padding:28px;box-shadow:0 1px 0 var(--line)}
.space svg{display:block;width:100%;max-width:260px;margin:14px auto 8px;height:auto}
.space ul{margin:10px 0 0;padding-left:20px;display:grid;gap:6px;color:var(--walnut-soft)}

/* faq */
.faq{background:var(--mist)}
.faq h2{margin-bottom:26px}
details{border-top:2px solid rgba(74,53,38,.1);padding:4px 0}
details:last-of-type{border-bottom:2px solid rgba(74,53,38,.1)}
summary{cursor:pointer;list-style:none;font-family:var(--display);font-variation-settings:"SOFT" 100;font-weight:600;font-size:21px;padding:16px 44px 16px 0;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:6px;top:50%;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:var(--butter) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M11 6v10M6 11h10' stroke='%234A3526' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 44px 20px 0;color:var(--walnut-soft)}

/* booking */
.book{background:var(--leaf);color:#F4F0E6}
.book h2{color:#FBF8F1}
.book .sec-lede{color:#D9E2CF}
.book-alt{margin-top:22px;color:#D9E2CF}
.book-alt a{color:#FBF8F1;font-weight:700}
.form{background:var(--card);color:var(--walnut);border-radius:var(--r-lg);padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;box-shadow:0 30px 60px -30px rgba(0,0,0,.35)}
.field{display:grid;gap:6px}
.field.wide,.wide{grid-column:1/-1}
.field label{font-weight:800;font-size:15px}
.opt{font-weight:600;color:var(--walnut-soft)}
.field input,.field select,.field textarea{font:600 16px/1.4 var(--body);color:var(--walnut);background:#F7F2E9;border:2px solid transparent;border-radius:var(--r-sm);padding:12px 14px;width:100%;min-width:0}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--sage);background:#fff}
.field input[aria-invalid="true"]{border-color:#C8745A}
.form-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}
.form-msg{font-size:15px;color:var(--walnut-soft)}
.form-msg.err{color:#A5503A}

/* footer */
.foot{background:#2F4730;color:#D9E2CF;padding-block:44px}
.foot .brand{color:#FBF8F1}
.foot-in{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px 32px;align-items:center}
.foot a{color:#FBF8F1}
.copy{opacity:.7;font-size:14px}

/* responsive */
@media (max-width:980px){
  .top nav a:not(.btn){display:none}
  .hero-in{grid-template-columns:1fr;gap:28px;padding-top:36px}
  .two,.two-even{grid-template-columns:1fr;gap:40px}
  .ticket{grid-template-columns:1fr}
  .ticket-side{border-left:0;border-top:2px dashed var(--line)}
  .timeline{grid-template-columns:1fr 1fr;row-gap:34px}
  .timeline::before{display:none}
  .foot-in{grid-template-columns:1fr}
}
@media (max-width:640px){
  body{font-size:16px}
  .wrap,.top-in,.hero-in{padding-inline:16px}
  section{padding-block:68px}
  .lede{font-size:18px}
  .fence-band{height:160px}
  .peek{bottom:58px}
  .peek.giraffe{bottom:48px}
  .peek.lion{width:84px;left:4%}
  .peek.giraffe{width:78px;left:29%}
  .peek.zebra{width:76px;left:55%}
  .peek.elephant{width:92px;left:73%}
  .ticket-main,.ticket-side{padding:30px 22px}
  .price{font-size:54px}
  .timeline{grid-template-columns:1fr}
  .theme-row,.care-list{grid-template-columns:1fr}
  .form{grid-template-columns:1fr;padding:22px}
  .brand span{font-size:20px}
}
