/* base.css — fondation partagée des maquettes du hub (polices + tokens + reset).
   Chaque maquette linke ce fichier puis fait TOUT son design en propre.
   Fonts self-hosted depuis assets/fonts/. */

@font-face{font-family:'Archivo';font-style:normal;font-weight:300 600;font-display:swap;src:url("assets/fonts/archivo-vietnamese.woff2") format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:300 600;font-display:swap;src:url("assets/fonts/archivo-latin-ext.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:300 600;font-display:swap;src:url("assets/fonts/archivo-latin.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 500;font-display:swap;src:url("assets/fonts/fraunces-italic-latin.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 500;font-display:swap;src:url("assets/fonts/fraunces-italic-latin-ext.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;src:url("assets/fonts/fraunces-latin.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;src:url("assets/fonts/fraunces-latin-ext.woff2") format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

:root{
  --ink:#0a1518; --ink-2:#0c1c20; --teal-deep:#0e2429; --teal:#15343d;
  --bone:#efe7d7; --bone-ink:#13282c; --bone-muted:#42585b; --paper:#f1ede3;
  --muted:rgba(241,237,227,.58); --faint:rgba(241,237,227,.30); --line:rgba(241,237,227,.13);
  --amber:#d6a25c; --amber-hi:#f0c889;
  --gold:linear-gradient(100deg,#a8641f 0%,#d6a25c 22%,#ffe1b0 50%,#d6a25c 78%,#a8641f 100%);
  --gold-soft:linear-gradient(100deg,#b98c4e 0%,#e7bd84 22%,#fff3d6 50%,#e7bd84 78%,#b98c4e 100%);
  --serif:'Fraunces',Georgia,serif;
  --sans:'Archivo',-apple-system,BlinkMacSystemFont,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{background:var(--ink);scrollbar-gutter:stable;}
body{background:var(--ink);color:var(--paper);font-family:var(--sans);font-weight:300;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip;}
a{color:inherit;text-decoration:none;}
img,video{display:block;max-width:100%;}
::-webkit-scrollbar{width:11px;}
::-webkit-scrollbar-track{background:#0a1518;}
::-webkit-scrollbar-thumb{background:#23363a;border-radius:6px;border:3px solid #0a1518;}
::-webkit-scrollbar-thumb:hover{background:#a8641f;}

/* utilitaires partagés (facultatifs) */
.gold{background:var(--gold);background-size:230% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:goldsweep 5.2s ease-in-out infinite;}
@keyframes goldsweep{0%{background-position:115% 0}45%{background-position:-115% 0}55%{background-position:-115% 0}100%{background-position:115% 0}}
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:70;opacity:.10;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:130px 130px;animation:grainmove .5s steps(3,end) infinite;}
@keyframes grainmove{0%{transform:translate(0,0)}20%{transform:translate(-6%,4%)}40%{transform:translate(5%,-7%)}60%{transform:translate(-4%,6%)}80%{transform:translate(7%,1%)}100%{transform:translate(0,0)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}
