/* Crayon Hill · concept site by Brand Evolution */
:root{
  --paper:#FFF8EC;
  --paper-2:#FDEFD6;
  --card:#FFFDF7;
  --ink:#2B2350;
  --ink-soft:#463E6C;
  --muted:#5F5880;
  --red:#C8362B;
  --red-2:#E2483D;
  --sun:#F2A81D;
  --blue:#2D7FC1;
  --green:#3E9A4C;
  --plum:#7A4FA8;
  --board:#1F3B34;
  --board-2:#264840;
  --chalk:#F4F1E6;
  --chalk-soft:rgba(244,241,230,.78);
  --line:rgba(43,35,80,.16);
  --display:"Fraunces", "Georgia", serif;
  --body:"Nunito Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --hand:"Caveat", "Comic Sans MS", cursive;
  --gutter:clamp(16px,4vw,56px);
  --ease:cubic-bezier(.2,.8,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;overflow-x:hidden}
svg{display:block}
a{color:inherit}
p{margin:0}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:650;font-variation-settings:"SOFT" 100,"WONK" 0;letter-spacing:-.01em}
em{font-style:italic;color:var(--red);font-variation-settings:"SOFT" 100,"WONK" 1}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}
.bp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bp-skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--ink);color:var(--paper);padding:10px 14px}
.bp-skip:focus{left:8px}
button,input,select{font:inherit;color:inherit}
.bp-hand{font-family:var(--hand);font-weight:700;color:var(--red);font-size:1.35em;line-height:1}
.bp-doodle .ln{fill:none;stroke-linecap:round;stroke-linejoin:round}

/* hand-drawn wobbly borders */
.wob{border:2.5px solid var(--ink);border-radius:255px 18px 225px 18px/18px 225px 18px 255px}
.wob-b{border-radius:18px 225px 18px 255px/255px 18px 225px 18px}
.wob-c{border-radius:225px 22px 255px 16px/16px 255px 22px 225px}

/* buttons */
.bp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;font-weight:800;font-size:16px;text-decoration:none;border:2.5px solid var(--ink);cursor:pointer;border-radius:255px 14px 225px 14px/14px 225px 14px 255px;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .25s;box-shadow:3px 4px 0 var(--ink)}
.bp-btn:hover{transform:translate(-1px,-2px) rotate(-.6deg);box-shadow:5px 6px 0 var(--ink)}
.bp-btn:active{transform:translate(2px,3px);box-shadow:1px 1px 0 var(--ink)}
.bp-btn-red{background:var(--red);color:#fff}
.bp-btn-line{background:var(--card);color:var(--ink)}
.bp-btn-line:hover{background:#FFF1C9}
.bp-btn-sm{padding:9px 16px;font-size:14.5px;box-shadow:2px 3px 0 var(--ink)}

/* NAV: glass tinted to the section beneath */
.bp-nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px var(--gutter);color:var(--ink);transition:background .35s,box-shadow .35s,padding .35s,color .35s}
.bp-nav.solid{background:rgba(255,248,236,.84);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 1px 0 var(--line);padding-top:9px;padding-bottom:9px}
.bp-nav.solid.on-board{background:rgba(31,59,52,.84);color:var(--chalk);box-shadow:0 1px 0 rgba(244,241,230,.16)}
.bp-nav.solid.on-ink{background:rgba(43,35,80,.86);color:var(--chalk);box-shadow:0 1px 0 rgba(244,241,230,.16)}
.bp-nav.on-board .bp-btn-red,.bp-nav.on-ink .bp-btn-red{border-color:var(--chalk);box-shadow:2px 3px 0 var(--chalk)}
.bp-brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.bp-brand svg{width:40px;height:40px}
.bp-brand span{font-family:var(--display);font-weight:700;font-size:24px;line-height:1;font-variation-settings:"SOFT" 100}
.bp-brand small{display:block;font-family:var(--body);font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.75;margin-top:3px}
.bp-nav nav{display:flex;gap:26px;font-weight:700;font-size:15px}
.bp-nav nav a{text-decoration:none;opacity:.85;background:linear-gradient(var(--sun),var(--sun)) 0 100%/0 3px no-repeat;transition:background-size .3s var(--ease)}
.bp-nav nav a:hover{opacity:1;background-size:100% 3px}
@media (max-width:880px){.bp-nav nav{display:none}}

/* HERO */
.bp-hero{position:relative;height:360vh;background:radial-gradient(50% 55% at 74% 52%,#FFEFC8,transparent 72%),var(--paper)}
.bp-pin{position:sticky;top:0;height:100svh;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(16px,3.5vw,56px);align-items:center;padding:84px var(--gutter) 24px;overflow:hidden}
.bp-hero-copy{max-width:560px;animation:bpIn .7s var(--ease) both}
@keyframes bpIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.bp-kicker{font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}
.bp-hero-copy h1{font-size:clamp(42px,5.6vw,82px);line-height:.98;margin:12px 0 18px;text-wrap:balance}
.bp-lede{font-size:clamp(16px,1.3vw,19px);color:var(--ink-soft);max-width:44ch}
.bp-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}
.bp-now{margin-top:26px;padding:14px 18px;background:var(--card);max-width:460px;border-width:2px}
.bp-now-top{display:flex;align-items:baseline;gap:12px}
.bp-now-no{font-family:var(--hand);font-weight:700;font-size:30px;color:var(--red);line-height:1}
.bp-now-name{font-weight:800}
.bp-now-hint{margin-left:auto;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);transition:opacity .3s}
.bp-now-line{font-size:14.5px;color:var(--muted);margin-top:2px;min-height:3em}
.bp-now-bar{height:4px;border-radius:3px;background:var(--line);margin-top:8px;overflow:hidden}
.bp-now-bar i{display:block;height:100%;background:var(--sun);transform-origin:0 50%;transform:scaleX(0)}
.bp-scene-wrap{height:100%;min-height:0;display:flex;align-items:center;justify-content:center}
.bp-scene{width:100%;height:auto;max-height:100%;max-width:760px;overflow:visible}
.bp-scene .ln{fill:none;stroke-linecap:round;stroke-linejoin:round}
.bp-scene.grain{-webkit-mask-size:180px 180px;mask-size:180px 180px}
@media (max-width:860px){
  .bp-hero{height:320vh}
  .bp-pin{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;padding:68px var(--gutter) 58px;gap:4px}
  .bp-scene-wrap{order:-1}
  .bp-scene{height:42svh;width:auto;max-width:100%}
  .bp-hero-copy h1{font-size:clamp(32px,9vw,46px);margin:6px 0 8px}
  .bp-lede{display:none}
  .bp-actions{margin-top:8px;gap:10px}
  .bp-actions .bp-btn{padding:11px 16px;font-size:15px}
  .bp-now{margin-top:12px;padding:10px 14px}
  .bp-now-line{min-height:0;font-size:13.5px}
}
@media (max-width:860px) and (max-height:700px){.bp-kicker,.bp-actions .bp-btn-line{display:none}}

/* SECTION HEADS */
.bp-head{display:grid;grid-template-columns:auto 1fr;gap:4px 22px;align-items:end;margin-bottom:40px}
.bp-no{font-family:var(--hand);font-weight:700;font-size:34px;line-height:1;color:var(--red)}
.bp-head h2{font-size:clamp(34px,5vw,64px);line-height:1.02;text-wrap:balance;max-width:18ch}
.bp-note{grid-column:2;color:var(--muted);max-width:60ch;font-size:clamp(16px,1.25vw,18px)}
@media (max-width:620px){.bp-head{grid-template-columns:1fr}.bp-note{grid-column:1}}

/* ABOUT */
.bp-about{padding:110px var(--gutter) 70px}
.bp-facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:22px}
.bp-facts li{background:var(--card);padding:26px 24px;display:grid;gap:8px;transition:transform .4s var(--ease)}
.bp-facts li:nth-child(1){transform:rotate(-.8deg)}
.bp-facts li:nth-child(2){transform:rotate(.6deg)}
.bp-facts li:nth-child(3){transform:rotate(-.4deg)}
.bp-facts li:hover{transform:rotate(0) translateY(-4px)}
.bp-big{font-family:var(--display);font-size:38px;line-height:1;font-weight:700;color:var(--blue);font-variation-settings:"SOFT" 100}
.bp-facts li:nth-child(2) .bp-big{color:var(--green)}
.bp-facts li:nth-child(3) .bp-big{color:var(--plum)}
.bp-facts span{color:var(--ink-soft)}
.bp-squiggle{width:min(100%,600px);height:30px;margin:64px auto 0;overflow:visible}
.bp-squiggle path{fill:none;stroke-linecap:round}

/* DAY TIMELINE */
.bp-day{padding:70px var(--gutter) 110px;background:linear-gradient(var(--paper),var(--paper-2))}
.bp-day-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,5vw,80px)}
.bp-clock-col{position:relative}
.bp-clock{position:sticky;top:110px;display:grid;justify-items:center;gap:14px}
.bp-clock svg{width:min(100%,300px);height:auto}
.bp-hand-h,.bp-hand-m{transform-origin:100px 100px;transform-box:view-box;transition:transform .9s var(--ease)}
.bp-clock-time{text-align:center}
.bp-clock-time b{display:block;font-family:var(--display);font-size:clamp(30px,3.4vw,46px);line-height:1;font-variation-settings:"SOFT" 100}
.bp-clock-time span{font-family:var(--hand);font-size:30px;font-weight:700;color:var(--red)}
.bp-tl{position:relative;padding-left:58px}
.bp-tl-line{position:absolute;left:0;top:10px;bottom:10px;width:40px;height:calc(100% - 20px);overflow:visible}
.bp-tl-line path{fill:none;stroke-width:5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.bp-tl-track{stroke:var(--line);stroke-dasharray:2 10}
.bp-tl-ink{stroke:var(--sun)}
html.js .bp-tl-ink{stroke-dasharray:1 1;stroke-dashoffset:1}
.bp-tl-list{list-style:none;margin:0;padding:0;display:grid;gap:clamp(36px,7vh,80px)}
.bp-stop{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:start;opacity:.55;transition:opacity .5s}
.bp-stop.on,.bp-stop.done{opacity:1}
.bp-stop .bp-ico{width:64px;height:64px;background:var(--card);border:2px solid var(--ink);border-radius:50% 46% 52% 48%/48% 52% 46% 50%;padding:5px;transition:transform .5s var(--ease)}
.bp-stop.on .bp-ico{transform:rotate(-6deg) scale(1.08)}
.bp-time{font-family:var(--hand);font-weight:700;font-size:24px;color:var(--red);line-height:1}
.bp-stop h3{font-size:clamp(24px,2.4vw,32px);line-height:1.1;margin:4px 0 6px}
.bp-stop p:last-child{color:var(--ink-soft);max-width:48ch}
@media (max-width:820px){
  .bp-day-grid{grid-template-columns:1fr}
  .bp-clock-col{display:none}
  .bp-tl{padding-left:44px}
  .bp-stop{grid-template-columns:52px 1fr;gap:14px}
  .bp-stop .bp-ico{width:52px;height:52px}
}

/* doodles that draw (used on icons) */
html.js .draw-me .ln{stroke-dasharray:1 1;stroke-dashoffset:1}
html.js .draw-me .dt{opacity:0}
html.js .drawn .ln{stroke-dashoffset:0;transition:stroke-dashoffset .9s var(--ease)}
html.js .drawn .ln:nth-child(2){transition-delay:.12s}
html.js .drawn .ln:nth-child(3){transition-delay:.24s}
html.js .drawn .ln:nth-child(4){transition-delay:.36s}
html.js .drawn .ln:nth-child(n+5){transition-delay:.45s}
html.js .drawn .dt{opacity:1;transition:opacity .3s .6s}

/* PROGRAMMES */
.bp-prog{padding:110px var(--gutter)}
.bp-prog-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}
.bp-finder{background:var(--card);padding:18px 22px;flex:1 1 420px;max-width:640px;display:grid;gap:10px}
.bp-finder-t{font-weight:700}
.bp-finder-row{display:flex;gap:10px;flex-wrap:wrap}
.bp-finder select,.bp-form input,.bp-form select{appearance:none;-webkit-appearance:none;background:#fff;border:2px solid var(--ink);border-radius:12px 4px 14px 5px/5px 14px 4px 12px;padding:10px 14px;font-size:16px;min-height:46px}
.bp-finder select,.bp-form select{padding-right:38px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%232B2350' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center/12px 8px}
.bp-finder-out{color:var(--ink-soft)}
.bp-finder-out b{color:var(--ink)}
.bp-toggle{display:inline-flex;border:2.5px solid var(--ink);border-radius:999px;padding:4px;background:var(--card)}
.bp-toggle button{border:0;background:transparent;padding:9px 18px;border-radius:999px;font-weight:800;cursor:pointer;transition:background .25s,color .25s}
.bp-toggle button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.bp-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:22px}
.bp-card{position:relative;background:var(--card);padding:24px 22px 22px;display:flex;flex-direction:column;gap:6px;transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .3s}
.bp-card:hover{transform:translateY(-6px) rotate(-.6deg);box-shadow:6px 8px 0 var(--ink)}
.bp-card.match{background:#FFF1C9;box-shadow:6px 8px 0 var(--sun)}
.bp-card.match::after{content:"Your child’s class";position:absolute;top:-16px;left:18px;font-family:var(--hand);font-weight:700;font-size:22px;color:var(--paper);background:var(--red);padding:2px 12px;border-radius:12px 4px 12px 4px;transform:rotate(-3deg)}
.bp-card-ico{width:64px;height:64px;margin-bottom:6px}
.bp-card-photo{display:block;width:calc(100% + 20px);height:auto;aspect-ratio:4/3;object-fit:cover;margin:-12px -10px 4px;border-radius:12px 18px 10px 16px;border:2px solid var(--ink)}
.bp-card-photo+.bp-card-ico{width:52px;height:52px;margin:-34px 0 0 6px;position:relative;background:var(--card);border-radius:50%;padding:4px}
.bp-fact-photo{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:14px 20px 12px 18px;border:2px solid var(--ink);margin-bottom:6px}
.bp-age{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--green)}
.bp-card h3{font-size:30px;line-height:1.05}
.bp-fee{margin:6px 0 4px}
.bp-fee b{font-family:var(--display);font-size:32px;font-weight:700;color:var(--red);font-variation-settings:"SOFT" 100;display:inline-block}
.bp-fee b.tick{animation:bpTick .45s var(--ease)}
@keyframes bpTick{40%{transform:translateY(-6px) rotate(-3deg)}}
.bp-fee span{font-size:14px;color:var(--muted);font-weight:700}
.bp-card ul{list-style:none;margin:6px 0 0;padding:10px 0 0;border-top:2px dashed var(--line);display:grid;gap:5px;font-size:14.5px;color:var(--ink-soft)}
.bp-card ul li::before{content:"✱";color:var(--sun);margin-right:8px}

/* SAFETY (chalkboard) */
.bp-safety{background:radial-gradient(70% 60% at 30% 20%,var(--board-2),transparent 70%),var(--board);color:var(--chalk);padding:110px var(--gutter);position:relative}
.bp-safety::before{content:"";position:absolute;inset:14px;border:3px solid rgba(244,241,230,.12);border-radius:18px 8px 22px 10px;pointer-events:none}
.bp-safety .bp-no{color:#F5D06B}
.bp-safety em{color:#F5D06B}
.bp-safety .bp-note{color:var(--chalk-soft)}
.bp-safe-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.bp-safe{padding:24px 22px;border:2px dashed rgba(244,241,230,.32);border-radius:22px 10px 24px 12px;display:grid;align-content:start;gap:8px;transition:border-color .3s,background .3s}
.bp-safe:hover{border-color:rgba(244,241,230,.7);background:rgba(244,241,230,.04)}
.bp-safe .bp-ico{width:58px;height:58px}
.bp-safe h3{font-size:26px;color:var(--chalk)}
.bp-safe p,.bp-safe ol{color:var(--chalk-soft);font-size:15.5px}
.bp-safe ol{margin:0;padding-left:22px;display:grid;gap:6px}
.bp-safe-wide{grid-row:span 2}
@media (max-width:980px){.bp-safe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bp-safe-wide{grid-row:auto;grid-column:1/-1}}
@media (max-width:620px){.bp-safe-grid{grid-template-columns:1fr}}

/* VISIT FORM */
.bp-visit{padding:110px var(--gutter)}
.bp-visit-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.bp-form{background:var(--card);padding:clamp(20px,3vw,34px);display:grid;gap:16px;position:relative}
.bp-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bp-form label{display:grid;gap:6px;font-weight:700;font-size:15px}
.bp-form input[aria-invalid="true"]{border-color:var(--red);background:#FFF0EE}
.bp-check{display:flex!important;grid-template-columns:none;align-items:center;gap:10px!important;cursor:pointer}
.bp-check input{width:22px;height:22px;min-height:0;padding:0;accent-color:var(--red);appearance:auto;-webkit-appearance:checkbox}
.bp-hint{font-size:14.5px;color:var(--green);font-weight:700;min-height:1.4em}
.bp-msg{font-weight:700;min-height:1.4em}
.bp-msg.err{color:var(--red)}
.bp-msg.ok{color:var(--green)}
.bp-form button{justify-self:start}
.bp-burst{position:absolute;pointer-events:none;width:120px;height:120px;right:24px;bottom:18px}
.bp-visit-side{display:grid;gap:14px;color:var(--ink-soft)}
.bp-hand-big{font-size:44px}
.bp-visit-side address{font-style:normal;font-weight:700;color:var(--ink)}
.bp-small{font-size:14px;color:var(--muted)}
@media (max-width:820px){.bp-visit-grid{grid-template-columns:1fr}}
@media (max-width:560px){.bp-row{grid-template-columns:1fr}.bp-card-photo,.bp-fact-photo{aspect-ratio:16/9}}

/* FOOTER */
.bp-foot{background:var(--ink);color:var(--chalk);padding:70px var(--gutter) 90px;overflow:hidden}
.bp-foot-big{font-family:var(--display);font-weight:700;font-size:clamp(70px,16vw,240px);line-height:.9;color:#F5D06B;font-variation-settings:"SOFT" 100,"WONK" 1;white-space:nowrap}
@media (max-width:560px){.bp-foot-big{font-size:13.5vw}}
.bp-foot-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;margin-top:26px;font-size:15px}
.bp-foot nav{display:flex;flex-wrap:wrap;gap:18px}
.bp-foot nav a{text-decoration:none;opacity:.85}
.bp-foot nav a:hover{opacity:1;color:#F5D06B}

.concept-badge{position:fixed;left:14px;bottom:14px;z-index:60;font-size:12px;font-weight:800;text-decoration:none;background:rgba(43,35,80,.92);color:var(--paper);padding:8px 12px;border-radius:999px}
.concept-badge:hover{background:var(--red)}

.rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .bp-hero{height:auto}
  .bp-pin{position:relative;height:auto;min-height:100svh}
  .bp-hero-copy{animation:none}
  .bp-now-hint{display:none}
  .bp-btn,.bp-card,.bp-facts li,.bp-hand-h,.bp-hand-m,.bp-stop,.bp-stop .bp-ico{transition:none}
  html.js .draw-me .ln{stroke-dashoffset:0}
  html.js .draw-me .dt{opacity:1}
  html.js .bp-tl-ink{stroke-dashoffset:0}
}
