@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,900;1,9..144,500&family=Spectral:ital,wght@0,400;0,500;0,600;1,400&family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,600;12..96,800&family=Caveat:wght@500;700&display=swap');
:root{--paper:#f1e7d2;--paper-2:#e9dec5;--card:#f7f1e2;--ink:#221d16;--ink-soft:#5d5346;
  --red:#a52a21;--red-deep:#7c1d16;--bright:#e5392a;--gold:#9a7b35;--gold-deep:#7d6325;--blue:#39596b;--const:#6b6051;
  --line:#cabb9d;--line-soft:#ddd1b6;--ok:#52742f;
  --f-ui:'Bricolage Grotesque',system-ui,sans-serif;--f-serif:'Spectral',Georgia,serif;--f-hand:'Caveat',cursive;}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Spectral',Georgia,serif;background:var(--paper);position:relative;
  background-image:radial-gradient(circle at 16% 8%,rgba(165,42,33,.07),transparent 42%),radial-gradient(circle at 88% 94%,rgba(154,123,53,.09),transparent 46%),radial-gradient(ellipse at 50% 50%,rgba(120,90,50,.05),transparent 60%);
  color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh;}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.kicker{font-family:var(--f-ui);font-size:.72rem;letter-spacing:.38em;text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:12px;}
h1{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(2.2rem,6vw,3.8rem);line-height:1;letter-spacing:-.02em;}
h1 em{font-style:italic;color:var(--bright);font-weight:500;}
.sub{font-style:italic;color:var(--ink-soft);margin-top:11px;font-size:1rem;}
.rule{width:110px;height:0;margin:18px auto 0;border-top:2px solid var(--ink);position:relative;}
.rule::after{content:"";position:absolute;left:0;right:0;top:4px;border-top:1px solid var(--ink);}
nav.tabs{position:sticky;top:0;z-index:40;background:var(--paper);border-top:1px solid var(--line);border-bottom:2px solid var(--ink);
  display:flex;flex-wrap:wrap;justify-content:center;margin:24px -22px 0;padding:0 22px;}
.tab{font-family:var(--f-ui);font-weight:600;font-size:.95rem;background:none;border:none;cursor:pointer;color:var(--ink-soft);padding:15px 18px;position:relative;transition:color .2s;}
.tab .num{color:var(--red);font-style:italic;margin-right:6px;}
.tab:hover{color:var(--ink);}.tab.active{color:var(--ink);}
.tab.active::after{content:"";position:absolute;left:14px;right:14px;bottom:-2px;height:3px;background:var(--bright);}
nav.subnav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin:16px 0 2px;}
.subnavbtn{font-family:var(--f-ui);font-weight:600;font-size:.96rem;background:none;border:none;cursor:pointer;color:var(--ink-soft);padding:9px 17px;position:relative;transition:color .18s;}
.subnavbtn:hover{color:var(--ink);}
.subnavbtn.active{color:var(--ink);}
.subnavbtn.active::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:3px;background:var(--gold-deep);border-radius:2px;}
.panel{display:none;padding-top:30px;animation:fade .4s ease;}.panel.active{display:block;}
@keyframes fade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
h2.sec{font-family:'Fraunces',serif;font-weight:900;font-size:1.8rem;margin-bottom:6px;letter-spacing:-.01em;}
.lead{font-size:1.06rem;color:var(--ink-soft);max-width:730px;margin-bottom:22px;font-style:italic;}
.method-note{border-left:3px solid var(--gold);background:rgba(154,123,53,.08);padding:16px 20px;margin-bottom:30px;font-size:.98rem;color:var(--ink-soft);border-radius:0 4px 4px 0;}.method-note b{color:var(--ink);}
.edition-note{border-left:3px solid var(--gold);background:rgba(154,123,53,.08);padding:14px 18px;margin:0 0 20px;font-size:.94rem;color:var(--ink-soft);border-radius:0 4px 4px 0;}
.edition-note b{color:var(--ink);}
.howto{display:flex;gap:12px;align-items:flex-start;background:var(--paper-2);border:1px solid var(--line-soft);border-radius:6px;padding:14px 18px;margin-bottom:22px;font-size:.95rem;color:var(--ink-soft);}
.howto b{color:var(--ink);}
.intro-grid{display:grid;gap:18px;}
.intro-block{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:22px clamp(20px,4vw,30px);}
.intro-block>h3{font-family:'Fraunces',serif;font-weight:900;font-size:1.22rem;letter-spacing:-.01em;margin-bottom:10px;display:flex;align-items:baseline;gap:10px;}
.intro-block p{font-size:1.02rem;line-height:1.72;color:var(--ink-soft);margin-bottom:13px;}
.intro-block p:last-child{margin-bottom:0;}
.intro-block p b{color:var(--ink);}
.pull{font-family:'Fraunces',serif;font-style:italic;font-size:1.12rem;color:var(--ink);border-left:3px solid var(--red);padding:3px 0 3px 17px;margin:18px 0;line-height:1.45;}
.plan-list{list-style:none;margin:10px 0 0;padding:0;}
.plan-list li{display:flex;gap:14px;padding:10px 0;border-top:1px solid var(--line-soft);}
.plan-list li:first-child{border-top:none;}
.plan-list .pn{font-family:'Fraunces',serif;font-style:italic;font-weight:900;color:var(--red);min-width:34px;text-align:center;}
.plan-list .pt{font-family:'Fraunces',serif;font-weight:600;color:var(--ink);line-height:1.25;}
.plan-list .pt small{display:block;font-family:'Spectral',serif;font-weight:400;font-style:italic;color:var(--ink-soft);font-size:.86rem;margin-top:2px;}
/* Accueil d'œuvre — seuil de lecture (exergue, itinéraire, lexique) — partagé */
.acc-exergue{margin:0 0 22px;padding:22px clamp(20px,4vw,30px);border:1px solid var(--line);background:var(--card);border-radius:8px;}
.acc-exergue-st{font-family:'Fraunces',serif;font-weight:900;font-style:italic;font-size:clamp(1.18rem,1.9vw,1.4rem);line-height:1.3;color:var(--ink);margin:0 0 16px;letter-spacing:-.005em;}
.acc-exergue-q{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:clamp(1.12rem,1.8vw,1.32rem);line-height:1.5;color:var(--ink);border-left:3px solid var(--red);padding:3px 0 3px 17px;margin:0 0 12px;}
.acc-exergue-src{font-size:.85rem;color:var(--ink-soft);font-style:italic;margin:0 0 18px;padding-left:17px;}
.acc-exergue-th{font-size:1.02rem;line-height:1.72;color:var(--ink-soft);margin:0 0 18px;}
.acc-exergue-th b{color:var(--ink);}
.acc-itineraire{margin:0 0 28px;}
.acc-itineraire>h3{font-family:'Fraunces',serif;font-weight:900;font-size:1.22rem;letter-spacing:-.01em;margin-bottom:10px;display:flex;align-items:baseline;gap:10px;}
.acc-itineraire>h3 .ib-n{color:var(--red);font-style:italic;font-weight:900;font-size:1.05em;}
.acc-itineraire-intro{font-size:1rem;color:var(--ink-soft);line-height:1.65;margin:0 0 14px;}
.acc-portes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;}
.acc-porte{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:16px 18px;}
.acc-porte h4{font-family:'Fraunces',serif;font-weight:900;font-size:1.05rem;color:var(--ink);margin:0;letter-spacing:-.005em;}
.acc-porte h4 .acc-porte-h-sub{font-family:'Spectral',serif;font-style:italic;font-weight:400;font-size:.82rem;color:var(--ink-soft);margin-left:6px;}
.acc-porte p{font-size:.94rem;line-height:1.55;color:var(--ink-soft);margin:0;}
.acc-porte .btn{align-self:flex-start;margin-top:auto;font-size:.8rem;padding:7px 12px;}
.acc-lexique{margin:6px 0 0;border:1px solid var(--line);background:var(--card);border-radius:8px;}
.acc-lexique>summary{font-family:'Fraunces',serif;font-weight:600;font-size:1.05rem;color:var(--ink);padding:14px clamp(18px,4vw,26px);cursor:pointer;list-style:none;display:flex;align-items:center;gap:12px;}
.acc-lexique>summary::-webkit-details-marker{display:none;}
.acc-lexique>summary::before{content:'+';font-family:'Fraunces',serif;font-style:italic;font-weight:900;color:var(--red);font-size:1.2rem;line-height:1;width:14px;display:inline-block;text-align:center;}
.acc-lexique[open]>summary::before{content:'–';}
.acc-lex-list{list-style:none;margin:0;padding:4px clamp(18px,4vw,26px) 18px;}
.acc-lex-list li{padding:10px 0;border-top:1px solid var(--line-soft);font-size:.96rem;line-height:1.55;color:var(--ink-soft);}
.acc-lex-list li:first-child{border-top:none;}
.acc-lex-list li b{color:var(--ink);font-family:'Fraunces',serif;font-weight:600;}
/* Navigateur « Parcourir » — accordéon sections / chapitres — partagé */
.search{padding:0 0 16px;}
.search input{width:100%;font-family:'Spectral',serif;font-size:1rem;padding:12px 16px;border:1px solid var(--line);border-radius:30px;background:var(--card);color:var(--ink);}
.search input::placeholder{color:var(--ink-soft);font-style:italic;}
.nores{display:none;text-align:center;color:var(--ink-soft);font-style:italic;padding:20px;}
.section{margin-bottom:12px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card);}
.sec-head{display:flex;align-items:center;gap:14px;padding:15px 18px;cursor:pointer;background:none;border:none;width:100%;text-align:left;font:inherit;color:inherit;transition:background .18s;}
.sec-head:hover{background:var(--paper-2);}
.sec-head .rn{font-family:'Fraunces',serif;font-style:italic;font-weight:900;font-size:1.2rem;color:var(--red);min-width:34px;text-align:center;}
.sec-head .st{font-family:'Fraunces',serif;font-weight:600;font-size:1.08rem;flex:1;line-height:1.2;}
.sec-head .pg{font-family:'Fraunces',serif;font-size:.76rem;color:#fff;background:var(--ink);padding:3px 9px;border-radius:20px;white-space:nowrap;}
.sec-head .chev{color:var(--ink-soft);transition:transform .25s;}
.section.open .chev{transform:rotate(90deg);}
.sec-body{max-height:0;overflow:hidden;transition:max-height .45s ease;}
.sec-inner{padding:4px 14px 14px;}
.sec-intro{font-style:italic;color:var(--ink-soft);font-size:.95rem;padding:6px 8px 12px;border-bottom:1px solid var(--line-soft);margin-bottom:4px;line-height:1.55;}
.chap{border-top:1px solid var(--line-soft);}.chap:first-child{border-top:none;}
.chap-head{display:flex;align-items:center;gap:12px;padding:12px 8px;cursor:pointer;background:none;border:none;width:100%;text-align:left;font:inherit;color:inherit;border-radius:5px;transition:background .16s;}
.chap-head:hover{background:var(--paper-2);}
.chap-head .cn{font-family:'Fraunces',serif;font-weight:600;color:var(--gold-deep);font-size:.86rem;min-width:46px;}
.chap-head .ct{flex:1;font-family:'Fraunces',serif;font-weight:600;font-size:.96rem;line-height:1.25;}
.chap-head .badge{font-size:.68rem;font-family:'Fraunces',serif;font-weight:600;background:var(--ok);color:#fff;padding:2px 7px;border-radius:20px;white-space:nowrap;}
.chap-head .chev{color:var(--ink-soft);transition:transform .25s;}
.chap.open .chev{transform:rotate(90deg);}
.chap-body{max-height:0;overflow:hidden;transition:max-height .4s ease;}
.chap-inner{padding:2px 8px 16px 66px;}
.chap-inner .summary{color:var(--ink-soft);font-size:.98rem;line-height:1.55;margin-bottom:11px;}
.chap-inner .summary b{color:var(--ink);}
.links{display:flex;flex-wrap:wrap;gap:8px;}
.lk{font-family:var(--f-ui);font-size:.78rem;font-weight:600;padding:5px 12px;border-radius:5px;cursor:pointer;border:1px solid;background:none;transition:all .16s;}
.lk.read{color:var(--ok);border-color:var(--ok);background:rgba(82,116,47,.08);}.lk.read:hover{background:var(--ok);color:#fff;}
.lk.labo{color:var(--red-deep);border-color:var(--red);background:rgba(165,42,33,.08);}.lk.labo:hover{background:var(--red);color:#fff;}
.lk.deriv{color:var(--blue);border-color:var(--blue);background:rgba(57,89,107,.1);}.lk.deriv:hover{background:var(--blue);color:#fff;}
.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.btn{font-family:var(--f-ui);font-weight:600;font-size:.85rem;cursor:pointer;border:1px solid var(--ink);background:none;color:var(--ink);padding:9px 16px;border-radius:4px;transition:all .18s;}
.btn:hover{background:var(--ink);color:var(--paper);}
.btn.red{border-color:var(--red);color:var(--red);}.btn.red:hover{background:var(--red);color:#fff;}
.btn.gold{border-color:var(--gold-deep);color:var(--gold-deep);}.btn.gold:hover{background:var(--gold-deep);color:#fff;}
.reader-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:20px;}
.reader-bar select{font-family:'Fraunces',serif;font-size:.95rem;padding:10px 14px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);flex:1;min-width:240px;}
.reader{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:32px clamp(20px,5vw,54px);max-width:760px;margin:0 auto;}
.placeholder{text-align:center;color:var(--ink-soft);padding:50px 20px;}
.placeholder b{color:var(--ink);font-family:'Fraunces',serif;}
/* Liseuse — habillage partagé (pastilles howto/placeholder + amorce annotations) */
.howto .pin{flex:none;width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-style:italic;font-weight:700;}
.placeholder .pi{font-size:2.4rem;margin-bottom:10px;}
.anno-hint{font-family:var(--f-hand);font-size:1.12rem;color:var(--red-deep);margin:0 0 16px;line-height:1.35;}
.anno-hint b{color:var(--ink);font-style:normal;}
.chip{font-family:'Fraunces',serif;font-weight:600;font-size:.82rem;color:#fff;padding:3px 11px;border-radius:20px;display:inline-flex;}
.walk{position:relative;margin:10px 0 6px;}
.walk-step{display:grid;grid-template-columns:1fr 60px 1fr;align-items:center;position:relative;}
/* Onglet « Ressources » — cartes de liens externes — partagé */
.res-section{font-family:'Fraunces',Georgia,serif;font-weight:700;font-size:1.06rem;color:var(--ink);margin:28px 0 13px;padding-bottom:8px;border-bottom:2px solid var(--gold-deep);}
.res-section:first-of-type{margin-top:10px;}
.res-section small{font-family:var(--f-ui);font-weight:600;font-size:.72rem;color:var(--ink-soft);margin-left:9px;}
.res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:14px;margin-bottom:6px;}
.res-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--gold-deep);border-radius:8px;padding:15px 17px;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s,border-color .15s;}
.res-card:hover{transform:translateY(-2px);box-shadow:0 5px 16px rgba(0,0,0,.06);border-left-color:var(--red);}
.res-kind{font-family:var(--f-ui);font-size:.64rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:7px;}
.res-card h3{font-family:'Fraunces',Georgia,serif;font-size:1.04rem;line-height:1.22;margin:0 0 8px;color:var(--ink);}
.res-meta{font-family:var(--f-ui);font-size:.8rem;color:var(--ink-soft);margin-top:auto;}
footer{text-align:center;margin-top:54px;padding-top:22px;border-top:1px solid var(--line);color:var(--ink-soft);font-style:italic;font-size:.86rem;}
footer b{font-family:'Fraunces',serif;font-style:normal;color:var(--ink);}
