
:root{--stock:#fbfcff;--seyes:#c9d6f2;--seyes-fort:#9fb3e6;--marge:#e5484d;--onyx:#3b2a8f;--onyx-soft:#6b5bd2;--prose-face:#1d1b29;--stone:#5d5a6e;--fluo:#fff27a;--fluo-rose:#ffc4dd;--fluo-menthe:#b8f5d8;--keyline:#1d1b29}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--stock);color:var(--prose-face);font:17px/1.65 "Atkinson Hyperlegible",system-ui,sans-serif}
a{color:var(--onyx)}
.feuille{background-color:var(--stock);background-image:linear-gradient(var(--seyes-fort) 1px,transparent 1px),linear-gradient(var(--seyes) 1px,transparent 1px);background-size:100% 32px,100% 8px;background-position:0 31px,0 7px}
.bandeau{border-bottom:3px solid var(--keyline);background:var(--stock)}
.bandeau-in{max-width:1180px;margin:0 auto;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--prose-face)}
.logo-pastille{width:42px;height:42px;border:3px solid var(--keyline);border-radius:10px;background:var(--fluo);display:grid;place-items:center;font:800 20px "Bricolage Grotesque",sans-serif;transform:rotate(-4deg)}
.logo-nom{font:800 22px/1 "Bricolage Grotesque",sans-serif;letter-spacing:-.02em}
.logo-nom small{display:block;font:400 16px "Caveat",cursive;color:var(--onyx);letter-spacing:0;margin-top:2px}
.onglets{display:flex;gap:6px;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.onglets a{display:block;padding:6px 12px;border:2px solid var(--keyline);border-radius:999px;text-decoration:none;color:var(--prose-face);font:600 14px "Bricolage Grotesque",sans-serif;background:#fff}
.onglets a:hover{background:var(--fluo)}
.onglets .o-trajets{box-shadow:3px 3px 0 var(--fluo-menthe)}.onglets .o-orga{box-shadow:3px 3px 0 var(--fluo)}.onglets .o-forme{box-shadow:3px 3px 0 var(--fluo-rose)}
.page{max-width:1180px;margin:0 auto;padding:0 16px}
/* en-tête accueil */
.entete{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;padding:48px 0 32px;align-items:end}
.entete h1{font:800 clamp(34px,5.4vw,64px)/1.02 "Bricolage Grotesque",sans-serif;letter-spacing:-.035em;margin:0}
.surligne{background:linear-gradient(transparent 55%,var(--fluo) 55%,var(--fluo) 92%,transparent 92%);padding:0 4px}
.entete p{margin:16px 0 0;font-size:19px;color:var(--stone);max-width:34em}
.post-it{background:var(--fluo);padding:20px 22px 22px;transform:rotate(1.5deg);box-shadow:0 10px 22px rgba(29,27,41,.14);font:400 25px/1.25 "Caveat",cursive;color:#2b2610;position:relative}
.post-it:before{content:"";position:absolute;top:-12px;left:50%;width:90px;height:24px;margin-left:-45px;background:rgba(255,255,255,.55);transform:rotate(-3deg)}
.post-it strong{font-family:"Bricolage Grotesque",sans-serif;font-size:13px;letter-spacing:.12em;text-transform:uppercase;display:block;margin-bottom:6px}
/* emploi du temps */
.edt-titre{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-top:3px solid var(--keyline);padding-top:14px;margin-top:8px}
.edt-titre h2{font:800 26px "Bricolage Grotesque",sans-serif;margin:0;letter-spacing:-.02em}
.edt-titre span{font:400 22px "Caveat",cursive;color:var(--onyx)}
.edt{display:grid;grid-template-columns:120px repeat(3,1fr);border:3px solid var(--keyline);border-radius:4px;margin:18px 0 56px;background:#fff}
.edt-col{font:700 14px "Bricolage Grotesque",sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:12px 14px;border-bottom:3px solid var(--keyline);border-left:2px solid var(--keyline)}
.edt-col:first-child{border-left:0}
.edt-col.c-trajets{background:var(--fluo-menthe)}.edt-col.c-orga{background:var(--fluo)}.edt-col.c-forme{background:var(--fluo-rose)}
.edt-heure{font:600 13px "JetBrains Mono",monospace;padding:16px 14px;border-top:1px dashed var(--seyes-fort);color:var(--stone)}
.edt-heure b{display:block;font:400 22px "Caveat",cursive;color:var(--onyx)}
.case{border-left:2px solid var(--keyline);border-top:1px dashed var(--seyes-fort);padding:16px;text-decoration:none;color:var(--prose-face);display:flex;flex-direction:column;gap:8px;min-height:150px;transition:background .15s}
.case:hover{background:#f3f0ff}
.case-matiere{font:700 11px "JetBrains Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--onyx)}
.case h3{font:700 19px/1.25 "Bricolage Grotesque",sans-serif;margin:0;letter-spacing:-.01em}
.case p{margin:0;font-size:14.5px;line-height:1.5;color:var(--stone)}
.case-duree{margin-top:auto;font:400 19px "Caveat",cursive;color:var(--marge)}
.case.vide{background:repeating-linear-gradient(-45deg,#fff,#fff 8px,#f4f4f8 8px,#f4f4f8 16px)}
.case.vide span{font:400 21px "Caveat",cursive;color:var(--stone);margin:auto}
/* bloc "mot des parents" */
.mot{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;border:3px solid var(--keyline);border-radius:4px;padding:26px;margin-bottom:56px;background:#fff;position:relative}
.mot-tampon{width:110px;height:110px;border:3px solid var(--marge);border-radius:50%;display:grid;place-items:center;text-align:center;color:var(--marge);font:800 13px/1.15 "Bricolage Grotesque",sans-serif;text-transform:uppercase;letter-spacing:.06em;transform:rotate(-12deg)}
.mot p{margin:0;font-size:18px}
.mot cite{display:block;margin-top:8px;font:400 22px "Caveat",cursive;color:var(--onyx);font-style:normal}
.pied{border-top:3px solid var(--keyline);padding:26px 16px 40px;text-align:center;font:400 21px "Caveat",cursive;color:var(--stone);background:var(--stock)}
/* page article */
.fil{font:600 13px "JetBrains Mono",monospace;padding:22px 0 0;color:var(--stone)}
.fil a{color:var(--stone)}
.copie{display:grid;grid-template-columns:200px minmax(0,700px) 1fr;gap:0;margin:22px 0 60px;background:#fff;border:3px solid var(--keyline);border-radius:4px}
.copie-marge{border-right:2px solid var(--marge);padding:26px 18px;position:relative}
.copie-marge .sticky{position:sticky;top:20px}
.etiquette{display:inline-block;padding:4px 10px;border:2px solid var(--keyline);border-radius:999px;font:700 12px "Bricolage Grotesque",sans-serif;letter-spacing:.08em;text-transform:uppercase;background:var(--fluo)}
.copie-marge .note{font:400 21px/1.2 "Caveat",cursive;color:var(--onyx);margin:18px 0}
.devoirs{list-style:none;margin:0;padding:0;counter-reset:d}
.devoirs li{margin:0 0 10px;font-size:14px;line-height:1.35;display:flex;gap:8px}
.devoirs li:before{content:"";flex:0 0 14px;height:14px;border:2px solid var(--keyline);border-radius:3px;margin-top:2px;background:#fff}
.devoirs a{color:var(--prose-face);text-decoration:none}
.devoirs a:hover{background:var(--fluo)}
.copie-texte{padding:34px 40px 40px}
.copie-texte h1{font:800 clamp(30px,4.2vw,46px)/1.06 "Bricolage Grotesque",sans-serif;letter-spacing:-.03em;margin:8px 0 14px}
.chapo{font-size:19px;color:var(--stone);margin:0 0 20px}
.infos{display:flex;gap:18px;flex-wrap:wrap;font:600 13px "JetBrains Mono",monospace;color:var(--stone);padding:12px 0;border-top:1px dashed var(--seyes-fort);border-bottom:1px dashed var(--seyes-fort);margin-bottom:26px}
.copie-texte h2{font:800 25px/1.2 "Bricolage Grotesque",sans-serif;letter-spacing:-.015em;margin:38px 0 12px;display:flex;gap:12px;align-items:baseline}
.copie-texte h2 .num{flex:0 0 auto;font:400 30px "Caveat",cursive;color:var(--marge)}
.copie-texte p{margin:0 0 16px}
.copie-texte .infos + p:first-letter{font:800 58px/0.8 "Bricolage Grotesque",sans-serif;float:left;margin:6px 10px 0 0;color:var(--onyx)}
.copie-texte a{text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-color:var(--onyx-soft)}
.copie-texte a:hover{background:var(--fluo)}
.copie-rabat{border-left:1px dashed var(--seyes-fort);padding:26px 18px}
.rabat-bloc{border:2px solid var(--keyline);border-radius:4px;padding:14px;margin-bottom:18px;background:var(--stock)}
.rabat-bloc h4{margin:0 0 8px;font:700 12px "JetBrains Mono",monospace;letter-spacing:.1em;text-transform:uppercase}
.rabat-bloc a{display:block;color:var(--prose-face);text-decoration:none;font:600 15px/1.3 "Bricolage Grotesque",sans-serif;padding:8px 0;border-top:1px dashed var(--seyes-fort)}
.rabat-bloc a:first-of-type{border-top:0}
.rabat-bloc a:hover{color:var(--onyx)}
@media (max-width:980px){.copie{grid-template-columns:170px minmax(0,1fr)}.copie-rabat{grid-column:1/-1;border-left:0;border-top:2px solid var(--keyline);display:grid;grid-template-columns:1fr 1fr;gap:16px}}
@media (max-width:760px){
 .entete{grid-template-columns:1fr;padding-top:30px}
 .edt{grid-template-columns:1fr}
 .edt-col,.edt-heure{display:none}
 .case{border-left:0;border-top:2px solid var(--keyline);min-height:0}
 .case:first-of-type{border-top:0}
 .case.vide{display:none}
 .case-matiere:after{content:attr(data-moment);margin-left:8px;color:var(--stone)}
 .mot{grid-template-columns:1fr;text-align:center}.mot-tampon{margin:0 auto}
 .copie{grid-template-columns:1fr}
 .copie-marge{border-right:0;border-bottom:2px solid var(--marge)}
 .copie-marge .sticky{position:static}
 .copie-texte{padding:24px 18px}
 .copie-rabat{grid-template-columns:1fr}
}

.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:8px;background:#fff;padding:6px 10px;z-index:9}
.onglets a.actif{background:var(--fluo)}
.rub-entete{padding:40px 0 18px}
.rub-entete h1{font:800 clamp(32px,5vw,54px)/1.04 "Bricolage Grotesque",sans-serif;letter-spacing:-.03em;margin:0 0 12px}
.rub-entete p{font-size:19px;color:var(--stone);max-width:40em;margin:0}
.liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;margin:22px 0 60px}
.liste .case{border:3px solid var(--keyline);border-radius:4px;background:#fff;min-height:0}
.liste .case:first-of-type{border-top:3px solid var(--keyline)}
.case time{font:600 12px "JetBrains Mono",monospace;color:var(--stone)}
.pied nav{font:600 14px "Bricolage Grotesque",sans-serif;margin-top:10px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.pied nav a{color:var(--stone)}
.introuvable{padding:60px 0 80px;max-width:42em}
.introuvable h1{font:800 clamp(34px,5vw,58px)/1.04 "Bricolage Grotesque",sans-serif;letter-spacing:-.03em;margin:0 0 16px}
.introuvable p{font-size:19px}
.introuvable ul{font-size:18px;line-height:1.9}
img,svg{max-width:100%}
.copie-texte{overflow-wrap:break-word}
