/* ===========================================================
   TECH ANATOMY — design system media
   Violet Anatomy, papier quadrille, bandeau jaune, Nohemi.
   Reprend les elements de langage du media kit Canva.
   =========================================================== */
@font-face{font-family:'Nohemi';font-weight:400;font-display:swap;src:url(assets/Nohemi-Regular.woff2) format('woff2')}
@font-face{font-family:'Nohemi';font-weight:700;font-display:swap;src:url(assets/Nohemi-Bold.woff2) format('woff2')}
@font-face{font-family:'Nohemi';font-weight:900;font-display:swap;src:url(assets/Nohemi-Black.woff2) format('woff2')}
:root{
  --nuit:#000038; --nuit-2:#12124F;
  --jaune:#EDE435; --violet:#8F6EBE; --violet-clair:#B9A3D6; --violet-pale:#D9CCEA; --violet-fonce:#6E4E9E;
  --blanc:#FFFFFF; --papier:#FCFBF8;
  --ink:#000038; --ink-2:rgba(0,0,56,.74); --ink-3:rgba(0,0,56,.52);
  --sans:'Nohemi',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --maxw:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--violet);color:var(--ink);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:80;opacity:.10;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E")}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-weight:900;text-transform:uppercase;line-height:.98;letter-spacing:-.02em}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- header ---------- */
.masthead{position:sticky;top:0;z-index:70;background:var(--nuit);color:var(--blanc);
  border-bottom:3px solid var(--jaune)}
.masthead .row{max-width:var(--maxw);margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:16px}
.masthead .logo{width:42px;height:42px;border-radius:50%;flex:none}
.masthead .word{font-weight:900;text-transform:uppercase;font-size:14px;line-height:1;letter-spacing:.01em}
.masthead nav{margin-left:auto;display:flex;gap:2px;align-items:center;flex-wrap:wrap}
.masthead nav a{font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:11px;padding:9px 10px;
  color:rgba(255,255,255,.82)}
.masthead nav a:hover,.masthead nav a.on{color:var(--nuit);background:var(--jaune)}
.masthead .sub{margin-left:6px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;font-size:11px;
  background:var(--jaune);color:var(--nuit);padding:10px 13px;border:2px solid var(--jaune)}
.masthead .sub:hover{background:var(--blanc);border-color:var(--blanc)}
.masthead .lang{font-weight:700;font-size:11px;letter-spacing:.1em;color:rgba(255,255,255,.6);padding-left:10px}

/* fil d'actualite sous le masthead */
.ticker{background:var(--jaune);color:var(--nuit);font-weight:700;text-transform:uppercase;letter-spacing:.09em;
  font-size:11px;padding:8px 0;border-bottom:2px solid var(--nuit)}
.ticker .row{max-width:var(--maxw);margin:0 auto;padding:0 24px;display:flex;gap:26px;flex-wrap:wrap}
.ticker b{font-weight:900}

/* ---------- blocs papier ---------- */
.sheet{background:var(--blanc);box-shadow:0 14px 30px rgba(0,0,56,.22)}
.sheet.grid-bg{background-image:url(assets/grid-paper.png);background-size:cover;background-position:center}
.tape{position:absolute;z-index:6;background:rgba(237,228,53,.85);mix-blend-mode:multiply;box-shadow:0 2px 6px rgba(0,0,56,.16)}
.tape.tl{width:150px;height:38px;left:-36px;top:-14px;transform:rotate(-33deg);clip-path:polygon(2% 0%,100% 5%,98% 100%,0% 95%)}
.tape.tr{width:140px;height:36px;right:-32px;top:-12px;transform:rotate(30deg);clip-path:polygon(0% 4%,98% 0%,100% 96%,2% 100%)}

/* ---------- titres de section ---------- */
.band{display:inline-block;background:var(--jaune);color:var(--nuit);font-weight:900;text-transform:uppercase;
  padding:10px 20px;transform:rotate(-.7deg);clip-path:polygon(1% 6%,99% 0%,100% 94%,0% 100%);
  box-shadow:0 6px 14px rgba(0,0,56,.14)}
.band.lg{font-size:26px;letter-spacing:-.01em}
.band.sm{font-size:12px;letter-spacing:.14em;padding:7px 13px}
.shead{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:0 0 24px}
.shead .more{font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--nuit);
  border-bottom:3px solid var(--jaune);padding-bottom:2px}
section.blk{padding:58px 0}

/* ---------- rubriques ---------- */
.rub{display:inline-block;font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:10.5px;
  padding:5px 9px;background:var(--nuit);color:var(--jaune)}
.rub.alt{background:var(--jaune);color:var(--nuit)}
.rub.ghost{background:transparent;color:var(--ink-3);border:2px solid rgba(0,0,56,.18)}

/* ---------- cartes article ---------- */
.card{background:var(--blanc);display:flex;flex-direction:column;box-shadow:0 10px 22px rgba(0,0,56,.18);
  transition:transform .16s ease,box-shadow .16s ease}
.card:hover{transform:translateY(-3px);box-shadow:0 16px 30px rgba(0,0,56,.26)}
.card .thumb{aspect-ratio:3/2;object-fit:cover;border-bottom:3px solid var(--nuit)}
.card .body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:9px;flex:1}
.card h3{font-size:19px;text-transform:none;letter-spacing:-.01em;line-height:1.2}
.card p{color:var(--ink-2);font-size:14px;line-height:1.55}
.card .meta{margin-top:auto;padding-top:8px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  font-size:10.5px;color:var(--ink-3);display:flex;gap:12px;flex-wrap:wrap}

/* liste de titres facon journal */
.list{display:flex;flex-direction:column}
.list a{padding:16px 0;border-top:1px solid rgba(0,0,56,.16);display:flex;flex-direction:column;gap:7px}
.list a:first-child{border-top:none;padding-top:0}
.list h4{font-size:17px;text-transform:none;letter-spacing:-.01em;line-height:1.22}
.list .meta{font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:10px;color:var(--ink-3)}
.list a:hover h4{text-decoration:underline;text-decoration-color:var(--jaune);text-decoration-thickness:3px;text-underline-offset:3px}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;
  font-size:13px;padding:13px 20px;border:2px solid var(--nuit);background:var(--jaune);color:var(--nuit);
  box-shadow:4px 4px 0 var(--nuit);transition:transform .12s ease,box-shadow .12s ease}
.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--nuit)}
.btn.alt{background:var(--blanc)}
.btn.dark{background:var(--nuit);color:var(--jaune);box-shadow:4px 4px 0 var(--jaune)}
.btn.sm{font-size:11.5px;padding:10px 15px;box-shadow:3px 3px 0 var(--nuit)}

/* ---------- chiffres ---------- */
.stat{display:flex;flex-direction:column;gap:6px}
.stat .v{font-weight:900;font-size:clamp(38px,5vw,58px);line-height:.9;letter-spacing:-.03em}
.stat .k{font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:11px;color:var(--ink-3)}

/* ---------- footer ---------- */
footer.foot{background:var(--nuit);color:var(--blanc);margin-top:20px;border-top:4px solid var(--jaune)}
footer.foot .cols{max-width:var(--maxw);margin:0 auto;padding:46px 24px 30px;display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px}
footer.foot h5{font-weight:900;text-transform:uppercase;letter-spacing:.1em;font-size:11px;color:var(--jaune);margin-bottom:14px}
footer.foot a{display:block;padding:5px 0;color:rgba(255,255,255,.82);font-size:14px}
footer.foot a:hover{color:var(--jaune)}
footer.foot .about{font-size:14px;color:rgba(255,255,255,.72);line-height:1.6;max-width:42ch}
footer.foot .bottom{border-top:1px solid rgba(255,255,255,.16);padding:16px 24px;max-width:var(--maxw);margin:0 auto;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-weight:700;text-transform:uppercase;
  letter-spacing:.09em;font-size:10.5px;color:rgba(255,255,255,.55)}
@media(max-width:900px){footer.foot .cols{grid-template-columns:1fr 1fr}}

/* papier quadrille en CSS : couvre n'importe quelle hauteur, contrairement a l'image */
.gridpaper{background-color:var(--papier);
  background-image:
    repeating-linear-gradient(to right,rgba(0,0,56,.10) 0 1px,transparent 1px 30px),
    repeating-linear-gradient(to bottom,rgba(0,0,56,.10) 0 1px,transparent 1px 30px);
  background-position:-1px -1px}
