/* Shared by the pre-JavaScript shell and React SplashScreen. No fake percentage. */
.kidoo-splash::before{content:'';position:absolute;width:min(68vw,440px);height:min(68vw,440px);border:1px solid #b7a4c537;border-radius:50%;animation:kidoo-sunrise 900ms cubic-bezier(.22,1,.36,1) both;pointer-events:none}
@keyframes kidoo-sunrise{from{opacity:0;transform:scale(.82) translateY(24px)}to{opacity:1;transform:scale(1)}}
.kidoo-splash{position:fixed;inset:0;z-index:80;display:grid;place-items:center;min-height:100svh;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#edf5e7 0,transparent 54%),#fafcf8;color:#496552;font-family:'DM Sans Variable',system-ui,sans-serif}
.kidoo-splash-center{display:flex;align-items:center;flex-direction:column;margin-top:-4vh;animation:kidoo-splash-in .7s cubic-bezier(.22,1,.36,1) both}
.kidoo-splash-brand{position:relative;width:310px;max-width:72vw}.kidoo-splash-brand img{position:relative;display:block;width:100%;height:auto;object-fit:contain}
.kidoo-splash-center>p{font-size:14px;font-weight:450;letter-spacing:.02em;margin:9px 0 29px;color:#65795f;animation:kidoo-splash-in .6s .18s both}
.kidoo-brand-light{position:absolute;inset:0;pointer-events:none}.kidoo-brand-light>i{position:absolute;width:57px;height:57px;top:46%;left:37%;border-radius:50%;background:#b4dd9f;filter:blur(24px);animation:kidoo-color-awake 1.8s ease-in-out both}
.kidoo-brand-light>i:nth-child(2){left:58%;background:#f0b0a0;animation-delay:.12s}.kidoo-brand-light>i:nth-child(3){left:77%;background:#f6d57a;animation-delay:.24s}
.kidoo-brand-trail{display:flex;align-items:center;gap:8px;height:8px}.kidoo-brand-trail>i{width:20px;height:3px;border-radius:3px;background:#62936f;animation:kidoo-trail 1s ease-in-out 3}.kidoo-brand-trail>i:nth-child(2){background:#d78f77;animation-delay:.12s}.kidoo-brand-trail>i:nth-child(3){background:#d9b956;animation-delay:.24s}
.kidoo-splash-foot{position:absolute;bottom:max(36px,env(safe-area-inset-bottom));font-size:10px;font-weight:500;letter-spacing:.2em;color:#7d8d75}
@keyframes kidoo-splash-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes kidoo-color-awake{0%,100%{opacity:.25;transform:scale(.65)}50%{opacity:.6;transform:scale(1.3)}}
@keyframes kidoo-trail{0%,100%{opacity:.45;transform:scaleX(.65)}50%{opacity:1;transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.kidoo-splash *{animation:none!important}.kidoo-brand-light{display:none}}

/* School tokens are derived from its public accent; the platform keeps its palette. */
:root[data-school-theme]{--school-accent:#28705b;--school-action:#123128;--school-ink:#1e3c3a;--school-muted:#4d6566;--school-wash:#f2f6f5;--school-line:#dde8e5;--school-surface:#fff;--school-ground:#f6f4ef;--school-ease:cubic-bezier(.22,.8,.3,1);--tenant-accent:var(--school-accent);--sc-tenant-accent:var(--school-action);--green:var(--school-action);--green-hover:var(--school-ink);--green-dark:var(--school-ink);--forest:var(--school-ink);--ink:var(--school-ink);--muted:var(--school-muted);--mint:var(--school-wash);--line:var(--school-line);color:var(--school-ink);background:var(--school-ground)}
.school-boot-logo,.school-boot-copy{display:none!important}
[data-school-host] .school-boot-logo,[data-school-host] .school-boot-copy{display:block!important}
[data-school-host] .platform-boot-logo,[data-school-host] .platform-boot-copy,[data-school-host] .kidoo-brand-light,[data-school-host] .kidoo-brand-trail,[data-school-host] .kidoo-splash-foot{display:none!important}
[data-school-host][data-school-logo-missing] .school-boot-logo{display:none!important}
[data-school-host][data-school-logo-missing] .platform-boot-logo{display:block!important}
[data-school-theme] .kidoo-splash{background:radial-gradient(ellipse at 50% 42%,var(--school-wash),transparent 60%),var(--school-ground);color:var(--school-ink)}
[data-school-theme] .kidoo-splash-center>p{color:var(--school-muted)}
[data-school-host] .kidoo-splash-brand{width:260px}
.school-splash-logo{width:260px;height:200px;max-width:66vw;object-fit:contain}
.school-loading-line{height:2px;width:56px;border-radius:2px;background:var(--school-accent);transform-origin:left;animation:school-line-arrive 420ms var(--school-ease) both}
[data-school-theme] .kidoo-splash-center{animation:school-logo-arrive 420ms var(--school-ease) both}
@keyframes school-logo-arrive{from{opacity:0;transform:translateY(8px);filter:blur(3px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes school-line-arrive{from{transform:scaleX(.2)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){[data-school-theme] .kidoo-splash-center,.school-loading-line{animation:none!important;filter:none;transform:none}}
.kidoo-splash,[data-school-theme] .kidoo-splash{background:radial-gradient(ellipse at 50% 42%,#eee5f0 0,transparent 62%),#fff9f2}
@media(prefers-reduced-motion:reduce){.kidoo-splash::before{animation:none!important}}

/* LA SAGESSE: a typographic identity, never a fabricated official school logo. */
.sagesse-splash{--sagesse-ink:#163c34;--sagesse-elapsed:0ms;position:fixed;inset:0;z-index:90;display:none;flex-direction:column;align-items:center;justify-content:center;min-height:100svh;padding:34px 28px 24px;box-sizing:border-box;overflow:hidden;isolation:isolate;background:#faf7ef;color:var(--sagesse-ink);font-family:'DM Sans Variable',system-ui,sans-serif}
html[data-school-entry=lasagesse] #root>.kidoo-splash{display:none!important}
html[data-school-entry=lasagesse] .sagesse-splash[data-boot-entry],.sagesse-splash[data-react-entry]{display:flex}
.sagesse-atmosphere{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 28%,#e5eddf 0,transparent 55%),radial-gradient(ellipse at 85% 90%,#f1e5cb70 0,transparent 55%)}
.sagesse-atmosphere>span{position:absolute;left:50%;top:44%;width:min(78vw,650px);aspect-ratio:1;border:1px solid #42675312;border-radius:50%;transform:translate(-50%,-50%)}
.sagesse-atmosphere>span+span{width:min(94vw,790px);border-style:dashed;border-color:#4267530a}
.sagesse-entry-top{position:absolute;top:max(28px,env(safe-area-inset-top));left:7%;right:7%;display:flex;align-items:center;gap:9px;font-size:9px;font-weight:650;letter-spacing:.16em;color:#53685d}
.sagesse-entry-top>span:last-child{margin-left:auto;font-size:8px;letter-spacing:.2em}
.sagesse-entry-dot{width:5px;height:5px;border-radius:50%;background:#b99452;box-shadow:0 0 0 5px #b9945212}
.sagesse-entry-art{width:min(66vw,350px);margin-top:-5vh;margin-bottom:4px}
.sagesse-entry-art svg{display:block;width:100%;height:auto}
.sagesse-gate,.sagesse-book,.sagesse-thread{stroke-dasharray:1;stroke-dashoffset:0;animation:sagesse-draw 1150ms cubic-bezier(.2,.7,.2,1) var(--sagesse-elapsed) both}
.sagesse-book{animation-delay:calc(var(--sagesse-elapsed) + 160ms)}
.sagesse-thread{animation-delay:calc(var(--sagesse-elapsed) + 300ms);animation-duration:1000ms}
.sagesse-sun{transform-origin:200px 90px;animation:sagesse-awake 1400ms cubic-bezier(.2,.7,.2,1) var(--sagesse-elapsed) both}
.sagesse-entry-title{text-align:center;animation:sagesse-reveal 800ms cubic-bezier(.2,.7,.2,1) calc(var(--sagesse-elapsed) + 150ms) both}
.sagesse-entry-title>p:first-child{font-size:clamp(9px,2.1vw,12px);letter-spacing:.3em;font-weight:600;margin:0 0 12px;padding-left:.3em}
.sagesse-entry-title h1{font-family:'Manrope Variable',system-ui,sans-serif;font-size:clamp(35px,8vw,76px);font-weight:500;letter-spacing:-.065em;line-height:1.05;margin:0;white-space:nowrap}
.sagesse-entry-title h1>span{color:#b99452}
.sagesse-title-rule{display:block;width:36px;height:1px;background:#b99452;margin:23px auto 18px;transform-origin:center;animation:sagesse-rule 850ms ease calc(var(--sagesse-elapsed) + 350ms) both}
.sagesse-entry-motto{font-size:clamp(12px,2.8vw,15px);letter-spacing:.035em;color:#51685c;margin:0;font-weight:400}
.sagesse-entry-place{display:flex;align-items:center;gap:8px;margin-top:30px;animation:sagesse-reveal 800ms ease calc(var(--sagesse-elapsed) + 400ms) both}
.sagesse-place-pin{display:grid;place-items:center;border:1px solid #80948470;border-radius:50% 50% 50% 0;transform:rotate(-45deg);width:12px;height:12px;color:transparent}
.sagesse-entry-place p{font-size:11px;line-height:1.7;margin:0;text-align:center;color:#53685d}
.sagesse-entry-place p>span{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.sagesse-entry-footer{position:absolute;bottom:max(23px,env(safe-area-inset-bottom));display:flex;align-items:center;flex-direction:column;gap:7px;color:#53685d;animation:sagesse-reveal 800ms ease calc(var(--sagesse-elapsed) + 500ms) both}
.sagesse-entry-footer>p{font-size:11px;letter-spacing:.07em;margin:0;font-variant-numeric:tabular-nums}
.sagesse-entry-footer>p>span{color:#a08d68;margin:0 8px}
.sagesse-entry-footer>span{font-size:8px;letter-spacing:.16em}
.sagesse-entry-footer>.sagesse-entry-provider{display:flex;align-items:center;gap:7px;letter-spacing:0;font-size:9px;margin-top:8px;opacity:.7}
.sagesse-entry-provider img{object-fit:contain;width:45px;height:25px}
@keyframes sagesse-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes sagesse-awake{from{opacity:0;transform:translateY(8px) scale(.88)}to{opacity:1;transform:none}}
@keyframes sagesse-reveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes sagesse-rule{from{transform:scaleX(.1);opacity:0}to{transform:scaleX(1);opacity:1}}
@media(max-height:650px){.sagesse-entry-art{width:min(48vw,220px);margin-top:-25px}.sagesse-entry-title h1{font-size:clamp(31px,7vw,54px)}.sagesse-title-rule{margin:15px auto 12px}.sagesse-entry-place{margin-top:17px}.sagesse-entry-footer>.sagesse-entry-provider{display:none}}
@media(max-height:450px) and (min-width:600px){.sagesse-entry-art{display:none}.sagesse-entry-place{margin-top:12px}.sagesse-entry-title{margin-top:-20px}.sagesse-entry-footer{bottom:12px;flex-direction:row;gap:16px}}
@media(prefers-reduced-motion:reduce){.sagesse-splash *{animation:none!important;stroke-dashoffset:0!important;transform:none!important}.sagesse-place-pin{transform:rotate(-45deg)!important}}
