:root{--navy:#102f39;--ink:#1e333b;--teal:#087e76;--mint:#dcf5ed;--cream:#fbfaf6;--canvas:#f7f9f8;--muted:#556d70;--border:#dfe9e5;--purple:#5544a6;--gold:#ffce7a;--white:#fff;--shadow:0 18px 55px rgba(13,50,55,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--canvas);font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}h1,h2,h3,h4,p{margin:0}h1,h2,h3{letter-spacing:-.045em;color:var(--navy)}h1{font-size:clamp(2.7rem,6.6vw,5.2rem);line-height:1.05}h2{font-size:clamp(2rem,4.5vw,3.2rem);line-height:1.12}h3{font-size:1.32rem;line-height:1.3}p{line-height:1.65}strong{font-weight:760}.muted{color:var(--muted)}.tiny{font-size:.79rem}.small{font-size:.9rem}.eyebrow{font-size:.75rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase;color:var(--teal)}.container{max-width:1190px;margin:0 auto;padding:0 24px}.section{padding:65px 0}.section-sm{padding:36px 0}.section-title{margin:10px 0 15px}.leadin{color:#5e7378;font-size:1.15rem;max-width:640px}.stack{display:flex;flex-direction:column;gap:13px}.flex{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.space-between{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.topbar{position:sticky;top:0;z-index:30;background:#ffffffed;backdrop-filter:blur(18px);border-bottom:1px solid #dfebe7}.nav-shell{height:78px;max-width:1238px;margin:auto;padding:0 24px;display:flex;align-items:center;gap:34px}.brand{font-size:1.79rem;font-weight:900;letter-spacing:-.085em;white-space:nowrap;color:var(--navy);display:inline-flex;align-items:center;gap:8px}.brand-mark{background:#dff5eb;color:var(--teal);width:35px;height:35px;display:inline-grid;place-items:center;border-radius:11px;font-size:24px;letter-spacing:0}.brand-dot{color:var(--teal);margin-left:-7px}.nav-links{display:flex;gap:26px;margin-left:auto;align-items:center}.nav-links a{font-weight:730;color:#4c6268;font-size:.92rem}.nav-links a:hover,.nav-links a:focus-visible{color:var(--teal)}.nav-auth{display:flex;gap:7px;align-items:center}.btn{appearance:none;border:1px solid transparent;padding:12px 18px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:770;font-size:.93rem;transition:transform .16s,background .16s,box-shadow .16s;line-height:1.25;text-align:center;white-space:normal}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--teal);color:white;box-shadow:0 7px 16px #087e7624}.btn-primary:hover{background:#076b65}.btn-dark{background:var(--navy);color:white}.btn-dark:hover{background:#1b4751}.btn-soft{background:#e9f6f1;color:#136d66}.btn-soft:hover{background:#d8efe7}.btn-line{background:white;color:var(--navy);border-color:#cbddd8}.btn-danger{background:#ffebe8;color:#a82d2c}.btn-text{background:none;color:var(--teal);padding:9px}.btn-small{padding:9px 13px;font-size:.82rem;border-radius:10px}.btn-white{background:#fff;color:var(--navy)}.btn-full{width:100%}.ambient{position:absolute;pointer-events:none;filter:blur(75px);opacity:.4;z-index:-1}.ambient-one{background:#dcf3dd;width:460px;height:460px;top:130px;right:0}.ambient-two{background:#e8e3ff;width:430px;height:330px;top:610px;left:-150px}.hero{padding:78px 0 90px;display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}.hero .tagline{display:inline-flex;align-items:center;gap:8px;color:var(--teal);background:#e2f4eb;font-size:.81rem;border-radius:99px;padding:8px 14px;font-weight:800;margin-bottom:24px}.hero h1 em{color:var(--teal);font-style:normal}.hero .leadin{margin:25px 0 27px}.hero-buttons{display:flex;gap:11px;flex-wrap:wrap}.stats{display:flex;gap:26px;margin-top:37px;flex-wrap:wrap}.stat{border-right:1px solid #d4e3dc;padding-right:23px}.stat:last-child{border:0}.stat b{display:block;font-size:1.36rem;color:var(--navy)}.stat small{color:var(--muted)}.hero-screen{background:linear-gradient(140deg,#103b48 0%,#087b77 68%,#149585 100%);border-radius:31px;min-height:460px;padding:26px;position:relative;overflow:hidden;box-shadow:0 35px 60px #174d4c2c}.hero-screen:before{content:'';width:360px;height:360px;background:#ffffff13;border-radius:50%;position:absolute;right:-130px;top:-100px}.hero-screen:after{content:'✳';font-size:225px;color:#ffffff0b;position:absolute;bottom:-140px;right:3px}.hero-screen .screen-top{color:#b6e6df;font-weight:790;font-size:.83rem;display:flex;justify-content:space-between;position:relative;z-index:1}.mock-card{background:#fefefd;border-radius:21px;padding:25px;position:relative;z-index:1;margin:34px 8px 20px;box-shadow:0 12px 38px #072e3424}.mock-card h3{font-size:1.34rem;margin:12px 0 17px}.mock-options{display:grid;gap:9px}.mock-option{padding:12px 15px;border:1px solid #e1e9e6;border-radius:11px;background:#fbfcfb;font-size:.92rem;font-weight:700;display:flex;justify-content:space-between}.mock-option.selected{background:#e7f5ed;border-color:#9fdac6;color:#09695d}.mock-footer{display:flex;justify-content:space-between;align-items:center;color:#e1f7f0;font-size:.85rem;position:relative;z-index:1;padding:0 10px}.circle-step{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e1f4e9;color:#0e746c;font-weight:900}.label{display:inline-flex;align-items:center;font-size:.73rem;font-weight:840;border-radius:99px;padding:5px 10px;background:#e3f5ec;color:#14776d;letter-spacing:.012em}.label.escape{background:#ebedff;color:#59499c}.label.vote{background:#daf3ed;color:#116e63}.label.case{background:#fff1d8;color:#94641d}.label.private{background:#eff1f2;color:#66757a}.feature-card,.panel,.scenario-card,.price-card{background:white;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow)}.feature-card{padding:29px;display:flex;flex-direction:column;gap:12px;transition:transform .16s}.feature-card:hover,.scenario-card:hover{transform:translateY(-2px)}.feature-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;background:#e1f6eb;font-size:24px}.feature-icon.violet{background:#eeebff}.feature-icon.peach{background:#fff0dd}.feature-card p,.scenario-card p{color:#687b7c}.feature-card a{color:var(--teal);font-weight:780;margin-top:auto}.panel{padding:27px}.scenario-card{padding:25px;display:flex;flex-direction:column;gap:11px;min-height:244px;transition:transform .15s}.scenario-card h3{font-size:1.18rem}.scenario-card .actions{display:flex;gap:8px;margin-top:auto;flex-wrap:wrap}.sc-meta{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:.8rem;flex-wrap:wrap}.section-top{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:26px;flex-wrap:wrap}.section-top h2{margin-top:8px}.banner{padding:22px 26px;background:#e4f3ed;border:1px solid #cde9db;border-radius:18px;margin:23px 0;color:#1c5653}.banner.purple{background:#efedff;border-color:#e1dcfc;color:#4a4786}.banner.warn{background:#fff5e5;border-color:#f2dcbb;color:#875822}.metric{padding:22px;background:#f5faf7;border:1px solid #dfede6;border-radius:17px}.metric b{display:block;font-size:2rem;color:var(--navy);line-height:1.2}.metric span{font-size:.82rem;color:var(--muted)}.app-head{padding:42px 0 24px}.app-head .eyebrow{margin-bottom:9px}.app-head p{margin-top:10px}.filter-bar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:20px 0 24px}.filter-chip{background:white;border:1px solid var(--border);padding:9px 16px;border-radius:99px;font-weight:720;color:#52686c}.filter-chip.active{background:var(--navy);border-color:var(--navy);color:#fff}.empty{border:2px dashed #d6e4dd;border-radius:20px;text-align:center;padding:55px 25px;background:#fefefe}.empty .emoji{font-size:38px}.empty h3{margin:10px 0}.form-label{display:block;font-weight:760;font-size:.86rem;margin:0 0 7px;color:#314750}.field{width:100%;border:1px solid #cbdcd6;border-radius:11px;padding:11px 13px;background:white;color:var(--ink);outline:none;min-height:44px}.field:focus{border-color:#168a7d;box-shadow:0 0 0 3px #16a38f16}.fieldtextarea,textarea.field{resize:vertical;min-height:88px}.form-group{margin-bottom:16px}.hint{font-size:.78rem;color:var(--muted);margin:5px 0}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}.editor-side{position:sticky;top:100px}.step-card{background:white;border:1px solid var(--border);border-radius:17px;padding:20px;margin:14px 0;box-shadow:0 5px 18px #0d343407}.step-card .step-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}.step-number{border-radius:10px;background:#ddf2e9;padding:5px 10px;font-weight:850;color:#136d67;font-size:.77rem}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.editor-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.helper{background:#f3f8f6;border-radius:12px;padding:13px;color:#587575;font-size:.8rem}.host-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:20px;align-items:start}.codebox{border-radius:18px;background:linear-gradient(135deg,#143744,#0c766e);padding:27px;color:white}.codebox .bigcode{font-size:clamp(2.2rem,6vw,3.4rem);font-weight:900;letter-spacing:.17em;margin:8px 0;color:#fff}.codebox .small{color:#cae9e0}.qr{width:142px;height:142px;background:white;padding:8px;border-radius:14px}.qr-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:22px}.results-question{padding:21px;border:1px solid var(--border);background:white;border-radius:17px;margin:14px 0}.results-question h4{margin-bottom:5px;font-size:1rem}.results-bar{display:grid;grid-template-columns:minmax(100px,1fr) minmax(80px,1.1fr) 52px;gap:9px;align-items:center;margin:11px 0;font-size:.86rem}.track{background:#e9f0ec;border-radius:10px;height:10px;overflow:hidden}.fill{background:#0b8479;height:100%;border-radius:10px;transition:width .3s}.answertext{background:#f5f8f6;border-radius:9px;padding:9px 12px;margin:6px 0;font-size:.87rem;overflow-wrap:anywhere}.player-shell{max-width:700px;margin:0 auto;padding:48px 20px 80px}.player-panel{background:white;border:1px solid var(--border);border-radius:25px;padding:29px;box-shadow:var(--shadow)}.progress-track{height:8px;background:#e5f1ec;border-radius:99px;overflow:hidden;margin:15px 0 25px}.progress-bar{height:100%;background:#12a38d;border-radius:99px;transition:width .3s}.choice{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:16px;border-radius:13px;background:#f9fbfa;border:1px solid #dce7e2;cursor:pointer;margin:9px 0;color:var(--ink);font-weight:720;line-height:1.4}.choice:hover{background:#eff8f3}.choice.active{background:#e2f5ec;border-color:#38ab93}.choice .choice-mark{width:25px;height:25px;flex-shrink:0;border:1.5px solid #aac4b9;border-radius:50%;display:grid;place-items:center;font-size:.81rem}.choice.active .choice-mark{background:var(--teal);color:white;border-color:var(--teal)}.quiz-result{text-align:center;background:#edf8f2;border-radius:17px;padding:26px;margin:15px 0}.quiz-result h3{margin:10px 0}.play-head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.modal-backdrop{position:fixed;inset:0;background:#0d2832aa;display:flex;align-items:center;justify-content:center;z-index:90;padding:20px;backdrop-filter:blur(5px)}.modal{background:white;border-radius:24px;padding:30px;width:100%;max-width:460px;max-height:95vh;overflow:auto;box-shadow:0 40px 100px #071d252b}.modal-close{float:right;border:0;background:#edf3f0;padding:5px 10px;border-radius:9px;font-size:20px}.modal h2{font-size:1.8rem;margin-bottom:10px}.modal p{margin-bottom:21px}.site-footer{margin-top:55px;background:#11323c;color:#d1e4e0}.footer-inner{display:flex;justify-content:space-between;gap:20px;max-width:1170px;margin:auto;padding:44px 20px;flex-wrap:wrap}.footer-logo{font-size:1.75rem;font-weight:900;letter-spacing:-.08em;color:white}.footer-inner p{font-size:.88rem}.footer-links{display:flex;gap:20px;align-items:center;flex-wrap:wrap;font-size:.85rem}.footer-links a:hover{color:white}.legalfoot{max-width:1170px;margin:auto;border-top:1px solid #ffffff24;padding:18px 20px;font-size:.76rem;color:#a5c2bd}.price-card{padding:28px;display:flex;flex-direction:column;gap:14px}.price-card.popular{border:2px solid var(--teal);position:relative}.price-card h3{font-size:1.3rem}.price-value{font-size:2.25rem;font-weight:880;color:var(--navy)}.price-value small{font-size:.84rem;font-weight:550;color:var(--muted)}.price-card ul{padding-left:20px;margin:4px 0 17px;display:grid;gap:8px;color:#50656a;font-size:.92rem}.price-card .btn{margin-top:auto}.inline-note{background:#eaf3f1;border-radius:10px;padding:11px 13px;font-size:.81rem}.loading{display:flex;align-items:center;justify-content:center;gap:14px;min-height:46vh;color:var(--muted)}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid #d7e9e2;border-top-color:#168d7b;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toasts{position:fixed;right:19px;bottom:23px;z-index:150;display:grid;gap:8px}.toast{background:#183b45;color:white;padding:13px 18px;border-radius:12px;box-shadow:var(--shadow);max-width:340px;font-size:.88rem}.toast.error{background:#9f3b3b}.hidden{display:none!important}.text-center{text-align:center}.mt{margin-top:22px}.mb{margin-bottom:22px}.quote{border-left:3px solid #0f8a7d;padding:10px 16px;background:#f2f8f4;color:#526b6d}.flag{font-size:.79rem;font-weight:800;background:#fff4dc;color:#a37020;padding:5px 9px;border-radius:7px}.not-mobile{display:block}
@media(max-width:960px){.hero{grid-template-columns:1fr;padding-top:55px}.hero-screen{max-width:620px;width:100%;margin:auto}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-layout,.host-layout{grid-template-columns:1fr}.editor-side{position:static}.nav-links{gap:13px}.nav-shell{gap:18px}}
@media(max-width:650px){.nav-shell{height:auto;min-height:68px;padding:10px 16px;gap:10px;flex-wrap:wrap}.brand{font-size:1.56rem}.brand-mark{width:31px;height:31px}.nav-links{order:3;display:flex;width:100%;justify-content:space-between;gap:8px;overflow-x:auto}.nav-links a{font-size:.76rem;white-space:nowrap}.nav-auth{margin-left:auto}.nav-auth .btn{font-size:.75rem;padding:7px 9px}.container{padding:0 17px}.hero{gap:28px;padding:42px 0}.hero-screen{min-height:390px;padding:18px}.mock-card{margin:20px 2px}.grid2,.grid3,.grid4,.two-fields{grid-template-columns:1fr}.section{padding:40px 0}.panel{padding:19px}.step-card{padding:15px}.player-shell{padding:21px 13px 60px}.player-panel{padding:20px 16px;border-radius:19px}.results-bar{grid-template-columns:100px minmax(40px,1fr) 47px}.stat{padding-right:12px}.stats{gap:11px}.footer-inner{padding:35px 17px}.price-card{padding:21px}.hero-buttons .btn{flex:1}.codebox{padding:20px}}

.player-mode .topbar,.player-mode .site-footer{display:none}

/* COKLIO 1.1 — fiche de progression et bilan imprimable */
.play-personal-score{display:flex;flex-direction:column;gap:3px;margin:18px auto 0;padding:15px;border-radius:13px;background:#fff;border:1px solid #cae6da;max-width:330px}
.play-personal-score strong{color:#087e76;font-size:1.7rem}
.play-personal-score span{font-size:.85rem;color:#607872}
@media print{
 .topbar,.site-footer,.ambient,.qr-row,.codebox,.codebox ~ *,button,.btn,#toasts,.player-shell{display:none!important}
 body{background:#fff;color:#152e35;font-size:12px}
 .container{max-width:none;padding:0}
 .host-layout,.grid2{display:block}
 .host-layout>.stack:first-child{display:none}
 .host-layout>.stack:nth-child(2)>.panel:last-child{display:none}
 .host-layout>.stack:nth-child(2)>.panel:first-of-type{display:none}
 .results-question{break-inside:avoid;box-shadow:none;padding:11px;margin:5px 0}
 .panel,.metric{box-shadow:none;border-color:#ccc}
 .app-head{padding:10px 0}
 .app-head h1{font-size:24px}
 .section-sm{padding:10px 0}
 h2{font-size:18px}
}

.review-step{padding:14px 16px;background:#fff;border:1px solid #dce8e2;border-radius:12px;margin:9px 0}
.review-step .mt{margin-top:8px}
@media print{.review-step{break-inside:avoid}}

/* COKLIO 1.3 — supports de formation d'origine */
.pro-preview{display:block;max-width:100%;max-height:68vh;margin:16px auto;object-fit:contain;border-radius:10px}
.play-challenge-img{display:block;width:100%;max-height:420px;object-fit:contain;border-radius:12px;background:#eef2f7}
.play-media-box{background:#f3f6fb;border:1px solid #cdd5e0;border-radius:14px;padding:12px;margin:16px 0;text-align:center}
.earned-fragments{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:14px 0;font-size:.85rem}
.earned-badge{display:inline-flex;background:#dcf7e9;border:1px solid #67c59b;color:#0d5133;border-radius:999px;padding:4px 10px;font-weight:800}

/* COKLIO 1.4 — catalogue accessible sur ordinateur, tablette et téléphone */
.landing-hero{padding-top:67px;padding-bottom:45px;text-align:center}
.landing-hero h1{font-size:clamp(3rem,8vw,5.7rem);margin-top:12px}
.landing-hero h1 em{color:var(--teal);font-style:normal}
.landing-hero .leadin{max-width:780px}
.landing-worlds{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:38px 0 20px;text-align:left}
.world-card{border-radius:26px;padding:34px;min-height:332px;display:flex;flex-direction:column;align-items:flex-start;gap:13px;transition:transform .15s,box-shadow .15s;box-shadow:var(--shadow)}
.world-card:hover,.world-card:focus-visible{transform:translateY(-3px);box-shadow:0 20px 50px #123a4128}
.world-family{background:linear-gradient(135deg,#fff1dd,#ffd2c2);color:#694126}
.world-pro{background:linear-gradient(135deg,#d4f6e9,#d1e8fc);color:#194e60}
.world-card .world-icon{font-size:3.1rem}.world-eyebrow{font-size:.77rem;font-weight:850;letter-spacing:.11em}.world-card strong{font-size:clamp(1.8rem,3.8vw,2.8rem);letter-spacing:-.055em;line-height:1.12}.world-card b{margin-top:auto;font-size:.95rem}.world-card>span:not(.world-icon):not(.world-eyebrow){font-size:.94rem;max-width:490px}
.center{text-align:center}.step-showcase{border-radius:17px;border:1px solid #d7e6e0;background:white;padding:21px;display:flex;flex-direction:column;gap:7px}.step-showcase span{color:#008977;font-size:1.4rem;font-weight:900}.step-showcase strong{font-size:1.15rem}.step-showcase p{color:var(--muted);font-size:.88rem}
.catalog-banner{margin-top:36px;padding:42px;border-radius:27px;background:linear-gradient(100deg,#fdf0de,#e9f6ee)}.catalog-banner.professional{background:linear-gradient(110deg,#d9efee,#e8eef9)}.catalog-banner h1{font-size:clamp(2.4rem,5vw,4rem);margin:10px 0 15px}.catalog-banner .leadin{max-width:760px}.tab-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:27px}.tab-link{padding:11px 17px;border-radius:99px;background:#ffffffad;font-weight:750}.tab-link.on{background:var(--navy);color:#fff}
.filter-panel{display:grid;grid-template-columns:repeat(2,minmax(135px,1fr)) minmax(125px,1fr) minmax(125px,1fr) minmax(130px,1fr) auto;gap:15px;align-items:end;margin:25px 0;background:#fff;border-radius:18px;padding:19px;border:1px solid var(--border)}.field-wrap label{display:block;font-size:.8rem;color:var(--muted);font-weight:800;margin-bottom:6px}
.model-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.model-card{border:1px solid var(--border);background:white;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;min-height:410px;box-shadow:0 10px 30px #123d4510}.model-top{background:linear-gradient(145deg,#fbe4be,#ffd0cb);position:relative;min-height:130px;display:grid;place-items:center}.model-top.pro{background:linear-gradient(145deg,#d5eee7,#bdddf8)}.model-image-icon{font-size:3.6rem}.model-corner{position:absolute;right:13px;top:13px;color:#334b50;font-size:.75rem;font-weight:850;background:#ffffffc5;padding:5px 9px;border-radius:9px}.model-body{display:flex;flex-direction:column;gap:12px;padding:20px;flex:1}.model-body h3{font-size:1.1rem}.model-body p{flex:1}.model-body .btn{margin-top:7px}.model-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:.76rem;color:#61787a}.status-muted{font-size:.7rem;border:1px solid #e9d3aa;background:#fff8e9;color:#8a5d20;padding:5px 9px;border-radius:99px;font-weight:750}.model-phases,.model-list{display:grid;gap:13px;line-height:1.5;color:#49646a;padding-left:23px;margin:18px 0 0}.model-phases li::marker{color:var(--teal);font-weight:900}.model-list li::marker{color:var(--teal)}
@media(max-width:1060px){.model-grid{grid-template-columns:repeat(3,1fr)}.filter-panel{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.landing-worlds{grid-template-columns:1fr}.world-card{min-height:260px;padding:26px}.catalog-banner{padding:27px 22px}.filter-panel{grid-template-columns:1fr}.model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:490px){.model-grid{grid-template-columns:1fr}.model-top{min-height:100px}.landing-hero{padding-top:40px}.world-card strong{font-size:2rem}}

/* 1.5: optional facilitator team dashboard and private participant role */
.team-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:22px;margin-top:28px}
.team-member{display:flex;flex-direction:column;gap:9px;border-bottom:1px solid var(--border);padding:13px 0}
.team-assign{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}
.team-chip{display:inline-flex;border-radius:99px;background:#d8f4ed;padding:7px 13px;margin:5px 6px 5px 0;font-weight:750;font-size:.85rem}
.team-rank{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:12px 0;gap:16px}
.team-role-secret{background:#ecf5f7;border-radius:12px;padding:12px 14px;margin:13px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.team-role-secret summary{cursor:pointer;font-weight:750}
.team-role-secret p{margin:12px 0 0;font-size:.9rem;line-height:1.55}
.team-buzz-state{font-weight:850;font-size:1.13rem;color:#006e62;background:#def8ef;border-radius:12px;padding:15px;margin-top:13px}
.team-player-card{border:1px solid #9ad8c7;border-radius:14px;padding:16px;margin:14px 0;background:#f2fcf8}
.team-log{border-top:1px solid var(--border);padding:7px 0}
@media(max-width:850px){.team-grid{grid-template-columns:1fr}}
@media(max-width:540px){.team-assign{grid-template-columns:1fr 1fr}.team-assign button{grid-column:1/-1}}
@media print{.topbar,.site-footer,.team-grid form,.team-assign button,.team-buzz-state+button{display:none!important}}

/* 1.6 — separate safe projection, print station cards and SSTOP review */
.experience-panels{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;margin:25px 0}.experience-sstop{grid-column:1/-1}.sstop-review{background:#f3f8f6;border:1px solid #d7e7e0;border-radius:15px;padding:18px;margin:12px 0}.sstop-review-form{margin-top:14px;max-width:580px}.sstop-player{background:#eef9f5;border:1px solid #c0dfd4;border-radius:12px;padding:14px}.sstop-player summary{font-weight:800;cursor:pointer}.wrap-word{overflow-wrap:anywhere}.projector-screen{min-height:100vh;background:radial-gradient(circle at 15% 8%,#176b69,#0a242c 68%);color:white;padding:6vh 7vw}.projector-screen h1{color:white;font-size:clamp(34px,6vw,88px);letter-spacing:-.05em}.project-overline{letter-spacing:.2em;color:#baf4e1;font-weight:800}.project-sub{opacity:.85;font-size:clamp(16px,2vw,26px)}.project-teams{display:grid;gap:14px;margin:35px 0}.project-team{display:grid;grid-template-columns:65px 1fr auto;align-items:center;gap:20px;padding:17px 28px;background:#ffffff1b;border:1px solid #ffffff3b;border-radius:18px;font-size:clamp(20px,3vw,37px)}.project-team span{color:#98e6cd}.project-team small{font-size:12px}.project-team strong{overflow-wrap:anywhere}.project-team b{color:#faf6cb}.project-buzzer{font-size:clamp(18px,2.3vw,30px);color:#d2fff0}.projector-screen footer{margin-top:32px;opacity:.65}.projector-screen + .site-footer{display:none}.project-empty{font-size:22px;opacity:.75}@media(max-width:700px){.experience-panels{grid-template-columns:1fr}.experience-sstop{grid-column:1}.project-team{grid-template-columns:35px 1fr auto;gap:10px;padding:15px;font-size:20px}}

.projection-mode .topbar,.projection-mode .site-footer,.projection-mode .ambient{display:none}.projection-mode #view{min-height:100vh}.projection-mode{background:#0a242c}

/* COKLIO 1.7 — bifurcations guidées et carte des parcours */
.route-editor{padding:13px 14px;background:#eff8f4;border:1px solid #c4dfd6;border-radius:12px;margin:12px 0}.route-editor .hint{margin:8px 0}.route-next{margin-top:15px}.route-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:15px}.route-node{background:#f5faf8;border:1px solid #caddd4;padding:14px;border-radius:12px;display:flex;flex-direction:column;gap:8px;overflow-wrap:anywhere}.route-node small{color:#286c60;line-height:1.4}.step-card .route-editor:not(.hidden){display:block}

/* V1.8 — diagnostic d'escape, visible uniquement dans le Studio propriétaire. */
.route-audit-result{margin-top:12px}.route-audit-panel{background:#ecf6f2;border:1px solid #9acbbb;border-radius:13px;padding:16px;line-height:1.6;color:#155b50}.route-audit-panel p{margin:.5rem 0}.route-audit-panel details{margin-top:10px}.route-audit-panel .route-warning{color:#9a482a;font-weight:600}.route-audit-panel ol{max-height:260px;overflow:auto;padding-left:1.6rem;font-size:.9rem}

/* 1.9 — parcours guidés : une destination lisible par option. */
.route-choice-list{display:grid;gap:10px;margin-top:12px}
.route-choice-line{display:grid;grid-template-columns:minmax(180px,1fr) minmax(200px,1fr);align-items:center;gap:12px;padding:10px 12px;background:#fff;border:1px solid #d5e5de;border-radius:10px;font-size:.91rem}
.route-choice-line .field{margin:0;min-width:0}
.route-choice-line strong{color:#20665b}
@media(max-width:740px){.route-choice-line{grid-template-columns:1fr;gap:5px}}

/* V1.9: progressive disclosure—keep advanced power without initial overload. */
.step-content{border-top:1px solid #e0eae5;margin-top:12px}
.step-content>summary{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 2px;cursor:pointer;font-weight:800;color:#136d63;list-style:none}
.step-content>summary::-webkit-details-marker{display:none}
.step-content>summary:before{content:'▸';margin-right:5px;color:#138f81;font-size:1.1em}
.step-content[open]>summary:before{content:'▾'}
.step-content>summary small{font-weight:500;color:#5b7e78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:56%;text-align:right}
.step-inner{padding:10px 0 2px}
@media(max-width:700px){.step-content>summary small{max-width:42%}}

/* V1.9: optional detail fields and confidence metrics. */
.step-advanced{margin:12px 0;border:1px dashed #b4d9cd;border-radius:12px;background:#f6fbf9}
.step-advanced>summary{font-size:.9rem;font-weight:780;cursor:pointer;padding:13px;color:#156e62}
.step-advanced-content{padding:12px 16px 17px}
.route-path-metrics{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}
.route-path-metrics>span{background:white;border:1px solid #b8dbce;border-radius:10px;padding:10px 13px;font-size:.86rem}
.route-path-metrics strong{font-weight:900;color:#087664}

/* Coklio 1.10 — progressive disclosure + helpful preflight, keyboard and mobile friendly */
.quick-start{margin:22px 0 35px;border:1px solid #d7e8e6;border-radius:24px;padding:25px;background:linear-gradient(125deg,#f5fcf9,#f4f1ff)}
.quick-start h2{margin:9px 0;font-size:clamp(23px,3vw,34px)}
.quick-start p{margin-bottom:20px}
.quick-start-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.quick-card{border:1px solid #d7e3e4;background:white;border-radius:15px;padding:17px 12px;display:flex;gap:9px;align-items:flex-start;flex-direction:column;text-align:left;color:#19313c;min-height:136px;cursor:pointer;transition:transform .15s,border-color .15s}
.quick-card:hover{transform:translateY(-2px);border-color:#3d9e89}
.quick-card>span{font-size:26px}.quick-card strong{font-size:15px}.quick-card small{color:#607b82;line-height:1.45}
.creator-settings{padding:14px 15px 0;margin-top:14px;border:1px solid #e2e6eb;border-radius:14px}
.creator-settings>summary{font-size:13px;cursor:pointer;font-weight:750;color:#37566c;list-style:revert;padding-bottom:13px}
.creator-settings[open]>summary{border-bottom:1px solid #e2e6eb;margin-bottom:17px}
.creation-check-result{margin:14px 0 0;background:#f7fafb;border-radius:14px;padding:15px;color:#264454}
.preflight-head{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:9px}
.preflight-head span{font-size:12px;color:#5b747b}
.preflight-issues{padding:0;list-style:none;margin:13px 0 0;display:grid;gap:8px}
.preflight-issues li{padding:11px;border-radius:9px;font-size:13px;line-height:1.45}
.preflight-error{background:#fff0ee;color:#7e302b}.preflight-tip{background:#eaf5fd;color:#285272}
.preflight-link{color:inherit;font-weight:800;text-decoration:underline;border:0;background:none;margin-left:10px;cursor:pointer}
@media(max-width:900px){.quick-start-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.quick-start-grid{grid-template-columns:1fr 1fr;gap:7px}.quick-card{min-height:148px;padding:12px 9px}.quick-card strong{font-size:13px}.quick-card small{font-size:11px}.creator-settings{padding:11px}.creation-check-result{padding:11px}}
@media(prefers-reduced-motion:reduce){.quick-card{transition:none}}

/* v1.11 — Session-only draft protection and faithful participant preview */
.draft-banner{background:#f4f9fa;border:1px solid #bcdedb;border-radius:16px;padding:15px 18px;margin:16px 0 22px;display:flex;gap:18px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.draft-banner p{margin:6px 0 0;max-width:650px}
.draft-banner button[hidden]{display:none}
.preview-modal{width:min(720px,96vw);max-height:92vh;overflow-y:auto}
.preview-phone{max-width:470px;min-height:270px;margin:16px auto;background:#fff;border:1px solid #ddd5ed;border-radius:22px;padding:22px;box-shadow:0 7px 24px #190b3622}
.preview-question{font-size:clamp(21px,4vw,28px);margin:20px 0}
.preview-choices{display:grid;gap:9px;margin:14px 0}
.preview-footer{justify-content:space-between;gap:9px;flex-wrap:wrap}
@media(max-width:620px){.draft-banner{align-items:stretch}.draft-banner>.flex{display:grid;width:100%;grid-template-columns:1fr 1fr}.preview-modal{max-height:96vh;padding:20px 14px}.preview-phone{padding:15px}.preview-footer{display:grid;grid-template-columns:1fr 1fr}.preview-footer .btn{padding:12px}}

/* Coklio 1.12 — badges numériques et partage volontaire */
.achievement-card{margin:20px 0;padding:26px 22px;border-radius:20px;background:linear-gradient(138deg,#e4f8ef,#f6f4ff);border:2px solid #a3ddc5;text-align:center;color:#19464a}
.achievement-icon{display:block;font-size:3.25rem;color:#188b76}.achievement-card h3{font-size:1.6rem;margin:9px 0}.achievement-card p{line-height:1.6}.achievement-disclaimer{font-size:.78rem;color:#526d71}.achievement-nickname{display:flex;gap:10px;align-items:center;justify-content:center;font-size:.87rem;margin:16px 0}.achievement-nickname input{width:19px;height:19px;accent-color:#087e76}.achievement-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:17px 0}.achievement-actions .btn{white-space:normal}.achievement-social{text-align:left;max-width:500px;margin:20px auto}.achievement-social summary{cursor:pointer;color:#205b5c;font-weight:750}.achievement-social .achievement-actions{justify-content:flex-start}.achievement-card .hint{text-align:left}.achievement-card #achievement-feedback{min-height:20px;color:#245e54;font-weight:720}
@media(max-width:650px){.achievement-card{padding:17px 13px}.achievement-actions{display:grid;grid-template-columns:1fr}.achievement-actions .btn{width:100%}.achievement-nickname{align-items:start;justify-content:flex-start;text-align:left}.achievement-social .achievement-actions{grid-template-columns:1fr 1fr}}

/* 1.13 — mobile draft controls remain stable when focused or clicked. */
#cloud-draft-actions[hidden]{display:none!important}
#cloud-draft-actions{display:flex;gap:9px;flex-wrap:wrap;position:relative}
#cloud-draft-actions>.btn{min-height:44px;touch-action:manipulation}
@media(max-width:620px){#cloud-draft-actions{display:grid;grid-template-columns:1fr}#cloud-draft-actions>.btn{width:100%}}

/* Simple, discoverable public-example filters. */
.example-filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;margin:22px 0}
.example-filters label{font-size:.85rem;font-weight:750;color:var(--navy)}
.example-filters .field{margin-top:7px}
.examples-preview{max-height:45vh;overflow:auto;padding-left:24px;margin:20px 0}
.examples-preview>li{margin:14px 0}.examples-preview ul{padding-left:18px;margin-top:8px}
@media(max-width:760px){.example-filters{grid-template-columns:1fr}}

/* Studio progressif : fonctions expertes facultatives, adaptées au mobile. */
.studio-tools{position:relative;display:inline-block;min-width:0}
.studio-tools>summary{list-style:none;cursor:pointer}
.studio-tools>summary::-webkit-details-marker{display:none}
.studio-tools-panel{display:flex;gap:8px;flex-wrap:wrap;position:absolute;right:0;top:calc(100% + 8px);padding:13px;min-width:220px;max-width:min(90vw,340px);background:white;border:1px solid #d8e5e1;box-shadow:0 12px 38px #102f3920;border-radius:14px;z-index:12}
.studio-tools-panel .btn{white-space:normal;text-align:left;width:100%}
@media(max-width:720px){.studio-tools-panel{right:0}.app-head>.flex{flex-wrap:wrap;gap:8px}}


/* 1.29 — prevent editor controls and long synthetic case text expanding a
   one-column mobile layout beyond the viewport. Avoid a global overflow
   clipping rule: all controls must remain visible and keyboard reachable. */
@media(max-width:650px){
  .editor-layout,
  .editor-layout > *,
  .editor-layout .panel,
  .editor-layout .step-card,
  .editor-layout .two-fields > * {min-width:0;max-width:100%}
  .editor-layout input,
  .editor-layout select,
  .editor-layout textarea {min-width:0;max-width:100%}
  .editor-layout .step-head {flex-wrap:wrap}
  .editor-layout .step-card,
  .editor-layout .panel {overflow-wrap:anywhere}
}

/* Private demo: cohesive, responsive entry points for three REAL engines. */
.home-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:27px 0 16px}
.home-module{min-width:0;min-height:315px;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:28px;border:1px solid var(--border);border-radius:23px;background:#fff;box-shadow:var(--shadow)}
.home-module h3{font-size:clamp(1.55rem,2.5vw,2rem);letter-spacing:-.045em}
.home-module p:not(.eyebrow){color:#536b70;line-height:1.65}
.home-module .btn{margin-top:auto;min-height:46px}
.home-module-icon{height:53px;width:53px;display:grid;place-items:center;font-size:28px;border-radius:17px;background:#dcf5ed}
.home-module-declic{background:linear-gradient(150deg,#fff 20%,#f0efff 100%)}
.home-module-declic .home-module-icon{background:#e8e5ff}
.home-module-escape{background:linear-gradient(150deg,#fff 20%,#fff5e6 100%)}
.home-module-escape .home-module-icon{background:#fff0d0}
.home-demo-disclaimer{margin-top:17px;color:var(--muted);font-size:.9rem;max-width:880px}
.home-module a:focus-visible,.topbar a:focus-visible{outline:3px solid #9258c1;outline-offset:4px}
@media(max-width:910px){.home-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.home-module-grid{grid-template-columns:1fr;gap:12px}.home-module{min-height:0;padding:22px;gap:10px}.home-module .btn{margin-top:11px;width:100%}.home-demo-disclaimer{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.feature-card,.scenario-card{transition:none!important}}

/* COKLIO homepage: one coherent FastAPI design, no second frontend. */
.pilot-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4vw,56px);align-items:center;padding-top:clamp(38px,6vw,78px);padding-bottom:64px}
.pilot-intro{min-width:0}.pilot-intro h1{max-width:690px;margin:16px 0 20px}.pilot-intro h1 em{color:var(--teal);font-style:normal}.pilot-intro .leadin{max-width:590px;line-height:1.6}.pilot-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:26px}
.pilot-proof{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:24px;font-size:.83rem;font-weight:710;color:#556d72}.pilot-dot{display:inline-block;width:9px;height:9px;background:#16886c;border-radius:50%;flex:0 0 auto}
.pilot-preview{min-width:0;border-radius:24px;background:linear-gradient(145deg,#0e3140,#146d73);padding:23px;box-shadow:0 26px 60px #123e4735;color:#ebf9f3}
.pilot-preview-head,.pilot-preview-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:.72rem;letter-spacing:.025em;font-weight:760;flex-wrap:wrap}
.pilot-preview-main{padding:27px 24px;border-radius:18px;background:#fff;margin:24px 0;color:var(--ink)}
.pilot-preview-main h2{font-size:clamp(1.35rem,2.5vw,1.8rem);letter-spacing:-.025em;margin:10px 0}
.pilot-preview-main p{font-size:.86rem;color:#596f74;margin-bottom:20px}
.pilot-choice{border:1px solid #e0e9e5;border-radius:12px;padding:12px 14px;display:flex;justify-content:space-between;gap:12px;font-weight:670;margin-top:9px;font-size:.9rem;background:#fbfcfb}
.pilot-choice.active{background:#e7f7ef;border-color:#91d0b3;color:#145f55}
.pilot-modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.pilot-module{background:#fff;border:1px solid #dbe9e3;border-radius:22px;padding:26px;display:flex;flex-direction:column;align-items:flex-start;gap:13px;min-width:0;box-shadow:0 14px 35px #13363d0a}
.pilot-module h3{font-size:1.55rem}.pilot-module p{color:#5d7275;flex:1;line-height:1.6}.pilot-module .btn{margin-top:9px}
.pilot-module-icon{height:56px;width:56px;border-radius:16px;background:#dcf4e8;color:#067c72;font-size:30px;font-weight:900;display:grid;place-items:center}
.pilot-module-icon.declic-icon{background:#fff0d9;color:#915c15}
.pilot-module-icon.escape-icon{background:#eeeaff;color:#6556a8}
.pilot-journey{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:30px;background:#ebf5f0;border:1px solid #d7e8dd;border-radius:24px;padding:clamp(22px,4vw,42px);align-items:center}
.pilot-journey h2{margin:10px 0 13px}.pilot-journey p{margin-bottom:20px}
.pilot-journey-list{margin:0;padding:0;list-style:none;counter-reset:journey;display:grid;gap:8px}
.pilot-journey-list li{counter-increment:journey;background:white;border:1px solid #dbe9e3;border-radius:11px;padding:11px 14px;display:flex;gap:14px;font-weight:700;align-items:center}
.pilot-journey-list li:before{content:counter(journey,decimal-leading-zero);font-size:.77rem;color:var(--teal);font-weight:900;letter-spacing:.08em}
.pilot-universes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.pilot-universe{display:flex;flex-direction:column;align-items:flex-start;gap:13px;border-radius:22px;padding:clamp(24px,4vw,36px);min-width:0;background:#dcefe5;color:#174f46}
.pilot-universe.pro{background:#e7e6f8;color:#363365}.pilot-universe .eyebrow{color:inherit}
.pilot-universe strong{font-size:1.8rem;line-height:1.1;letter-spacing:-.025em}
.pilot-universe .pilot-link{font-weight:850;margin-top:6px}
.pilot-universe:hover,.pilot-universe:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.pilot-disclaimer{font-size:.83rem;color:#5c7578;max-width:850px;margin:23px auto 12px;text-align:center}
:where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid #e7a743;outline-offset:3px}
@media(max-width:840px){.pilot-hero{grid-template-columns:1fr;padding-top:35px}.pilot-preview{max-width:640px;width:100%;margin:auto}.pilot-modules{grid-template-columns:1fr 1fr}.pilot-journey{grid-template-columns:1fr}}
@media(max-width:590px){.pilot-hero{padding-bottom:42px}.pilot-intro h1{font-size:clamp(2.65rem,10vw,4rem)}.pilot-actions .btn{flex:1 1 190px}.pilot-modules,.pilot-universes{grid-template-columns:minmax(0,1fr)}.pilot-module{padding:22px}.pilot-preview{padding:16px;border-radius:20px}.pilot-preview-main{padding:20px 17px;margin:16px 0}.pilot-journey{gap:18px}}
@media(prefers-reduced-motion:reduce){.pilot-universe,.pilot-module,.pilot-preview,.btn{transition:none!important}}


/* Mid-size tablet navigation: wrap rather than overflow at 651–960px. */
@media(min-width:651px) and (max-width:960px){
 .nav-shell{height:auto;min-height:78px;flex-wrap:wrap;gap:8px 18px;padding-top:12px;padding-bottom:12px}
 .nav-shell .nav-links{order:3;display:flex;flex:1 1 100%;margin-left:0;min-width:0;justify-content:space-between;gap:9px;overflow-x:auto}
 .nav-shell .nav-links a{font-size:.82rem;white-space:nowrap}
 .nav-shell #nav-auth{margin-left:auto}
}

/* Guide prive : uniquement affiche en mode de demonstration isolee. */
.demo-guide{display:grid;gap:16px;padding:28px;border-color:#b9d9d1;background:#f6fbf8}
.demo-guide h2{font-size:clamp(1.45rem,3vw,2.15rem);margin:8px 0 10px}
.demo-guide ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;list-style-position:inside;padding:0;margin:0}
.demo-guide li{background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px;line-height:1.5;font-size:.88rem}
.demo-guide .flex{gap:10px}
.demo-guide .hint{margin:0}
#local-demo-qr-note{margin-bottom:0}
#local-demo-qr-note .btn{margin-top:12px}
@media(max-width:960px){.demo-guide ol{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.demo-guide{padding:19px}.demo-guide ol{grid-template-columns:1fr}.demo-guide .btn{width:100%}}

/* P0 Studio: keep preview / save / launch together and legible on touch. */
.editor-quick-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#f1f9f5;border:1px solid #c9e4d8;border-radius:17px;padding:13px 16px;margin:0 0 23px;box-shadow:0 8px 24px #0d453813}
.editor-quick-actions .btn{min-height:44px}
.editor-save-state{display:inline-flex;align-items:center;gap:8px;margin-right:auto;font-weight:760;font-size:.83rem;color:#166454}
.editor-save-state::before{content:'✓';display:inline-grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#d6f2e2;color:#146753}
.editor-save-state.is-dirty{color:#805015}
.editor-save-state.is-dirty::before{content:'!';background:#fff0d6;color:#805015}
#local-demo-qr-note .small{color:#674519}
@media(max-width:650px){
 .editor-quick-actions{padding:13px;margin:0 0 18px;gap:8px}
 .editor-save-state{flex:1 0 100%;margin:0}
 .editor-quick-actions .btn{flex:1 1 120px;padding:11px}
 .editor-quick-actions .btn-primary{flex:1 0 100%}
}

/* The catalogue hub reuses the FastAPI models, not a second application. */
.model-hub{padding-top:34px}.model-hub-head{border-radius:26px;padding:clamp(26px,5vw,52px);background:linear-gradient(124deg,#10323e,#147a77);color:#e7f7f1;box-shadow:0 24px 48px #10323e25}
.model-hub-head .eyebrow{color:#b9f4e0}.model-hub-head h1{color:white;font-size:clamp(2.15rem,5vw,4.15rem);margin:8px 0 15px;max-width:740px}
.model-hub-head .leadin{color:#e0f4ed;max-width:760px}
.model-hub-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:27px}
.model-hub-world{display:flex;flex-direction:column;gap:5px;background:#f0fbf5;color:#124b42;border:1px solid #c9eee0;border-radius:17px;padding:20px;transition:transform .16s}
.model-hub-world.pro{background:#f0efff;color:#36316d;border-color:#dad6ff}
.model-hub-world strong{font-size:1.19rem}.model-hub-world span{font-size:.85rem}
.model-hub-world:hover,.model-hub-world:focus-visible{transform:translateY(-2px);outline:3px solid #fac771;outline-offset:2px}
.model-hub-filters{display:grid;grid-template-columns:minmax(180px,1.6fr) minmax(155px,1fr) minmax(155px,1fr) auto;align-items:end;gap:12px;margin:23px 0;padding:20px;box-shadow:none}
.model-hub-filters .field-wrap{min-width:0}.model-hub-filters label{display:block;font-size:.82rem;font-weight:760;color:#34545a;margin-bottom:5px}
.model-hub-filters .btn{min-height:44px}.model-hub-heading{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:35px 0 21px}
.model-hub-heading h2{font-size:clamp(1.55rem,3vw,2.1rem);margin-top:6px}
.model-hub-pending{background:#faf9f5;border:1px solid #e5e5de;border-radius:20px;padding:22px;margin-top:37px}
.model-hub-pending>summary{cursor:pointer;font-weight:800;color:#3f5159;font-size:1.03rem;min-height:44px;display:list-item}
.model-hub-pending .model-grid{margin-top:19px}
@media(max-width:960px){.model-hub-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.model-hub-shortcuts,.model-hub-filters{grid-template-columns:minmax(0,1fr)}.model-hub-head{padding:24px 20px}.model-hub-world{padding:16px}.model-hub-filters{padding:16px}}

/* The navigation must be discoverable, not an off-screen horizontal carousel. */
.mobile-nav{display:none}
@media(max-width:1080px){
 .nav-shell{position:relative;height:auto;min-height:72px;gap:10px 14px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
 .nav-shell .nav-links{display:none!important}
 .nav-shell .brand{order:1;margin-right:auto}
 .nav-shell .mobile-nav{order:2;display:block;flex:0 0 auto}
 .mobile-nav summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;padding:10px 15px;min-height:44px;border-radius:12px;border:1px solid #bdd9d0;background:#eaf5f1;color:#15534f;font-weight:800}
 .mobile-nav summary::-webkit-details-marker{display:none}
 .mobile-nav[open] summary{background:#136b63;color:white}
 .mobile-nav-bars{font-size:1.05rem;line-height:1}
 .mobile-nav-panel{position:absolute;top:100%;left:16px;right:16px;z-index:40;padding:10px;border-radius:0 0 17px 17px;background:#fff;border:1px solid #cbded9;box-shadow:0 22px 38px #163c4030;display:grid;gap:4px;max-height:min(70vh,520px);overflow-y:auto}
 .mobile-nav-panel a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:10px;color:#27474d;font-weight:700;min-height:46px}
 .mobile-nav-panel a:hover,.mobile-nav-panel a:focus-visible{background:#e6f6ee;color:#10695e}
 .nav-shell #nav-auth{order:3;margin-left:auto}
}
@media(max-width:650px){
 .nav-shell #nav-auth{flex:1 0 100%;display:flex;justify-content:flex-end}
 .nav-shell .nav-auth{width:100%;justify-content:flex-end}
 .nav-shell .nav-auth .btn{min-height:40px}
 .mobile-nav-panel{left:10px;right:10px}
}
@media(prefers-reduced-motion:reduce){.model-hub-world{transition:none}}

/* UX pilot: readable beginner-first Studio, without deleting any advanced tools. */
.editor-live-preview{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:19px 22px;margin:0 0 22px;border:1px solid #cfe5da;border-radius:17px;background:linear-gradient(118deg,#ebf8f0,#fff);box-shadow:0 8px 20px #164d3520}
.editor-live-preview>div{display:grid;gap:4px;min-width:0;flex:1 1 220px}
.editor-live-preview strong{font-size:1.3rem;line-height:1.25;color:#123841;overflow-wrap:anywhere}
.editor-live-preview span:last-child{color:#425c60;overflow-wrap:anywhere}
.editor-advanced-panel{border:1px solid #d9e5e1;border-radius:16px;background:#fafdfb}
.editor-advanced-panel>summary{display:list-item;cursor:pointer;color:#205d56;font-size:.92rem;font-weight:800;min-height:44px;padding:12px 8px}
.editor-advanced-panel>summary:focus-visible{outline:3px solid #e7a743;outline-offset:2px}
.editor-detail-content{margin:8px 0 2px;min-width:0}
.editor-side-tools{padding:8px 14px}
.editor-side-tools .panel{padding:19px;box-shadow:none}
.editor-side-tools .panel .btn-danger{margin-top:12px}
.editor-layout #editor-route-map{padding:11px 18px}
.editor-layout #editor-route-map .route-map{margin-top:12px}
@media(max-width:650px){
 .editor-live-preview{padding:15px 16px;gap:12px}
 .editor-live-preview .btn{width:100%}
 .editor-side-tools{padding:6px 11px}
}

/* Animation console: participation, live question, QR, then optional analysis. */
.host-quick-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) minmax(145px,.8fr);align-items:stretch;gap:12px;margin:5px 0 19px}
.host-quick-stats .metric{padding:15px 19px;background:#f2f9f6;border-color:#cde7db}
.host-quick-stats .metric b{font-size:2rem}
.host-progress{border:1px solid #dbe9e3;border-radius:17px;background:#fff;padding:15px 20px;display:flex;flex-direction:column;justify-content:center;gap:3px}
.host-progress span{font-size:.8rem;color:#4b6b68;font-weight:730}
.host-progress strong{font-size:1.16rem;color:#153c42}
#host-view .host-layout>.stack:first-child>.panel{border-color:#b6dcd0;box-shadow:0 13px 26px #124f3510}
#host-view .host-layout>.stack:first-child>.panel h3{font-size:clamp(1.2rem,2.5vw,1.65rem);margin-top:7px}
.host-current-prompt{margin:15px 0 18px;font-size:clamp(1rem,1.9vw,1.19rem);font-weight:630;color:#254248;line-height:1.65;overflow-wrap:anywhere}
.host-close-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px;padding-top:16px;border-top:1px solid #e6eeeb}
.host-utilities{flex:1 1 220px;min-width:0}
.host-utilities .stack>.btn{width:100%;justify-content:flex-start}
.host-secondary{border:1px solid #dbe7e2;background:#fff;border-radius:15px;padding:12px 17px}
.host-secondary>summary{cursor:pointer;min-height:44px;display:list-item;padding:11px 5px;font-size:.95rem;font-weight:820;color:#174f4b}
.host-secondary>summary:focus-visible{outline:3px solid #e7a743;outline-offset:3px}
.host-detail-content{padding:9px 0 13px}
.host-bilan{margin:23px 0 6px;background:#f9fcfa}
.host-bilan>summary{font-size:1.07rem}
#host-view .codebox{box-shadow:0 14px 26px #102f3921}
#host-view .host-layout .btn{min-height:42px}
@media(max-width:960px){.host-quick-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.host-progress{grid-column:1/-1}}
@media(max-width:650px){
 .host-quick-stats{gap:8px}
 .host-quick-stats .metric{padding:12px 13px}
 .host-quick-stats .metric b{font-size:1.7rem}
 .host-progress{padding:12px 16px}
 #host-view .codebox{padding:18px}
 #host-view .codebox .bigcode{font-size:2.45rem}
 #host-view .host-layout .panel{padding:18px 15px}
 .host-close-actions .btn-danger{min-height:44px}
 .host-bilan{padding:12px}
}

/* Compte et récupération : confort tactile, zoom et petits écrans. */
.account-security{max-width:680px;margin:0 auto;display:grid;gap:14px}
.account-security .stack{display:grid;gap:12px;min-width:0}
.account-security .field,.modal .field{width:100%;max-width:100%;min-width:0}
.account-security .btn,.modal form button[type=submit]{min-height:44px}
.account-security .form-group,.modal .form-group{min-width:0}
.account-security strong{overflow-wrap:anywhere}
.account-security [role=status],.modal .inline-note{overflow-wrap:anywhere}
@media(max-width:480px){.account-security{padding:18px}.account-security .btn{width:100%}}


/* Noël — collection des lutins : visuel indépendant du reste de COKLIO */
.advent-page{max-width:1150px;padding-bottom:62px}
.advent-hero{position:relative;isolation:isolate;overflow:hidden;margin:28px auto 20px;
  padding:clamp(30px,6vw,68px);border-radius:30px;
  background:radial-gradient(circle at 85% 10%,#54856980,transparent 38%),
    radial-gradient(circle at 10% 90%,#bb7a5355,transparent 41%),
    linear-gradient(145deg,#163e37,#102d33 78%);color:#fff;box-shadow:0 22px 60px #082f2f2b}
.advent-hero::after{content:"❄";font-size:clamp(9rem,25vw,18rem);line-height:1;position:absolute;right:-.02em;bottom:-.25em;
  opacity:.07;z-index:-1;pointer-events:none}
.advent-back{display:inline-flex;align-items:center;margin-bottom:22px;font-weight:700;color:#e4f4e7}
.advent-back:hover{text-decoration:underline}
.advent-kicker,.advent-section-eyebrow{font-size:.74rem;font-weight:850;letter-spacing:.17em;text-transform:uppercase}
.advent-kicker{color:#f5d9a0}.advent-hero-star{font-size:1.9rem;letter-spacing:.55em;color:#f6d49b;display:block;margin:10px 0}
.advent-hero h1{font-size:clamp(2.5rem,6.7vw,5.3rem);line-height:1.05;letter-spacing:-.055em;max-width:850px;margin:10px 0 20px}
.advent-hero h1 em{font-style:normal;color:#ffd7a5}
.advent-hero p:not(.advent-kicker){max-width:650px;color:#f5f5eb;font-size:clamp(1rem,1.7vw,1.15rem)}
.advent-rhythm{display:flex;flex-wrap:wrap;gap:8px 12px;list-style:none;padding:0;margin:22px 0 0;max-width:790px}
.advent-rhythm li{padding:7px 12px;border:1px solid #afc7b74d;border-radius:99px;background:#ffffff0d;font-size:.87rem;color:#fff4df}
.advent-ritual{margin:28px 0}
.advent-ritual h2{font-size:clamp(1.4rem,2.8vw,2rem);letter-spacing:-.03em}
.advent-ritual-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:18px 0 0}
.advent-ritual-steps li{min-width:0;border:1px solid #dce7df;border-radius:18px;padding:20px;background:#fff}
.advent-ritual-number{display:inline-grid;place-items:center;background:#e7efe7;color:#285244;border-radius:50%;width:34px;height:34px;font-weight:800}
.advent-ritual-steps h3{font-size:1.06rem;line-height:1.3;margin:12px 0 8px}
.advent-ritual-steps p{font-size:.93rem;line-height:1.65;margin:0;color:#4f6259}
.advent-hero-actions,.advent-action-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}
.advent-hero-button{background:#f8ddad;color:#21453b;border:1px solid #f8ddad;font-weight:800;min-height:47px}
.advent-hero-button:hover{background:#fff3da}
.advent-hero-button-ghost{background:transparent;color:#fff;border:1px solid #e9e2d49c;min-height:47px}
.advent-parent-note{border:1px solid #cfdfd0;background:#f3f8ef;border-radius:18px;padding:19px 22px;
  color:#214338;font-size:.95rem;line-height:1.6;margin:22px 0 28px}
.advent-arrival{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:32px;padding:34px;margin-top:28px;scroll-margin-top:90px;
  border-radius:24px;border:1px solid #f1d6aa;background:linear-gradient(135deg,#fff8ec,#fff1d8)}
.advent-arrival-icon{width:134px;height:134px;display:grid;place-items:center;font-size:5rem;border-radius:26px;
  background:#e6b15d33;color:#84491b;transform:rotate(-3deg)}
.advent-section-eyebrow{color:#a0672a;margin:0 0 9px}
.advent-arrival h2,.advent-calendar h2{font-size:clamp(1.65rem,3.3vw,2.8rem);letter-spacing:-.035em;line-height:1.2;margin:0 0 10px}
.advent-arrival p:not(.advent-section-eyebrow){margin:0;max-width:690px}
.advent-calendar{margin:34px 0 0;border:1px solid #e6d2c0;border-radius:27px;padding:clamp(16px,3vw,34px);
  background:linear-gradient(#fffaf2,#fff6e8)}
.advent-calendar-intro{text-align:center;max-width:700px;margin:0 auto 28px}
.advent-calendar-intro p:last-child{color:#655e50}
.advent-door-grid{max-width:950px;margin:auto}
.advent-chapter+.advent-chapter{margin-top:28px;padding-top:22px;border-top:1px solid #e5d8c5}
.advent-chapter-heading{margin:0 0 14px}
.advent-chapter-heading .advent-section-eyebrow{font-size:.7rem;letter-spacing:.1em;margin:0 0 5px}
.advent-chapter-heading h3{font-size:clamp(1.05rem,2.2vw,1.35rem);margin:0;color:#244d41;line-height:1.35}
.advent-chapter-doors{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(8px,1.5vw,16px)}
.advent-door{position:relative;min-width:0;aspect-ratio:1 / 1.08;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:0;border:2px solid #e1c8a1;border-radius:16px;
  background:linear-gradient(145deg,#fffdfa,#f3e1c6);color:#385349;box-shadow:0 5px 0 #dcc29b;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.advent-door:nth-child(4n+1){background:linear-gradient(135deg,#224d42,#2b6857);color:#fff;border-color:#2b6857;box-shadow:0 5px 0 #12392f}
.advent-door:nth-child(4n+3){background:linear-gradient(135deg,#953f41,#ba5451);color:#fff;border-color:#983a40;box-shadow:0 5px 0 #772b33}
.advent-door:hover{transform:translateY(-3px)}
.advent-door:focus-visible,.advent-hero button:focus-visible{outline:4px solid #e9aa51;outline-offset:4px}
.advent-door.is-selected{border-color:#eaa035;box-shadow:0 0 0 3px #ecb65c66,0 5px 0 #d49d53}
.advent-door-number{font-size:clamp(1.6rem,3.6vw,3rem);line-height:1.15;letter-spacing:-.05em;font-weight:900}
.advent-door-star{font-size:clamp(.75rem,1.5vw,1.2rem);opacity:.75}
.advent-door-footer{font-weight:700;font-size:.65rem;letter-spacing:.025em;opacity:.8}
.advent-day-detail{margin:34px auto 0;border:2px solid #c6ddd2;border-radius:24px;background:#fff;scroll-margin-top:90px;
  box-shadow:0 14px 35px #24483e10;padding:clamp(22px,4vw,34px);max-width:950px;outline:none}
.advent-detail-label{font-size:.74rem;font-weight:850;color:#98622f;letter-spacing:.13em}
.advent-day-detail h3{font-size:clamp(1.3rem,2.9vw,2rem);margin:9px 0}
.advent-day-detail>p{max-width:770px;font-size:1.05rem}
.advent-day-detail .advent-preview-position{font-size:.84rem;color:#5e7168;margin:7px 0 14px}
.advent-story-copy{max-width:72ch;overflow-wrap:anywhere}
.advent-story-copy p{font-size:1.03rem;line-height:1.75;margin:16px 0}
.advent-day-nav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:20px}
.advent-day-nav .btn{min-height:44px;flex:1 1 180px}
.advent-day-nav .btn:disabled{opacity:.45;cursor:default}
.advent-optional-link{display:block;margin:24px auto 0;min-height:44px}
.advent-pacing{max-width:950px;margin:20px auto 0;padding:15px 20px;border:1px solid #d4dfd6;border-radius:15px;background:#fff}
.advent-pacing summary{font-weight:750;cursor:pointer;min-height:44px;display:list-item;line-height:1.5;padding:10px 0}
.advent-pacing p{font-size:.93rem;line-height:1.7;max-width:80ch}
.advent-tip{padding:13px 17px;border-left:4px solid #b88953;background:#fff7ea;color:#604e3b;
  border-radius:0 10px 10px 0;font-size:.88rem!important}
.advent-footer-cta{margin:24px auto 0;max-width:950px;padding:23px;background:#e6f1e9;
  border-radius:19px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.advent-footer-cta p{flex:1 1 350px;margin:0;color:#2e5346}
.advent-page .btn{white-space:normal;text-align:center}
@media(max-width:780px){.advent-chapter-doors{grid-template-columns:repeat(3,minmax(0,1fr))}.advent-ritual-steps{grid-template-columns:1fr}.advent-arrival{grid-template-columns:1fr;gap:16px}.advent-arrival-icon{width:75px;height:75px;font-size:2.75rem;border-radius:15px}.advent-calendar{padding:20px 14px}}
@media(max-width:450px){.advent-hero{border-radius:19px;padding:25px 20px}.advent-chapter-doors{gap:9px}.advent-door{border-radius:12px}.advent-arrival{padding:22px;border-radius:18px}.advent-footer-cta{padding:17px}.advent-action-row .btn,.advent-footer-cta .btn,.advent-hero-actions .btn{width:100%}.advent-day-detail{padding:20px 16px}.advent-ritual-steps li{padding:18px}}
@media(prefers-reduced-motion:reduce){.advent-door{transition:none}.advent-door:hover{transform:none}}


/* Three professional journeys — readable, distinct without a competing frontend. */
.journey-overview{margin:12px 0 22px;gap:12px}
.journey-overview .panel{padding:16px 18px;border-width:1px;border-style:solid}
.journey-overview h3{font-size:1.08rem;margin:0 0 6px}
.journey-overview p{font-size:.93rem;margin:0;line-height:1.55}
.journey-overview .journey-vote{border-color:#a5d5c6;background:#f2fbf7}
.journey-overview .journey-case{border-color:#c8baf2;background:#f8f5ff}
.journey-overview .journey-escape{border-color:#e8c798;background:#fff9ee}
.journey-description{margin:.55rem 0;line-height:1.55}
.journey-description strong{font-weight:700}
.journey-prompt{margin:10px 0 2px;line-height:1.5}
@media(max-width:720px){.journey-overview{gap:10px}.journey-overview .panel{padding:14px}}

/* Fêtes du monde : dix modèles réels (Vote, Déclic, Escape), sans doublage du catalogue historique. */
.family-ready-panel{margin:48px 0 22px;padding:clamp(18px,3vw,30px);border:1px solid #e2ddcb;border-radius:24px;background:linear-gradient(145deg,#fffaf0,#f7fbf7)}
.family-ready-panel h2{font-size:clamp(1.7rem,3.4vw,2.45rem);margin:8px 0}
.family-ready-panel .section-top{margin-bottom:23px}
.family-ready-panel .section-top p{max-width:760px}
.family-ready-panel .grid3{align-items:stretch}
.family-ready-card{display:flex;flex-direction:column;gap:10px;min-width:0;overflow-wrap:anywhere;background:#fff}
.family-ready-card .small{line-height:1.55}
.family-ready-card .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.family-ready-card .actions .btn{min-height:44px;flex:1 1 130px;white-space:normal}
@media(max-width:640px){.family-ready-panel{padding:18px 13px;border-radius:17px;margin:27px -4px 12px}.family-ready-card{padding:19px 15px}}


/* Classement Vote/Déclic : commandes accessibles au tactile, au clavier et au zoom. */
.ranking-list{display:grid;gap:9px;min-width:0;margin:12px 0}
.rank-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid #d8e2e0;border-radius:12px;background:#f8fbfa;min-width:0}
.rank-number{flex:0 0 2ch;font-weight:800;color:#21544b}
.rank-text{flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.45}
.rank-buttons{display:flex;gap:5px;flex:0 0 auto}
.rank-buttons .btn{min-width:42px;min-height:44px;padding:8px 12px}
.rank-result-item{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #e0e8e6}
.rank-result-item span{font-size:.9rem;color:#365d5a}
@media(max-width:420px){.rank-item{padding:9px 8px;gap:7px}.rank-buttons .btn{padding:7px 9px;min-width:38px}}


/* COKLIO Magie : interface de préparation adulte et cartes de jeu imprimables. */
/* Four distinct family occasions; the optional elf prologue is secondary. */
.seasonal-adventures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.seasonal-feature-card{--seasonal-accent:#285f4b;position:relative;display:flex;flex-direction:column;min-width:0;padding:28px;border-top:5px solid var(--seasonal-accent);background:#fbfdf9}
.seasonal-nicholas{--seasonal-accent:#976224;background:#fffaf0}
.seasonal-christmas{--seasonal-accent:#9a3e46;background:#fff8f7}
.seasonal-newyear{--seasonal-accent:#415680;background:#f8faff}
.seasonal-feature-symbol{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--seasonal-accent);border:1px solid currentColor;font-size:1.65rem;margin-bottom:16px}
.seasonal-timing{color:var(--seasonal-accent);font-size:.84rem;font-weight:750;margin:0 0 10px;line-height:1.6}
.seasonal-feature-card h2{font-size:clamp(1.5rem,3vw,2.05rem);letter-spacing:-.03em;line-height:1.2;margin:0 0 14px}
.seasonal-feature-card>p:not(.seasonal-timing){line-height:1.7;margin:0 0 22px}
.seasonal-feature-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.magic-landing .btn{white-space:normal;text-align:center;min-height:44px}
.seasonal-pacing p{margin:0;max-width:90ch;line-height:1.7}
.seasonal-prologue{background:#faf8f3;border-style:dashed}
.seasonal-prologue h2{font-size:clamp(1.2rem,2.4vw,1.6rem);margin:8px 0 12px}
.seasonal-prologue p{max-width:90ch;line-height:1.7}
.seasonal-how summary,.seasonal-other>summary{font-weight:750;cursor:pointer;min-height:44px;padding:10px 0;line-height:1.5}
.seasonal-other>summary{padding:16px 20px;border:1px solid #dce7df;border-radius:14px;background:#f5f8f5}
.seasonal-other[open]>summary{margin-bottom:18px}
.seasonal-how p{max-width:90ch;line-height:1.7}
@media(max-width:700px){.seasonal-adventures{grid-template-columns:1fr;gap:18px}.seasonal-feature-card{padding:22px}.seasonal-feature-actions{flex-direction:column;align-items:stretch}}
/* Four distinct family occasions; the optional elf prologue is secondary. */
/* Shared Family selection: the API owns membership, order and practical details. */
.family-expand-actions{display:flex;justify-content:center;margin:26px 0 8px}
.family-expand-actions .btn{min-height:44px}
/* The one-screen table reader reuses the current panels, buttons and palette. */
.apero-player{max-width:960px;padding:30px 24px 55px;overflow-wrap:anywhere}
.apero-player .app-head{padding-top:26px;margin-bottom:22px}
.apero-player .app-head h1{font-size:clamp(1.9rem,4.6vw,3.1rem);line-height:1.16;margin-top:10px}
.apero-player h2{font-size:clamp(1.35rem,3vw,1.9rem);line-height:1.28}
.apero-player h3{font-size:1.1rem;letter-spacing:-.02em;line-height:1.4}
.apero-player .btn{min-height:44px}
.apero-player button:focus-visible,.apero-round-picker summary:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.table-games{padding-bottom:45px}
.table-games .btn,.table-games select{min-height:44px;white-space:normal}
.table-games button:focus-visible,.table-games a:focus-visible,.table-games summary:focus-visible,.table-games input:focus-visible,.table-games select:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.table-games [tabindex="-1"]{scroll-margin-top:95px}
.table-game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch;margin-top:25px}
.table-game-choice{display:flex;flex-direction:column;gap:15px;min-width:0;padding:27px;overflow-wrap:anywhere}
.table-game-choice h2{font-size:1.65rem;line-height:1.2}
.table-game-choice p{line-height:1.65;margin:0}
.table-game-choice>.btn{margin-top:auto}
.table-tagline{font-weight:750;color:var(--teal);line-height:1.6;margin:15px 0}
.table-privacy{font-size:.9rem;line-height:1.75;color:var(--muted);max-width:83ch;margin:25px 0}
.table-game-heading{margin:25px 0 18px}
.table-game-heading .eyebrow{margin-bottom:7px}
.table-game-heading h1{font-size:clamp(1.7rem,3.5vw,2.35rem);line-height:1.2}
.table-rules{border:1px solid var(--border);border-radius:14px;padding:12px 22px;background:var(--white);margin:24px 0}
.table-rules summary{cursor:pointer;font-weight:750;min-height:44px;padding:11px 0}
.table-rules ol{display:grid;gap:12px;padding-left:24px;margin:15px 0 22px}
.table-rules li,.table-rules p{line-height:1.75}
.table-rules h3{font-size:1.05rem;margin:21px 0 10px}
.table-rules>.btn{margin:22px 0 10px}
.table-setup,.table-resume{padding:26px;margin:24px 0;max-width:850px}
.table-setup h2,.table-resume h2{margin-bottom:18px}
.table-setup p,.table-resume p{line-height:1.7}
.table-setup>label:not(.table-calm){display:flex;flex-direction:column;gap:9px;max-width:260px;font-weight:700}
.table-calm{display:flex;gap:10px;align-items:center;min-height:44px;margin-top:18px;font-weight:650}
.table-calm input{width:22px;height:22px;flex:0 0 22px}
.table-scores{margin:18px 0 22px}
.table-scores ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:9px;padding:0;list-style:none}
.table-scores li{display:flex;flex-direction:column;gap:5px;align-items:center;border:1px solid var(--border);border-radius:11px;padding:10px 8px;background:var(--white);text-align:center}
.table-scores span{font-size:.8rem;color:var(--muted)}
.table-scores strong{font-size:1.25rem;color:var(--navy)}
.table-games>.eyebrow{margin:16px 0}
.table-cover,.table-secret,.table-active-card,.table-adjudication,.table-turn-end,.table-betting,.table-resolution,.table-ending{padding:clamp(22px,3.7vw,35px);max-width:900px;margin:15px 0 20px}
.table-cover h2,.table-secret h2,.table-adjudication h2,.table-turn-end h2,.table-betting h2,.table-resolution h2,.table-ending h2{font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.35;margin-bottom:19px}
.table-cover p,.table-adjudication p,.table-betting p,.table-resolution p,.table-ending p{line-height:1.75;margin-bottom:21px}
.table-cover>.btn,.table-secret>.btn,.table-turn-end>.btn,.table-resolution>.btn{margin-top:14px}
.table-clock{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 21px;color:var(--muted);font-size:.85rem}
.table-clock strong{font-size:2.35rem;line-height:1.1;color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.table-active-card .table-target{font-size:clamp(2rem,5vw,3.1rem);line-height:1.15;color:var(--navy);margin:10px 0 22px;overflow-wrap:anywhere}
.table-active-card h3{font-size:.9rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px;color:var(--muted)}
.table-question{font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.4;margin:15px 0 28px;overflow-wrap:anywhere}
.table-forbidden{list-style:none;padding:0;display:flex;gap:10px;flex-wrap:wrap;margin:0 0 23px}
.table-forbidden li{border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-size:1.1rem;font-weight:650;background:var(--canvas)}
.table-play-actions,.table-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px}
.table-play-actions>.btn{flex:1 1 150px;font-size:1.05rem;min-height:52px}
.table-play-actions>.btn:first-child{flex-basis:100%;min-height:60px}
.table-footer{margin:8px 0 20px}
.table-result,.table-winners{font-size:1.2rem;font-weight:750;color:var(--teal)}
.table-dice{list-style:none;display:flex;gap:12px;flex-wrap:wrap;padding:0;margin:23px 0}
.table-dice li{display:grid;place-items:center;width:57px;height:57px;border:2px solid var(--navy);border-radius:12px;font-size:1.8rem;font-weight:800;font-variant-numeric:tabular-nums;background:var(--white);color:var(--navy)}
.table-dice li.is-counted{position:relative;border-color:var(--teal);background:var(--mint)}
.table-die-counted{position:absolute;right:3px;top:1px;font-size:11px;line-height:1.1;color:var(--teal)}
.table-current-bid{background:var(--canvas);border-radius:12px;padding:18px;font-size:1.1rem;font-weight:650}
.table-bid-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}
.table-bid-fields label{display:flex;flex-direction:column;gap:9px;font-weight:650}
.table-bid-fields select{width:100%;min-height:49px}
.table-revealed-hands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 25px;margin:24px 0}
.table-revealed-hands h3{font-size:1rem}
.table-revealed-hands .table-dice{gap:7px;margin:10px 0 16px}
.table-revealed-hands .table-dice li{width:40px;height:40px;font-size:1.25rem;border-width:1px}
.table-ranking{list-style:none;display:grid;gap:10px;padding:0;margin:25px 0}
.table-ranking li{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--border);padding:12px 0}
.table-storage{margin:18px 0}
@media(max-width:1000px){.table-game-grid{grid-template-columns:1fr}.table-game-choice{padding:25px}.table-game-choice>.btn{align-self:flex-start}}
@media(max-width:650px){.table-games{padding:23px 20px 40px}.table-game-heading{margin:22px 0 15px}.table-game-heading h1{font-size:1.7rem}.table-cover,.table-secret,.table-active-card,.table-adjudication,.table-turn-end,.table-betting,.table-resolution,.table-ending{padding:23px 18px}.table-rules{padding:9px 17px}.table-setup,.table-resume{padding:22px 18px}.table-scores ul{grid-template-columns:repeat(auto-fit,minmax(75px,1fr))}.table-actions>.btn{flex:1 1 160px}.table-forbidden{gap:7px}.table-forbidden li{padding:9px 11px;font-size:1rem}.table-clock strong{font-size:2.1rem}.table-dice{gap:8px}.table-dice li{width:44px;height:48px;font-size:1.55rem}.table-revealed-hands{grid-template-columns:1fr}.table-game-choice>.btn{align-self:stretch}}
.apero-player [tabindex="-1"]{scroll-margin-top:110px}
.apero-player .leadin{max-width:75ch;margin-bottom:18px}
.apero-privacy{max-width:78ch;color:var(--muted);margin:15px 0 24px}
.apero-notice{margin:0 0 22px}
.apero-access-help{margin:20px 0 24px;max-width:70ch}
.apero-formats{margin:26px 0}
.apero-formats h2{margin-bottom:16px}
.apero-format{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:12px;color:var(--ink);font:inherit;min-width:0;min-height:175px;border:1px solid var(--border)}
.apero-format:hover{border-color:var(--teal)}
.apero-format strong{font-size:1.25rem;color:var(--navy)}
.apero-format>span{font-weight:750;color:var(--teal)}
.apero-format small{font-size:.91rem;line-height:1.55;color:var(--muted)}
.apero-setup,.apero-resume,.apero-ending{margin:22px 0;padding:clamp(22px,3vw,32px)}
.apero-setup ul{display:grid;gap:10px;padding-left:23px;margin:17px 0 24px}
.apero-setup h3{margin:24px 0 10px}
.apero-prose{white-space:pre-line;font-size:1.05rem;line-height:1.8;max-width:76ch}
.apero-resume .small{margin-top:14px}
.apero-progress{display:flex;gap:12px 25px;flex-wrap:wrap;margin:15px 0}
.apero-progress>div{display:flex;align-items:baseline;gap:8px}
.apero-progress dt{font-size:.83rem;color:var(--muted)}
.apero-progress dd{margin:0;font-size:1.12rem;font-weight:800;color:var(--navy)}
.apero-round-meta{display:flex;align-items:center;justify-content:space-between;gap:10px 25px;flex-wrap:wrap;margin:10px 0 16px}
.apero-round-meta .apero-progress{margin:0}
.apero-round{padding:clamp(22px,4vw,38px)}
.apero-round h2{margin-bottom:22px}
.apero-round h3{margin:24px 0 14px}
.apero-options{list-style:none;padding:0;margin:14px 0 24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.apero-options li{padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:var(--canvas);line-height:1.6;min-width:0}
.apero-round>.hint{margin-top:16px}
.apero-reveal-action{margin:25px 0 18px}
.apero-feedback{padding:22px;border-radius:14px;margin-bottom:25px}
.apero-feedback h3{margin:0 0 12px}
.apero-round-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:23px;margin-top:25px}
.apero-round-picker{margin:23px 0;padding:12px 18px;border:1px solid var(--border);border-radius:14px;background:var(--white)}
.apero-round-picker summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:750}
.apero-round-picker ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:15px 0 8px}
.apero-round-picker .btn{width:100%;display:flex;align-items:flex-start;flex-direction:column;text-align:left;gap:8px}
.apero-round-picker small{font-weight:500;color:var(--muted)}
.apero-round-picker [aria-current=step]{border-color:var(--teal);background:var(--mint)}
.apero-ending .apero-progress{margin:25px 0 15px}
.apero-ending h3{margin:24px 0 12px}
.apero-ending .family-card-actions{margin-top:25px}
.apero-footer-actions{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:20px 0 15px}
.apero-alternatives{margin-top:25px;padding-top:23px;border-top:1px solid var(--border)}
.apero-alternatives p{margin-top:12px;max-width:74ch}
@media(max-width:650px){.apero-player{padding:23px 20px 40px}.apero-formats .grid2,.apero-options,.apero-round-picker ol{grid-template-columns:1fr}.apero-format{min-height:0;padding:22px}.apero-round{padding:24px 19px}.apero-prose{font-size:1rem;line-height:1.75}.apero-reveal-action .btn{width:100%}.apero-round-nav>.btn{flex:1 1 135px}.apero-round-nav>.btn:last-child{flex-basis:100%}.apero-round-picker{padding:10px 14px}.apero-footer-actions>.btn{flex:1 1 170px}}
.family-catalog{--family-ink:#25463e;--family-soft:#f4f7ef;--family-accent:#386a50;padding-bottom:50px}
.family-hero{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:35px;align-items:center;padding:clamp(24px,4vw,44px);margin:0 0 26px;border:1px solid #d9e5d8;border-radius:25px;background:linear-gradient(125deg,#f2f7ec,#fdf9ef);color:var(--family-ink)}
.family-hero h1{max-width:23ch;font-size:clamp(2.1rem,4.2vw,3.4rem);line-height:1.12;margin:10px 0 18px;letter-spacing:-.04em}
.family-hero .leadin{max-width:65ch;font-size:1.08rem;line-height:1.65;margin-bottom:16px}
.family-access-note{font-size:.87rem;line-height:1.65;margin:0;max-width:72ch}
.family-ritual{list-style:none;counter-reset:family-ritual;display:grid;gap:13px;padding:0;margin:0}
.family-ritual li{counter-increment:family-ritual;display:flex;align-items:center;gap:12px;font-size:.93rem;font-weight:650;line-height:1.45}
.family-ritual li:before{content:counter(family-ritual);flex:0 0 34px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid #bfd2be;background:#fff;color:#426143;font-size:.9rem}
.family-collection-nav{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:22px 0 12px}
.family-collection-switch{display:flex;gap:4px;padding:5px;border:1px solid #d8e1d7;border-radius:14px;background:#f6f8f3}
.family-collection-switch button{border:0;background:transparent;color:#3b554a;border-radius:10px;min-height:44px;padding:10px 17px;font:inherit;font-size:.95rem;font-weight:650;cursor:pointer}
.family-collection-switch button[aria-pressed=true]{background:#315e47;color:#fff}
.family-collection-switch button:disabled{cursor:wait;opacity:.7}
.family-collection-switch button:focus-visible,.family-historical summary:focus-visible,.family-card-companion summary:focus-visible{outline:3px solid #2a725a;outline-offset:3px}
.family-winter-link{color:#315e47;font-size:.95rem;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
.family-collection-note{max-width:90ch;font-size:.91rem;color:#536258;line-height:1.65;margin:8px 0 22px}
.family-filters{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(145px,1fr) minmax(180px,1.2fr) auto;gap:14px;align-items:end;margin:0;padding:21px;background:#fff;border:1px solid #dce5dc;border-radius:18px}
.family-filters label{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:.85rem;font-weight:650;color:#314c3d}
.family-filters .field{width:100%;min-width:0;min-height:46px;background:#fff}
.family-filters>.btn{min-height:46px;white-space:normal}
.family-result-count{font-size:.91rem;color:#4c6657;margin:23px 0 16px;min-height:1.45em}
.family-experience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px}
.family-experience{--card-accent:#477659;min-width:0;display:flex;flex-direction:column;padding:clamp(21px,2.6vw,30px);border:1px solid #d9e3d6;border-top:4px solid var(--card-accent);border-radius:20px;background:#fff;box-shadow:0 7px 22px #1e493608;overflow-wrap:anywhere}
.family-group-winter{--card-accent:#496d89;background:#fcfdff}
.family-group-birthday{--card-accent:#ad6b47;background:#fffcf8}
.family-group-seasonal{--card-accent:#638343;background:#fcfdf8}
.family-group-together{--card-accent:#916c94;background:#fdfbff}
.family-group-celebration{--card-accent:#a0793d;background:#fffdf8}
.family-card-top{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:15px}
.family-card-symbol{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;border:1px solid currentColor;color:var(--card-accent);font-size:1.3rem}
.family-card-type{color:#465a4d;font-size:.81rem;font-weight:650}
.family-card-badge{margin-left:auto;background:#e9f0e4;color:#3d5939;border-radius:30px;padding:6px 9px;font-size:.73rem;font-weight:650}
.family-card-badge.reserve{background:#edf0ef;color:#59615b}
.family-card-time{color:var(--card-accent);font-size:.88rem;font-weight:750;line-height:1.55;margin:0 0 10px}
.family-experience h2{font-size:clamp(1.35rem,2.4vw,1.8rem);line-height:1.25;letter-spacing:-.025em;margin:0 0 14px;color:#263f32}
.family-card-description{font-size:.96rem;line-height:1.65;margin:0 0 20px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.family-card-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 17px;margin:0 0 18px;padding:16px 0;border-top:1px solid #dfe6db;border-bottom:1px solid #dfe6db}
.family-card-facts div{min-width:0}
.family-card-facts dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:750;color:#657065;margin:0 0 5px}
.family-card-facts dd{font-size:.87rem;line-height:1.55;color:#314a39;margin:0}
.family-adapted-note{font-size:.77rem;line-height:1.55;color:#66705f;margin:0 0 16px}
.family-card-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.family-experience>.family-card-actions{margin-top:auto}
.family-card-actions .btn{white-space:normal;text-align:center;min-height:44px}
.family-experience>.family-card-actions>.btn:not(.family-guide-link){flex:1 1 165px}
.family-experience .family-guide-link{flex:1 1 100%;padding:7px 10px;font-size:.85rem;min-height:38px}
.family-card-details{margin-top:17px;border-top:1px solid var(--border)}
.family-card-details summary{cursor:pointer;min-height:44px;padding:13px 0;font-size:.86rem;font-weight:700;line-height:1.5;color:var(--navy)}
.family-card-details summary:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.family-card-details>div>p{font-size:.92rem;line-height:1.7;margin:4px 0 18px}
.family-card-details .family-card-facts{border-top:0;padding-top:0}
.family-card-companion{margin-top:20px;border:1px dashed #cbd7c3;border-radius:12px;background:#f7f8f2}
.family-card-companion summary{cursor:pointer;font-size:.87rem;font-weight:700;line-height:1.5;padding:15px;min-height:44px}
.family-card-companion>div{padding:0 15px 17px}
.family-card-companion h3{font-size:1.08rem;line-height:1.4;margin:0 0 8px}
.family-card-companion p:not(.family-card-time){font-size:.87rem;line-height:1.6;margin:10px 0 17px}
.family-empty{padding:30px 24px;text-align:left}
.family-empty p{max-width:65ch;line-height:1.7;margin:14px 0 22px}
.family-empty h2{font-size:1.4rem}
.family-load-error p{margin:0 0 12px}
.family-historical{margin:32px 0 0;padding:16px 20px;border:1px solid #dde5dc;border-radius:14px;background:#fafbf8}
.family-historical summary{font-weight:650;font-size:.9rem;min-height:44px;padding:10px 0;line-height:1.5;cursor:pointer}
.family-historical p{font-size:.9rem;line-height:1.65;max-width:80ch;margin:10px 0 16px}
.family-visitor-actions{max-width:800px;margin:25px auto}
.family-visitor-actions>p{font-size:1.05rem;line-height:1.7;margin-bottom:22px}
.family-preview-details{margin:14px 0 25px}
.family-preview-details>p{font-size:.96rem;line-height:1.75;margin-bottom:20px}
.family-winter .family-hero{background:linear-gradient(125deg,#eff5f8,#faf7ed);border-color:#d8e3e6}
.family-winter .family-filters{grid-template-columns:minmax(180px,1.5fr) minmax(180px,1fr) auto}
@media(min-width:1350px){.family-experience-grid:not(.is-winter){grid-template-columns:repeat(3,minmax(0,1fr))}.family-experience-grid:not(.is-winter) .family-card-facts{grid-template-columns:1fr}}
@media(max-width:950px){.family-hero{grid-template-columns:1fr;gap:22px}.family-ritual{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.family-ritual li{font-size:.83rem;align-items:flex-start}.family-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.family-filters>label:first-child{grid-column:1 / -1}.family-filters>.btn{grid-column:1 / -1;justify-self:start}.family-winter .family-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.family-winter .family-filters>label:first-child{grid-column:auto}.family-card-badge{margin-left:0}}
@media(max-width:650px){.family-experience-grid,.family-experience-grid.is-winter{grid-template-columns:1fr;gap:18px}.family-hero{border-radius:18px;padding:25px 20px}.family-hero h1{font-size:2rem}.family-ritual{grid-template-columns:1fr;gap:11px}.family-ritual li{align-items:center;font-size:.9rem}.family-experience{padding:23px 20px}.family-collection-switch{width:100%}.family-collection-switch button{flex:1 1 50%;font-size:.86rem;padding:10px}.family-filters,.family-winter .family-filters{grid-template-columns:1fr;padding:18px}.family-filters>.btn{justify-self:stretch}.family-filters>label:first-child,.family-filters>.btn{grid-column:auto}.family-collection-nav{gap:10px}.family-card-actions .btn{flex:1 1 170px}}
@media(max-width:360px){.family-card-facts{grid-template-columns:1fr}.family-experience{padding:20px 16px}}
.seasonal-adventures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.seasonal-feature-card{--seasonal-accent:#285f4b;position:relative;display:flex;flex-direction:column;min-width:0;padding:28px;border-top:5px solid var(--seasonal-accent);background:#fbfdf9}
.seasonal-nicholas{--seasonal-accent:#976224;background:#fffaf0}
.seasonal-christmas{--seasonal-accent:#9a3e46;background:#fff8f7}
.seasonal-newyear{--seasonal-accent:#415680;background:#f8faff}
.seasonal-feature-symbol{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--seasonal-accent);border:1px solid currentColor;font-size:1.65rem;margin-bottom:16px}
.seasonal-timing{color:var(--seasonal-accent);font-size:.84rem;font-weight:750;margin:0 0 10px;line-height:1.6}
.seasonal-feature-card h2{font-size:clamp(1.5rem,3vw,2.05rem);letter-spacing:-.03em;line-height:1.2;margin:0 0 14px}
.seasonal-feature-card>p:not(.seasonal-timing){line-height:1.7;margin:0 0 22px}
.seasonal-feature-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.magic-landing .btn{white-space:normal;text-align:center;min-height:44px}
.seasonal-pacing p{margin:0;max-width:90ch;line-height:1.7}
.seasonal-prologue{background:#faf8f3;border-style:dashed}
.seasonal-prologue h2{font-size:clamp(1.2rem,2.4vw,1.6rem);margin:8px 0 12px}
.seasonal-prologue p{max-width:90ch;line-height:1.7}
.seasonal-how summary,.seasonal-other>summary{font-weight:750;cursor:pointer;min-height:44px;padding:10px 0;line-height:1.5}
.seasonal-other>summary{padding:16px 20px;border:1px solid #dce7df;border-radius:14px;background:#f5f8f5}
.seasonal-other[open]>summary{margin-bottom:18px}
.seasonal-how p{max-width:90ch;line-height:1.7}
@media(max-width:700px){.seasonal-adventures{grid-template-columns:1fr;gap:18px}.seasonal-feature-card{padding:22px}.seasonal-feature-actions{flex-direction:column;align-items:stretch}}
#magic-setup .magic-controls{max-width:1050px}
#magic-setup .magic-sheet{margin:22px 0;padding:20px;border:2px solid #b6dcd0;border-radius:16px}
#magic-setup .magic-cards{display:none}
#magic-setup .magic-ticket-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
#magic-setup .magic-ticket{break-inside:avoid;border:2px dashed #357b74;border-radius:12px;padding:15px;text-align:center;min-height:245px}
#magic-setup .magic-ticket img{display:block;margin:12px auto;max-width:100%;image-rendering:pixelated}
#magic-setup .magic-fold{margin-top:14px;border-top:2px dashed #5b7580;padding-top:12px;text-align:left}
#magic-setup .magic-parent li{margin-bottom:9px}
@media(max-width:600px){#magic-setup .magic-ticket-grid{grid-template-columns:1fr}#magic-setup .magic-sheet{padding:13px}}
@media print{
 @page{size:A4;margin:12mm}
 body.magic-print{background:white!important;color:#142c30!important}
 body.magic-print .topbar,body.magic-print .site-footer,body.magic-print .ambient,body.magic-print #modal-root,body.magic-print #toasts{display:none!important}
 body.magic-print #view{padding:0!important;margin:0!important;width:100%!important}
 body.magic-print #magic-setup>.app-head,body.magic-print #magic-setup>.banner,body.magic-print #magic-setup>.magic-controls,body.magic-print #magic-setup>.hint{display:none!important}
 body.magic-print #magic-setup .magic-sheet{border:0;padding:0;margin:0}
 body.magic-print-parent #magic-setup .magic-cards{display:none!important}
 body.magic-print-parent #magic-setup .magic-parent{display:block!important}
 body.magic-print-cards #magic-setup .magic-parent{display:none!important}
 body.magic-print-cards #magic-setup .magic-cards{display:block!important}
 body.magic-print #magic-setup .magic-ticket-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9mm}
 body.magic-print #magic-setup .magic-ticket{min-height:105mm;padding:8mm}
 body.magic-print #magic-setup .magic-ticket img{height:40mm;width:40mm}
 body.magic-print #magic-setup .magic-fold{font-size:12pt}
}

/* Serial family story: a real reading rhythm, including at 390px and zoom 200%. */
.serial-story{border-left:3px solid var(--teal);padding:1px 0 1px 17px;margin:12px 0 21px;overflow-wrap:anywhere}
.serial-story .serial-scene{font-size:1.04rem;line-height:1.76;letter-spacing:.002em;color:var(--ink);margin:11px 0 18px}
.serial-story .serial-challenge{font-size:clamp(1.22rem,3.5vw,1.62rem);line-height:1.38;letter-spacing:-.02em;margin:0 0 17px;color:var(--navy)}
.serial-story .serial-teaser{font-size:.93rem;line-height:1.65;border-top:1px solid var(--border);padding-top:12px;color:var(--muted)}
.serial-story .serial-teaser strong{color:var(--teal)}
@media(max-width:650px){.serial-story{padding-left:12px}.serial-story .serial-scene{font-size:1rem;line-height:1.7}.serial-story .serial-challenge{font-size:1.25rem}}

/* Safety Day configurable: mobile-friendly and keyboard-accessible forms. */
.safety40-question{border:1px solid var(--border,#bdcec8);border-radius:12px;padding:12px;margin:0;min-width:0}
.safety40-question legend{font-weight:700;max-width:100%;padding:0 6px;white-space:normal}
.safety40-option{display:flex;align-items:flex-start;gap:12px;padding:11px 8px;min-height:44px;border-bottom:1px solid #d6e3df;cursor:pointer}
.safety40-option:last-child{border-bottom:0}.safety40-option input{margin-top:4px;width:20px;height:20px;flex-shrink:0}
.safety40-option:focus-within{outline:2px solid #08796d;outline-offset:2px}

/* Défi complice parent-enfant : opt-in, keyboard accessible, no score. */
.family-duo{margin:18px 0 12px;border:1px solid var(--border);border-radius:14px;background:var(--paper,#fff);overflow:hidden;color:var(--ink)}
.family-duo>summary{font-weight:700;font-size:1rem;line-height:1.55;padding:14px 16px;cursor:pointer;min-height:48px;overflow-wrap:anywhere}
.family-duo>summary:hover{background:rgba(0,113,106,.055)}
.family-duo summary:focus-visible{outline:3px solid var(--teal,#08796d);outline-offset:-3px}
.family-duo-body{padding:2px 16px 16px}
.family-duo-question{font-size:1rem;line-height:1.7;font-weight:650;overflow-wrap:anywhere}
.family-duo-answer{margin-top:12px;border-left:3px solid var(--teal,#08796d);padding:9px 12px;background:rgba(0,113,106,.035)}
.family-duo-answer>summary{font-weight:650;cursor:pointer;line-height:1.6;min-height:38px;overflow-wrap:anywhere}
.family-duo-answer p{line-height:1.7;overflow-wrap:anywhere}
.family-duo-source{border-top:1px solid var(--border);padding-top:8px}
@media(max-width:650px){.family-duo>summary{padding:14px 12px}.family-duo-body{padding:2px 12px 14px}}

/* Native-language selector: always visible in the navigation; on participant
   screens (whose header is intentionally hidden), keep one small accessible
   selector. No icon-only flags: flags do not represent languages. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.language-switch{display:flex;align-items:center;flex:0 0 auto}
.language-switch select,.player-language-switch select{background:#fff;color:#163c40;border:1px solid #88b0a9;border-radius:10px;min-height:44px;padding:8px 9px;max-width:135px;font-size:.88rem;font-weight:650}
.language-switch select:focus-visible,.player-language-switch select:focus-visible{outline:3px solid #9258c1;outline-offset:3px}
.player-language-switch{display:none}
.player-mode .player-language-switch{position:fixed;z-index:80;display:block;top:8px;right:8px}
@media(max-width:1080px){.nav-shell .language-switch{order:2;flex:0 0 auto}}
@media(max-width:650px){.nav-shell .language-switch select{max-width:105px;padding:7px 5px;font-size:.8rem}.nav-shell .language-switch{margin-left:0}}
@media print{.player-language-switch{display:none!important}}

/* Keep long official legal terms readable on narrow phones in four languages. */
.coklio-legal-locale {overflow-wrap:anywhere}


/* Public home is meaningful before JavaScript runs; keep its skip navigation reachable. */
.skip-link{position:absolute;top:-100px;left:12px;z-index:200;padding:12px 18px;background:#102f39;color:#fff;border-radius:9px;font-weight:700}
.skip-link:focus,.skip-link:focus-visible{top:10px;outline:3px solid #e7a743;outline-offset:3px}
#public-universes-title{font-size:clamp(1.5rem,3vw,2.3rem);margin:0 0 16px}
@media(max-width:590px){#view>.pilot-hero{padding-top:30px}#view>.pilot-hero .pilot-actions{display:grid;grid-template-columns:1fr}}

/* Local facilitator documents; no embedded active content. */
.document-projection{background:#fff;color:#142f38;border:1px solid #d4e0e2;border-radius:18px;padding:clamp(12px,3vw,32px);margin-top:20px;overflow-wrap:anywhere;min-height:180px}.document-projection canvas{display:block;max-width:100%;height:auto;margin:auto}.document-projection p{font-size:clamp(1rem,2.2vw,1.6rem);line-height:1.5}.document-projection:fullscreen{overflow:auto;border-radius:0;padding:4vw}

/* A prominent invitation, separate from the two main activity universes. */
.bespoke-invitation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 18px;margin:22px 0;padding:16px 18px;border:1px solid #b7d8c5;border-radius:15px;background:#eef7ef;color:#214c3d;max-width:100%;overflow-wrap:anywhere}.bespoke-invitation strong{font-size:1.12rem;letter-spacing:-.025em}.bespoke-invitation>span:not(.bespoke-arrow){font-size:.9rem;line-height:1.5}.bespoke-invitation .bespoke-arrow{grid-column:2;grid-row:1/3;align-self:center;font-size:1.6rem}.bespoke-invitation:hover{background:#e2f1e6;border-color:#77ae91}.bespoke-invitation:focus-visible{outline:3px solid #146958;outline-offset:4px}
