/* Shared, self-hosted atelier. No external fonts, scripts or trackers. */
:root{--ink:#173b42;--teal:#087f80;--paper:#faf6ed;--coral:#c34d32}
.public-academy{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 'Segoe UI',sans-serif}.public-academy *{box-sizing:border-box}.public-academy a{color:inherit}.public-academy h1,.public-academy h2,.atelier-heading h1{font-family:Georgia,serif;line-height:1.08;font-weight:500;letter-spacing:-.04em}.public-academy a:focus-visible,.atelier-room button:focus-visible,.mini-games button:focus-visible{outline:4px solid #edaf40;outline-offset:5px}.landing-nav{max-width:1400px;margin:auto;padding:25px 5%;display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #d9dfd5}.landing-brand{text-decoration:none;font-weight:750;letter-spacing:-.04em;font-size:24px}.landing-brand span{color:var(--coral);margin-right:12px}.landing-nav nav,.landing-actions{display:flex;gap:28px;align-items:center}.atelier-cta{display:inline-block;border:0;border-radius:7px;background:var(--teal);color:white!important;padding:14px 24px;text-decoration:none;font:600 16px/1.5 'Segoe UI',sans-serif}.landing-hero{max-width:1400px;margin:auto;padding:80px 5%;display:grid;grid-template-columns:1.25fr 1fr;gap:7%;align-items:center}.atelier-kicker{font:700 12px/1.5 'Segoe UI',sans-serif!important;letter-spacing:.16em;color:var(--teal)}.landing-hero h1{font-size:clamp(48px,5.6vw,86px);margin:24px 0}.landing-hero h1 em{color:var(--coral);font-weight:400}.landing-lead{max-width:500px;font-size:20px}.landing-actions{margin:30px 0}.landing-caption{font-size:13px;color:#5a706f}.landing-note{padding:35px;background:#153d42;color:#faf3df;border-radius:150px 150px 12px 12px;min-height:450px;text-align:center;box-shadow:14px 14px 0 #e6d5b6}.landing-note>span{font-size:10px;letter-spacing:.15em}.landing-note h2{font-size:42px}.code-art{display:flex;flex-direction:column;gap:7px;align-items:center;transform:rotate(-3deg);margin:28px 0}.code-art span{background:#e8b353;color:#183c40;padding:6px 16px;border-radius:8px;font:600 13px/1.6 monospace}.code-art span:nth-child(2){background:#8ac6b7;margin-left:22px}.code-art span:nth-child(3){background:#f0c9b7;margin-left:40px}.landing-demo{max-width:1400px;margin:auto;padding:30px 5% 70px}.landing-section-title h2{font-size:clamp(34px,4vw,54px);margin:18px 0}.landing-section-title>p:last-child{max-width:670px}.preview-message{text-align:center;min-height:40px;font-size:14px}.landing-features{max-width:1400px;margin:auto;padding:35px 5% 80px;display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.landing-features article{border-top:2px solid #b6c8bf;padding-top:24px}.landing-features span{font-size:11px;letter-spacing:.12em;color:var(--teal)}.landing-features h2{font-size:29px}.landing-end{text-align:center;padding:65px 25px;background:#e7eee5}.landing-end h2{font-size:60px;margin:25px}.landing-end>p:last-child{font-size:14px}.landing-footer{padding:25px 5%;display:flex;justify-content:space-between;gap:20px;font-size:12px}
.atelier-heading{padding:12px 0 24px}.atelier-heading h1{font-size:clamp(32px,4vw,54px);margin:12px 0}.atelier-room{position:relative;min-height:590px;border-radius:20px;overflow:hidden;background:#18343e;border:1px solid #2b5558;isolation:isolate}.room-scene{position:relative;min-height:590px;background:repeating-linear-gradient(90deg,transparent 0 110px,#906d4924 111px 113px),repeating-linear-gradient(0deg,#b78e65 0 65px,#b0865c 66px 68px);padding-top:150px}.room-wall{position:absolute;inset:0 0 auto;height:190px;background:linear-gradient(#f0e5ce 0 68%,#417e7a 68% 96%,#234b50 96%);border-bottom:6px solid #183e43}.wall-sign{position:absolute;top:30px;left:8%;padding:14px 24px;background:#153c41;color:#f5e8c8;font:700 18px monospace;border:6px solid #ae8057;box-shadow:4px 5px 0 #183b4030}.room-window{position:absolute;right:9%;top:20px;width:135px;height:110px;border:8px solid #fff8e9;background:linear-gradient(90deg,transparent 47%,#fff8e9 47% 53%,transparent 53%),linear-gradient(transparent 47%,#fff8e9 47% 53%,transparent 53%),linear-gradient(#99d5d7,#dfedb8);box-shadow:0 6px 12px #143c4020}.room-rug{position:absolute;left:12%;right:12%;top:230px;bottom:50px;background:#548d86;border:12px solid #74a99a;border-radius:50%;transform:rotate(-6deg);opacity:.65}.room-desks{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;padding:20px 6% 55px}.room-pc{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:168px;background:linear-gradient(172deg,#ead7b5,#d2ad79);border:0;border-bottom:10px solid #936d4d;border-radius:12px;box-shadow:9px 15px 0 #284b453b;padding:14px 8px 12px;cursor:pointer;color:#173b42;font-family:'Segoe UI',sans-serif;transition:transform .2s,box-shadow .2s}.room-pc:hover{transform:translateY(-6px);box-shadow:9px 21px 0 #284b453b}.pc-screen{display:grid;place-items:center;width:90px;height:63px;background:#163c46;color:#8ee1c7;border:6px solid #2c4e54;border-radius:8px;font-size:30px;box-shadow:inset 0 0 22px #38b9b44d}.pc-stand{width:28px;height:14px;border-bottom:5px solid #2b4a50;background:linear-gradient(90deg,transparent 40%,#2b4a50 40% 60%,transparent 60%);margin-bottom:6px}.room-pc strong{font-size:15px}.room-pc small{font-size:11px;margin-top:4px}.pc-1 .pc-screen,.pc-4 .pc-screen{color:#ffd081}.pc-2 .pc-screen,.pc-5 .pc-screen{color:#ffa992}.room-motto{position:absolute;bottom:15px;left:0;right:0;text-align:center;font:600 12px 'Segoe UI',sans-serif;color:#173b42}.room-gate{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:7%;padding:40px;background:radial-gradient(ellipse at 70% 25%,#32565a,#102b36);color:#fff6e5}.door-intro{max-width:310px}.door-intro .atelier-kicker{color:#9bcebc}.door-intro h2{font:500 36px/1.1 Georgia,serif!important;letter-spacing:-.03em}.door-intro p{font-size:15px}.atelier-door{position:relative;width:200px;min-height:340px;border:12px solid #ad875c;border-bottom:0;border-radius:7px 7px 0 0;background:linear-gradient(100deg,#127c78,#0d5c60);box-shadow:20px 20px 0 #0003;color:#fff4dc;display:flex;align-items:center;flex-direction:column;gap:24px;padding:35px 10px;cursor:pointer;transition:transform .3s;transform:perspective(700px) rotateY(-8deg)}.atelier-door:hover{transform:perspective(700px) rotateY(-18deg)}.door-plaque{background:#faf1dd;color:#17444a;padding:14px 9px;border-radius:5px;font:700 12px 'Segoe UI',sans-serif}.door-porthole{display:grid;place-items:center;border:9px solid #193f48;border-radius:50%;width:90px;height:90px;background:#eec18a;color:#244348;font-size:40px}.door-handle{position:absolute;right:12px;bottom:63px;color:#edbd60;font-size:25px}.atelier-door strong{font:600 15px 'Segoe UI',sans-serif}.mini-games{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:25px}.mini-game{background:white;border:1px solid #d6e1db;border-radius:18px;padding:24px}.robot-board{display:grid;grid-template-columns:repeat(5,1fr);max-width:300px;aspect-ratio:1;gap:4px;margin:20px 0}.robot-board span{display:grid;place-items:center;background:#edf3ed;font-size:25px;border-radius:6px}.robot-board .robot-wall{background:#42676a;color:#b2c8be}.robot-board .robot-position{background:#087f80;color:white}.robot-controls{display:flex;gap:8px}.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:25px 0}.memory-board button{min-height:70px;background:#153d42;color:#ffdc91;font-size:28px;border:0;border-radius:9px}.memory-board button:disabled{opacity:.65}.student-world .hero{display:none!important}.student-world .principles{display:none}.student-atelier[hidden]{display:none!important}
@media(max-width:850px){.landing-hero{grid-template-columns:1fr;gap:45px;padding-top:40px}.landing-note{min-height:370px;border-radius:90px 90px 12px 12px}.landing-features{grid-template-columns:1fr;gap:24px}.landing-nav nav>a:first-child{display:none}.landing-nav{padding:18px 5%}.landing-brand{font-size:18px}.mini-games{grid-template-columns:1fr}.landing-footer{flex-direction:column}.atelier-room,.room-scene{min-height:610px}.room-desks{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:8px 5% 45px}.room-pc{min-height:136px}.pc-screen{height:45px;width:70px;font-size:23px}.room-wall{height:150px}.room-scene{padding-top:125px}.room-window{width:100px;height:85px;right:6%}.wall-sign{font-size:12px;left:5%;padding:12px}.room-gate{gap:25px;padding:25px}.door-intro{max-width:230px}.atelier-door{width:160px;flex-shrink:0;min-height:300px}.door-intro h2{font-size:30px!important}.room-pc small{font-size:10px}.landing-actions{gap:16px;flex-wrap:wrap}}
@media(max-width:480px){.room-gate{flex-direction:column;gap:8px;padding:22px}.door-intro{text-align:center;max-width:100%}.door-intro h2{font-size:27px!important;margin:10px 0}.door-intro p{margin:7px 0}.atelier-door{min-height:290px}.landing-hero h1{font-size:46px}.landing-note h2{font-size:36px}.room-pc strong{font-size:13px}.atelier-cta{padding:12px 16px}.landing-nav{gap:8px}}
@media(prefers-reduced-motion:reduce){.room-pc,.atelier-door{transition:none;transform:none!important}html{scroll-behavior:auto}}
/* Contacts communs : accueil, espaces de travail, dialogues et classe virtuelle. */
.academy-mail-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font:600 13px/1.3 'Segoe UI',sans-serif}
.academy-mail-links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;box-sizing:border-box;border:1px solid #c6deda;border-radius:10px;background:#fffdf7;color:#15525c;text-decoration:none;white-space:nowrap}
.academy-mail-links a:hover{background:#e7f5f2;color:#103e49}
.academy-mail-links a:focus-visible{outline:3px solid #13aab2;outline-offset:3px}
.copyright .academy-mail-links,.landing-footer .academy-mail-links{margin-top:12px}
dialog>.academy-mail-links{margin-top:20px;padding-top:12px;border-top:1px solid #d4e3df}
.class-controls>.academy-mail-links{pointer-events:auto;justify-content:flex-end}
@media(max-width:600px){.class-controls{flex-wrap:wrap;justify-content:flex-end}.class-controls>.academy-mail-links{flex-basis:100%;gap:5px}.academy-mail-links a{padding:8px 10px}.landing-footer{flex-wrap:wrap}}

.academy-contact-dialog{width:min(560px,calc(100vw - 28px));max-height:85dvh;overflow:auto;box-sizing:border-box;border:1px solid #bdd8d3;border-radius:18px;padding:24px;background:#fffdf7;color:#173b43;font:15px/1.5 "Segoe UI",sans-serif}.academy-contact-dialog::backdrop{background:#09262dbb}.academy-contact-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.academy-contact-dialog label{display:grid;gap:6px;margin:12px 0}.academy-contact-dialog input,.academy-contact-dialog textarea,.academy-contact-dialog select{width:100%;box-sizing:border-box;border:1px solid #b7cecb;border-radius:9px;padding:12px;background:white;color:#173b43;font:inherit}.academy-contact-dialog button{min-height:44px;padding:10px 14px;border:1px solid #a4c8c4;border-radius:10px;background:#087f86;color:white;font:inherit;cursor:pointer}.academy-contact-dialog button:disabled{opacity:.6;cursor:wait}.academy-contact-note{font-size:12px;color:#466268}.academy-contact-trap{display:none}.academy-contact-card{padding:14px 0;border-bottom:1px solid #c8dcda;white-space:pre-wrap;overflow-wrap:anywhere}.academy-contact-dialog :focus-visible{outline:3px solid #13aab2;outline-offset:2px}
@media(max-width:600px){#connection{padding:16px}#connection .loginlogo{width:96px;height:64px;object-fit:contain;margin:0 auto}#connection h2{margin:10px 0;font-size:22px}#connection .loginportals{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:10px 0}#connection .loginportals button{font-size:13px;padding:8px 4px;overflow-wrap:anywhere;min-height:44px}#connection .modechoices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#connection .modechoices label{padding:8px;font-size:14px;min-width:0}#connection p{margin:10px 0}#connection fieldset{padding:10px}#connection label{margin:8px 0}#connection input{min-height:44px}body:has(dialog[open]){overflow:hidden}}
