/* Home page: theme for the cinema engine plus the Strassage home sections. */
:root{--bg:#1c1838;--accent:#4b3b8a;--accent-ink:#f7f1e8;--shade:#f7f1e8;--shade-ink:#6c6587;--bezel:#efe6d6;--grain:0;--expand-bg:#1c1838}
body.home{background:var(--night)}
.scene,.hero{--muted:rgba(247,241,232,.72)}
.loader{background:var(--night)}
.loader-logo{width:160px;height:auto;animation:breathe 2.4s ease-in-out infinite}
@keyframes breathe{50%{opacity:.6;transform:scale(.97)}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;color:var(--cream);background:var(--night)}
.hero picture,.hero-img{position:absolute;inset:0;width:100%;height:100%}
.hero-img{object-fit:cover;object-position:50% 40%;transform-origin:50% 40%}
.hero-veil{position:absolute;inset:0;background:
  linear-gradient(0deg,rgba(28,24,56,.94) 0%,rgba(28,24,56,.7) 30%,rgba(28,24,56,.18) 62%,rgba(28,24,56,0) 80%),
  linear-gradient(90deg,rgba(28,24,56,.62) 0%,rgba(28,24,56,.2) 48%,rgba(28,24,56,0) 70%),
  linear-gradient(180deg,rgba(28,24,56,.38) 0%,rgba(28,24,56,0) 22%)}
.hero-copy{position:relative;z-index:2;padding-bottom:clamp(56px,10vh,110px);padding-top:140px}
.hero h1{display:grid;gap:18px;max-width:none}
.h1-kick{display:block;font-family:var(--font-body)}
.h1-main{display:block;font-size:clamp(56px,9vw,138px);line-height:.95;max-width:11ch;text-shadow:0 10px 50px rgba(20,16,40,.45)}
.hero .lead{max-width:540px;font-size:clamp(17px,1.5vw,20px);line-height:1.55;margin:22px 0 30px;color:rgba(247,241,232,.92)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.on-photo{color:var(--cream)}
.hero-scroll{position:absolute;right:clamp(16px,4vw,48px);bottom:clamp(40px,8vh,90px);z-index:2;width:30px;height:50px;border:1px solid rgba(247,241,232,.6);border-radius:20px}
.hero-scroll span{position:absolute;left:50%;top:10px;width:4px;height:9px;margin-left:-2px;border-radius:3px;background:var(--gold);animation:wheel 1.8s ease-in-out infinite}
@keyframes wheel{60%{transform:translateY(14px);opacity:0}61%{transform:none;opacity:0}100%{opacity:1}}
@media (max-width:759px){.hero-copy{padding-bottom:48px}.hero-scroll{display:none}.h1-main{font-size:clamp(50px,15vw,74px)}.hero .cta-row .btn{flex:1 1 auto}}

/* ---------- words ---------- */
.scene-words{color:var(--cream);background:var(--night);min-height:82vh;padding:12vh 8vw}
.words-bg{position:absolute;inset:0;background:radial-gradient(900px 520px at 80% 20%,rgba(169,143,220,.28),transparent 60%),radial-gradient(800px 500px at 10% 90%,rgba(216,168,75,.18),transparent 60%),var(--night)}
.words-inner{max-width:1100px;text-align:center}
.words-inner .eyebrow{margin-bottom:26px}
.scene-words [data-split]{font-family:var(--font-display);font-weight:500;font-size:clamp(32px,4.6vw,70px);line-height:1.12}

/* ---------- courses reel (horizontal) ---------- */
.courses-reel .stage{background:radial-gradient(1000px 600px at 70% 30%,rgba(75,59,138,.55),transparent 65%),radial-gradient(700px 500px at 0% 100%,rgba(47,158,155,.16),transparent 60%),var(--night);color:var(--cream)}
.courses-reel .h-ghost{font:500 clamp(120px,19vw,300px)/1 var(--font-display);font-style:italic;color:transparent;-webkit-text-stroke:1px rgba(239,210,154,.28)}
.courses-reel .h-ghost-fill{color:rgba(216,168,75,.12)}
.courses-reel .h-intro{width:min(34vw,420px)}
.courses-reel .h-intro .display{font-size:clamp(42px,4.8vw,72px);margin:14px 0 18px}
.courses-reel .h-intro .muted{color:rgba(247,241,232,.75);margin-bottom:26px}
.h-set{display:contents}
.courses-reel .h-panel .h-img{height:min(64vh,58vw);aspect-ratio:4/5;border-radius:26px;position:relative}
.courses-reel .h-panel img{width:100%;margin-left:0}
.courses-reel .h-link{display:block;border-radius:26px}
.courses-reel .h-panel figcaption{color:var(--cream);font:500 14px var(--font-body);letter-spacing:.04em;text-transform:none;gap:16px}
.courses-reel .h-panel figcaption span:first-child{font:500 24px/1.15 var(--font-display);letter-spacing:0}
.courses-reel .h-panel figcaption span:last-child{color:var(--gold-soft);white-space:nowrap;align-self:flex-end}
.h-shade{position:absolute;inset:0;background:var(--night);pointer-events:none;border-radius:inherit}
.h-more .h-img{display:grid}
.h-more .h-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,24,56,.25),rgba(28,24,56,.88));border-radius:inherit}
.h-more img{position:absolute;inset:0;height:100%}
.h-more-in{position:relative;z-index:2;align-self:end;padding:28px}
.h-more-in .display{font-size:clamp(30px,2.6vw,40px);margin:10px 0 18px;color:var(--cream)}
@media (max-width:759px){.courses-reel .h-intro{width:80vw}.courses-reel .h-panel .h-img{width:76vw;height:auto}}

/* ---------- signature: manual to certificate ---------- */
.sig-stage{background:radial-gradient(1100px 700px at 75% 40%,rgba(75,59,138,.6),transparent 65%),radial-gradient(800px 600px at 5% 95%,rgba(216,168,75,.16),transparent 60%),var(--night);color:var(--cream)}
.sig-glow{position:absolute;right:8%;top:14%;width:44vw;height:44vw;max-width:640px;max-height:640px;border-radius:50%;background:radial-gradient(circle,rgba(169,143,220,.35),rgba(169,143,220,0) 65%)}
.sig-grid{position:relative;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(28px,5vw,80px);align-items:center;padding-top:80px;padding-bottom:30px}
.sig-left .display{font-size:clamp(40px,4.4vw,66px);margin:14px 0 30px;max-width:13ch}
.sig-steps{list-style:none;margin:0;padding:0;display:grid;gap:16px;position:relative}
.sig-steps::before{content:"";position:absolute;left:21px;top:20px;bottom:20px;width:1px;background:linear-gradient(var(--gold),rgba(216,168,75,.1))}
.sig-steps li{display:flex;gap:18px;align-items:flex-start}
.sig-steps b{flex:0 0 44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--night-2);border:1px solid rgba(216,168,75,.7);font:500 15px var(--font-body);color:var(--gold-soft);position:relative}
.sig-steps span{font-size:15.5px;color:rgba(247,241,232,.78);line-height:1.5}
.sig-steps strong{display:block;font:500 22px/1.2 var(--font-display);color:var(--cream);margin-bottom:3px}
.sig-right{position:relative;height:min(74vh,640px);width:100%}
.mk{position:absolute;background:var(--paper);color:var(--ink);border-radius:24px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);overflow:hidden}
.mk-1{left:0;top:2%;width:62%}
.mk-2{right:0;top:8%;width:54%;padding:22px}
.mk-3{left:2%;bottom:14%;width:46%;padding:22px}
.mk-4{right:0;bottom:2%;width:58%;padding:14px;background:#fdf8ef}
.mk-photo{position:relative;height:150px}
.mk-photo img{width:100%;height:100%;object-fit:cover}
.mk-photo .chip{position:absolute;left:14px;top:14px}
.mk-body{padding:16px 18px 20px}
.mk-kicker{font:500 11px var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--plum);margin:0 0 6px}
.mk-title{font:500 24px/1.15 var(--font-display);margin:0 0 12px}
.mk-title.sm{font-size:19px;margin:8px 0 2px}
.mk-small{font-size:13px;color:var(--muted);margin:0}
.mk-file{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:14px;font-size:14px}
.mk-file b{display:block;font-weight:500}.mk-file small{color:var(--muted)}
.mk-pdf{flex:0 0 40px;height:46px;border-radius:8px;background:#efe8fb;color:var(--plum);display:grid;place-items:center;font:600 11px var(--font-body)}
.mk-dl{margin-left:auto;background:var(--night);color:var(--cream);border-radius:999px;padding:7px 12px;font-size:12px;font-weight:500}
.mk-bar{height:6px;border-radius:6px;background:#eee6d8;margin-top:14px;overflow:hidden}
.mk-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--lavender))}
.mk-quiz{display:flex;gap:16px;align-items:center}
.ring{--p:90;flex:0 0 96px;height:96px;border-radius:50%;background:conic-gradient(var(--teal) calc(var(--p)*1%),#ebe4d6 0);display:grid;place-items:center}
.ring span{width:76px;height:76px;border-radius:50%;background:var(--paper);display:grid;place-content:center;text-align:center;line-height:1}
.ring b{font:600 30px var(--font-display);color:var(--ink)}.ring small{font-size:11px;color:var(--muted)}
.mk-q{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px;font-size:13.5px}
.mk-q li{display:flex;gap:8px;align-items:center;padding:8px 10px;background:#f6f1e8;border-radius:10px}
.mk-q li::before{content:"";flex:0 0 16px;height:16px;border-radius:50%;background:var(--teal) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path d='M5 10.5l3 3 7-7' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/12px no-repeat}
.mk-rate{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #efe7da;font-size:14px}
.stars{--s:5;width:84px;height:15px;background:linear-gradient(90deg,var(--gold) calc(var(--s)*20%),#e5dccd 0);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 15'><g fill='black'><path id='s' d='M7.5 0l2.2 4.6 5 .6-3.7 3.5 1 5L7.5 11.3 3 13.7l1-5L.3 5.2l5-.6z'/><use href='%23s' x='17'/><use href='%23s' x='34'/><use href='%23s' x='51'/><use href='%23s' x='68'/></g></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 15'><g fill='black'><path id='s' d='M7.5 0l2.2 4.6 5 .6-3.7 3.5 1 5L7.5 11.3 3 13.7l1-5L.3 5.2l5-.6z'/><use href='%23s' x='17'/><use href='%23s' x='34'/><use href='%23s' x='51'/><use href='%23s' x='68'/></g></svg>") center/contain no-repeat}
.mk-sent{margin:14px 0 0;font-size:13px;font-weight:500;color:#1d6c6a;display:flex;gap:6px;align-items:center}
.mk-sent::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--teal)}
.cert{border:2px solid var(--night);outline:1px solid var(--gold);outline-offset:-8px;border-radius:12px;padding:20px 22px 16px;text-align:center;background:#fffcf6}
.cert-logo{width:70px;margin:0 auto 6px}
.cert-k{font:500 10px var(--font-body);letter-spacing:.24em;text-transform:uppercase;color:var(--plum);margin:0}
.cert-name{font:italic 500 clamp(22px,2.1vw,32px)/1.1 var(--font-display);white-space:nowrap;margin:8px 0 4px;border-bottom:1px solid var(--gold);display:inline-block;padding:0 14px 4px}
.cert-k2{font-size:12px;color:var(--muted);margin:6px 0 2px}
.cert-course{font:600 19px var(--font-display);margin:0}
.cert-foot{display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-size:12px;text-align:center}
.cert-foot span{flex:1;border-top:1px solid var(--ink);padding-top:4px}
.cert-foot small{display:block;color:var(--muted);font-size:10px}
.cert-foot .sig{font:italic 500 16px var(--font-display)}
.mk-toast{position:absolute;left:12%;bottom:-10px;display:flex;gap:12px;align-items:center;background:var(--night-2);color:var(--cream);border:1px solid rgba(216,168,75,.45);border-radius:16px;padding:12px 18px 12px 14px;font-size:14px;box-shadow:0 20px 40px -20px rgba(0,0,0,.7);z-index:3}
.mk-toast b{display:block;font-weight:500}.mk-toast small{color:rgba(247,241,232,.7)}
.mk-toast .dot{flex:0 0 34px;height:34px;border-radius:10px;background:var(--gold) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 6h16v12H4z M4 7l8 6 8-6' fill='none' stroke='%231c1838' stroke-width='1.8' stroke-linejoin='round'/></svg>") center/20px no-repeat}
@media (max-width:899px){
  .sig-grid{grid-template-columns:1fr;align-content:center;gap:18px;padding-top:86px}
  .sig-left .display{font-size:clamp(32px,8.4vw,44px);margin:8px 0 0}
  .sig-steps{display:none}
  .sig-right{height:min(62vh,560px);max-width:460px;margin:0 auto}
  .mk-1{width:74%}.mk-2{width:66%;padding:16px}.mk-3{width:64%;padding:16px;left:0}.mk-4{width:80%}
  .mk-photo{height:96px}.mk-title{font-size:19px}.ring{flex-basis:76px;height:76px}.ring span{width:60px;height:60px}.ring b{font-size:24px}
  .mk-q{display:none}.mk-toast{left:4%;right:4%;bottom:-6px}
}
.is-reduced .sig-stage{height:auto;padding:110px 0 80px}
.is-reduced .sig-right{height:640px}
.is-reduced .sig-steps{display:grid}

/* ---------- about ---------- */
.about .bg{object-position:50% 30%}
.about .veil{background:linear-gradient(90deg,rgba(28,24,56,.95) 0%,rgba(28,24,56,.86) 50%,rgba(28,24,56,.6) 100%)}
.about{padding-top:clamp(170px,19vw,280px)}
.ghost-wrap{position:absolute;left:0;right:0;top:clamp(36px,4vw,70px);overflow:hidden;pointer-events:none;z-index:0}
.ghost-word{display:inline-block;white-space:nowrap;font:italic 500 clamp(90px,13vw,200px)/1 var(--font-display);color:transparent;-webkit-text-stroke:1px rgba(239,210,154,.26);padding-left:10vw}
.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(32px,6vw,90px);align-items:center;position:relative;z-index:1}
.about-copy .display{font-size:clamp(40px,5vw,70px);margin:14px 0 24px}
.about-copy p{color:rgba(247,241,232,.86);font-size:18px;max-width:56ch}
.about-quote{font:italic 500 clamp(26px,2.6vw,36px)/1.25 var(--font-display)!important;color:var(--gold-soft)!important;margin-top:28px}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.stat{border:1px solid rgba(239,210,154,.35);border-radius:22px;padding:26px 22px;background:linear-gradient(160deg,rgba(75,59,138,.55),rgba(28,24,56,.5))}
.stat b{display:block;font:500 clamp(54px,6vw,84px)/1 var(--font-display);color:var(--cream)}
.stat b.sm{font-size:clamp(44px,4.6vw,64px)}
.stat>span{color:rgba(247,241,232,.76);font-size:15px}
@media (max-width:899px){.about-grid{grid-template-columns:1fr}}

/* ---------- parents ---------- */
.parents-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,90px);align-items:center}
.parents-photo{position:relative;border-radius:30px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow)}
.parents-photo img{width:100%;height:100%;object-fit:cover}
.parents-badge{position:absolute;left:18px;right:18px;bottom:18px;background:rgba(255,252,247,.95);border-radius:18px;padding:16px 18px;display:grid;gap:2px}
.parents-badge b{font:500 22px var(--font-display)}.parents-badge span{color:var(--muted);font-size:15px}
.parents-copy .display{font-size:clamp(38px,4.6vw,62px);margin:14px 0 18px}
.parents-copy em.plum{color:var(--plum)}
.parents-copy>p{color:var(--muted);font-size:18px}
.feat-list{display:grid;gap:12px;margin:26px 0}
.feat{display:flex;gap:16px;align-items:flex-start;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:16px 18px}
.feat b{display:block;font:500 22px/1.2 var(--font-display)}
.feat span:last-child{color:var(--muted);font-size:15.5px}
.ico{flex:0 0 46px;height:46px;border-radius:14px;background:var(--night) center/24px no-repeat}
.ico.lym{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23efd29a' stroke-width='1.6' stroke-linecap='round'><path d='M12 3c3 4 5 7 5 10a5 5 0 0 1-10 0c0-3 2-6 5-10z'/></svg>")}
.ico.str{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23efd29a' stroke-width='1.6' stroke-linecap='round'><circle cx='12' cy='4.5' r='2'/><path d='M4 9l8 1 8-1M12 10v5l-4 6M12 15l4 6'/></svg>")}
.ico.con{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23efd29a' stroke-width='1.6' stroke-linejoin='round'><path d='M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10z'/></svg>")}
.carry{font-size:15.5px;color:var(--ink)!important;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media (max-width:899px){.parents-grid{grid-template-columns:1fr}.parents-photo{aspect-ratio:5/4}}

/* ---------- faq ---------- */
.faq-sec{padding-top:0}
.faq-grid{display:grid;grid-template-columns:380px 1fr;gap:clamp(32px,5vw,70px);align-items:start}
.faq-side{position:sticky;top:110px;border-radius:28px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow);color:var(--cream)}
.faq-side img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.faq-side::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,24,56,0) 35%,rgba(28,24,56,.9))}
.faq-side-in{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:26px}
.faq-side-in .display{font-size:34px;margin:8px 0 16px}
@media (max-width:899px){.faq-grid{grid-template-columns:1fr}.faq-side{position:relative;top:auto;aspect-ratio:16/10}}

/* ---------- contact ---------- */
.contact .veil{background:linear-gradient(90deg,rgba(28,24,56,.94),rgba(28,24,56,.78))}
.contact-grid{display:grid;grid-template-columns:1fr 460px;gap:clamp(32px,6vw,90px);align-items:center}
.contact .display{font-size:clamp(42px,5.4vw,80px);margin-top:14px}
.phone-big{display:inline-block;margin-top:24px;font:500 clamp(34px,3.6vw,50px) var(--font-display);color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(239,210,154,.5)}
.contact-card{background:var(--paper);color:var(--ink);border-radius:26px;padding:28px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.contact-card h3{font-size:32px;margin-bottom:18px}
.contact-card .btn{width:100%}
@media (max-width:959px){.contact-grid{grid-template-columns:1fr}}

/* reduced motion and static fallbacks */
.is-reduced .courses-reel .stage{padding:110px 0 60px}
.is-reduced .courses-reel .h-track{padding:0 var(--pad)}
