/* AIMducate splash (Nov 1, 2026) — shown once per session on the home page */
@font-face{font-family:"AIM Wordmark";src:url(../fonts/montserrat-wordmark.woff2) format("woff2");font-weight:100 900;font-display:block}
html.has-splash,html.has-splash body{overflow:hidden}
html.no-splash .splash{display:none!important}
.splash{
  --u:min(1vw,1.7778vh);
  --cw:calc(39 * var(--u));             /* cluster width */
  --ch:calc(var(--cw) * 0.9135);        /* cluster height (624x570 art) */
  --F:calc(100vh - 0.156 * var(--ch));  /* floor line, from the top */
  --H:max(calc(var(--F) / 0.817), calc((100vh - var(--F)) / 0.183), calc(100vw / 1.5474));
  --bgx:0.47;
  position:fixed;inset:0;z-index:1000;overflow:hidden;background:#b9b9b7;
  color:#343434;font-family:"Assistant",system-ui,sans-serif;
  transition:transform .95s cubic-bezier(.7,0,.25,1),opacity .95s ease;
  cursor:pointer;outline:none;
}
@supports (height:100svh){.splash{--F:calc(100svh - 0.156 * var(--ch));--H:max(calc(var(--F) / 0.817), calc((100svh - var(--F)) / 0.183), calc(100vw / 1.5474))}}
.splash.is-leaving{transform:translateY(-100%);opacity:.6;pointer-events:none}
.splash .wall{position:absolute;height:var(--H);width:calc(var(--H) * 1.5474);top:calc(var(--F) - 0.817 * var(--H));left:calc(50vw - var(--bgx) * var(--H) * 1.5474);
  background:url(../img/splash/wall.webp) center/100% 100% no-repeat;transform-origin:62% 70%;}
@media (max-width:1100px){.splash .wall{background-image:url(../img/splash/wall-960.webp),url(../img/splash/wall.webp)}}
.splash .stage{position:absolute;left:50%;top:0;bottom:0;width:calc(100 * var(--u));transform:translateX(-50%)}
.splash .px{position:absolute;transition:transform .6s cubic-bezier(.2,.7,.3,1);will-change:transform}

/* logo lockup, drawn in the logo file's own 728-unit grid */
.splash .lockup-wrap{left:16.4%;top:13.5%;width:31.1%;transform:translate(calc(var(--mx,0) * -6px),calc(var(--my,0) * -4px))}
.splash .lockup{position:relative;width:100%;aspect-ratio:728/492;container-type:inline-size}
.splash .lockup .mark,.splash .lockup .balloon{position:absolute;left:35.99%;top:5.08%;width:62.91%;height:auto;display:block}
.splash .lockup .balloon{transform-origin:56% 40%}
.splash .lockup .mark,.splash .lockup .balloon{filter:drop-shadow(0 .5cqw .7cqw rgba(40,40,40,.13))}
.splash .lockup svg{position:absolute;inset:0;width:100%;height:auto;overflow:visible}
.splash .wm{font-family:"AIM Wordmark","Montserrat","Assistant",sans-serif;font-size:50px}
.splash .wm-aim{fill:#16796f;font-weight:700;letter-spacing:3.5px}
.splash .wm-ducate{fill:#d6733a;font-weight:400;letter-spacing:4px}
.splash .tagline{position:absolute;left:12.5%;top:85.2%;margin:0;font-size:6.5cqw;line-height:1;font-weight:400;letter-spacing:.01em;white-space:nowrap;color:#343434}

/* message */
.splash .copy-wrap{left:15.3%;top:52.5%;width:40%;transform:translate(calc(var(--mx,0) * -4px),calc(var(--my,0) * -3px))}
.splash .rule{display:block;width:calc(6.25 * var(--u));height:max(3px,calc(.55 * var(--u)));background:#d87266;border-radius:1px;margin:0 0 calc(2.1 * var(--u));transform-origin:left center}
.splash .lines{margin:0;font-size:calc(2.95 * var(--u));line-height:1.18;font-weight:700;letter-spacing:-.005em}
.splash .ln{display:block;overflow:hidden;padding-bottom:.06em}
.splash .ln>span{display:inline-block}
.splash .l1{color:#343434}
.splash .l2{color:#12807a}
.splash .motto{margin:calc(3.3 * var(--u)) 0 0;font-size:calc(2.95 * var(--u));line-height:1.1;font-weight:400;letter-spacing:.02em;color:#d75405;display:flex;gap:.32em;flex-wrap:wrap}
.splash .motto>span{display:inline-block;overflow:hidden;padding-bottom:.06em}
.splash .motto>span>span{display:inline-block}
.splash .enter{margin-top:calc(3.4 * var(--u));display:inline-flex;align-items:center;gap:.55em;font:600 calc(1.15 * var(--u))/1 "Assistant",sans-serif;font-size:max(15px,calc(1.15 * var(--u)));letter-spacing:.14em;text-transform:uppercase;color:#fff;background:#2a7f7b;border:0;border-radius:999px;padding:.95em 1.7em;cursor:pointer;box-shadow:0 8px 22px rgba(7,76,75,.22);transition:background .2s,transform .2s}
.splash .enter:hover{background:#074c4b;transform:translateY(-2px)}
.splash .enter:focus-visible,.splash .skip-intro:focus-visible{outline:3px solid #d75405;outline-offset:3px}
.splash .enter svg{width:1.15em;height:1.15em}

/* her art cluster */
.splash .cluster-wrap{left:46%;bottom:0;width:39%;transform:translate(calc(var(--mx,0) * 12px),calc(var(--my,0) * 6px))}
.splash .cluster{display:block;width:100%;height:auto;transform-origin:50% 92%}

.splash .skip-intro{position:absolute;top:max(14px,calc(1.6 * var(--u)));right:max(16px,calc(2 * var(--u)));z-index:3;background:rgba(255,255,255,.55);border:0;border-radius:999px;padding:.45em 1em;font:600 14px/1.2 "Assistant",sans-serif;letter-spacing:.06em;color:#343434;cursor:pointer;backdrop-filter:blur(4px)}
.splash .skip-intro:hover{background:rgba(255,255,255,.85)}

/* ---------- entrance (about 3.5 s) ---------- */
@keyframes sp-wall{from{transform:scale(1.07);filter:brightness(.88) saturate(.9)}to{transform:none;filter:none}}
@keyframes sp-fade-up{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes sp-balloon-up{0%{opacity:0;transform:translate(-3%,34%) scale(.9) rotate(-4deg)}35%{opacity:1}100%{opacity:1;transform:none}}
@keyframes sp-balloon-bob{0%,100%{transform:none}50%{transform:translateY(-2.2%) rotate(1.3deg)}}
@keyframes sp-reveal{from{transform:translateY(108%)}to{transform:none}}
@keyframes sp-wipe{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
@keyframes sp-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes sp-pop{0%{opacity:0;transform:translateY(5%) scale(.82)}55%{opacity:1;transform:translateY(-1%) scale(1.025)}78%{transform:scale(.995)}100%{opacity:1;transform:none}}
@keyframes sp-in{from{opacity:0}to{opacity:1}}

.splash .wall{animation:sp-wall 3.6s cubic-bezier(.2,.6,.2,1) both}
.splash .mark{animation:sp-fade-up 1s cubic-bezier(.2,.7,.2,1) .25s both}
.splash .balloon{animation:sp-balloon-up 2.1s cubic-bezier(.22,.8,.25,1) .55s both,sp-balloon-bob 6.5s ease-in-out 2.7s infinite}
.splash .wm{animation:sp-wipe .8s cubic-bezier(.2,.7,.2,1) 1.05s both}
.splash .wm-ducate{animation:sp-in .7s ease 1.3s both}
.splash .tagline{animation:sp-fade-up .8s cubic-bezier(.2,.7,.2,1) 1.5s both}
.splash .rule{animation:sp-rule .7s cubic-bezier(.6,0,.2,1) 1.8s both}
.splash .l1>span{animation:sp-reveal .8s cubic-bezier(.2,.75,.2,1) 2.0s both}
.splash .l2>span{animation:sp-reveal .8s cubic-bezier(.2,.75,.2,1) 2.2s both}
.splash .motto>span>span{animation:sp-reveal .7s cubic-bezier(.2,.75,.2,1) both}
.splash .motto>span:nth-child(1)>span{animation-delay:2.55s}
.splash .motto>span:nth-child(2)>span{animation-delay:2.72s}
.splash .motto>span:nth-child(3)>span{animation-delay:2.89s}
.splash .cluster{animation:sp-pop 1.5s cubic-bezier(.2,.75,.25,1) .85s both}
.splash .enter{animation:sp-fade-up .8s cubic-bezier(.2,.7,.2,1) 3.25s both}
.splash .skip-intro{animation:sp-in .6s ease .4s both}

/* ---------- phones and tall screens: logo and words above, art below ---------- */
@media (max-aspect-ratio:5/4),(max-width:760px){
  .splash{--cw:min(94vw,calc(44svh / .9135),620px);--bgx:0.56}
  .splash .stage{left:0;right:0;bottom:0;top:0;width:auto;height:auto;transform:none;display:flex;flex-direction:column;align-items:center;text-align:center;padding:max(7svh,56px) 6vw 0}
  .splash .px{position:relative;left:auto;top:auto;bottom:auto}
  .splash .lockup-wrap{width:min(74vw,calc(30svh * 728 / 492),460px)}
  .splash .copy-wrap{width:auto;margin-top:2.2svh;display:flex;flex-direction:column;align-items:center}
  .splash .rule{width:56px;height:4px;margin:0 auto 1.6svh}
  .splash .lines{font-size:clamp(22px,min(6.6vw,3.3svh),40px)}
  .splash .motto{font-size:clamp(20px,min(6vw,3svh),36px);margin-top:1.6svh;justify-content:center}
  .splash .enter{margin-top:2.4svh;font-size:15px}
  .splash .cluster-wrap{position:absolute!important;left:50%;bottom:0;width:var(--cw);margin-left:calc(var(--cw) / -2)}
}
@media (max-aspect-ratio:5/4) and (max-height:700px),(max-width:760px) and (max-height:700px){
  .splash{--cw:min(86vw,calc(38svh / .9135))}
  .splash .stage{padding-top:max(5svh,54px)}
  .splash .lockup-wrap{width:min(62vw,calc(26svh * 728 / 492))}
}

/* ---------- reduced motion: no movement, a calm fade ---------- */
@media (prefers-reduced-motion:reduce){
  .splash,.splash *{animation:none!important;transition:opacity .5s ease!important}
  .splash{animation:sp-in .5s ease both!important}
  .splash.is-leaving{transform:none;opacity:0}
  .splash .px{transform:none!important}
}
html.a11y-still .splash *{animation:none!important}
html.a11y-still .splash .px{transform:none!important}

/* second background: soft glow fades into window light */
.splash .wall::before{content:"";position:absolute;inset:0;background:url(../img/splash/wall-glow.webp) center/100% 100% no-repeat;opacity:0;pointer-events:none}
.splash .wall{overflow:hidden}
@keyframes sp-glow{0%,25%{opacity:1}100%{opacity:0}}
.splash .wall::before{animation:sp-glow 4.8s ease-in-out both}
@media (prefers-reduced-motion:reduce){.splash .wall::before{animation:none;opacity:0}}
