/* Layout: sunny playground. Racing red bar, bright gold accents, white pages, warm sand sections, real photos from the school. Single light theme to match the brand. */
:root{
  color-scheme:light;
  --red:#ec1626; --red-dark:#c9101e; --red-soft:#fde8e9;
  --gold:#fbe104; --gold-soft:#fff9cc; --gold-ink:#3a3300;
  --sand:#f6eddc; --sand-deep:#e8d6b3; --wood:#9a6a37;
  --ink:#2a2222; --text:#3a3030; --line:#efe6e0; --bg:#ffffff; --foot:#222222;
  --display:"Fredoka One","Arial Rounded MT Bold","Trebuchet MS",system-ui,sans-serif;
  --body:"Mulish",Lato,Helvetica,Arial,sans-serif;
  --hand:"Gochi Hand","Comic Sans MS","Chalkboard SE",cursive;
  --pencil:#3b2f2f;
  --sketch:255px 18px 225px 18px/18px 225px 18px 255px;
  --sketch2:18px 225px 18px 255px/255px 18px 235px 18px;
}
*{box-sizing:border-box}
img[height]{height:auto}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:16.5px;line-height:1.65}
.wrap{width:100%;max-width:1320px;margin:0 auto;padding-left:max(16px, 4vw, env(safe-area-inset-left,0px));padding-right:max(16px, 4vw, env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);font-weight:400;color:var(--ink);line-height:1.1;margin:0;text-wrap:balance}
h1{font-size:clamp(40px,5.6vw,74px)}
h2{font-size:clamp(28px,3.6vw,44px)}
h3{font-size:clamp(21px,2vw,26px)}
.r{color:var(--red)}
p{margin:0}
.lead{font-size:clamp(17px,1.4vw,19px);max-width:60ch}
.prose{display:flex;flex-direction:column;gap:14px;max-width:66ch}
.eyebrow{font-weight:800;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);display:flex;align-items:center;gap:8px}
.eyebrow::before{content:"★";color:var(--gold);font-size:17px;letter-spacing:0;-webkit-text-stroke:1px var(--red)}
.stack{display:flex;flex-direction:column;gap:16px}
section{padding-block:clamp(52px,7vw,92px)}
.tint{background:var(--sand)}
a{color:var(--red);font-weight:700}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-size:18px;padding:11px 26px;border-radius:999px;border:3px solid var(--red);background:var(--red);color:#fff;text-decoration:none;cursor:pointer;transition:transform .15s,background .15s;font-weight:400}
.btn:hover{transform:translateY(-2px);background:var(--red-dark);border-color:var(--red-dark)}
.btn.ghost{background:#fff;color:var(--red)}
.btn.ghost:hover{background:var(--red-soft)}
.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}
.ctas{display:flex;gap:12px;flex-wrap:wrap}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* top + header */
.top{background:var(--red);color:#fff;font-size:13.5px;font-weight:600}
.top a{white-space:nowrap}
.top b{font-weight:800}
.top .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 20px;padding-block:7px}
.top span{display:flex;gap:16px;flex-wrap:wrap}
.top a{color:#fff;font-weight:600;text-decoration:none}
header{background:var(--red);position:sticky;top:env(safe-area-inset-top,0px);z-index:20;box-shadow:0 2px 12px rgba(0,0,0,.12)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:21;background:var(--red)}
header .wrap{display:flex;align-items:center;gap:18px;padding-block:10px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;flex:none}
.logo .badge{width:58px;height:58px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 2px 0 rgba(0,0,0,.08)}
.logo .badge img{width:50px;height:50px}
.logo b{display:block;font-family:var(--display);font-weight:400;font-size:24px;line-height:1;letter-spacing:.01em}
.logo small{display:block;font-weight:700;font-size:13px;opacity:.92;margin-top:3px;font-style:italic}
nav{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
nav a{color:#fff;text-decoration:none;font-weight:800;font-size:15px;padding:8px 12px;border-radius:999px;white-space:nowrap}
nav a:hover{background:rgba(255,255,255,.16)}
nav a[aria-current="page"]{background:#fff;color:var(--red)}
nav a.cta{background:var(--gold);color:var(--gold-ink)}
.menu{display:none;margin-left:auto;font:inherit;font-weight:800;background:#fff;color:var(--red);border:0;border-radius:999px;padding:9px 16px;cursor:pointer}
.banner{background:var(--gold);color:var(--gold-ink);font-weight:800;text-align:center}
.banner .wrap{padding-block:10px}
.banner a{color:var(--gold-ink)}

/* pages */
.page{display:none}
.page.on{display:block;animation:in .35s ease}
@keyframes in{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}
.pagehead{background:var(--sand);padding-block:clamp(40px,5vw,64px)}
.pagehead .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,56px);align-items:center}
.pagehead img:not(.doodle){width:100%;max-width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:28px;border:6px solid #fff;box-shadow:0 10px 30px rgba(80,50,20,.12)}

/* home hero */
.hero{position:relative;min-height:min(78vh,720px);display:grid;align-items:end;overflow:hidden;background:#3a2c1c}
.hero > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,12,8,.72) 0%,rgba(25,12,8,.38) 55%,rgba(25,12,8,.05) 100%)}
.hero .wrap{position:relative;z-index:1;padding-block:clamp(56px,9vw,120px)}
.hero .copy{max-width:640px;display:flex;flex-direction:column;gap:20px;color:#fff}
.hero h1{color:#fff}
.hero h1 span{color:var(--gold)}
.hero .lead{color:#fff;opacity:.95}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:rgba(255,255,255,.95);color:var(--ink);border-radius:999px;padding:5px 13px;font-weight:800;font-size:13.5px}
.chip.gold{background:var(--gold-soft)}
.facts{background:var(--red);color:#fff}
.facts .wrap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding-block:24px}
.facts b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(20px,2vw,25px);line-height:1.15}
.facts span{font-size:14px;opacity:.92}

.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.split.top-align{align-items:start}
.photo{width:100%;max-width:100%;border-radius:28px;object-fit:cover;aspect-ratio:4/3}
.photo.tall{aspect-ratio:4/5}
.duo{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}
.duo img{width:100%;max-width:100%;height:100%;object-fit:cover;border-radius:22px;aspect-ratio:3/4}
.duo img:first-child{aspect-ratio:auto;min-height:100%}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.tile{background:#fff;border:2px solid var(--line);border-radius:24px;padding:22px;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--text);font-weight:400;transition:transform .15s,border-color .15s}
.tile:hover{transform:translateY(-3px);border-color:var(--gold)}
.tile h3{font-size:22px}
.tile .more{margin-top:auto;font-weight:800;color:var(--red)}
.tile .icon{width:52px;height:52px;border-radius:16px;background:var(--gold-soft);display:grid;place-items:center;font-size:26px}

/* classes */
.classes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.class{background:var(--sand);border-radius:28px;padding:26px;display:flex;flex-direction:column;gap:12px}
.tint .class{background-color:#fff}
.class img{width:min(100%,240px);height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:28px;border:6px solid #fff;box-shadow:0 6px 18px rgba(80,50,20,.14);align-self:center}
.class h3{font-size:30px}
.class .age{font-weight:800;color:var(--ink)}
.status{align-self:flex-start;font-weight:800;font-size:13px;border-radius:999px;padding:4px 12px}
.status.open{background:#dff3e6;color:#17713f}.status.ask{background:#fff;color:var(--text)}

/* routine */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.tab{font:inherit;font-family:var(--display);font-size:18px;padding:8px 20px;border-radius:999px;border:3px solid var(--wood);background:#fff;color:var(--wood);cursor:pointer}
.tab[aria-selected="true"]{background:var(--wood);color:#fff}
.timeline{list-style:none;margin:0;padding:8px 22px;background:#fff;border-radius:24px}
.timeline li{display:grid;grid-template-columns:62px 1fr;gap:14px;padding:9px 0;border-top:2px dotted var(--line)}
.timeline li:first-child{border-top:0}
.timeline time{font-weight:800;color:var(--red);font-variant-numeric:tabular-nums}
.timeline .hl{color:var(--ink);font-weight:800}
.callout{background:var(--gold-soft);border-radius:20px;padding:16px 20px;color:var(--ink)}
.callout b{font-family:var(--display);font-weight:400;font-size:19px;display:block;margin-bottom:2px}

/* pillars, staff, gallery */
.pillars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.pillar{border-top:4px solid var(--gold);padding-top:16px;display:flex;flex-direction:column;gap:8px}
.staff{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px}
.person{display:flex;flex-direction:column;gap:8px}
.person img{width:100%;max-width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:22px}
.person b{color:var(--ink);font-size:15.5px}
.person .todo{font-size:13px;font-style:italic;color:#a3928d}
.gallery{columns:3 260px;column-gap:14px}
.gallery img{width:100%;max-width:100%;border-radius:18px;margin-bottom:14px;display:block;break-inside:avoid}

/* extras / cards */
.cards2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.card{background:#fff;border:2px solid var(--line);border-radius:28px;padding:28px;display:flex;flex-direction:column;gap:12px}
.card h3{font-size:28px}
.price{font-family:var(--display);font-size:clamp(40px,5vw,56px);color:var(--red);line-height:1}
.price small{font-family:var(--body);font-weight:800;font-size:15px;color:var(--text)}
.extras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.extra{background:#fff;border:2px solid var(--line);border-radius:22px;padding:18px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.extra .lg{height:70px;width:100%;display:grid;place-items:center start}
.extra img{max-height:70px;max-width:100%;width:auto}
.extra b{color:var(--ink);font-family:var(--display);font-weight:400;font-size:19px}
.ticks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.ticks li{display:flex;gap:12px}
.ticks li::before{content:"★";color:var(--red);flex:none}
.terms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.term{background:#fff;border-radius:18px;padding:14px 18px}
.term b{display:block;font-family:var(--display);font-weight:400;font-size:20px;color:var(--ink)}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:s}
.steps li{background:#fff;border-radius:22px;padding:20px;counter-increment:s;display:flex;flex-direction:column;gap:6px}
.steps li::before{content:counter(s);font-family:var(--display);font-size:22px;width:42px;height:42px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center}
.steps b{color:var(--ink);font-size:17px}

/* forms */
form{background:#fff;border-radius:28px;padding:clamp(20px,3vw,34px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;border:2px solid var(--line)}
form .full{grid-column:1/-1}
fieldset{grid-column:1/-1;border:0;padding:0;margin:8px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
legend{font-family:var(--display);font-size:22px;color:var(--ink);padding:0;margin-bottom:6px}
label{display:block;font-weight:800;font-size:14px;color:var(--ink);margin-bottom:5px}
label .opt{font-weight:600;color:#9a8f8c}
input,select,textarea{font:inherit;width:100%;padding:11px 14px;border:2px solid var(--line);border-radius:14px;background:#fffdf9;color:var(--ink)}
input[type=file]{padding:9px;background:var(--sand)}
textarea{min-height:96px;resize:vertical}
.radios{display:flex;flex-wrap:wrap;gap:8px}
.radios label{display:flex;align-items:center;gap:7px;font-weight:700;margin:0;background:var(--sand);border-radius:999px;padding:7px 14px;cursor:pointer}
.radios input{width:auto;margin:0}
.hint{font-size:13.5px}
.sent{grid-column:1/-1;background:#dff3e6;color:#17713f;font-weight:800;border-radius:14px;padding:13px 16px}
.private{grid-column:1/-1;background:var(--sand);border-radius:16px;padding:12px 16px;font-size:14px}

/* article */
.article{max-width:72ch;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.article h3{margin-top:14px}
.article ul{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px}

/* contact */
.mapcard{border-radius:28px;overflow:hidden;border:2px solid var(--line);background:#fff}
.map{position:relative;aspect-ratio:16/10;max-width:100%;background:var(--sand)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-fallback{position:absolute;inset:0}
.map-fallback > img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}
.map-fallback .pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:96px;height:96px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.25);animation:bob 2.6s ease-in-out infinite}
.map-fallback .pin img{width:64px;height:64px}
@keyframes bob{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,-58%)}}
.mapbar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;padding:16px 20px}
.mapbar b{display:block;color:var(--ink);font-family:var(--display);font-weight:400;font-size:19px}
.mapbar span{font-size:14px}
.mapbar .btn{font-size:16px;padding:8px 18px}
.contact{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}
.contact b{display:block;color:var(--ink);font-size:15px}
.social{display:flex;gap:10px;flex-wrap:wrap}
.social a{display:inline-flex;gap:8px;align-items:center;background:var(--sand);border-radius:999px;padding:7px 14px;text-decoration:none;color:var(--ink)}

footer{background:var(--red);color:#fff;font-size:14.5px;position:relative;z-index:2}
footer .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:28px;padding-block:44px}
footer h4{font-family:var(--display);font-weight:400;color:#fff;font-size:20px;margin:0 0 10px}
footer a{color:#fff;font-weight:600;text-decoration:none}
footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
footer .logo-white{width:200px;max-width:100%;height:auto}
footer .logo-card{display:inline-block;align-self:flex-start;background:#fffdf8;padding:14px 20px 12px;border:2.5px solid var(--pencil);border-radius:var(--sketch);box-shadow:4px 5px 0 rgba(59,47,47,.25);transform:rotate(-2deg)}
footer .logo-card img{width:190px;max-width:100%;height:auto;display:block}
footer a:hover{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:3px;text-underline-offset:4px}
footer h4{color:var(--gold)!important}
footer .base{background:var(--red-dark);color:#fff;border-top:2px solid rgba(255,255,255,.18)}
footer .base .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-block:10px;font-size:13.5px}
.wa{position:fixed;right:max(18px, env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:31;display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:400}
.wa .bubble{width:62px;height:62px;border-radius:50%;background:#25d366;display:grid;place-items:center;border:2.5px solid var(--pencil);box-shadow:3px 4px 0 var(--pencil);transition:transform .3s cubic-bezier(.3,1.7,.5,1)}
.wa .bubble svg{width:34px;height:34px}
.wa .lbl{font-family:var(--hand);font-size:21px;color:var(--ink);background:#fffdf8;border:2px solid var(--pencil);border-radius:var(--sketch);padding:4px 12px;transform:rotate(-3deg);opacity:0;translate:10px 0;transition:opacity .25s,translate .3s;pointer-events:none;white-space:nowrap}
.wa:hover .bubble,.wa:focus-visible .bubble{transform:rotate(-8deg) scale(1.08)}
.wa:hover .lbl,.wa:focus-visible .lbl{opacity:1;translate:0 0}
.wa .bubble{animation:wa-pop .6s 1.2s cubic-bezier(.3,1.7,.5,1) both}
@keyframes wa-pop{from{transform:scale(0) rotate(-30deg)}to{transform:scale(1) rotate(0)}}
.wa-btn{display:inline-flex;align-items:center;gap:10px;background:#25d366!important;color:#0b3d1f!important}
.wa-btn svg{width:22px;height:22px}
@media (max-width:560px){.wa .bubble{width:54px;height:54px}.wa .bubble svg{width:30px;height:30px}}
.draft{position:fixed;left:max(14px, env(safe-area-inset-left,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));background:var(--foot);color:#fff;font-size:12.5px;font-weight:800;border-radius:999px;padding:7px 14px;z-index:30;border-left:4px solid var(--gold)}

@media (max-width:1180px){
  nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--red);flex-direction:column;align-items:stretch;padding:10px max(16px, 4vw) 16px;gap:4px;box-shadow:0 10px 20px rgba(0,0,0,.15)}
  nav.open{display:flex}
  nav a{font-size:17px;padding:11px 14px}
  .menu{display:block}
}
@media (max-width:980px){
  .pagehead .wrap,.split,.cards2{grid-template-columns:1fr}
  .tiles,.pillars,.extras{grid-template-columns:repeat(2,minmax(0,1fr))}
  .classes{grid-template-columns:1fr}
  .class{display:grid;grid-template-columns:140px 1fr;align-items:center;column-gap:20px}
  .class img{grid-row:span 3;width:140px}
  .facts .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  footer .wrap{grid-template-columns:1fr}
}
@media (max-width:560px){
  body{font-size:16px}
  .tiles,.pillars,.extras,.terms,.steps,form,fieldset{grid-template-columns:1fr}
  .class{grid-template-columns:96px 1fr;column-gap:14px}
  .class img{width:96px;grid-row:span 2;border-width:4px}
  .class .status,.class .btn{grid-column:1/-1}
  .logo b{font-size:20px}.logo small{font-size:12px}
  .logo .badge{width:48px;height:48px}.logo .badge img{width:42px;height:42px}
  .top span:first-child{display:none}
}

/* ---------- white header with the real logo ---------- */
header{background:#fff;border-bottom:5px solid var(--red)}
body::before{background:#fff}
header .wrap{align-items:center;padding-block:10px}
.logo{display:block;transition:transform .25s}
.logo img{height:76px;width:auto;display:block}
.logo:hover img{animation:wiggle .6s ease}
nav a{color:var(--ink)}
nav a:hover{background:var(--red-soft);color:var(--red)}
nav a[aria-current="page"]{background:var(--red);color:#fff}
nav a.cta{background:var(--gold);color:var(--gold-ink)}
.menu{background:var(--red);color:#fff}
@keyframes wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}

/* ---------- crayon doodles ---------- */
section,.pagehead,.facts{position:relative;overflow:hidden}
section > .wrap,.pagehead > .wrap,.facts > .wrap{position:relative;z-index:1}
.doodle{position:absolute;pointer-events:none;z-index:0;opacity:.55;overflow:visible}
.doodle path,.doodle circle{fill:none;stroke-linecap:round;stroke-linejoin:round}
.doodle.draw path,.doodle.draw circle{stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}
.doodle.drawn path,.doodle.drawn circle{stroke-dashoffset:0;transition:stroke-dashoffset 1.6s cubic-bezier(.6,.1,.3,1)}
.doodle.float{animation:float 7s ease-in-out infinite}
.doodle.spin{animation:spin 40s linear infinite}
@keyframes float{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-10px) rotate(calc(var(--r,0deg) + 4deg))}}
@keyframes spin{to{transform:rotate(360deg)}}
.hero .doodle{opacity:.85;z-index:1}
@media (max-width:760px){.hero .doodle{display:none}}
.tint,.pagehead{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cg fill='none' stroke='%23ec1626' stroke-width='2' stroke-linecap='round' opacity='.06'%3E%3Cpath d='M20 40c10-14 22 14 32 0s22 14 32 0'/%3E%3Cpath d='M170 60l8 16 18 2-13 12 3 18-16-9-16 9 3-18-13-12 18-2z'/%3E%3Cpath d='M60 190c0-14 22-14 22 0s-30 18-30 0 38-24 38 0'/%3E%3Ccircle cx='210' cy='200' r='10'/%3E%3Cpath d='M120 130l10 8-10 8 10 8'/%3E%3C/g%3E%3C/svg%3E")}

/* hand-drawn crayon underline on highlighted words */
.r{background:linear-gradient(transparent,transparent) ,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'%3E%3Cpath d='M3 9C40 3 80 12 120 6S180 5 197 8' fill='none' stroke='%23fbe104' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat left 92%/0% .32em;padding-bottom:.06em;transition:background-size .9s cubic-bezier(.6,.1,.3,1) .2s}
.r.lit{background-size:auto,100% .32em}
.hero h1 span{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'%3E%3Cpath d='M3 9C40 3 80 12 120 6S180 5 197 8' fill='none' stroke='%23ec1626' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat left 96%/0% .28em;transition:background-size 1s cubic-bezier(.6,.1,.3,1) .4s}
.hero h1 span.lit{background-size:100% .28em}

/* gentle movement */
.reveal{transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .8s}
.reveal.pre{transform:translateY(18px);opacity:.35}
.class img{transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.class:hover img{transform:translateY(-6px) rotate(-3deg) scale(1.03)}
.class:nth-child(2):hover img{transform:translateY(-6px) rotate(3deg) scale(1.03)}
.btn:hover{animation:jiggle .45s ease}
@keyframes jiggle{0%,100%{transform:translateY(-2px) rotate(0)}30%{transform:translateY(-2px) rotate(-2deg)}60%{transform:translateY(-2px) rotate(2deg)}}
.tile .icon{transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.tile:hover .icon{transform:rotate(-10deg) scale(1.15)}
.gallery img,.photo,.pagehead img,.duo img{transition:transform .5s ease}
.gallery img:hover,.duo img:hover{transform:rotate(-1deg) scale(1.02)}
.hero > img{animation:zoom 22s ease-in-out infinite alternate}
@keyframes zoom{from{transform:scale(1)}to{transform:scale(1.07)}}

@media (max-width:1180px){nav{background:#fff;border-bottom:5px solid var(--red)}}
@media (max-width:560px){.logo img{height:56px}.doodle.small-hide{display:none}}
@media (prefers-reduced-motion:reduce){.doodle.draw{clip-path:none}.reveal.pre{transform:none;opacity:1}.r{background-size:auto,100% .32em}.hero h1 span{background-size:100% .28em}}

/* ================= playful sketchbook layer ================= */
html,body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cg transform='rotate(-45 18 18)'%3E%3Cpath d='M18 1 L23 10 H13 Z' fill='%23f6dcb0' stroke='%233b2f2f' stroke-width='1.4' stroke-linejoin='round'/%3E%3Cpath d='M18 1 L19.6 4 H16.4Z' fill='%233b2f2f'/%3E%3Crect x='13' y='10' width='10' height='20' fill='%23fbe104' stroke='%233b2f2f' stroke-width='1.4'/%3E%3Cpath d='M16.3 10v20M19.7 10v20' stroke='%23e0c200' stroke-width='1'/%3E%3Crect x='13' y='30' width='10' height='4' rx='1.5' fill='%23f29aa0' stroke='%233b2f2f' stroke-width='1.2'/%3E%3C/g%3E%3C/svg%3E") 3 3,auto}
a,a *,button,button *,label,select,.btn,.tab,.tile,.tile *,.menu,.chip,.taped,[role=tab],summary,input[type=radio],input[type=file]{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cg transform='rotate(-45 18 18)'%3E%3Cpath d='M18 1 L23 10 H13 Z' fill='%23ec1626' stroke='%233b2f2f' stroke-width='1.4' stroke-linejoin='round'/%3E%3Crect x='13' y='10' width='10' height='22' rx='2' fill='%23ec1626' stroke='%233b2f2f' stroke-width='1.4'/%3E%3Crect x='13' y='15' width='10' height='9' fill='%23fbe104' stroke='%233b2f2f' stroke-width='1.2'/%3E%3Cpath d='M15 19h6' stroke='%233b2f2f' stroke-width='1'/%3E%3C/g%3E%3C/svg%3E") 3 3,pointer!important}
input,textarea{cursor:text}
body{background-color:#fffdf8}
.eyebrow{font-family:var(--hand);font-size:clamp(20px,1.8vw,24px);letter-spacing:.01em;text-transform:none;font-weight:400;transform:rotate(-2deg);transform-origin:left}
.eyebrow::before{-webkit-text-stroke:0}
/* hand-drawn outlines */
.card,.tile,.extra,.steps li,.term,.callout,form,.mapcard,.timeline,.class,.chip,.status,.social a{border:2.5px solid var(--pencil)!important;border-radius:var(--sketch)!important}
.tile:nth-child(even),.steps li:nth-child(even),.term:nth-child(even),.class:nth-child(2),.extra:nth-child(even){border-radius:var(--sketch2)!important}
.tile,.class,.extra,.steps li,.card{box-shadow:5px 6px 0 rgba(59,47,47,.12)}
.tile:hover,.class:hover{transform:translateY(-4px) rotate(-.6deg);box-shadow:7px 9px 0 rgba(236,22,38,.25)}
.btn{border-color:var(--pencil)!important;border-radius:var(--sketch)!important;box-shadow:3px 4px 0 var(--pencil)}
.btn:hover{box-shadow:5px 6px 0 var(--pencil)}
.btn:active{transform:translate(2px,3px);box-shadow:1px 1px 0 var(--pencil)}
.hero .btn.ghost{border-color:#fff!important;box-shadow:3px 4px 0 rgba(0,0,0,.35)}
input,select,textarea{border:2px solid var(--pencil)!important;border-radius:var(--sketch2)!important;background:#fff}
input:focus,select:focus,textarea:focus{outline:3px solid var(--gold);outline-offset:1px}
nav a{border-radius:var(--sketch)!important}
.class img{border-radius:var(--sketch2)!important;border:3px solid var(--pencil)!important}
.person img{border-radius:var(--sketch);border:3px solid var(--pencil)}
.person:nth-child(even) img{border-radius:var(--sketch2);transform:rotate(1.5deg)}
.person:nth-child(odd) img{transform:rotate(-1.5deg)}
.extra img{border:0!important}
/* taped photos */
.taped{position:relative;display:block;margin:0;transform:rotate(var(--tilt,-1.6deg));transition:transform .4s cubic-bezier(.3,1.5,.5,1)}
.taped:hover{transform:rotate(0) scale(1.01)}
.taped > img{display:block;border:8px solid #fff!important;border-radius:6px!important;box-shadow:4px 8px 22px rgba(59,47,47,.18)!important}
.taped::before,.taped::after{content:"";position:absolute;width:110px;height:30px;background:rgba(251,225,4,.72);top:-12px;z-index:2;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.taped::before{left:12%;transform:rotate(-8deg)}
.taped::after{right:12%;transform:rotate(7deg);background:rgba(236,22,38,.55)}
.taped.one::after{display:none}
section:not(.tint):not(.hero){background-color:transparent}
.facts{background:var(--red)!important}
/* little handwritten notes */
.note{font-family:var(--hand);font-size:clamp(20px,1.8vw,25px);color:var(--red);display:inline-flex;align-items:center;gap:8px;transform:rotate(-4deg)}
.note svg{width:60px;height:40px;flex:none}
.hero .note{color:var(--gold)}
/* sticky header that tucks away */
header{transition:transform .38s cubic-bezier(.3,.8,.3,1),box-shadow .3s}
header.tuck{transform:translateY(calc(-100% - 18px));box-shadow:none}
/* star burst on click */
.burst{position:fixed;pointer-events:none;z-index:60;font-size:16px;color:var(--gold);-webkit-text-stroke:1px var(--red);animation:burst .7s ease-out forwards}
@keyframes burst{from{transform:translate(-50%,-50%) scale(.6);opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.1) rotate(160deg);opacity:0}}
@media (hover:none){html,body,a,button{cursor:auto}}
@media (prefers-reduced-motion:reduce){header.tuck{transform:none}.taped{transform:none}}

/* ---------- crumpled paper + crayon scribbles ---------- */
body{background-color:#fffdf8;background-image:url("/img/paper.jpg");background-size:1000px 1000px;background-blend-mode:multiply}
.tint,.pagehead{background-color:var(--sand)!important;background-image:url("/img/paper.jpg")!important;background-size:1000px 1000px!important;background-blend-mode:multiply!important;background-position:300px 200px!important}
form,.card,.tile,.class,.extra,.steps li,.term,.timeline,.mapcard{background-color:#fff;background-image:none}

/* crayon doodles colour themselves in from left to right */
.doodle{opacity:.92}
img.doodle{max-width:none}
.doodle.draw{clip-path:inset(0 100% 0 0)}
.doodle.drawn{clip-path:inset(0 0 0 0);transition:clip-path 1.3s cubic-bezier(.5,.1,.3,1)}
.hero .doodle{opacity:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.kids-strip{height:150px;background:url("/img/doodles/kids-drawing-strip.png") repeat-x left bottom/auto 150px;margin-top:-10px;position:relative;z-index:1;animation:stroll 60s linear infinite}
@keyframes stroll{to{background-position:-1143px bottom}}
@media (max-width:560px){.kids-strip{height:100px;background-size:auto 100px}@keyframes stroll{to{background-position:-762px bottom}}}

/* ---------- playful menu bar ---------- */
header{background:#fffdf8 url("/img/paper.jpg") 0 0/1000px;border-bottom:0!important}
header::after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:13px;background:url("/img/doodles/header-line.png") repeat-x 0 0/300px 13px;pointer-events:none}
header .wrap{padding-block:12px}
nav{gap:4px}
nav a{position:relative;font-family:var(--display);font-weight:400;font-size:17px;letter-spacing:.01em;color:var(--ink);padding:10px 12px 8px;border-radius:0!important;background:none!important;transition:transform .25s cubic-bezier(.3,1.7,.5,1),color .2s}
nav a::after{content:"";position:absolute;left:4px;right:4px;bottom:0;height:12px;background:url("/img/doodles/nav-underline.png") no-repeat left center/0% 100%;transition:background-size .35s cubic-bezier(.6,.1,.3,1)}
nav a::before{content:"";position:absolute;left:50%;top:-30px;width:34px;height:34px;margin-left:-17px;background:var(--icon) no-repeat center/contain;opacity:0;transform:translateY(10px) scale(.4) rotate(-20deg);transition:opacity .2s,transform .35s cubic-bezier(.3,1.8,.5,1);pointer-events:none}
nav a:hover{color:var(--red);transform:translateY(2px) rotate(-2deg)}
nav a:nth-child(even):hover{transform:translateY(2px) rotate(2deg)}
nav a:hover::after{background-size:100% 100%}
nav a:hover::before{opacity:1;transform:translateY(0) scale(1) rotate(0)}
nav a[aria-current="page"]{color:var(--red)!important}
nav a[aria-current="page"]::after{left:-8px;right:-8px;top:-4px;bottom:-6px;height:auto;background:url("/img/doodles/nav-circle.png") no-repeat center/100% 100%}
nav a.cta{color:var(--gold-ink)!important;padding:12px 22px 10px;margin-left:8px;transform:rotate(-3deg);background:url("/img/doodles/nav-blob.png") no-repeat center/100% 100%!important}
nav a.cta::after{display:none}
nav a.cta:hover{transform:rotate(2deg) scale(1.06);animation:jiggle .45s ease}
nav a[href="/"]{--icon:url("/img/doodles/house.png")}
nav a[href="/about/"]{--icon:url("/img/doodles/heart.png")}
nav a[href="/our-classes-claremont-preschool/"]{--icon:url("/img/doodles/star.png")}
nav a[href="/curriculum-routine/"]{--icon:url("/img/doodles/sun.png")}
nav a[href="/application-and-registration/"]{--icon:url("/img/doodles/crayon-red.png")}
nav a[href="/application-for-holiday-club/"]{--icon:url("/img/doodles/rainbow.png")}
nav a[href="/parents/"]{--icon:url("/img/doodles/kid.png")}
nav a[href="/contact/"]:not(.cta){--icon:url("/img/doodles/flower-red.png")}
nav a.cta[href]{--icon:url("/img/doodles/bird.png")}
.menu{font-family:var(--display);font-weight:400;font-size:18px;background:url("/img/doodles/nav-blob.png") no-repeat center/100% 100%!important;color:var(--gold-ink)!important;padding:10px 22px;transform:rotate(-2deg)}
@media (max-width:1180px){
  nav{background:#fffdf8 url("/img/paper.jpg") 0 0/1000px!important;border-bottom:0!important;padding-top:18px!important}
  nav a{font-size:20px;padding:10px 12px 10px 58px;text-align:left}
  nav a::before{opacity:1;left:12px;top:50%;margin:-17px 0 0;transform:none}
  nav a::after{left:56px;right:auto;width:160px}
  nav a[aria-current="page"]::after{left:56px;right:auto;top:auto;bottom:0;width:160px;height:12px;background:url("/img/doodles/nav-underline.png") no-repeat left center/100% 100%}
  nav a.cta{align-self:flex-start;margin:6px 0 0;padding:12px 26px 12px 60px}
}

/* ---------- random crayon scatter across the whole page ---------- */
main{position:relative}
#scatter{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
#scatter img{position:absolute;max-width:none}
#scatter i{position:absolute;display:block;border-radius:50%}
#scatter b{position:absolute;display:block;height:4px;border-radius:3px}
section > .wrap,.pagehead > .wrap,.facts > .wrap{z-index:2}

.facts span{display:block;text-wrap:balance}
.lead,.prose p,.tile p,.class p,.pillar p{text-wrap:pretty}
.hi-note{margin:-4px 0 0 64px}
.hi-note svg{width:60px;height:50px;margin-top:-30px}

.opt-tag{font-family:var(--hand);font-weight:400;font-size:17px;color:var(--red);margin-left:6px;display:inline-block;transform:rotate(-4deg)}
/* readability: scribbles stay bold in the margins, fade behind the reading column */
#scatter{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(50% - 700px),rgba(0,0,0,.16) calc(50% - 560px),rgba(0,0,0,.16) calc(50% + 560px),#000 calc(50% + 700px),#000 100%);mask-image:linear-gradient(90deg,#000 0,#000 calc(50% - 700px),rgba(0,0,0,.16) calc(50% - 560px),rgba(0,0,0,.16) calc(50% + 560px),#000 calc(50% + 700px),#000 100%)}
@media (max-width:1400px){#scatter{-webkit-mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.16) 10%,rgba(0,0,0,.16) 90%,#000 100%);mask-image:linear-gradient(90deg,#000 0,rgba(0,0,0,.16) 10%,rgba(0,0,0,.16) 90%,#000 100%)}}
.prose p,.lead,.tile p,.class p,.pillar p,.steps li,.article p,.contact li{color:var(--text)}
.hero .lead{color:#fff}
.hint,.person .todo,label .opt{color:#6b5f5d}

/* class icons: animals on a crayon blob, no frame */
@media (max-width:560px){.class{display:flex!important;flex-direction:column}.class img{width:190px!important;align-self:center;grid-row:auto}}
.class img{border:0!important;box-shadow:none!important;border-radius:0!important;object-fit:contain!important;background:none!important;width:min(100%,250px);filter:drop-shadow(0 4px 0 rgba(59,47,47,.08))}

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

[id]{scroll-margin-top:120px}
.page{display:block!important;animation:none}
