/* Seasonal layer: only --season-* tokens and html[data-season] activate it. */
.season-discovery{display:inline-grid;place-items:center;width:44px;height:44px;padding:7px;border:0;border-radius:50%;background:transparent;color:#30202a;cursor:pointer;vertical-align:middle;flex:none}.season-discovery svg{width:28px;height:28px;transition:transform .3s ease}.season-discovery:hover svg{transform:rotate(-8deg)}.season-discovery:focus-visible{outline:3px solid #b57039;outline-offset:3px}.season-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
html[data-season=halloween]{--season-paper:#17131d;--season-surface:#251f2d;--season-ink:#f5eadd;--season-muted:#c6b7cc;--season-line:#706177;--season-accent:#f3b36b;--season-secondary:#c7a7e4;--season-background:radial-gradient(ellipse at 90% 0%,#392442 0,transparent 60%),linear-gradient(#17131d,#211722);--paper:var(--season-paper);--surface:var(--season-surface);--ink:var(--season-ink);--muted:var(--season-muted);--line:var(--season-line);--gold:var(--season-accent);--navy:#19121e;--accent:var(--season-accent);--wash:#342b3e;color-scheme:dark;background:var(--paper);scrollbar-color:#92769d #211722}
html[data-season=halloween] body{background:var(--season-background);color:var(--ink);isolation:isolate}
html[data-season=halloween] :is(.main,.site-header,.site-footer,.legal-main,.legal-header,.legal-footer,.sticky-navigation){position:relative;z-index:1}
html[data-season=halloween] .sticky-navigation{position:sticky}
html[data-season=halloween] :is(.site-header,.legal-header){background:linear-gradient(115deg,#17111c,#302135);border-color:#785746}
html[data-season=halloween] :is(.header-navigation,.site-footer,.legal-footer){background:#1b1522;color:var(--muted);border-color:#604653}
html[data-season=halloween] .main-tabs button[aria-selected=true]{background:#f0bb80;color:#2a1b22}
html[data-season=halloween] :is(.brand-title,.brand span,.footer-brand){color:#f5d7af}
html[data-season=halloween] #panel-accueil .home-hero{background:#211827 url('/seasons/halloween-landscape.svg') center/cover no-repeat;border-bottom:1px solid #73504e;min-height:360px}
html[data-season=halloween] #panel-accueil :is(.home-copy,.home-copy .introduction,.home-hero .eyebrow){color:#f4e3d5;text-shadow:0 2px 18px #110b17}
html[data-season=halloween] #panel-accueil .home-copy{background:linear-gradient(100deg,#17111ce8,#17111c80);border:1px solid #a5766d55;border-radius:24px;padding:24px;backdrop-filter:blur(2px)}
html[data-season=halloween] :is(.sequence-card,.book-card,.work-card,.literature-sheet,.module-card,.legal-card,.lq-step,.lq-question,.lq-summary,.atelier-entry-tile,.reading-marker-item,.home-note,.privacy-card,.empty-state){background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:0 12px 35px #0d081d30}
html[data-season=halloween] :is(.eyebrow,.introduction,.card-question,.book-description,.reference-author,.resource-meta,.resource-count,.legal-card p,.home-note p,.privacy-card p){color:var(--muted)}
html[data-season=halloween] :is(.course-button,.icon-button,.reading-levels button,.lesson-box,.full-lesson,.full-lesson-content,.reader-header,.reader-footer,.reader-body,.reading-text,.work-note-tooltip,.reader-cat-speech,.river-dialog,.cat-game){background:var(--surface);color:var(--ink);border-color:var(--line)}
html[data-season=halloween] :is(input:not([type=radio]):not([type=checkbox]):not([type=range]),select,textarea){background:#211929;color:var(--ink);border-color:var(--line)}
html[data-season=halloween] :is(.primary-button,.literature-train,.full-lesson-open),html[data-season=halloween] #atelier-literature .lit-primary{background:#efb172;color:#271a21;border-color:#efb172;text-shadow:none}
html[data-season=halloween] :is(.text-link,.notebook-resource,.formatted-work sup button,.grammar-feature-cta){color:#f3c994}
html[data-season=halloween] :is(.capsule-course,.embedded-grammar){--cap-ink:#f5eadd;--cap-paper:#241d2c;--ink:#f5eadd;--paper:#17131d;--surface:#251f2d;--muted:#c6b7cc;--line:#706177;color:var(--ink)}
html[data-season=halloween] .capsule-block{--cap-wash:#302638;--cap-accent:#c6a2e3;background:var(--cap-wash);color:var(--ink);border-color:var(--cap-accent)}
html[data-season=halloween] :is(.capsule-example,.capsule-memo){--cap-wash:#35292a;--cap-accent:#f0b475}
html[data-season=halloween] .capsule-trap{--cap-wash:#392531;--cap-accent:#eca9b4}
html[data-season=halloween] :is(.capsule-block h3,.capsule-block>summary,.literature-sheet>summary,.lit-support,.lit-choice,.lq-answer,.capsule-table){color:var(--ink)}
html[data-season=halloween] :is(.literature-sheet>summary,.lit-support,.lit-choice,.lq-answer,.capsule-table td,.capsule-table th){background:var(--surface);border-color:var(--line)}
html[data-season=halloween] :is(.lit-choice:has(input:checked),.lq-answer:has(input:checked)){outline:2px solid var(--gold);outline-offset:2px}
html[data-season=halloween] :is(button,a,input,summary,select,textarea):focus-visible{outline:3px solid #ffd494;outline-offset:4px}
html[data-season=halloween] ::selection{background:#b287ca;color:#170e20}
html[data-season=halloween] dialog::backdrop{background:#100a1bcc}
html[data-season=halloween] .season-discovery{color:#fff2b3;filter:drop-shadow(0 0 7px #da702d80)}
/* Decorations never receive pointer events and never cover the reading layer. */
.season-decor{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict}.season-moon{position:absolute;right:-30px;top:180px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#ddc8b080,#b59cc029 65%,transparent 70%);box-shadow:0 0 90px #9b73b01a}.season-fog{position:absolute;inset:45% -20% -20%;background:radial-gradient(ellipse at 20% 90%,#ac8db121,transparent 42%),radial-gradient(ellipse at 80% 80%,#ad9db91a,transparent 48%);animation:season-fog 36s ease-in-out infinite}.season-bat{position:absolute;left:0;top:160px;width:34px;height:18px;background:#b496c6;clip-path:polygon(0 0,30% 23%,42% 55%,45% 25%,50% 40%,55% 25%,58% 55%,70% 23%,100% 0,88% 67%,71% 63%,60% 100%,50% 78%,40% 100%,29% 63%,12% 67%);opacity:.18;animation:season-bat 42s ease-in-out infinite}.season-eyes{position:absolute;left:9px;bottom:100px;width:6px;height:3px;border-radius:50%;background:#ddac68;box-shadow:12px 0 #ddac68;opacity:.6}
.season-tools{position:fixed;right:12px;bottom:12px;z-index:30;display:flex;gap:4px;padding:5px;border:1px solid #79627b;border-radius:16px;background:#211928f5;box-shadow:0 6px 30px #08051150;max-width:calc(100vw - 24px)}.season-tools button{font:inherit;font-size:.75rem;min-height:40px;padding:8px 12px;border:0;border-radius:11px;background:transparent;color:#eddded;cursor:pointer}.season-tools button:hover{background:#3b2e43}.season-exit::before{content:'◂ ';color:#f3b36b}html[data-season] .site-footer,html[data-season] .legal-footer{padding-bottom:85px}
@keyframes season-fog{0%,100%{transform:translateX(-4%)}50%{transform:translateX(4%)}}@keyframes season-bat{0%,75%,100%{transform:translate(-45px,0)}84%{transform:translate(8vw,-25px)}93%{transform:translate(-45px,-60px)}}
html.season-paused .season-decor *,html.season-away .season-decor *{animation-play-state:paused!important}
@media(max-width:760px){html[data-season=halloween] #panel-accueil .home-hero{background-position:72% center;padding:28px 18px;min-height:320px}html[data-season=halloween] #panel-accueil .home-copy{padding:20px;margin:0;max-width:100%}.season-moon{width:90px;height:90px;right:-50px}.season-bat,.season-eyes{display:none}.season-tools{position:relative;inset:auto;margin:16px auto;justify-content:center;width:fit-content}.season-tools button{font-size:.8rem}html[data-season] .site-footer,html[data-season] .legal-footer{padding-bottom:24px}}
@media(prefers-reduced-motion:reduce){html:not(.season-motion-optin) .season-decor *{animation:none!important}.season-discovery svg{transition:none}.season-discovery:hover svg{transform:none}}
@media print{.season-decor,.season-tools,.season-discovery{display:none!important}html[data-season=halloween]{--ink:#111;--paper:#fff;--surface:#fff;--muted:#444;color-scheme:light}html[data-season=halloween] body{background:#fff;color:#111}}
/* Seasonal palette wins over per-tab banner colours and the optional disco overlay. */
html[data-season=halloween] .sticky-navigation{background:#1b1522;color:var(--ink);z-index:20}
html[data-season=halloween] .sticky-navigation :is(.main-tabs button,.message-nav-link){color:var(--ink)}
html[data-season=halloween] .sticky-navigation .main-tabs button[aria-selected=true]{color:#271a21;background:#efb172}
html[data-season=halloween] .brand-subtitle{background:#201727!important;color:#ecd9ec!important;animation:none!important;filter:none}
html[data-season=halloween].echo-disco :is(body,.site-header,.sticky-navigation,.home-level,.home-note){animation:none!important}
html[data-season=halloween].echo-disco .badge-disco-ball{display:none!important}
html[data-season=halloween] .main{animation:season-arrival .65s ease-out both}
@keyframes season-arrival{from{opacity:.85}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html[data-season=halloween] .main{animation:none}}

/* Halloween immersif — discovery pumpkin styles above are deliberately untouched. */
html[data-season=halloween]{--season-paper:#16101f;--season-surface:#281d32;--season-line:#8f697f;--season-accent:#ffc37c;--season-background:radial-gradient(ellipse at 12% 12%,#53314588,transparent 45%),radial-gradient(ellipse at 90% 65%,#39315366,transparent 45%),linear-gradient(150deg,#140f1e,#291b30 65%,#15101f)}
html[data-season=halloween] .main{position:relative;z-index:1}
html[data-season=halloween] :is(.site-header,.legal-header){background:linear-gradient(100deg,#211426ee,#3e2541ee),url('/seasons/halloween-grand-hall.svg') center 20%/cover;border-bottom:2px solid #bb8157;box-shadow:0 10px 35px #08040f77}
html[data-season=halloween] .sticky-navigation{border-bottom:1px solid #af7357;box-shadow:0 7px 30px #09051077}
html[data-season=halloween] #panel-accueil .home-hero{background-image:url('/seasons/halloween-grand-hall.svg');background-position:center;min-height:440px}
html[data-season=halloween] :is(.sequence-card,.book-card,.work-card,.literature-sheet,.module-card,.legal-card,.lq-step,.lq-question,.lq-summary,.atelier-entry-tile,.reading-marker-item,.home-note,.privacy-card,.empty-state,.museum-card,.ce-panel,.ce-step,.flashcard,.flashcard-face,.class-destinations,.about-copy,.friendly-error){background-color:#281d32;color:#f5eadd;border-color:#93647b;box-shadow:0 10px 28px #0a051d50,inset 0 1px #daa06d33;background-image:url('/seasons/haunt-web.svg'),radial-gradient(ellipse at 100% 0,#753d3033,transparent 60%);background-repeat:no-repeat;background-position:right -22px top -24px,center;background-size:78px 78px,cover}
html[data-season=halloween] :is(.book-card,.module-card,.museum-card,.sequence-card,.atelier-entry-tile):hover{border-color:#e7a561;box-shadow:0 0 0 2px #cf864d55,0 12px 35px #15071e88}
html[data-season=halloween] :is(.ce-header,.museum-gallery,.ce-reading-years,.ce-timeline,.ce-bio,.dictionary-panel,.dictionary-popup,.reader-dialog,.reader-body,.modal,.dialog,.lq-home,.lq-feedback,.flashcard-hint){background-color:#211728;color:#f5eadd;border-color:#97758f}
html[data-season=halloween] :is(.ce-header h1,.ce-header h2,.ce-panel h2,.museum-gallery h2,.page-heading h1,.lq-home h2){color:#ffcf8d;text-shadow:0 2px 15px #8c472f44}
html[data-season=halloween] :is(dialog,[role=dialog]){background-color:#241a2c;color:#f5eadd;border:1px solid #c28e65;box-shadow:0 0 0 5px #50374755,0 25px 90px #07020ddd}
html[data-season=halloween] :is(.ce-reading-track,.ce-reading-axis){border-color:#c59377;background-color:#34283e}
html[data-season=halloween] :is(.ce-reading-point,.ce-timeline button[aria-selected=true]){background:#e6a66c;color:#231627}
html[data-season=halloween] :is(.error-message,.friendly-error,[role=alert]){border-color:#d39995;color:#ffe7dd}
.haunt-world{z-index:0;background:radial-gradient(ellipse at 50% 100%,#6b3d6222,transparent 60%)}
.haunt-object{display:block;object-fit:contain;pointer-events:none;user-select:none;flex:none}
.haunt-world>.haunt-object{position:absolute}
.haunt-moon{position:absolute;right:6vw;top:14vh;width:100px;height:100px;border-radius:50%;background:radial-gradient(circle at 32% 30%,#e9ddc0,#b7a3b4 80%);box-shadow:0 0 80px #c9abc433,inset -18px -7px #604e7a44;opacity:.65}
.haunt-moon::after{content:'';position:absolute;inset:18% 26% 43% 19%;border-radius:50%;background:#76647e33;box-shadow:22px 32px 0 -7px #76647e33}
.haunt-mist{position:absolute;inset:30% -25% -20%;background:radial-gradient(ellipse at 30% 90%,#c6a9d540,transparent 45%),radial-gradient(ellipse at 80% 95%,#d0ad9a30,transparent 42%);animation:haunt-mist 32s ease-in-out infinite;will-change:transform}
.haunt-mist-back{inset:0 -20% 20%;opacity:.45;animation-duration:47s;animation-delay:-12s}
.haunt-world>.haunt-edge-left{width:150px;height:280px;left:-30px;bottom:0;opacity:.9}
.haunt-world>.haunt-edge-right{width:160px;height:300px;right:-35px;bottom:10%;transform:scaleX(-1);opacity:.8}
.haunt-world>.haunt-web-left{width:180px;height:180px;left:0;top:0}
.haunt-world>.haunt-web-right{width:150px;height:150px;right:0;top:0;transform:scaleX(-1)}
.haunt-world>.haunt-hanging{width:80px;height:150px;left:1vw;top:10vh;transform-origin:50% 0;animation:haunt-spider 13s ease-in-out infinite}
.haunt-world>.haunt-flight{width:calc(30px + var(--i)*7px);height:70px;left:calc(8% + var(--i)*18%);top:calc(12% + var(--i)*7%);opacity:.65;animation:haunt-flight calc(18s + var(--i)*3s) ease-in-out infinite;animation-delay:calc(var(--i)*-4s)}
.haunt-world>.haunt-wandering{width:90px;height:110px;right:1vw;top:60vh;opacity:.4;animation:haunt-ghost 10s ease-in-out infinite}
.haunt-lightning{position:absolute;top:7%;right:19%;width:35px;height:150px;background:#b5a0cf;clip-path:polygon(60% 0,12% 50%,49% 49%,20% 100%,94% 37%,56% 39%,95% 0);opacity:0;animation:haunt-lightning 53s ease-in-out infinite;animation-delay:-9s}
.haunt-scene{position:relative;isolation:isolate;width:100%;height:128px;overflow:hidden;pointer-events:none;user-select:none;margin:0 0 22px;border:1px solid #765169;border-radius:22px;background:radial-gradient(ellipse at 22% 90%,#b16c3b3d,transparent 36%),linear-gradient(115deg,#1b1325,#3b2843 65%,#211728);box-shadow:inset 0 -22px 32px #110b1f77,0 9px 30px #0a041b33}
.haunt-scene::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent 158px,#ab83b21a 159px,#ab83b21a 161px,transparent 162px);border-bottom:8px solid #70445155}
.haunt-scene>.haunt-object{position:absolute;bottom:4px;width:92px;height:106px}
.haunt-scene .haunt-slot-0{left:5%;height:150px;width:120px;bottom:-28px}
.haunt-scene .haunt-slot-1{left:27%}
.haunt-scene .haunt-slot-2{left:49%;width:72px;transform-origin:50% 92%;animation:haunt-candle 6s ease-in-out infinite}
.haunt-scene .haunt-slot-3{left:73%;transform-origin:50% 86%;animation:haunt-ghost 8s ease-in-out infinite}
.haunt-scene .haunt-skeleton{height:121px;width:83px;bottom:1px;animation-name:haunt-skeleton;animation-duration:12s}
.haunt-scene .haunt-web{left:auto;right:0;top:0;bottom:auto;transform:scaleX(-1);width:112px;height:112px}
.haunt-scene .haunt-bat{top:4px;animation-name:haunt-bat-hover}
.haunt-scene .haunt-ghost{opacity:.85}
.haunt-scene-museum{background:radial-gradient(ellipse at 65% 80%,#a6815944,transparent 45%),linear-gradient(100deg,#191221,#37263d)}
.haunt-scene-library{background:repeating-linear-gradient(90deg,#352535 0 11px,#251d2b 12px 18px,#504032 19px 28px,#251b2c 29px 33px);border-bottom:7px solid #8d6954}
.haunt-scene-library::before{background:linear-gradient(#160c2088,#160c2044)}
.haunt-scene-challenge{background:radial-gradient(ellipse at 30% 80%,#86513566,transparent 50%),linear-gradient(130deg,#21162d,#422548)}
.haunt-scene-chamber{height:64px;margin-bottom:14px;border-radius:12px}
.haunt-scene-chamber .haunt-object{height:65px;width:65px;bottom:0;top:auto}
.haunt-scene-chamber .haunt-slot-0{left:0;top:0;transform:none}
.haunt-scene-chamber .haunt-slot-1{left:calc(50% - 32px)}
.haunt-scene-chamber .haunt-slot-2{left:auto;right:14px;animation:none}
.haunt-scene-farewell{margin-top:20px;height:140px}
.haunt-embers{position:absolute;width:3px;height:3px;left:43%;bottom:18%;border-radius:50%;background:#ecb276;box-shadow:36px -19px #dca567,90px 5px #a582b3,-95px -8px #9ca56b,-135px 11px #ad729e;opacity:.7;animation:haunt-embers 9s ease-in-out infinite}
.haunt-acid{position:absolute;top:-5px;left:65%;width:8px;height:19px;background:#a5bb7c;border-radius:0 0 70% 70%;box-shadow:18px -9px #788f61;opacity:.65;transform-origin:top;animation:haunt-acid 12s ease-in-out infinite}
@keyframes haunt-mist{0%,100%{transform:translate(-3%,0)}50%{transform:translate(3%,2%)}}
@keyframes haunt-flight{0%,100%{transform:translate(-20px,0) rotate(-7deg)}50%{transform:translate(45px,-35px) rotate(8deg)}}
@keyframes haunt-spider{0%,100%{transform:translateY(-12px) rotate(-4deg)}50%{transform:translateY(27px) rotate(4deg)}}
@keyframes haunt-ghost{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-13px) rotate(3deg)}}
@keyframes haunt-skeleton{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@keyframes haunt-bat-hover{0%,100%{transform:translate(-10px,0) rotate(-7deg)}50%{transform:translate(8px,-8px) rotate(5deg)}}
@keyframes haunt-candle{0%,100%{filter:drop-shadow(0 -8px 8px #eaaa4944)}50%{filter:drop-shadow(0 -8px 14px #eaaa4980)}}
@keyframes haunt-lightning{0%,88%,100%{opacity:0}92%{opacity:.18}96%{opacity:0}}
@keyframes haunt-embers{0%,100%{transform:translateY(0);opacity:.6}50%{transform:translateY(-16px);opacity:.9}}
@keyframes haunt-acid{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
/* Keep the two distinct controls available even on a long mobile page. */
html[data-season=halloween] .season-tools{position:fixed;right:12px;bottom:max(12px,env(safe-area-inset-bottom));inset-inline-start:auto;z-index:90;flex-wrap:wrap;max-width:calc(100vw - 24px);margin:0;border-color:#c29471;background:#23182df5}
html[data-season=halloween] .season-tools button{font-size:.82rem;min-height:44px}
html[data-season=halloween] .season-pause{background:#45304e;border:1px solid #a37aaf}
html[data-season=halloween] .season-pause[aria-pressed=true]{background:#614331;border-color:#d5ac72;color:#ffe4b4}
html[data-season=halloween] :is(.site-footer,.legal-footer){padding-bottom:100px}
/* Pausing affects every decorative layer, including pseudo-elements, never quiz logic. */
html.season-paused :is(.haunt-object,.haunt-mist,.haunt-embers,.haunt-acid,.season-decor *),html.season-away :is(.haunt-object,.haunt-mist,.haunt-embers,.haunt-acid,.season-decor *){animation-play-state:paused!important}
html.season-paused .haunt-lightning,html.season-away .haunt-lightning{animation:none!important;opacity:0!important}
html.season-paused .main{animation:none!important}
@media(prefers-reduced-motion:reduce){html:not(.season-motion-optin) :is(.haunt-object,.haunt-mist,.haunt-embers,.haunt-acid,.haunt-lightning){animation:none!important}html:not(.season-motion-optin) .haunt-lightning{opacity:0}}
@media(max-width:760px){.haunt-scene{height:104px;border-radius:16px;margin-bottom:16px}.haunt-scene>.haunt-object{width:69px;height:81px}.haunt-scene .haunt-slot-0{left:-5px;height:125px;width:86px}.haunt-scene .haunt-slot-1{left:23%}.haunt-scene .haunt-slot-2{left:48%;width:50px}.haunt-scene .haunt-slot-3{left:71%}.haunt-scene .haunt-web{left:auto;right:0;width:74px;height:74px}.haunt-scene .haunt-skeleton{height:98px;width:60px}.haunt-scene-chamber{height:58px}.haunt-scene-chamber .haunt-object{height:55px;width:55px}.haunt-world>.haunt-web-left,.haunt-world>.haunt-web-right{width:88px;height:88px}.haunt-world>.haunt-edge-left,.haunt-world>.haunt-edge-right{width:75px}.haunt-world>.haunt-hanging{width:40px;left:0}.haunt-world>.haunt-wandering{width:44px;right:-5px}.haunt-moon{width:65px;height:65px;right:4vw}.haunt-world>.haunt-flight{width:calc(22px + var(--i)*3px)}html[data-season=halloween] .season-tools{gap:2px;padding:4px}html[data-season=halloween] .season-tools button{font-size:.75rem;padding:7px 9px}html[data-season=halloween] #panel-accueil .home-hero{background-position:65% center;min-height:370px}}
@media print{.haunt-scene,.haunt-world{display:none!important}}

/* Mascotte validée, chargée uniquement dans le décor Halloween. */
.haunt-scene>.haunt-echolalie{width:112px;height:126px;bottom:3px;object-fit:contain;animation:none;filter:drop-shadow(0 4px 8px #08040a66)}
@media(max-width:760px){.haunt-scene>.haunt-echolalie{width:76px;height:94px;bottom:2px}}

/* Écholalie is the Halloween mascot, in her own space rather than the scenery strip. */
.halloween-mascot{display:flex;justify-content:center;align-items:center;margin:18px 0 24px;min-width:0;max-width:100%;pointer-events:none;user-select:none}
.halloween-mascot[data-position=left]{justify-content:flex-start}
.halloween-mascot[data-position=right]{justify-content:flex-end}
.halloween-mascot-image{display:block;width:320px;height:320px;max-width:100%;object-fit:contain;filter:drop-shadow(0 10px 18px #08040a55)}
@media(max-width:760px){.halloween-mascot{margin:12px 0 18px}.halloween-mascot-image{width:220px;height:220px}}
@media print{.halloween-mascot{display:none!important}}

/* On the welcome page she returns to the main illustration space, beside the introduction. */
html[data-season=halloween] #panel-accueil .home-hero{padding:40px clamp(20px,4vw,56px);grid-template-columns:minmax(0,1.3fr) minmax(240px,.8fr);gap:24px}
html[data-season=halloween] #panel-accueil .home-copy{grid-column:1;grid-row:1 / span 2}
html[data-season=halloween] #panel-accueil .home-hero>.halloween-mascot{grid-column:2;grid-row:1;justify-content:center;margin:0}
html[data-season=halloween] #panel-accueil .echo-art{grid-column:2;grid-row:2;min-height:145px;font-size:1.1rem}
@media(max-width:760px){html[data-season=halloween] #panel-accueil .home-hero{grid-template-columns:minmax(0,1fr);padding:28px 18px;gap:14px}html[data-season=halloween] #panel-accueil .home-copy{grid-column:1;grid-row:1}html[data-season=halloween] #panel-accueil .home-hero>.halloween-mascot{grid-column:1;grid-row:2}html[data-season=halloween] #panel-accueil .echo-art{grid-column:1;grid-row:3}}

/* Space beneath the October date keeps its pumpkin clear of fixed badge controls. */
@media(max-width:760px){html body :is(.site-footer,.legal-footer){padding-bottom:max(24px,var(--pumpkin-clearance,80px),env(safe-area-inset-bottom))}}

/* Seasonal controls share the footer flow instead of reserving an empty fixed dock. */
html[data-season=halloween][data-theme] body :is(.site-footer,.legal-footer){padding-bottom:24px;background:#1b1522;color:var(--season-muted)}
html[data-season=halloween] .season-tools{position:relative;inset:auto;margin:18px 0 0 auto;width:fit-content;max-width:100%;justify-content:flex-end;box-shadow:none}
@media(max-width:760px){html[data-season=halloween] body :is(.site-footer,.legal-footer){padding-bottom:max(24px,var(--pumpkin-clearance,0px),env(safe-area-inset-bottom))}.season-tools{justify-content:flex-start}}

/* Illustration demandée pour la carte de grammaire, uniquement à Halloween. */
#repere-chapters .halloween-grammar-art{display:none}
html[data-season="halloween"] #repere-chapters button[data-chapter="grammar"]{padding:12px;justify-content:center;min-height:160px}
html[data-season="halloween"] #repere-chapters button[data-chapter="grammar"]>:not(.halloween-grammar-art){display:none}
html[data-season="halloween"] #repere-chapters button[data-chapter="grammar"]>.halloween-grammar-art{display:block;width:100%;max-width:440px;height:auto;max-height:210px;object-fit:contain;pointer-events:none}
@media(max-width:640px){html[data-season="halloween"] #repere-chapters button[data-chapter="grammar"]{min-height:140px}}
@media print{#repere-chapters .halloween-grammar-art{display:none!important}}

.class-destinations .halloween-menu-grammar-art{display:none}
html[data-season="halloween"] .class-destinations a.halloween-grammar-destination{justify-content:center;padding:10px 12px}
html[data-season="halloween"] .class-destinations a.halloween-grammar-destination>:not(.halloween-menu-grammar-art){display:none}
html[data-season="halloween"] .class-destinations .halloween-menu-grammar-art{display:block;width:100%;max-width:230px;height:auto;max-height:115px;object-fit:contain;pointer-events:none}
@media(max-width:700px){html[data-season="halloween"] .class-destinations .halloween-menu-grammar-art{max-width:190px;max-height:100px}}
