@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/poppins-400.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/poppins-600.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/fonts/poppins-700.woff2") format("woff2")}
@font-face{font-family:"Poppins";font-style:normal;font-weight:800;font-display:swap;src:url("/assets/fonts/poppins-800.woff2") format("woff2")}

:root{
  --orange:#FFBD59;
  --teal:#096D74;
  --green:#7DD43A;
  --slate:#1E2933;
  --ink:#141B22;
  --loam:#0F141A;
  --white:#FFFFFF;
  --paper:var(--white);
  --sky:color-mix(in srgb,var(--green) 13%,var(--white));
  --far:color-mix(in srgb,var(--teal) 28%,var(--sky));
  --mid:color-mix(in srgb,var(--teal) 72%,var(--green));
  --trunk:color-mix(in srgb,var(--slate) 55%,var(--teal));
  --bush:color-mix(in srgb,var(--green) 62%,var(--teal));
  --near:var(--green);
  --vein:color-mix(in srgb,var(--green) 55%,var(--teal));
  --floor:color-mix(in srgb,var(--green) 16%,var(--white));
  --cel:0 2px 2px rgb(20 27 34 / .14),0 22px 40px -18px rgb(20 27 34 / .45);
  --veil:var(--white);
  --mire:color-mix(in srgb,var(--teal) 7%,var(--white));
  --line:color-mix(in srgb,var(--teal) 16%,transparent);
  --line-strong:color-mix(in srgb,var(--teal) 45%,transparent);
  --lift:0 22px 44px -22px rgb(15 20 26 / .35);
  --text-soft:color-mix(in srgb,var(--ink) 74%,var(--white));
  --ease:cubic-bezier(.16,1,.3,1);
  --wrap:1280px;
  --gutter:clamp(16px,4vw,40px);
  --focus:var(--teal);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{margin:0;line-height:1.1;text-wrap:balance}
p,figure,dl,dd{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}
button{font:inherit;color:inherit}
::selection{background:var(--green);color:var(--ink)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}
[hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.nowrap{white-space:nowrap}
.skip{position:absolute;left:16px;top:-80px;z-index:100;background:var(--orange);color:var(--ink);padding:12px 18px;border-radius:999px;font-weight:700;text-decoration:none;transition:top .2s var(--ease)}
.skip:focus{top:12px}
.icon{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sprig{width:1.5em;height:1.25em;flex:none;fill:currentColor;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.sprig__stem{fill:none}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.8em;min-height:48px;padding:0 1.4em;border:0;border-radius:999px;background-color:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line-strong);font-weight:700;font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.15;text-decoration:none;cursor:pointer;transition:background-color .25s,color .25s,box-shadow .35s var(--ease)}
.btn:hover{background-color:rgb(125 212 58 / .14);box-shadow:inset 0 0 0 1.5px var(--teal)}
.btn .sprig{transition:transform .35s var(--ease)}
.btn:hover .sprig{transform:translateX(3px) rotate(-6deg)}
.btn--bloom{min-height:56px;padding:0 1.5em 0 1.8em;background-color:var(--orange);color:var(--ink);font-size:1rem;box-shadow:0 2px 0 color-mix(in srgb,var(--orange) 70%,var(--ink)),0 12px 20px -12px rgb(20 27 34 / .5)}
.btn--bloom:hover{background-color:color-mix(in srgb,var(--orange) 80%,var(--white));box-shadow:0 2px 0 color-mix(in srgb,var(--orange) 70%,var(--ink)),0 16px 24px -12px rgb(20 27 34 / .55)}
.btn--veil{color:var(--text-soft);box-shadow:inset 0 0 0 1px var(--line)}

.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.site-header__inner{max-width:var(--wrap);height:76px;margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;gap:20px}
.brand{flex:none;display:block;border-radius:50%}
.brand img{width:58px;height:auto}
.menu-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 18px;background:transparent;border:0;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;cursor:pointer}
.menu-toggle__bars,.menu-toggle__bars::before,.menu-toggle__bars::after{display:block;width:18px;height:1.5px;background:currentColor;transition:transform .3s var(--ease),opacity .2s}
.menu-toggle__bars{position:relative}
.menu-toggle__bars::before,.menu-toggle__bars::after{content:"";position:absolute;left:0}
.menu-toggle__bars::before{top:-6px}
.menu-toggle__bars::after{top:6px}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars{background:transparent}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars::before{transform:translateY(6px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars::after{transform:translateY(-6px) rotate(-45deg)}
.site-nav{display:none}
.site-nav.is-open{display:block;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);padding:8px var(--gutter) 24px;max-height:calc(100dvh - 76px);overflow-y:auto}
.nav-link{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:8px 4px;background:none;border:0;font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;text-align:left;transition:color .2s,text-shadow .3s}
.nav-link:hover{color:var(--teal)}
.nav-link--sub::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-3px) rotate(45deg);transition:transform .3s var(--ease);margin-left:10px}
.nav-link--sub[aria-expanded="true"]::after{transform:translateY(2px) rotate(-135deg)}
.sub{display:none;padding:0 0 8px 12px}
.sub.is-open{display:block}
.sub a{display:flex;align-items:center;min-height:44px;padding:6px 12px;border-radius:10px;text-decoration:none;color:var(--text-soft);transition:color .2s,background-color .2s}
.sub a:hover{color:var(--ink);background-color:var(--mire)}
.site-nav__book{margin-top:12px;width:100%;font-size:.78rem;box-shadow:inset 0 0 0 2px var(--orange)}
.site-nav__book:hover{background-color:rgb(255 189 89 / .2);box-shadow:inset 0 0 0 2px var(--orange)}
@media (min-width:1240px){
  .menu-toggle{display:none}
  .site-nav,.site-nav.is-open{display:flex;position:static;align-items:center;gap:8px;flex:1;padding:0;border:0;max-height:none;overflow:visible;background:none}
  .nav-list{display:flex;align-items:center;margin:0 auto}
  .nav-item{position:relative}
  .nav-link{width:auto;padding:8px 12px;font-size:.88rem;white-space:nowrap}
  .nav-link--sub::after{width:6px;height:6px;margin-left:8px}
  .sub{position:absolute;top:calc(100% + 18px);left:0;min-width:270px;padding:6px;background:var(--veil);border:1px solid var(--line);border-radius:14px;box-shadow:var(--lift)}
  .site-nav__book{width:auto;margin:0;font-size:.72rem;white-space:nowrap}
}

.hero{position:relative;overflow:hidden;isolation:isolate;background:var(--sky)}
.scene{position:relative;height:clamp(300px,86vw,470px);container-type:size}
.plane{position:absolute;inset:0;will-change:translate}
.plane__art{position:absolute;bottom:0;right:0;width:max(100cqw,175.6cqh);height:auto;aspect-ratio:1440 / 820;overflow:visible}
.sky{fill:var(--sky)}
.sun{fill:color-mix(in srgb,var(--orange) 45%,var(--sky))}
.sun__core{fill:var(--orange)}
.cloud{fill:var(--white)}
.far{fill:var(--far)}
.mid{fill:var(--mid)}
.mid .trunk{fill:var(--trunk)}
.kit,.rope{fill:none;stroke-linecap:round}
.post{stroke:var(--slate);stroke-width:18}
.bar{stroke:var(--slate);stroke-width:14}
.rope{stroke:color-mix(in srgb,var(--slate) 70%,var(--orange));stroke-width:5}
.ring{fill:none;stroke:var(--orange);stroke-width:9}
.bush .mound,.bush__front{fill:var(--bush)}
.bush__back{fill:color-mix(in srgb,var(--bush) 70%,var(--teal))}
.bush .vein{fill:none;stroke:color-mix(in srgb,var(--bush) 55%,var(--teal));stroke-width:5;stroke-linecap:round}
.near .sway:nth-child(even){fill:color-mix(in srgb,var(--green) 72%,var(--teal))}
.near .sway:nth-child(even) .vein{stroke:color-mix(in srgb,var(--green) 40%,var(--teal))}
.near{fill:var(--near)}
.near .vein{fill:none;stroke:var(--vein);stroke-width:4;stroke-linecap:round}
.floor{fill:var(--floor)}
.ringset,.ape,.sway,.cloud{transform-box:view-box}
.ringset{transform-origin:850px 300px}
.ringset--b{transform-origin:925px 300px}
.ape{transform-origin:1109px 300px}
.sway{transform-origin:0 0;transform:rotate(var(--r))}
.hero__inner{position:relative;z-index:2;max-width:var(--wrap);margin:-90px auto 0;padding:0 var(--gutter) clamp(40px,6vw,72px);display:grid;gap:20px}
.hang{position:relative}
.hang__branch{display:none}
.hang__wood{fill:var(--trunk)}
.cel{--cp:clamp(22px,3vw,40px);position:relative;padding:var(--cp);background:var(--white);border-radius:24px;box-shadow:var(--cel)}
.cel__art{position:absolute;inset:0;z-index:0;overflow:hidden;border-radius:inherit;--art:color-mix(in srgb,var(--green) 20%,var(--white))}
.cel>:not(.cel__art){position:relative;z-index:1}
.art--cel-a{right:-110px;top:-120px;width:clamp(220px,24vw,320px);aspect-ratio:380/460}
.art--cel-a use{transform:rotate(206deg)}
.art--cel-b{right:-26px;bottom:20px;width:clamp(120px,12vw,170px);aspect-ratio:300/380}
.art--cel-b use{transform:rotate(-24deg)}
.swing{display:inline-block;transform-origin:50% 0}
.title__vine{position:absolute;left:-2%;bottom:-.2em;width:104%;height:.3em;overflow:visible;fill:none;stroke:var(--green);stroke-width:7;stroke-linecap:round}
.title{font-size:clamp(2.5rem,1.3rem + 4vw,4.5rem);font-weight:800;letter-spacing:-.035em;line-height:1;color:var(--ink)}
.title__b{position:relative;display:block;width:fit-content;color:var(--teal)}
.hero__lede{max-width:33rem;margin-top:clamp(16px,2vw,24px);font-size:clamp(1rem,.95rem + .3vw,1.15rem);color:var(--text-soft)}
.hero__actions{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px}
.hero__where{margin:20px calc(var(--cp) * -1) calc(var(--cp) * -1);padding:8px var(--cp);border-radius:0 0 24px 24px;border-top:2px dashed color-mix(in srgb,var(--green) 55%,var(--white));background:color-mix(in srgb,var(--green) 16%,var(--white))}
.hero__link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:600;text-decoration:none;transition:color .2s}
.hero__link .icon{color:var(--teal)}
.hero__link:hover{color:var(--teal)}
.nexton{justify-self:start;padding:12px 18px;border-radius:14px;background:var(--white);box-shadow:var(--cel)}
.nexton__label{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.nexton__label::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange)}
.nexton__value{margin-top:2px;font-weight:600;font-variant-numeric:tabular-nums}
.no-js .nexton{display:none}
@media (min-width:1000px){
  .hero{min-height:clamp(640px,calc(100vh - 124px),860px);display:grid}
  .scene{position:absolute;inset:0;height:auto}
  .plane__art{right:auto;left:50%;margin-left:calc(max(100cqw,175.6cqh) / -2)}
  .hero__inner{width:100%;margin:0 auto;align-self:center;padding-top:clamp(40px,5vw,72px);grid-template-columns:minmax(0,600px) 1fr;align-items:end}
  .nexton{justify-self:end;align-self:end;margin-bottom:-20px}
  .hang{margin-top:clamp(60px,7vw,96px)}
  .hang__branch{display:block;position:absolute;left:-60px;top:-104px;width:calc(100% + 120px);height:auto;aspect-ratio:720 / 120;overflow:visible;pointer-events:none}
  .hang .cel::before,.hang .cel::after{content:"";position:absolute;z-index:2;top:-50px;width:14px;height:60px;background:radial-gradient(circle at 50% calc(100% - 7px),var(--rope) 0 5px,transparent 5.5px),linear-gradient(var(--rope),var(--rope)) 50% 0 / 6px calc(100% - 8px) no-repeat}
  .hang .cel{--rope:color-mix(in srgb,var(--slate) 70%,var(--orange));transform-origin:50% -48px}
  .hang .cel::before{left:16%}
  .hang .cel::after{right:16%}
}
@media (prefers-reduced-motion:no-preference){
  .ringset{animation:ring var(--t) ease-in-out infinite alternate}
  .ape{animation:hang 3.4s ease-in-out infinite alternate}
  .sway{animation:sway var(--t) ease-in-out infinite alternate}
  .drift{animation:drift 60s linear infinite alternate}
  .hang .cel{animation:swing 2.6s cubic-bezier(.33,.6,.4,1) .15s both}
  .swing{animation:wordswing 1.8s cubic-bezier(.33,.6,.4,1) 1.5s both}
  .title__vine path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.1s var(--ease) .7s forwards}
}
@keyframes ring{from{transform:rotate(-7deg)}to{transform:rotate(7deg)}}
@keyframes hang{from{transform:rotate(-2.5deg)}to{transform:rotate(2.5deg)}}
@keyframes sway{from{transform:rotate(calc(var(--r) - 3deg))}to{transform:rotate(calc(var(--r) + 3deg))}}
@keyframes drift{to{transform:translateX(160px)}}
@keyframes swing{0%{rotate:-3.2deg}22%{rotate:2.2deg}44%{rotate:-1.3deg}64%{rotate:.7deg}82%{rotate:-.25deg}100%{rotate:0deg}}
@keyframes wordswing{0%{rotate:0deg}16%{rotate:-9deg}38%{rotate:6deg}58%{rotate:-3deg}78%{rotate:1.2deg}100%{rotate:0deg}}
@keyframes draw{to{stroke-dashoffset:0}}

.path{scroll-margin-top:76px;background:var(--teal);color:var(--white)}
.path__inner{max-width:var(--wrap);margin:0 auto;padding:clamp(32px,4vw,56px) var(--gutter) clamp(24px,3vw,40px)}
.path__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px}
.path h2,.section-title{font-size:clamp(1.7rem,1.1rem + 2.2vw,3rem);font-weight:800;letter-spacing:-.03em}
.path__hint{font-weight:600;color:rgb(255 255 255 / .86)}
.trail{margin-top:clamp(22px,3vw,36px);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));row-gap:20px;padding-bottom:8px}
.node{position:relative;display:grid;place-items:center;min-height:60px;padding:0;background:none;border:0;cursor:pointer;--focus:var(--white)}
.node::before{content:"";position:absolute;top:50%;left:calc(-50% + 28px);right:calc(50% + 28px);height:3px;margin-top:-1.5px;border-radius:2px;background:linear-gradient(var(--green),var(--green)) left / 0 100% no-repeat,rgb(255 255 255 / .28);transition:background-size .28s var(--ease);transition-delay:calc(var(--n,0) * 70ms)}
.node:nth-child(5n+1)::before{display:none}
.node__n{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--white);color:var(--ink);font-weight:700;font-size:1.02rem;font-variant-numeric:tabular-nums;transition:background-color .3s,box-shadow .35s var(--ease);transition-delay:calc(var(--n,0) * 70ms)}
.node[data-age="14–15"] .node__n{font-size:.8rem}
.node:hover .node__n{box-shadow:0 0 0 4px var(--green)}
.node:focus-visible{outline:none}
.node:focus-visible .node__n{outline:3px solid var(--white);outline-offset:4px}
.node.is-lit::before{background-size:100% 100%}
.node.is-lit .node__n{background-color:var(--green)}
.node[aria-pressed="true"] .node__n{background-color:var(--orange);box-shadow:0 0 0 4px var(--white),0 10px 16px -8px rgb(15 20 26 / .6)}
.no-js .trail{display:none}
@media (min-width:900px){
  .trail{grid-template-columns:repeat(15,minmax(0,1fr))}
  .node:nth-child(5n+1)::before{display:block}
  .node:first-child::before{display:none}
  .node__n{width:50px;height:50px;font-size:.95rem}
  .node::before{left:calc(-50% + 25px);right:calc(50% + 25px)}
}

.results{scroll-margin-top:76px;background:var(--floor)}
.results__inner{max-width:var(--wrap);margin:0 auto;padding:clamp(28px,4vw,56px) var(--gutter) calc(max(100vw,900px) * .07 + 40px)}
.results__head{display:grid;gap:10px 24px;align-items:end;margin-bottom:clamp(22px,3vw,36px)}
.results__title{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 16px;font-size:clamp(1.4rem,1.1rem + 1.6vw,2.4rem);font-weight:600;letter-spacing:-.02em}
.results__age{font-size:2.3em;font-weight:800;line-height:.9;color:var(--teal);font-variant-numeric:tabular-nums}
.results__count{font-weight:600;color:var(--text-soft)}
.results__head .btn{justify-self:start}
@media (min-width:900px){.results__head{grid-template-columns:1fr auto}.results__head .btn{grid-column:2;grid-row:1 / span 2;align-self:center}}
.results__source{margin-top:28px;font-size:.95rem;color:var(--text-soft)}
.results__source a,.empty a{font-weight:600;color:var(--teal)}
.empty{max-width:46rem;margin-bottom:20px;padding:18px 22px;border-radius:18px;background:var(--mire);border:1px solid var(--line)}

.kindset{--k:var(--green);--k-ink:var(--ink);--k-soft:color-mix(in srgb,var(--green) 24%,var(--white));padding:10px;border-radius:24px;background:var(--k);color:var(--k-ink)}
.kindset[data-kind="class"]{--k:var(--teal);--k-ink:var(--white);--k-soft:color-mix(in srgb,var(--teal) 16%,var(--white))}
.kindset[data-kind="party"]{--k:var(--orange);--k-soft:color-mix(in srgb,var(--orange) 34%,var(--white))}
.kindset[data-kind="adult"]{--k:var(--slate);--k-ink:var(--white);--k-soft:color-mix(in srgb,var(--slate) 12%,var(--white))}
.kindset+.kindset{margin-top:12px}
.kindset__title{padding:6px 8px 10px;font-size:1.15rem;font-weight:800;letter-spacing:-.01em}
.session{scroll-margin-top:96px}
.session+.session{margin-top:6px}
.pick-h{margin:0;font:inherit;line-height:inherit}
.pick{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;width:100%;min-height:56px;padding:12px 14px 12px 16px;border:0;border-radius:16px;background-color:var(--white);color:var(--ink);text-align:left;cursor:pointer;transition:background-color .2s,border-radius .3s var(--ease)}
.pick:hover{background-color:color-mix(in srgb,var(--k-soft) 55%,var(--white))}
.pick:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.pick__name{font-size:1.05rem;font-weight:700;line-height:1.25}
.pick__meta{grid-column:1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.pick__chev{grid-column:2;grid-row:1 / span 2;width:22px;height:22px;color:var(--text-soft);transition:transform .35s var(--ease)}
.pick[aria-expanded="true"] .pick__chev{transform:rotate(180deg)}
.no-js .pick{cursor:default}
.no-js .pick__chev{display:none}
.age{display:inline-block;padding:1px 10px;border-radius:999px;background:var(--k-soft);color:var(--ink);font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.week{display:inline-flex;gap:3px}
.week span{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:rgb(20 27 34 / .07);color:var(--text-soft);font-size:.66rem;font-weight:600}
.week .on{background:var(--k);color:var(--k-ink)}

.detail__card{padding:4px 16px 18px;border-radius:0 0 16px 16px;background:var(--white);color:var(--ink)}
.detail__band{display:none}
.js .session.is-open .pick{border-radius:16px 16px 0 0}
.js .detail{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .45s var(--ease),visibility 0s linear .45s}
.js .session.is-open .detail{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .45s var(--ease),visibility 0s}
.detail__inner{min-height:0;overflow:hidden}
.no-js .pick{border-radius:16px 16px 0 0}
.detail__body{display:grid;gap:14px;padding-top:14px;border-top:1px solid var(--line)}
.facts{display:grid;gap:12px 28px;align-content:start}
.facts div{display:grid;gap:2px;align-content:start}
.facts dt{font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.facts dd{font-size:.98rem;line-height:1.5}
.facts__when dd{font-size:1.08rem;font-weight:600;font-variant-numeric:tabular-nums}
.facts__free{padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--green) 20%,var(--white))}
.session__note{font-size:.92rem;line-height:1.5;color:var(--text-soft)}
.session__next{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600;font-variant-numeric:tabular-nums}
.session__next::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange)}
.session__next.is-now{color:var(--teal)}
.session__next.is-now::before{background:var(--green)}
.session__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.session__actions .btn--book{min-height:44px;padding:0 1.2em;font-size:.74rem;background-color:var(--orange);box-shadow:none}
.session__actions .btn--book:hover{background-color:color-mix(in srgb,var(--orange) 70%,var(--white));box-shadow:none}
.walkin{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;background:color-mix(in srgb,var(--green) 26%,var(--white));color:var(--ink);font-size:.72rem;font-weight:700;letter-spacing:.1em}
.link-more{display:inline-flex;align-items:center;min-height:44px;font-weight:600;text-decoration:underline;text-decoration-color:var(--line-strong);transition:color .2s,text-decoration-color .2s}
.link-more:hover{color:var(--teal);text-decoration-color:var(--teal)}
@media (min-width:600px){
  .facts{grid-template-columns:1fr 1fr;grid-auto-flow:dense}
  .facts__when,.facts__where{grid-column:1}
  .facts__cost,.facts__free{grid-column:2}
}

@media (min-width:960px){
  .js .board{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:clamp(24px,3vw,48px);align-items:start}
  .js .kindset,.js .session{display:contents}
  .js .kindset__title{grid-column:1;justify-self:start;margin:16px 0 8px;padding:4px 14px;border-radius:999px;background:var(--k);color:var(--k-ink);font-size:.9rem}
  .js .board>.kindset:first-child .kindset__title{margin-top:0}
  .js .pick-h{grid-column:1;margin-bottom:6px}
  .js .pick{grid-template-columns:minmax(0,1fr) auto auto;min-height:50px;padding:6px 12px 6px 18px;border-radius:14px;background-color:color-mix(in srgb,var(--k-soft) 45%,var(--white));box-shadow:0 1px 0 rgb(15 20 26 / .08)}
  .js .pick:hover{background-color:var(--k-soft)}
  .js .pick__meta{display:contents}
  .js .pick .age{grid-row:1;grid-column:2}
  .js .pick .week{grid-row:1;grid-column:3}
  .js .pick__chev{display:none}
  .js .session.is-open .pick{border-radius:14px;background-color:var(--k);color:var(--k-ink);box-shadow:0 8px 16px -10px rgb(15 20 26 / .5)}
  .js .session.is-open .pick .age{background:var(--white)}
  .js .session.is-open .pick .week span{background:rgb(255 255 255 / .2);color:inherit}
  .js .session.is-open .pick .week .on{background:var(--white);color:var(--ink)}
  .js .detail,.js .session.is-open .detail{display:none;transition:none}
  .js .session.is-open .detail{display:block;grid-column:2;grid-row:1 / span 40;position:sticky;top:96px}
  .js .detail__inner{overflow:visible}
  .js .detail__card{padding:0;border-radius:26px;overflow:hidden;box-shadow:0 1px 0 rgb(15 20 26 / .08),var(--lift);animation:panel .45s var(--ease)}
  .js .detail__band{display:grid;gap:10px;padding:24px 28px 22px;background:var(--k);color:var(--k-ink)}
  .detail__name{font-size:clamp(1.6rem,1.1rem + 1vw,2.1rem);font-weight:800;line-height:1.1;letter-spacing:-.02em}
  .detail__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
  .detail__band .age{background:var(--white);font-size:.95rem;padding:3px 12px}
  .detail__band .week span{width:28px;height:28px;font-size:.74rem;background:rgb(255 255 255 / .22);color:inherit}
  .detail__band .week .on{background:var(--white);color:var(--ink)}
  .js .detail__body{gap:18px;padding:24px 28px 26px;border-top:0}
}
.session.is-grown .pick{animation:grow .6s var(--ease) both;animation-delay:calc(var(--i,0) * 40ms)}
@keyframes grow{from{translate:0 16px;opacity:0}}
@keyframes panel{from{opacity:0;translate:16px 0}}
@media (min-width:1200px){.js .board{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}}
@media (min-width:960px) and (max-width:1199px){.js .facts{grid-template-columns:1fr}.js .facts>div{grid-column:1}}

.extras{--ground:color-mix(in srgb,var(--green) 32%,var(--white));background:var(--ground)}
.extras__inner{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter) clamp(48px,6vw,88px);display:grid;gap:clamp(14px,2vw,24px)}
.ticket{--t:var(--green);position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(14px,2vw,24px);min-height:96px;padding:16px clamp(24px,2.6vw,36px) 16px 20px;border-radius:22px;background-color:var(--t);color:var(--ink);text-decoration:none;font-weight:800;font-size:clamp(.92rem,.84rem + .4vw,1.12rem);line-height:1.3;letter-spacing:.08em;text-transform:uppercase;transition:transform .45s var(--ease),background-color .2s}
.ticket--orange{--t:var(--orange)}
.ticket::before,.ticket::after{content:"";position:absolute;top:50%;width:26px;height:26px;margin-top:-13px;border-radius:50%;background:var(--ground)}
.ticket::before{left:-13px}
.ticket::after{right:-13px}
.ticket:hover{background-color:color-mix(in srgb,var(--t) 82%,var(--white));transform:translateY(-3px) rotate(-.6deg)}
.ticket:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
.ticket__icon{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--white)}
.ticket__icon .icon{width:30px;height:30px}
.ticket__text{padding-left:clamp(14px,2vw,24px);border-left:2px dashed rgb(20 27 34 / .35)}
.ticket .sprig{width:1.8em;transition:transform .35s var(--ease)}
.ticket:hover .sprig{transform:translateX(4px) rotate(-6deg)}
@media (min-width:760px){.extras__inner{grid-template-columns:1fr 1fr}}

.library{background:color-mix(in srgb,var(--orange) 22%,var(--white))}
.vine{display:block;width:100%;height:clamp(72px,8vw,120px)}
.vine__stem{fill:none;stroke:var(--trunk);stroke-width:7;stroke-linecap:round}
.vleaf__stem{fill:none;stroke:color-mix(in srgb,var(--green) 45%,var(--teal));stroke-width:9;stroke-linecap:round}
.vleaf__blade{fill:var(--lf,var(--green))}
.vleaf__shade{fill:color-mix(in srgb,var(--lf,var(--green)) 78%,var(--teal))}
.vleaf__vein{fill:none;stroke:color-mix(in srgb,var(--lf,var(--green)) 45%,var(--white));stroke-width:5;stroke-linecap:round}
.vine .near>g:nth-child(even),.hang__branch .near>g:nth-child(even){--lf:color-mix(in srgb,var(--green) 82%,var(--teal))}
.library__inner{max-width:var(--wrap);margin:0 auto;padding:clamp(8px,2vw,24px) var(--gutter) clamp(56px,7vw,104px)}
.programs{display:grid;gap:clamp(14px,2vw,24px)}
.prog{--c:var(--orange);--c-ink:var(--ink);position:relative;display:grid;align-content:start;padding:10px;border-radius:26px;background:var(--c);color:var(--c-ink);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.prog[data-c="teal"]{--c:var(--teal);--c-ink:var(--white)}
.prog[data-c="green"]{--c:var(--green)}
.prog[data-c="slate"]{--c:var(--slate);--c-ink:var(--white)}
.prog:hover{transform:translateY(-4px) rotate(-.5deg);box-shadow:0 18px 30px -18px rgb(15 20 26 / .55)}
.prog:nth-child(even):hover{transform:translateY(-4px) rotate(.5deg)}
.prog__pic{overflow:hidden;border-radius:18px}
.prog__pic img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .6s var(--ease)}
.prog--big .prog__pic img{aspect-ratio:16/9}
.prog:hover .prog__pic img{transform:scale(1.06)}
.prog__body{display:grid;gap:6px;align-content:start;padding:14px 10px 8px}
.prog h2{font-size:clamp(1.1rem,.95rem + .6vw,1.35rem);font-weight:700;line-height:1.2;letter-spacing:-.01em}
.prog--big h2{font-size:clamp(1.5rem,1.1rem + 1.4vw,2.2rem);font-weight:800;letter-spacing:-.02em}
.prog h2 a{text-decoration:none}
.prog h2 a::after{content:"";position:absolute;inset:0;z-index:1;border-radius:26px}
.prog h2 a:focus-visible{outline:none}
.prog:has(h2 a:focus-visible){outline:3px solid var(--ink);outline-offset:4px}
.prog p{font-size:.96rem;line-height:1.5}
.prog--big p{font-size:1.02rem}
.prog__links{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.prog__links a{display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:0 10px 0 13px;border-radius:999px;background-color:var(--white);color:var(--ink);font-size:.8rem;font-weight:700;text-decoration:none;white-space:nowrap;box-shadow:0 2px 0 rgb(15 20 26 / .14);transition:background-color .2s}
.prog__links a .icon{width:16px;height:16px;transition:transform .3s var(--ease)}
.prog__links a:hover{background-color:var(--orange)}
.prog__links a:hover .icon{transform:translateX(3px)}
.prog__links a:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
@media (max-width:759px){
  .prog--row{grid-template-columns:104px minmax(0,1fr);align-items:center;gap:6px}
  .prog--row .prog__pic img{aspect-ratio:1}
  .prog--row .prog__body{padding:4px 6px 4px 8px}
}
@media (min-width:760px){
  .programs{grid-template-columns:repeat(6,minmax(0,1fr))}
  .prog{grid-column:span 3}
}
@media (min-width:1100px){.prog--row{grid-column:span 2}}

.faq{background:var(--teal);color:var(--white)}
.faq__inner{max-width:var(--wrap);margin:0 auto;padding:clamp(56px,7vw,104px) var(--gutter)}
.faq__grid{margin-top:clamp(24px,3vw,40px);display:grid;gap:clamp(32px,3vw,40px);align-items:start}
.chat{display:grid;gap:14px}
.chat__q{position:relative;justify-self:end;max-width:calc(90% - 12px);margin-right:12px;padding:14px 20px;border-radius:22px 22px 4px 22px;background:var(--orange);color:var(--ink);font-size:1.12rem;font-weight:700;line-height:1.3}
.chat__q::after{content:"";position:absolute;right:-12px;bottom:0;width:20px;height:20px;background:inherit;clip-path:path("M0 0H8C8 10 12 16 20 20C12 21 4 19 0 16Z")}
.chat__a{display:grid;grid-template-columns:52px minmax(0,1fr);gap:18px;align-items:end}
.chat__face{width:52px;height:52px;border-radius:50%;border:3px solid var(--green);background:var(--white);object-fit:cover}
.chat__a p{position:relative;padding:16px 20px;border-radius:22px 22px 22px 4px;background:var(--white);color:var(--ink);font-size:.98rem;line-height:1.55}
.chat__a p::after{content:"";position:absolute;left:-12px;bottom:0;width:20px;height:20px;background:inherit;clip-path:path("M20 0H12C12 10 8 16 0 20C8 21 16 19 20 16Z")}
@media (min-width:900px){.faq__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.about{position:relative;background:var(--sky)}
.about__inner{position:relative;max-width:var(--wrap);margin:0 auto;padding:clamp(56px,7vw,112px) var(--gutter) calc(max(100vw,900px) * .07 + 32px);display:grid;gap:clamp(32px,4vw,72px);align-items:center}
.about h3{margin:22px 0 16px;font-size:clamp(1.15rem,1rem + .7vw,1.5rem);font-weight:700;line-height:1.3;color:var(--teal)}
.about__copy p{max-width:64ch;color:var(--text-soft)}
.about__copy p+p{margin-top:14px}
.about__photo{position:relative;margin:0;padding:clamp(8px,2vw,24px)}
.about__frame{padding:10px;border-radius:24px;background:var(--white);box-shadow:0 22px 40px -22px rgb(15 20 26 / .45);transform:rotate(1.5deg)}
.about__frame img{border-radius:16px}
@media (min-width:960px){.about__inner{grid-template-columns:1.2fr 1fr}}

@media (prefers-reduced-motion:no-preference){
  .can-reveal [data-reveal]{transition:opacity .6s var(--ease),translate .7s var(--ease),transform .45s var(--ease),box-shadow .45s var(--ease),background-color .2s;transition-delay:calc(var(--d,0) * 90ms),calc(var(--d,0) * 90ms),0s,0s,0s}
  .can-reveal [data-reveal]:not(.is-in){opacity:0;translate:0 32px}
  .can-reveal .chat__a{transition:opacity .5s var(--ease),translate .6s var(--ease);transition-delay:calc(var(--d,0) * 90ms + .45s)}
  .can-reveal .chat:not(.is-in) .chat__a{opacity:0;translate:0 14px}
}

.site-footer{--focus:var(--orange);background:var(--slate);color:var(--white)}
.site-footer__inner{max-width:var(--wrap);margin:0 auto;padding:clamp(48px,6vw,80px) var(--gutter) 28px;display:grid;gap:28px}
.site-footer__brand{display:flex;align-items:center;gap:16px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;color:var(--green)}
.site-footer__brand img{width:88px}
.contact-list{display:grid;gap:6px}
.contact-list a,.footer-links a{display:inline-flex;align-items:center;gap:12px;min-height:44px;text-decoration:none;transition:color .2s}
.contact-list a:hover,.footer-links a:hover{color:var(--orange)}
.contact-list .icon{color:var(--green)}
.footer-links{display:grid;gap:2px;font-weight:600}
.site-footer__social{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.social{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;box-shadow:inset 0 0 0 1.5px rgb(255 255 255 / .4);color:var(--white);transition:color .2s,background-color .2s,box-shadow .3s}
.social:hover{background-color:var(--green);color:var(--ink)}
.rga{width:160px;margin-left:8px;border-radius:8px}
.site-footer__legal{grid-column:1 / -1;padding-top:20px;border-top:1px solid rgb(255 255 255 / .16);font-size:.88rem;color:rgb(255 255 255 / .78)}
@media (min-width:900px){.site-footer__inner{grid-template-columns:1.1fr 1.3fr 1fr 1fr}}

.book-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--line)}
.book-bar .btn{flex:1;min-height:52px}
.book-bar__call{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--line-strong);color:var(--teal)}
.book-bar__call .icon{width:24px;height:24px}
body:has(.book-bar){padding-bottom:calc(73px + env(safe-area-inset-bottom))}
.js .book-bar{transform:translateY(110%);visibility:hidden;transition:transform .35s var(--ease),visibility 0s linear .35s}
.js .book-bar.is-visible{transform:none;visibility:visible;transition:transform .35s var(--ease)}
@media (min-width:760px){.book-bar{display:none}body:has(.book-bar){padding-bottom:0}}


.sprite{position:absolute;width:0;height:0;overflow:hidden}
.path,.results,.library,.faq,.about,.site-footer{position:relative;isolation:isolate;overflow:clip}
.art{position:absolute;z-index:-1;display:block;height:auto;color:var(--art);pointer-events:none;overflow:visible}
.art use{transform-box:fill-box;transform-origin:center}
.path,.faq{--art:color-mix(in srgb,var(--white) 13%,var(--teal))}
.results{--art:color-mix(in srgb,var(--green) 32%,var(--white))}
.library{--art:color-mix(in srgb,var(--orange) 46%,var(--white))}
.about{--art:color-mix(in srgb,var(--green) 28%,var(--white))}
.site-footer{--art:color-mix(in srgb,var(--white) 6%,var(--slate))}
.art--p1{left:-70px;top:-40px;width:clamp(200px,24vw,330px);aspect-ratio:420/300;transform-origin:8% 4%}
.art--p1 use{transform:scaleY(-1)}
.art--p2{right:-90px;bottom:-40px;width:clamp(220px,26vw,380px);aspect-ratio:460/220;transform-origin:96% 90%}
.art--p2 use{transform:scaleX(-1)}
.art--p3{display:none;left:57%;top:-40px;width:92px;aspect-ratio:150/236}
.art--r1{right:-60px;top:-30px;width:clamp(220px,24vw,360px);aspect-ratio:420/300;transform-origin:95% 5%}
.art--r1 use{transform:rotate(180deg)}
.art--r2{left:-110px;bottom:12%;width:clamp(200px,22vw,320px);aspect-ratio:380/460;transform-origin:20% 95%}
.art--r2 use{transform:rotate(38deg)}
.art--l1{left:-120px;bottom:5%;width:clamp(240px,30vw,440px);aspect-ratio:460/220;transform-origin:4% 90%}
.art--l1 use{transform:rotate(-30deg)}
.art--l2{right:-90px;bottom:-70px;width:clamp(200px,24vw,330px);aspect-ratio:380/460;transform-origin:50% 95%}
.art--l2 use{transform:rotate(-24deg)}
.art--l3{right:13%;top:clamp(20px,3vw,44px);width:clamp(80px,9vw,130px);aspect-ratio:229/204}
.art--f1{right:8%;top:clamp(24px,4vw,56px);width:clamp(56px,7vw,100px);aspect-ratio:240/387}
.art--f2{right:calc(8% + clamp(80px,12vw,180px));top:clamp(16px,2vw,28px);width:clamp(80px,10vw,140px);aspect-ratio:350/444}
.art--f3{left:-80px;bottom:-40px;width:clamp(220px,26vw,360px);aspect-ratio:420/300;transform-origin:5% 95%}
.art--f4{left:41%;bottom:clamp(20px,4vw,56px);width:clamp(130px,14vw,210px);aspect-ratio:260/190}
.art--s1{right:-70px;bottom:-50px;width:clamp(240px,28vw,400px);aspect-ratio:420/300;transform-origin:95% 95%}
.art--s1 use{transform:scaleX(-1)}
.art--s2{right:clamp(150px,24vw,360px);bottom:22%;width:clamp(80px,9vw,130px);aspect-ratio:350/444}
.art--ground{left:50%;bottom:0;width:max(100%,900px);aspect-ratio:1440/150;translate:-50% 0}
.art--r3{display:none;right:6%;bottom:calc(max(100vw,900px) * .016);width:clamp(260px,24vw,380px);aspect-ratio:640/410}
.art--a1{left:-90px;top:-24px;width:clamp(200px,22vw,320px);aspect-ratio:460/220;transform-origin:5% 10%}
.art--a1 use{transform:rotate(28deg)}
.art--a2{right:-20px;top:0;width:clamp(230px,30vw,440px);aspect-ratio:540/330}
.art--a3{left:47%;top:-30px;width:clamp(56px,5.6vw,80px);aspect-ratio:150/236}
.art--a4{right:35%;top:clamp(60px,6vw,96px);width:clamp(70px,7vw,110px);aspect-ratio:240/387}
.art--a5{left:-110px;bottom:calc(max(100vw,900px) * .014);width:clamp(150px,16vw,240px);aspect-ratio:340/560}
.art--a6{right:3%;bottom:calc(max(100vw,900px) * .014);width:clamp(150px,17vw,250px);aspect-ratio:460/620;transform-origin:45% 100%}
.art--a7{left:40%;bottom:calc(max(100vw,900px) * .012);width:clamp(100px,11vw,160px);aspect-ratio:380/460;transform-origin:50% 100%}
.art--a7 use{transform:rotate(-12deg)}
@media (max-width:759px){
  .art--l3,.art--a3,.art--a4,.art--a5,.art--f2,.art--f4{display:none}
  .art--f1{top:28px;right:6%}
}
@media (min-width:900px){
  .art--p3{display:block}
}
@media (min-width:960px){.art--r3{display:block}}
@media (prefers-reduced-motion:no-preference){
  .art--p1,.art--p2,.art--r1,.art--r2,.art--l1,.art--l2,.art--f3,.art--a1,.art--a6,.art--a7,.art--s1{animation:artsway 8s ease-in-out infinite alternate}
  .art--p2,.art--r2,.art--l2,.art--s1{animation-duration:10s;animation-delay:-3s}
}
@keyframes artsway{from{rotate:-1.6deg}to{rotate:1.6deg}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
