/* Polices d'archives fournies par le propriétaire. Installer les TTF dans assets/fonts/. */
@font-face{font-family:'Pixel Operator';src:url('./fonts/PixelOperator.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Pixel Operator';src:url('./fonts/PixelOperator-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Upheaval';src:url('./fonts/upheavtt.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--peach:#FFE7C9;--paper:#fffaf0;--paper2:#fff2df;--ink:#47342f;--muted:#80685c;--line:#e9c5a6;--coral:#e87973;--coral-deep:#b74757;--sage:#bfd5c0;--shadow:5px 5px 0 rgba(112,72,62,.11);--pixel:'Pixel Operator','Courier New',monospace;--body:'Pixel Operator','Courier New',monospace;--display:'Upheaval','Pixel Operator',monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--peach);scroll-padding-top:95px}
body{margin:0;color:var(--ink);background-color:#FFE7C9;font:16px/1.6 var(--body);min-height:100vh;overflow-x:clip;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}
a{color:inherit}
img{max-width:100%}
:focus-visible{outline:3px solid var(--coral-deep);outline-offset:4px}
::selection{background:#f7b6a5;color:#422b2b}
.site-shell{max-width:1240px;padding:0 clamp(16px,3.3vw,40px);margin:0 auto;min-height:100vh;display:flex;flex-direction:column}
.skip-link{position:absolute;top:-100px;left:16px;background:#fff;z-index:1000;padding:12px;border-radius:9px}.skip-link:focus{top:8px}
.topbar{height:90px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(130,82,69,.21)}
.site-logo{text-decoration:none;display:flex;align-items:center;gap:12px;min-width:0}.logo-mark{width:38px;height:38px;display:grid;grid-template-columns:repeat(2,12px);grid-template-rows:repeat(2,12px);align-content:center;justify-content:center;gap:2px;background:#513e3b;box-shadow:3px 3px 0 #e59e82;border-radius:3px;transform:rotate(-6deg);flex-shrink:0}
.logo-mark i{background:#ffcfa5}.logo-mark i:nth-child(2),.logo-mark i:nth-child(3){background:#ff8091}.logo-mark i:nth-child(4){background:#b9d2c8}
.site-logo-text{font:700 clamp(19px,2.5vw,25px)/1 var(--pixel);letter-spacing:-.8px;white-space:nowrap}.site-logo-text>span:first-child{color:var(--coral-deep)}.blink-dot{animation:blink 1.1s steps(1) infinite;color:var(--coral-deep)}
.colombes-link{font:700 16px/1 var(--pixel);text-decoration:none;display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:11px;padding:10px 13px;box-shadow:2px 2px 0 #e1ad8d;white-space:nowrap;transition:transform .18s}.colombes-link:hover{transform:translateY(-3px)}
.dove{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;flex:0 0 auto;animation:dove-sway 3.3s ease-in-out infinite;transform-origin:50% 75%}.dove img{width:100%;height:100%;object-fit:contain}.dove.small{width:24px;height:24px;vertical-align:middle}
main{flex:1;min-width:0}
.hero{position:relative;margin:42px 0 64px;min-height:355px;padding:clamp(30px,5vw,60px) clamp(21px,5.3vw,70px);isolation:isolate;background:#fff7e9;border:2px solid #6f5145;border-radius:18px;box-shadow:7px 8px 0 #dca88c;overflow:hidden}
.hero:before{content:"";pointer-events:none;position:absolute;inset:0;background-image:radial-gradient(#dba98f 1px, transparent 1px);background-size:19px 19px;opacity:.17;z-index:-1}
.hero:after{content:"";position:absolute;width:255px;height:255px;right:-74px;top:-82px;border-radius:50%;background:#ffd4ba;opacity:.8;z-index:-1}
.hero-decor{position:absolute;width:12px;height:12px;background:#dd7883;box-shadow:12px 0 #dd7883,0 12px #dd7883,12px 12px #dd7883,24px 12px #d1c1e0,24px 24px #d1c1e0;transform:rotate(16deg);pointer-events:none}.decor-a{right:120px;top:95px}.decor-b{right:65px;bottom:90px;transform:scale(.85) rotate(-16deg)}
.eyebrow{display:flex;align-items:center;gap:13px;font:600 clamp(14px,1.7vw,17px)/1.1 var(--pixel);color:#a54d59;letter-spacing:.3px}.pixel-star{width:16px;height:16px;display:inline-block;flex:none;background:var(--coral-deep);clip-path:polygon(40% 0,60% 0,60% 40%,100% 40%,100% 60%,60% 60%,60% 100%,40% 100%,40% 60%,0 60%,0 40%,40% 40%)}
h1,h2,h3,p{overflow-wrap:break-word}.hero h1{font:700 clamp(39px,7.4vw,83px)/1.03 var(--pixel);letter-spacing:-1.8px;max-width:890px;margin:22px 0 19px}.hero h1>span:first-child{color:var(--coral-deep)}.title-cursor{color:var(--coral);animation:blink 1.2s steps(1) infinite}.hero-copy{font-size:clamp(16px,2.1vw,20px);max-width:690px;line-height:1.6;margin:0 0 15px}.collection-note{font-size:14px;color:#6c514a;max-width:650px;margin:0}
.stats{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:28px;font:500 18px/1.25 var(--pixel)}.stats strong{font-size:27px;color:#a64252}.stat-separator{height:26px;width:2px;background:#d8ac94}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:23px}.section-heading h2{font:700 clamp(28px,4.2vw,41px)/1.08 var(--pixel);letter-spacing:-.7px;margin:4px 0 0}.section-heading>p{font-size:14px;color:var(--muted);margin:0 0 3px}.section-kicker{font:600 13px/1.2 var(--pixel);color:#a25461;text-transform:uppercase;letter-spacing:1.6px}.small-asterisk{color:#d87985;margin-left:8px;font-size:.7em}
.listing{padding:0 0 66px}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,245px),1fr));gap:24px}
.category-card{display:flex;flex-direction:column;background:var(--paper);border:2px solid #936956;border-radius:13px;overflow:hidden;box-shadow:var(--shadow);text-decoration:none;min-width:0;transition:transform .2s,box-shadow .2s}.category-card:hover{transform:translateY(-5px);box-shadow:5px 10px 0 rgba(112,72,62,.18)}.category-card:active{transform:translateY(0)}
.category-visual{position:relative;min-height:190px;display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden;background-color:#ffe9dd;background-image:linear-gradient(45deg,rgba(255,255,255,.45) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.45) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(255,255,255,.45) 75%),linear-gradient(-45deg,transparent 75%,rgba(255,255,255,.45) 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}
.category-visual>img{object-fit:contain;width:auto;height:auto;max-width:100%;max-height:156px;image-rendering:pixelated;filter:drop-shadow(2px 3px 0 rgba(100,50,50,.1));transition:transform .25s}.category-card:hover .category-visual img{transform:scale(1.08)}.corner-pixel{position:absolute;right:12px;top:12px;width:12px;height:12px;background:#d68d9c;box-shadow:-12px 0 #f4be9d,0 12px #f4be9d}
.category-bottom{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:16px 17px 17px;min-height:85px}.category-text{min-width:0;display:block}.category-text strong{display:block;font:700 24px/1.08 var(--pixel);white-space:normal;overflow-wrap:anywhere}.category-text small{font:500 14px/1.2 var(--pixel);display:block;margin-top:7px;color:#7d675e}.arrow-tile{flex:0 0 35px;display:grid;place-items:center;width:35px;height:35px;background:#ffdfc7;border:1px solid #dfac93;border-radius:8px;font:bold 25px/1 var(--pixel);color:#994c5a}
.empty-state{text-align:center;max-width:680px;margin:0 auto;background:#fff9ec;border:2px dashed #d5a387;border-radius:15px;padding:42px 25px}.empty-pixels{font:70px/1 var(--pixel);color:#d97481}.empty-state h3{font:700 30px/1.15 var(--pixel);margin:15px 0}.empty-state p{margin:0;color:var(--muted)}.empty-state code{font-size:.9em;background:#ffe6d3;border-radius:5px;padding:2px 6px}
.breadcrumbs{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:30px 0 21px;font:600 15px/1.3 var(--pixel);color:#87695d}.breadcrumbs a{text-decoration:none;color:#a14b59}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs span:last-child{overflow-wrap:anywhere}
.category-hero{background:var(--paper);border:2px solid #755748;border-radius:18px;box-shadow:6px 7px 0 #ddb69b;display:flex;align-items:center;gap:clamp(20px,4vw,55px);padding:clamp(24px,4vw,42px);margin-bottom:55px;position:relative;overflow:hidden}.category-hero:after{content:"";position:absolute;width:160px;height:160px;right:-90px;bottom:-100px;background:#ffcfb6;transform:rotate(30deg);z-index:0}.category-heading-art{flex:0 0 min(35%,230px);height:190px;min-width:0;border:2px dashed #d8a78b;border-radius:12px;background:#ffead8;display:flex;align-items:center;justify-content:center;padding:16px}.category-heading-art img{width:auto;height:auto;max-height:100%;max-width:100%;object-fit:contain;image-rendering:pixelated}.category-heading-text{flex:1;min-width:0;position:relative;z-index:1}.category-heading-text h1{font:700 clamp(33px,5.4vw,59px)/1.05 var(--pixel);margin:15px 0 9px;overflow-wrap:anywhere}.category-heading-text p{margin:0 0 17px;max-width:620px;color:#6e5750}.pill-counter{display:inline-flex;background:#fbe3cd;border:1px solid #e0b296;border-radius:999px;padding:5px 13px;font:600 15px/1.4 var(--pixel);color:#814c4a}
.gallery-section{padding-bottom:65px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:22px}.signature-card{min-width:0;background:#fffaf1;border:1.5px solid #b58b74;border-radius:12px;box-shadow:3px 4px 0 #e2b89d;overflow:hidden}.signature-preview{text-decoration:none;border:0;width:100%;height:175px;cursor:zoom-in;background-color:#fff1e0;background-image:linear-gradient(45deg,#fce1cf 25%,transparent 25%),linear-gradient(-45deg,#fce1cf 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#fce1cf 75%),linear-gradient(-45deg,transparent 75%,#fce1cf 75%);background-size:22px 22px;background-position:0 0,0 11px,11px -11px,-11px 0;padding:20px;display:flex;justify-content:center;align-items:center}.signature-preview img{display:block;max-height:100%;max-width:100%;height:auto;width:auto;object-fit:contain;image-rendering:pixelated;transition:transform .18s}.signature-preview:hover img{transform:scale(1.08)}.signature-preview:active img{transform:scale(.98)}
.signature-meta{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:10px 11px 11px;min-width:0}.signature-meta>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:600 16px/1.3 var(--pixel)}.download-link{display:inline-flex;align-items:center;gap:4px;text-decoration:none;white-space:nowrap;font:600 13px/1 var(--pixel);border:1px solid #dfaf9c;background:#ffead8;border-radius:7px;padding:7px 9px;color:#894957;transition:background .2s}.download-link:hover{background:#ffcfb8}.download-link svg{flex:none}
.load-zone{text-align:center;max-width:420px;margin:38px auto 10px;min-height:90px}.loading-status{font:500 17px/1.4 var(--pixel);color:#765950;margin-bottom:12px}.progress-track{height:9px;max-width:250px;margin:0 auto;background:#efc8ae;overflow:hidden;border-radius:3px;border:1px solid #d6ad93}.progress-track span{display:block;background:#b66d7b;height:100%;transition:width .25s}.load-next{display:inline-block;padding:10px 18px;margin-top:14px;border-radius:9px;background:var(--paper);border:2px solid #b77877;text-decoration:none;font:600 17px/1.3 var(--pixel);cursor:pointer}.load-next:hover{background:#ffe0cf}.load-next[hidden]{display:none}.collection-complete{font:600 16px/1.5 var(--pixel);color:#906f63;margin-top:16px}
.back-collection{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:#a34a5a;font:700 18px/1.4 var(--pixel);margin-top:23px}.back-collection:hover{text-decoration:underline}
.preview-dialog{width:min(92vw,720px);max-height:90dvh;padding:0;border:2px solid #614f47;border-radius:18px;background:var(--paper);color:var(--ink);box-shadow:9px 10px 0 #9d7b6f;overflow:auto}.preview-dialog::backdrop{background:rgba(44,29,27,.73);backdrop-filter:blur(4px)}.preview-dialog-inner{padding:23px clamp(16px,4vw,36px) 28px;position:relative}.dialog-close{width:40px;height:40px;display:grid;place-items:center;position:absolute;right:14px;top:13px;cursor:pointer;background:#ffe2cf;border:1px solid #d5a387;border-radius:9px;font:700 30px/1 var(--pixel)}.dialog-label{font:700 23px/1.4 var(--pixel);padding-right:53px;overflow-wrap:anywhere;margin-bottom:17px}.dialog-image-box{min-height:185px;display:flex;align-items:center;justify-content:center;max-height:58dvh;overflow:auto;padding:23px;background-color:#fff1e0;background-image:linear-gradient(45deg,#fce0ce 25%,transparent 25%),linear-gradient(-45deg,#fce0ce 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#fce0ce 75%),linear-gradient(-45deg,transparent 75%,#fce0ce 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0;border-radius:9px}.dialog-image-box img{display:block;max-height:50dvh;max-width:100%;width:auto;height:auto;object-fit:contain;image-rendering:pixelated}.dialog-actions{display:flex;justify-content:center;margin-top:21px}.dialog-download{display:flex;align-items:center;gap:12px;text-decoration:none;background:#bd6070;color:white;border-radius:9px;padding:10px 17px;font:700 18px/1.35 var(--pixel);text-align:center}.dialog-download:hover{background:#9e485b}
.not-found{text-align:center;padding:90px 0}.not-found .error-code{font:700 88px/1 var(--pixel);color:var(--coral-deep)}.not-found h1{font:700 37px/1.2 var(--pixel);margin:8px}.not-found p{color:var(--muted)}
.site-footer{border-top:2px dashed #e6bba0;padding:26px 0 32px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;color:#755e55;font:600 15px/1.4 var(--pixel)}.footer-first{display:flex;align-items:center;gap:9px}.footer-heart{font-size:24px;color:#ca6878}.site-footer>a{display:flex;align-items:center;gap:5px;text-decoration:none;color:#914b5b}.site-footer>a:hover{text-decoration:underline}.footer-note{font-size:13px}
@keyframes blink{50%{opacity:0}}@keyframes dove-sway{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-3px) rotate(6deg)}}
@media(max-width:720px){.topbar{height:76px}.site-logo-text{font-size:21px}.colombes-link{font-size:14px;padding:8px}.colombes-link>svg{display:none}.hero{margin:25px 0 45px;padding:38px 23px;min-height:0}.hero h1{max-width:600px}.hero-decor{opacity:.55}.decor-a{right:38px;top:37px}.decor-b{right:20px;bottom:35px}.section-heading{align-items:start;flex-direction:column;gap:2px}.section-heading>p{margin-top:4px}.category-hero{gap:20px;padding:22px;margin-bottom:42px}.category-heading-art{height:130px}.gallery-grid{gap:15px}.site-footer{justify-content:center;text-align:center}.footer-note{width:100%}}
@media(max-width:520px){.topbar{gap:6px}.logo-mark{width:30px;height:30px;grid-template-columns:repeat(2,9px);grid-template-rows:repeat(2,9px)}.site-logo{gap:6px}.site-logo-text{font-size:18px;letter-spacing:-.8px}.colombes-link{font-size:12px;gap:3px;padding:6px;border-radius:8px}.colombes-link .dove{width:21px;height:21px}.hero h1{font-size:clamp(39px,10.5vw,55px);letter-spacing:-1px}.hero-copy{font-size:16px}.category-hero{flex-direction:column;align-items:stretch}.category-heading-art{width:100%;height:132px;flex:auto}.breadcrumbs{padding-top:20px}.categories-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.category-card{border-radius:10px}.category-visual{min-height:123px;padding:12px}.category-visual>img{max-height:96px}.category-bottom{padding:12px 10px;min-height:82px}.category-text strong{font-size:clamp(16px,4.9vw,22px)}.category-text small{font-size:12px}.arrow-tile{display:none}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.signature-preview{height:138px;padding:10px}.signature-meta{padding:9px 8px;display:flex;align-items:flex-start;flex-direction:column;gap:6px}.signature-meta>span{font-size:14px;width:100%}.download-link{font-size:12px;padding:6px}.download-link svg{width:15px;height:15px}.site-footer{font-size:13px}}
@media(max-width:355px){.site-logo-text{font-size:16px}.colombes-link{font-size:11px}.category-text strong{font-size:17px}.gallery-grid{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Édition 1.2 — Upheaval pour les titres, Pixel Operator pour la lecture. */
.site-logo-text,.hero h1,.category-heading-text h1,.section-heading h2,.empty-state h3,.not-found h1,.not-found .error-code,.category-text strong{font-family:var(--display)}
.hero h1,.category-heading-text h1,.section-heading h2{letter-spacing:.35px}
.category-text strong{letter-spacing:.3px;line-height:1.2}
/* Les numéros des GIF ne sont jamais affichés : le bandeau contient uniquement le téléchargement. */
.signature-meta{justify-content:center}
.download-link{justify-content:center;min-height:36px;width:min(100%,170px);font-size:16px}
@media(max-width:520px){.site-logo-text{font-size:clamp(15px,4.8vw,20px)}.category-text strong{font-size:clamp(16px,4.2vw,21px)}.signature-meta{align-items:center;flex-direction:row}.download-link{font-size:14px;min-height:35px;width:100%}}


/* Version 1.3.0 — aucune légende ni nom de fichier dans les cartes GIF.
   Fonctionne aussi si l'ancien modèle PHP laisse encore un span/strong. */
.signature-meta > :not(.download-link) { display: none !important; }
.signature-meta { font-size: 0; }
.signature-meta .download-link { font-size: 16px; }
@media(max-width:520px) { .signature-meta .download-link { font-size: 14px; } }
