
/* GrimWa - white page, colour from the crest */
:root{
  --sky:#00A3E1; --deep:#006E9B; --ink:#1E293B; --slate:#51607A;
  --gold:#FFC107; --gold-deep:#E0A700; --ember:#E4342F; --leaf:#12A594;
  --line:#E3EAF2; --tint-sky:#E9F7FE; --tint-gold:#FFF8E6; --tint-mist:#F6F9FC;
  --r:18px; --r-lg:28px; --pill:999px;
  --shadow:0 6px 22px rgba(30,41,59,.07);
  --shadow-lg:0 20px 48px rgba(30,41,59,.14);
  --wrap:1140px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:#44506A;
  font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'Baloo 2',Fredoka,Inter,sans-serif;color:var(--ink);margin:0 0 .5em;font-weight:600}
h1{font-size:clamp(2.3rem,4.8vw,3.6rem);line-height:1.1}
h2{font-size:2.1rem;line-height:1.2;color:var(--deep)}
h3{font-size:1.35rem;line-height:1.3}
p{margin:0 0 1.1em}
a{color:var(--deep)}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}
.wrap--narrow{max-width:780px}
.center{text-align:center}
.section{padding:92px 0}
.section--sky{background:var(--tint-sky)}
.section--gold{background:var(--tint-gold)}
.section--mist{background:var(--tint-mist)}
.lede{font-size:1.15rem;color:var(--slate)}

/* announcement */
.ann{background:var(--ink);color:#fff;text-align:center;font-size:.95rem;padding:11px 16px}
.ann strong{color:var(--gold)}


/* the wizard and his grimoire */
.wiz-wrap{position:relative;width:100%;max-width:520px;margin:0 auto}
.wiz-wrap--flip .wiz{transform:scaleX(-1)}
.wiz-wrap--book .wizard{display:none}
.wiz-wrap--book .wiz{transform:translateX(-14%) scale(1.12)}
.wiz{width:100%;height:auto;overflow:visible}
.wizard{animation:wiz-bob 5s ease-in-out infinite;transform-origin:150px 430px}
@keyframes wiz-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.wand{transform-origin:180px 344px;animation:wand-flick 4s ease-in-out infinite}
@keyframes wand-flick{0%,72%,100%{transform:rotate(0)}80%{transform:rotate(-9deg)}88%{transform:rotate(4deg)}}
.tip{transform-origin:272px 268px;animation:tip-pulse 4s ease-in-out infinite}
@keyframes tip-pulse{0%,70%{transform:scale(1);opacity:.9}80%{transform:scale(1.5);opacity:1}100%{transform:scale(1);opacity:.9}}
.grimoire{transform-origin:324px 187px;animation:book-float 6s ease-in-out infinite}
@keyframes book-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-22px) rotate(2.5deg)}}
.halo{animation:halo 6s ease-in-out infinite}
@keyframes halo{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.06)}}
.eyes{transform-box:fill-box;transform-origin:center;animation:blink 6.5s ease-in-out infinite}
@keyframes blink{0%,93%{transform:scaleY(1)}95%{transform:scaleY(.08)}97%,100%{transform:scaleY(1)}}
.spark{transform-box:fill-box;transform-origin:center;animation:twinkle 3.4s ease-in-out infinite}
.spark--2{animation-delay:.8s}.spark--3{animation-delay:1.6s}.spark--4{animation-delay:2.4s}
@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.6)}50%{opacity:1;transform:scale(1.15)}}
@media(prefers-reduced-motion:reduce){
  .wizard,.wand,.tip,.grimoire,.halo,.spark,.eyes{animation:none!important}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;min-width:52px;
  padding:13px 28px;border-radius:14px;font-family:'Baloo 2',Fredoka,sans-serif;font-size:1.05rem;
  font-weight:600;border:2.5px solid transparent;cursor:pointer;text-decoration:none;
  transition:transform .16s,box-shadow .16s,background .16s}
.btn:hover{text-decoration:none;transform:translateY(-2px)}
.btn--primary{background:#0079A8;color:#fff;box-shadow:0 4px 0 #005B7E}
.btn--primary:hover{background:#008BC2;color:#fff;box-shadow:0 6px 0 #005B7E}
.btn--gold{background:var(--gold);color:var(--ink);box-shadow:0 4px 0 var(--gold-deep)}
.btn--gold:hover{box-shadow:0 6px 0 var(--gold-deep)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:#fff}

/* nav */
.nav{position:sticky;top:0;z-index:70;background:#fff;border-bottom:1px solid transparent;transition:.2s}
.nav.scrolled{box-shadow:0 2px 14px rgba(30,41,59,.09);border-color:var(--line)}
.nav-row{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:96px}
.brand img{height:62px;width:auto}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a{color:var(--ink);font-weight:500;font-size:1rem;text-decoration:none;
  display:inline-flex;align-items:center;min-height:44px}
.nav-links a:hover{color:var(--deep)}
.nav-links a[aria-current=page]{color:var(--deep);font-weight:600}
.burger{display:none;width:48px;height:48px;border:0;background:none;flex-direction:column;
  justify-content:center;gap:5px;padding:12px;cursor:pointer}
.burger span{height:3px;background:var(--ink);border-radius:3px}
.mobile{display:none;flex-direction:column;gap:8px;padding:0 24px 22px}
.mobile.open{display:flex}
.mobile a{min-height:48px;display:flex;align-items:center;font-weight:600;text-decoration:none;color:var(--ink)}
@media(max-width:940px){.nav-links{display:none}.burger{display:flex}.nav-cta{display:none}}

/* hero */
.hero{padding:58px 0 24px;background:#fff}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.hero-grid--solo{grid-template-columns:1fr;max-width:760px}
@media(max-width:940px){.hero-grid{grid-template-columns:1fr;text-align:center}
  .hero .lede{margin-inline:auto}.hero-cta{justify-content:center}}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}
.hero .lede{max-width:46ch}
.slogan{font-family:'Baloo 2',Fredoka,sans-serif;font-weight:600;font-size:1.25rem;
  color:var(--gold-deep);margin:0 0 8px;letter-spacing:.01em}

/* audience routes */
.routes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:940px){.routes{grid-template-columns:1fr}}
.route{background:#0079A8;border:1px solid #0079A8;border-radius:var(--r-lg);padding:32px;
  box-shadow:var(--shadow);display:flex;flex-direction:column;text-decoration:none}
.routes .route:nth-child(2){background:#0B7F72;border-color:#0B7F72}
.routes .route:nth-child(3){background:#F0A500;border-color:#F0A500}
.route:hover{text-decoration:none;transform:translateY(-3px);box-shadow:var(--shadow-lg);transition:.18s}
.route .ico{width:62px;height:62px;border-radius:18px;display:flex;align-items:center;justify-content:center;
  margin-bottom:18px}
.route p{color:var(--slate);margin-bottom:22px}
.route .go{font-family:'Baloo 2',sans-serif;font-weight:600;color:var(--deep);margin-top:auto}

/* three points */
.points{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
@media(max-width:940px){.points{grid-template-columns:1fr}}
.routes .route h3,.routes .route p,.routes .route .go{color:#fff}
.routes .route:nth-child(3) h3,.routes .route:nth-child(3) p,
.routes .route:nth-child(3) .go{color:#1E293B}
.routes .route .ico{background:rgba(255,255,255,.24)}
.routes .route .ico svg{fill:#fff}
.routes .route:nth-child(3) .ico{background:rgba(30,41,59,.14)}
.routes .route:nth-child(3) .ico svg{fill:#1E293B}
.point{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow)}
.point h3{color:var(--deep);margin-bottom:6px}
.point .tag{display:inline-flex;align-items:center;padding:6px 16px;border-radius:var(--pill);
  font-family:'Baloo 2',sans-serif;font-weight:600;font-size:.95rem;margin-bottom:16px}
.point:nth-child(1) .tag{background:var(--tint-sky);color:var(--deep)}
.point:nth-child(2) .tag{background:#E9F9F5;color:#0B7F72}
.point:nth-child(3) .tag{background:var(--tint-gold);color:#8A6200}
.point p{color:var(--slate);margin:0}


/* three pillars: one big word a line, hopping letter by letter */
.pillars{display:grid;gap:8px;max-width:940px;margin:0 auto}
.pillar{display:grid;grid-template-columns:minmax(240px,370px) 1fr;gap:34px;align-items:center;
  padding:30px 0;border-bottom:2px solid var(--line)}
.pillar:last-child{border-bottom:0}
.pillar p{margin:0;font-size:1.25rem;color:var(--slate)}
.pillar-word{font-family:'Baloo 2',Fredoka,sans-serif;font-weight:700;line-height:1;
  font-size:clamp(2.4rem,5.4vw,4.2rem);letter-spacing:-.01em;white-space:nowrap}
.hop span{display:inline-block;animation:hop 2.8s cubic-bezier(.3,.9,.4,1) infinite}
.hop--easy{color:var(--sky)}
.hop--fun{color:#0B7F72}
.hop--eff{color:#E09400}
.hop--com{color:#C62828}
@keyframes hop{0%,62%,100%{transform:translateY(0)}70%{transform:translateY(-16px)}
  78%{transform:translateY(0)}84%{transform:translateY(-6px)}90%{transform:translateY(0)}}
@media(max-width:760px){.pillar{grid-template-columns:1fr;gap:10px;text-align:center}}
@media(prefers-reduced-motion:reduce){.hop span{animation:none}}


.faq{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;position:relative;
  font-family:'Baloo 2',Fredoka,sans-serif;font-size:1.15rem;color:var(--ink);min-height:56px;
  display:flex;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);
  font-size:1.6rem;color:var(--deep);line-height:1}
.faq[open] summary::after{content:"\2013"}
.faq-body{padding:0 0 22px}
.faq-body p{margin:0;color:var(--slate)}

/* split rows */
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
@media(max-width:940px){.split{grid-template-columns:1fr;gap:34px}.split--flip .shot{order:-1}}
.ticks{list-style:none;margin:0 0 26px;padding:0}
.ticks li{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px;color:var(--slate)}
.ticks .t{flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:var(--tint-sky);
  display:flex;align-items:center;justify-content:center;margin-top:2px}
.shot{border-radius:26px;overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--line)}

/* quotes */
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;
  max-width:820px;margin:0 auto}
.quotes--three{max-width:none}
@media(max-width:940px){.quotes{grid-template-columns:1fr}}
.quote{background:#fff;border:1px solid var(--line);border-top:6px solid var(--sky);
  border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow)}
.quotes .quote:nth-child(2){border-top-color:var(--leaf)}
.quotes .quote:nth-child(3){border-top-color:var(--gold)}
.quote blockquote{margin:0 0 14px;font-family:'Baloo 2',sans-serif;font-size:1.15rem;line-height:1.4;color:var(--ink)}
.quote cite{font-style:normal;color:var(--slate);font-size:.92rem}

/* notify */
.notify{background:#0079A8;border-radius:32px;padding:54px 40px;text-align:center}
.notify h2{margin-bottom:10px;color:#fff}
.notify p{color:rgba(255,255,255,.92);max-width:46ch;margin:0 auto 26px}
.nform{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.nform input{min-height:52px;min-width:min(340px,100%);padding:13px 20px;border-radius:14px;
  border:2px solid var(--line);font-family:inherit;font-size:1rem;background:#fff;color:var(--ink)}
.nform input:focus{outline:2px solid var(--sky);outline-offset:1px;border-color:var(--sky)}
.nmsg{margin-top:16px;font-weight:600;color:#0B7F72;display:none}
.nmsg.show{display:block}

/* placeholders */
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;
  border:2px dashed #C6D0DE;border-radius:var(--r-lg);background:repeating-linear-gradient(
  -45deg,#FBFCFE,#FBFCFE 12px,#F1F5F9 12px,#F1F5F9 24px);padding:22px;color:var(--slate);width:100%}
.ph strong{font-family:'Baloo 2',sans-serif;color:#64748B;font-size:1.05rem}
.ph span{font-size:.9rem}
.ph-tag{display:inline-block;background:#8A93A6;color:#fff;border-radius:var(--pill);
  padding:3px 12px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}

/* footer */
.ft{background:var(--ink);color:rgba(255,255,255,.76);padding:56px 0 26px;font-size:.95rem;margin-top:92px}
.ft a{color:rgba(255,255,255,.76);text-decoration:none}
.ft a:hover{color:#fff}
.ft-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px}
@media(max-width:880px){.ft-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ft-grid{grid-template-columns:1fr}}
.ft h2{color:#fff;font-size:1rem;margin-bottom:14px}
.ft ul{list-style:none;margin:0;padding:0}
.ft li{margin-bottom:9px}
.ft-brand img{height:52px;width:auto;margin-bottom:16px;background:#fff;border-radius:12px;padding:8px 12px}
.ft-base{margin-top:38px;padding-top:20px;border-top:1px solid rgba(255,255,255,.16);font-size:.86rem}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.3,1)}
.reveal.in{opacity:1;transform:none}
.skip{position:absolute;left:-9999px;top:8px;z-index:99}
.skip:focus{left:8px}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
