:root{--ink:#111;--paper:#eee9dd;--red:#ed2d24;--line:rgba(17,17,17,.22)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.masthead{min-height:380px;background:var(--ink);color:var(--paper);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr auto;padding:32px clamp(22px,5vw,72px);position:relative;overflow:hidden}.brand{font-size:clamp(3.4rem,11.5vw,10.5rem);font-weight:900;letter-spacing:-.09em;line-height:.8;align-self:center;white-space:nowrap}.brand span{display:inline-block;color:var(--paper);font-size:.42em;font-weight:400;letter-spacing:0;margin:0 .06em;vertical-align:.22em;opacity:.55}.brand .bang{color:var(--red);font-size:1em;font-weight:900;opacity:1;vertical-align:0;transform:rotate(8deg);margin-left:.04em}.manifesto{font-family:Georgia,serif;font-style:italic;font-size:clamp(1.1rem,2vw,1.6rem);line-height:1.1;margin:0;align-self:end;text-align:right}.stamp{position:absolute;right:7%;top:28px;color:var(--red);border:3px solid var(--red);font-weight:900;font-size:.82rem;line-height:.95;text-align:center;padding:9px 12px;transform:rotate(7deg)}
main{max-width:1400px;margin:auto}.intro{padding:clamp(60px,9vw,125px) clamp(22px,6vw,90px);display:grid;grid-template-columns:1fr minmax(260px,420px);gap:50px;align-items:end}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:800;margin:0 0 16px}.intro h1{grid-column:1/-1;font-size:clamp(3rem,7vw,7.5rem);line-height:.88;letter-spacing:-.065em;margin:0;max-width:1100px}.intro h1 em{font-family:Georgia,serif;color:var(--red);font-weight:400}.intro-copy{grid-column:2;font-family:Georgia,serif;font-size:1.25rem;line-height:1.5;margin:10px 0 0;border-left:4px solid var(--red);padding-left:22px}
.library{border-top:7px solid var(--ink);padding:42px clamp(22px,6vw,90px) 100px}.library-head{display:flex;justify-content:space-between;gap:24px;align-items:end}.library h2{font-size:clamp(2.2rem,4vw,4.5rem);letter-spacing:-.06em;margin:0}.search{width:min(370px,100%);border-bottom:3px solid var(--ink);display:flex;align-items:center}.search input{appearance:none;border:0;background:transparent;width:100%;font-size:1.05rem;padding:12px 4px;outline:none;color:var(--ink)}.search span:last-child{font-size:1.8rem}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:36px 0}.filters button{border:1px solid var(--ink);background:transparent;border-radius:99px;padding:9px 17px;font-weight:700;cursor:pointer;font-size:.9rem}.filters button:hover,.filters button:focus-visible,.filters button.active{background:var(--ink);color:var(--paper)}
.articles{border-top:1px solid var(--ink)}article{border-bottom:1px solid var(--ink)}article[hidden]{display:none}article a{display:grid;grid-template-columns:85px 1fr 48px;gap:24px;padding:28px 0;align-items:center;transition:padding .2s,background .2s}article a:hover,article a:focus-visible{background:#e2dccf;padding-left:14px;padding-right:14px}.number{font-size:1rem;font-weight:900;color:var(--red);align-self:start;padding-top:5px}.tag{display:inline-block;background:var(--red);color:white;text-transform:uppercase;font-size:.68rem;letter-spacing:.1em;font-weight:900;padding:4px 7px;margin-bottom:8px}.article-body h3{font-size:clamp(1.6rem,3vw,3rem);line-height:1;letter-spacing:-.045em;margin:0 0 9px}.article-body p{font-family:Georgia,serif;font-size:1rem;line-height:1.2;margin:0 0 12px;max-width:750px}.article-body time{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.arrow{font-size:2.2rem;text-align:right}.empty{font-family:Georgia,serif;font-style:italic;font-size:1.25rem;padding:50px 0}
footer{background:var(--red);color:#fff;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:30px;padding:50px clamp(22px,6vw,90px);font-weight:800;font-size:.8rem;letter-spacing:.04em}footer p{margin:0}footer p:nth-child(2){font-family:Georgia,serif;font-style:italic;font-weight:400;font-size:1.2rem}footer .footer-links{text-align:right}footer .footer-links a{border-bottom:1px solid rgba(255,255,255,.7)}footer .footer-links a:hover,footer .footer-links a:focus-visible{color:var(--ink);border-color:var(--ink)}
@media(max-width:700px){.masthead{min-height:270px;display:flex;flex-direction:column;justify-content:space-between;padding-top:65px}.brand{font-size:16.4vw}.manifesto{text-align:left}.stamp{right:24px;top:18px}.intro{grid-template-columns:1fr;gap:20px}.intro h1,.intro-copy{grid-column:1}.intro-copy{font-size:1.08rem}.library-head{align-items:stretch;flex-direction:column}.search{width:100%}article a{grid-template-columns:38px 1fr 28px;gap:10px}.article-body p{font-size:.95rem}.arrow{font-size:1.5rem}footer{grid-template-columns:1fr}footer .footer-links{text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}article a{transition:none}}

/* Page de lecture d’un article */
.article-header{background:var(--ink);color:var(--paper);padding:28px clamp(22px,6vw,90px)}
.article-nav{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}
.article-logo{font-size:clamp(1.45rem,3vw,2.2rem);font-weight:900;letter-spacing:-.06em}
.article-logo .bang{color:var(--red)}
.back-link{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;border-bottom:2px solid var(--red);padding-bottom:5px}
.back-link:hover,.back-link:focus-visible{color:var(--red)}
.reading{max-width:1180px;margin:auto;padding:clamp(55px,9vw,115px) clamp(22px,6vw,90px)}
.article-title-block{max-width:980px;border-bottom:6px solid var(--ink);padding-bottom:42px;margin-bottom:48px}
.article-title-block .tag{margin-bottom:18px}
.article-title-block h1{font-size:clamp(3rem,7vw,7rem);line-height:.88;letter-spacing:-.065em;margin:0 0 30px}
.article-meta{display:flex;gap:25px;flex-wrap:wrap;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.article-text{max-width:760px;margin-left:auto;margin-right:auto;font-family:Georgia,serif;font-size:clamp(1.12rem,2vw,1.32rem);line-height:1.2}
.article-text .lead{font-size:clamp(1.35rem,2.5vw,1.75rem);line-height:1.2;font-style:italic}
.article-text p{margin:0 0 1.15em}
.article-text > br{display:none}
.article-text h2{font-family:Arial,Helvetica,sans-serif;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1;letter-spacing:-.04em;margin:2em 0 .7em}
.article-text blockquote{border-left:6px solid var(--red);margin:2.2em 0;padding:.2em 0 .2em 1.2em;font-size:1.35em;line-height:1.35;font-style:italic}
.article-end{max-width:760px;margin:65px auto 0;padding-top:25px;border-top:1px solid var(--ink)}
.article-end a{font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.article-end a:hover,.article-end a:focus-visible{color:var(--red)}
@media(max-width:600px){.article-nav{align-items:flex-start}.back-link{text-align:right;max-width:145px}.article-title-block h1{font-size:2.8rem}.article-text{font-size:1.08rem}}

/* Contact */
.contact-page{max-width:980px;margin:auto;padding:clamp(55px,9vw,110px) clamp(22px,6vw,90px)}
.contact-page h1{font-size:clamp(3.4rem,9vw,8rem);line-height:.82;letter-spacing:-.07em;margin:0 0 28px}
.contact-intro{font-family:Georgia,serif;font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.55;max-width:650px;margin:0 0 48px;border-left:5px solid var(--red);padding-left:20px}
.contact-form{max-width:760px;border-top:6px solid var(--ink);padding-top:30px}
.form-row{display:grid;grid-template-columns:180px 1fr;gap:25px;align-items:start;padding:18px 0;border-bottom:1px solid var(--ink)}
.form-row label{font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;font-weight:900;padding-top:13px}
.form-row input,.form-row textarea{width:100%;border:0;background:#e3ddcf;color:var(--ink);padding:13px 15px;font:inherit;font-size:1rem;border-radius:0;outline:none}
.form-row input:focus,.form-row textarea:focus{box-shadow:inset 0 0 0 3px var(--red)}
.form-row textarea{min-height:220px;resize:vertical;line-height:1.5}
.form-help{font-size:.78rem;line-height:1.4;margin:7px 0 0;color:#444}
.contact-submit{margin-top:30px;border:0;background:var(--red);color:#fff;padding:15px 25px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;font-size:.92rem}
.contact-submit:hover,.contact-submit:focus-visible{background:var(--ink)}
.form-alert{max-width:760px;padding:18px 20px;margin:0 0 25px;font-weight:800;border:2px solid var(--ink)}
.form-alert.success{background:var(--ink);color:var(--paper)}
.form-alert.error{border-color:var(--red);color:#a3130d}
.form-alert ul{margin:8px 0 0;padding-left:22px}
.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:620px){.form-row{grid-template-columns:1fr;gap:8px}.form-row label{padding-top:0}.contact-page h1{font-size:3.7rem}}

/* Mentions légales */
.legal-page{max-width:980px;margin:auto;padding:clamp(55px,9vw,110px) clamp(22px,6vw,90px)}
.legal-page h1{font-size:clamp(3.2rem,8vw,7rem);line-height:.88;letter-spacing:-.065em;margin:0 0 55px;border-bottom:6px solid var(--ink);padding-bottom:38px}
.legal-intro{font-family:Georgia,serif;font-style:italic;font-size:1.25rem;line-height:1.55;max-width:720px;margin-bottom:55px}
.legal-section{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:35px;border-top:1px solid var(--ink);padding:30px 0}
.legal-section h2{font-size:1rem;text-transform:uppercase;letter-spacing:.08em;margin:0}
.legal-section div{font-family:Georgia,serif;font-size:1.08rem;line-height:1.65}
.legal-section p{margin:0 0 1em}.legal-section p:last-child{margin-bottom:0}
.legal-section a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
@media(max-width:620px){.legal-section{grid-template-columns:1fr;gap:12px}.legal-page h1{font-size:3rem}}

/* Compteurs et commentaires */
.visit-count{display:inline-block;margin-top:9px;font-size:.7rem;opacity:.8;text-transform:uppercase;letter-spacing:.08em}
.comments{max-width:900px;margin:90px auto 20px;border-top:7px solid var(--ink);padding-top:35px}
.comments-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}
.comments-heading h2{font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.05em;margin:0}.comments-heading h2 span{color:var(--red)}
.comment-list{display:grid;gap:16px;margin-bottom:50px}.comment{border:1px solid var(--ink);padding:20px 22px;background:#e7e1d4}.comment header{display:flex;justify-content:space-between;gap:18px;margin-bottom:12px}.comment time{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.comment p{font-family:Georgia,serif;font-size:1.05rem;line-height:1.55;margin:0}.no-comments{font-family:Georgia,serif;font-style:italic;font-size:1.1rem;margin:0 0 45px}
.comment-form-wrap{background:var(--ink);color:var(--paper);padding:clamp(24px,5vw,46px)}.comment-form-wrap h3{font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.04em;margin:0 0 5px}.comment-form-wrap>p{font-family:Georgia,serif;font-style:italic;margin:0 0 28px}.comment-form{display:grid;gap:10px}.comment-form label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:900;margin-top:8px}.comment-form input,.comment-form textarea{border:0;background:var(--paper);color:var(--ink);padding:13px 14px;font:inherit;font-size:1rem;outline:none}.comment-form input:focus,.comment-form textarea:focus{box-shadow:inset 0 0 0 3px var(--red)}.comment-form textarea{min-height:150px;resize:vertical;line-height:1.5}.comment-form button{justify-self:start;margin-top:14px;border:0;background:var(--red);color:#fff;padding:14px 20px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}.comment-form button:hover,.comment-form button:focus-visible{background:var(--paper);color:var(--ink)}

/* Administration */
.admin-page{max-width:1000px;margin:auto;padding:clamp(50px,8vw,100px) clamp(22px,6vw,80px)}.admin-page h1{font-size:clamp(3rem,7vw,6rem);letter-spacing:-.06em;line-height:.9;margin:0 0 35px}.admin-intro{font-family:Georgia,serif;font-style:italic;font-size:1.2rem}.admin-login{max-width:480px;border-top:5px solid var(--ink);padding-top:25px;display:grid;gap:12px}.admin-login label{font-weight:900;text-transform:uppercase;font-size:.78rem;letter-spacing:.08em}.admin-login input{padding:14px;border:1px solid var(--ink);background:#e3ddcf;font-size:1rem}.admin-login button,.moderation-actions button,.logout{border:0;background:var(--ink);color:#fff;padding:12px 17px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.admin-head{display:flex;justify-content:space-between;align-items:start;gap:25px}.moderation-list{display:grid;gap:18px}.moderation-card{border:2px solid var(--ink);padding:22px;background:#e7e1d4}.moderation-card.pending{border-left:8px solid var(--red)}.moderation-card.approved{border-left:8px solid var(--ink)}.moderation-meta{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}.moderation-meta span{background:var(--ink);color:#fff;padding:4px 7px}.moderation-card.pending .moderation-meta span{background:var(--red)}.moderation-card>p{font-family:Georgia,serif;font-size:1.08rem;line-height:1.5}.moderation-actions{display:flex;gap:8px}.moderation-actions .danger{background:var(--red)}.moderation-actions button:hover,.logout:hover{opacity:.75}
@media(max-width:650px){.comments-heading,.admin-head{display:block}.admin-head form{margin-bottom:30px}.comment header{display:block}.comment time{display:block;margin-top:5px}.moderation-actions{flex-wrap:wrap}}
