/* Fashion Geek Histoire — les grandes batailles */
:root{--sea:#a4c4dc;--landc:#f7f5f0;--landline:#c9c4b8;--st:#e4e1d9;--stline:#fff;--river:#4f8fc4;--shelfc:#c9d6bf;--card:#fff;--rome:#c8342b;--carth:#7b3fbf;--fr:#1f4fae;--allie:#2f7d4f;--gaul:#b06a12}
/* carte FG (copie des règles de histoire.css) */
.fgmap{position:relative;background:#a4c4dc;border-radius:22px;overflow:hidden;aspect-ratio:2/1;touch-action:pan-y;user-select:none;-webkit-user-select:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.fgmap.tall{aspect-ratio:16/11}
.fgmap::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 60px rgba(20,40,70,.18)}
.fgmap svg{display:block;width:100%;height:100%;cursor:grab}
.m-sea{fill:#a4c4dc}.m-relief{image-rendering:auto}
.m-grat{fill:none;stroke:rgba(255,255,255,.16);stroke-width:calc(.8px * var(--u,1))}
.m-shelf{fill:#c9d6bf}.m-land{fill:none;stroke:none}.m-coast{fill:none;stroke:none;pointer-events:none}
.m-st{fill:transparent;stroke:rgba(255,255,255,.7);stroke-width:calc(.8px * var(--u,1));stroke-linejoin:round;opacity:0;animation:stIn .45s ease forwards;transition:fill .35s,opacity .35s}
@keyframes stIn{to{opacity:1}}
.m-yr.m-out{transition:opacity .35s;opacity:0}
.m-st.m-folk{fill:transparent;stroke:transparent}.m-st.m-other{fill:rgba(255,255,255,.22)}
.m-st.m-emp{fill-opacity:.58;stroke:rgba(255,255,255,.9);stroke-width:calc(1.1px * var(--u,1))}
.m-lake{fill:#9fc0da;stroke:rgba(40,70,100,.35);stroke-width:calc(.6px * var(--u,1))}
.m-river{fill:none;stroke:#4f8fc4;stroke-width:calc(1.4px * var(--u,1));opacity:.85;stroke-linecap:round}
.m-river.hi{stroke-width:calc(3.4px * var(--u,1));opacity:1;stroke:#2f6bff}
.m-lab{font:700 calc(15px * var(--u,1)) var(--body);fill:color-mix(in srgb,var(--c) 55%,#111);paint-order:stroke;stroke:rgba(255,255,255,.88);stroke-width:calc(3.5px * var(--u,1));text-anchor:middle;pointer-events:none}
.m-route{fill:none;stroke:var(--violet);stroke-width:calc(3px * var(--u,1));stroke-linecap:round;stroke-linejoin:round}
.m-route.dash{stroke-dasharray:calc(6px * var(--u,1)) calc(5px * var(--u,1))}
.m-zone{fill:var(--violet);opacity:.28;stroke:none;mix-blend-mode:multiply}
.m-zone.isl{opacity:1;mix-blend-mode:normal;stroke:#8d9a73;stroke-width:calc(1.2px * var(--u,1));stroke-linejoin:round}
.m-pt .m-dot{fill:#1d1d1f;stroke:#fff;stroke-width:1.6px}
.m-ptl{font:600 13px var(--body);fill:#1d1d1f;paint-order:stroke;stroke:#fff;stroke-width:3px;pointer-events:none}.m-ptl.l{text-anchor:end}
.m-pt.big .m-dot{fill:var(--rome)}
.m-txt{font:italic 600 calc(16px * var(--u,1)) Georgia,serif;fill:#2f5f86;text-anchor:middle;letter-spacing:.04em;pointer-events:none}
.m-tip{position:absolute;z-index:3;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.18);border-radius:14px;padding:10px 12px;display:grid;gap:2px;font-size:13px;max-width:240px;pointer-events:none}
.mapctl{position:absolute;right:12px;top:12px;display:grid;gap:6px;z-index:2}
.mapctl button{width:36px;height:36px;border-radius:12px;border:0;background:rgba(255,255,255,.9);font:600 18px var(--body);cursor:pointer}

/* campagne */
.bt-camp{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:stretch}
.bt-camp-side{background:#fff;border-radius:22px;padding:22px;display:grid;gap:14px;align-content:space-between}
.bt-camp-step{display:grid;gap:6px;min-height:170px}
.bt-date{font:700 13px var(--body);color:var(--gold);letter-spacing:.02em}
.bt-camp-step h4{font-size:24px}
.bt-camp-step p{font-size:15.5px;color:#424245;line-height:1.5}
.bt-camp-dots{display:flex;gap:6px;flex-wrap:wrap}
.bt-camp-dots button{width:26px;height:8px;border-radius:99px;border:0;background:#e5e5ea;padding:0}
.bt-camp-dots button.on{background:var(--gold)}
@media (max-width:820px){.bt-camp{grid-template-columns:minmax(0,1fr)}}

/* plateau */
.bt-board{position:relative;border-radius:24px;overflow:hidden;background:#d9d3c2;box-shadow:0 1px 0 rgba(0,0,0,.05),0 20px 50px rgba(30,30,40,.16);touch-action:none}
.bt-terrain{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bt-board canvas{position:absolute;inset:0;width:100%;height:100%}
.bt-cap{position:absolute;left:50%;bottom:16px;transform:translate(-50%,10px);max-width:calc(100% - 32px);background:rgba(20,20,26,.84);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:15px;line-height:1.4;padding:10px 16px;border-radius:16px;opacity:0;transition:.35s;pointer-events:none;text-align:center}
.bt-cap.on{opacity:1;transform:translate(-50%,0)}
.bt-clock{position:absolute;right:14px;top:14px;background:rgba(255,255,255,.92);border-radius:14px;padding:6px 12px;font:700 20px var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.bt-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin:12px 2px 0;font-size:13.5px;color:var(--ink3)}
.bt-legend span{display:inline-flex;align-items:center;gap:6px}
.bt-legend i{width:28px;height:16px;border-radius:4px;border:3px solid var(--c);background:#fff;display:inline-block;position:relative}
.bt-legend i.x::before,.bt-legend i.x::after{content:"";position:absolute;left:1px;right:1px;top:50%;height:2px;background:var(--c);transform:rotate(22deg)}
.bt-legend i.x::after{transform:rotate(-22deg)}
.bt-legend i.s::before{content:"";position:absolute;left:1px;right:1px;top:50%;height:2px;background:var(--c);transform:rotate(-22deg)}

/* conseil de guerre */
.bt-council{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:18px;align-items:start}
.bt-panel{display:grid;gap:12px}
.bt-dec{background:#fff;border-radius:22px;padding:20px;display:grid;gap:10px;box-shadow:0 1px 0 rgba(0,0,0,.04)}
.bt-dec-h{display:flex;justify-content:space-between;align-items:center;gap:8px}
.bt-turn{font:700 12px var(--body);letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--ink);border-radius:99px;padding:4px 10px}
.bt-time{font:600 13px var(--body);color:var(--gold)}
.bt-q{font:700 20px/1.25 var(--display);letter-spacing:-.02em}
.bt-ctx{font-size:14.5px;color:#424245;line-height:1.5}
.bt-opts{display:grid;gap:8px}
.bt-opts button{text-align:left;border:0;background:#f5f5f7;border-radius:16px;padding:12px 14px;display:grid;gap:3px;transition:background .2s,transform .2s,box-shadow .2s}
.bt-opts button:hover:not(:disabled){background:#ebebf0;transform:translateY(-1px)}
.bt-opts button b{font-size:15.5px;letter-spacing:-.01em}
.bt-opts button span{font-size:13.5px;color:var(--ink3)}
.bt-opts button.on{background:#eaf3fe;box-shadow:inset 0 0 0 2px var(--blue)}
.bt-opts button:disabled:not(.on){opacity:.45}
.bt-ver{border-radius:22px;padding:18px 20px;display:grid;gap:10px;background:#fff;border-left:6px solid #aeaeb2}
.bt-ver.good{border-color:var(--green)}.bt-ver.mid{border-color:#e8a317}.bt-ver.bad{border-color:#e0452f}
.bt-ver-h{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.bt-ver-h b{font:700 18px var(--display);letter-spacing:-.02em}
.bt-pts{font:700 15px var(--body);font-variant-numeric:tabular-nums;color:var(--ink3)}
.bt-ver.good .bt-pts{color:var(--green)}.bt-ver.bad .bt-pts{color:#e0452f}
.bt-ver p{font-size:15px;line-height:1.5;color:#424245}
.bt-hist{background:#f8f4ec;border-radius:14px;padding:10px 14px;display:grid;gap:4px}
.bt-hist span{font:700 12px var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.bt-hist p{font-size:14.5px}
.bt-ver .btn{justify-self:start}
.bt-gauge{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;border-radius:16px;padding:10px 14px;font-size:13.5px;color:var(--ink3)}
.bt-gauge b{font:700 16px var(--display);color:var(--ink);font-variant-numeric:tabular-nums;min-width:46px;text-align:right}
.bt-gbar{height:10px;border-radius:99px;background:#eceef2;overflow:hidden}
.bt-gbar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#e0452f,#e8a317 50%,#1f9d55);background-size:300% 100%;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.bt-start{background:#fff;border-radius:22px;padding:22px;display:grid;gap:12px}
.bt-start h4{font-size:22px}
.bt-start p{font-size:15px;color:#424245;line-height:1.5}
@media (max-width:900px){.bt-council{grid-template-columns:minmax(0,1fr)}}
.bt-score{background:#fff;border-radius:24px;padding:22px;display:grid;gap:14px;box-shadow:inset 0 0 0 2px rgba(142,68,216,.2)}
.bt-score-top{display:flex;gap:18px;align-items:center}
.bt-note{width:96px;height:96px;border-radius:50%;background:conic-gradient(var(--violet) calc(var(--p,0)*1%),#eee 0);display:grid;place-content:center;text-align:center;background:linear-gradient(135deg,#8e44d8,#0071e3);color:#fff;flex:none}
.bt-note b{font:800 38px/1 var(--display);letter-spacing:-.04em}.bt-note span{font-size:13px;opacity:.85}
.bt-k{font:700 12px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--violet)}
.bt-score h4{font-size:22px;margin:2px 0 6px}
.bt-stars{display:flex;gap:4px}.bt-stars i{width:22px;height:22px;background:#e5e5ea;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.bt-stars i.on{background:#e8a317}
.bt-score p{font-size:15.5px;line-height:1.5;color:#424245}
.bt-tab{width:100%;border-collapse:collapse;font-size:14px}
.bt-tab th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);padding:6px 8px;border-bottom:1px solid #eee}
.bt-tab td{padding:8px;border-bottom:1px solid #f2f2f5;vertical-align:top}
.bt-tab tr.same td:nth-child(2){color:var(--green);font-weight:600}

/* replay */
.bt-rp{margin-top:14px;display:grid;gap:12px}
.bt-rp-ph{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(120px,1fr);gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.bt-rp-ph button{border:0;background:#fff;border-radius:16px;padding:10px 12px;text-align:left;display:grid;gap:2px;box-shadow:0 1px 0 rgba(0,0,0,.04)}
.bt-rp-ph small{font:700 12px var(--body);color:var(--gold)}
.bt-rp-ph b{font-size:14px;letter-spacing:-.01em;line-height:1.25}
.bt-rp-ph button.on{box-shadow:inset 0 0 0 2px var(--blue)}
.bt-rp-ph button.done{opacity:.6}
.bt-rp-txt{background:#fff;border-radius:18px;padding:14px 18px;font-size:15.5px;line-height:1.5;min-height:76px}
.bt-rp-txt .note{margin:0}

/* forces */
.bt-forces{display:grid;gap:14px}
.bt-fr{background:#fff;border-radius:22px;padding:18px 20px;display:grid;gap:10px;border-top:6px solid var(--c)}
.bt-fr-h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}
.bt-fr-h b{font:700 20px var(--display);letter-spacing:-.02em}
.bt-fr-h span{font-size:14px;color:var(--ink3)}
.bt-fr-n{font-size:15px;color:var(--ink3)}
.bt-fr-n b{font:800 38px var(--display);letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums;margin-right:6px}
.bt-fr-n small{display:block;font-size:13px}
.bt-men{display:flex;flex-wrap:wrap;gap:3px}
.bt-men i{width:11px;height:15px;border-radius:5px 5px 2px 2px;background:var(--c);opacity:0;transform:translateY(6px);transition:opacity .4s var(--d),transform .4s var(--d),background .6s}
.bt-forces.in .bt-men i{opacity:.9;transform:none}
.bt-forces.after .bt-men i.lost{background:#d2d2d7;opacity:.55}
.bt-fr-l b{font-size:15px;color:#424245;font-weight:600}

/* pièges d'Alésia */
.al-cut{position:relative;background:linear-gradient(180deg,#dbe9f4 0,#dbe9f4 38%,#9c7b52 38%,#7b5c3a 100%);border-radius:22px;overflow:hidden;aspect-ratio:16/7}
.al-cut svg{position:absolute;inset:0;width:100%;height:100%}
.al-tray{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.al-tray button{border:0;background:#fff;border-radius:14px;padding:10px 14px;display:grid;gap:2px;text-align:left;box-shadow:0 1px 0 rgba(0,0,0,.05)}
.al-tray button b{font-size:15px}.al-tray button span{font-size:12.5px;color:var(--ink3)}
.al-tray button[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--blue);background:#eaf3fe}
.al-tray button.placed{opacity:.45}

/* hub */
.bh-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.bh-card{display:grid;grid-template-rows:auto 1fr;text-decoration:none;color:inherit;border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.06);transition:transform .3s,box-shadow .3s}
.bh-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(0,0,0,.12)}
.bh-card img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:40% 40%}
.bh-card .tx{padding:18px 20px 22px;display:grid;gap:6px;align-content:start}
.bh-card .k{font:700 13px var(--body);color:var(--gold)}
.bh-card h3{font-size:26px}
.bh-card p{font-size:15px;color:var(--ink3);line-height:1.45}
.bh-card .go{color:var(--link);font-size:15px;margin-top:4px}
@media (max-width:900px){.bh-cards{grid-template-columns:minmax(0,1fr)}}
.bh-cmp{display:grid;gap:10px}
.bh-cmp .r{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:center}
.bh-cmp .r b{font-size:15px}
.bh-bars{display:grid;gap:4px}
.bh-bar{height:22px;border-radius:8px;background:var(--c);color:#fff;font:600 12.5px var(--body);display:flex;align-items:center;padding:0 8px;white-space:nowrap;width:0;transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
.bh-princ{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bh-princ div{background:#fff;border-radius:20px;padding:18px;display:grid;gap:6px;align-content:start}
.bh-princ svg{width:100%;height:120px;background:#f8f6f1;border-radius:14px}
.bh-princ b{font-size:18px}.bh-princ p{font-size:14.5px;color:var(--ink3)}
@media (max-width:900px){.bh-princ{grid-template-columns:minmax(0,1fr)}}
.bt-myth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
@media (max-width:760px){.bt-myth{grid-template-columns:minmax(0,1fr)}}
@media (min-width:901px){.bt-council>div:first-child{position:sticky;top:118px}}

.sz-box{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:22px;align-items:center}.sz-box img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:80% 40%;border-radius:20px}
@media (max-width:760px){.sz-box{grid-template-columns:minmax(0,1fr)}}
.bh-feat{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:0;border-radius:28px;overflow:hidden;background:var(--tile);text-decoration:none;color:inherit;margin-bottom:22px;transition:transform .3s}.bh-feat:hover{transform:translateY(-3px)}.bh-feat img{width:100%;height:100%;min-height:240px;object-fit:cover;object-position:75% 40%}.bh-feat .tx{padding:clamp(20px,3vw,36px);display:grid;gap:8px;align-content:center}.bh-feat h3{font-size:clamp(26px,3vw,36px);letter-spacing:-.03em;line-height:1.08}.bh-feat .k{font-size:13px;font-weight:600;color:var(--violet)}.bh-feat p{color:var(--ink3)}.bh-feat .go{color:var(--link);font-weight:600}
@media (max-width:760px){.bh-feat{grid-template-columns:minmax(0,1fr)}}

.bh-feats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:22px}.bh-feats .bh-feat{grid-template-columns:minmax(0,1fr);margin:0}.bh-feats .bh-feat img{height:200px;min-height:0}.bh-feats .bh-feat h3{font-size:clamp(22px,2.2vw,28px)}
@media (max-width:980px){.bh-feats{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media (max-width:760px){.bh-feats{grid-template-columns:minmax(0,1fr)}}
.card>.cimg{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:14px;margin:0 0 14px;background:#ececf0}
/* gn:start — menu Histoire v64 : Époques / Thèmes / Atlas / Ma classe */
nav.gn{display:flex;align-items:center;gap:2px;overflow:visible}
.bar nav.gn,.ca-bar nav.gn{overflow:visible;scrollbar-width:auto}
nav.gn>a,nav.gn summary{font:inherit;font-size:13px;line-height:1;color:var(--ink,#1d1d1f);opacity:.82;text-decoration:none;padding:10px 12px;border-radius:980px;white-space:nowrap;cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;-webkit-tap-highlight-color:transparent}
nav.gn summary::-webkit-details-marker{display:none}
nav.gn summary::marker{content:""}
nav.gn summary::after{content:"";width:5px;height:5px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-1px);transition:transform .2s}
nav.gn details[open]>summary::after{transform:rotate(225deg) translate(-1px,-1px)}
nav.gn>a:hover,nav.gn summary:hover,nav.gn details[open]>summary{opacity:1;background:var(--tile,#f5f5f7)}
nav.gn>a[aria-current],nav.gn summary[data-cur]{opacity:1;color:var(--violet,#8e44d8);font-weight:600;background:var(--violet-s,#f3eafb)}
nav.gn>a:focus-visible,nav.gn summary:focus-visible,nav.gn .gn-p a:focus-visible{outline:2px solid var(--blue,#0071e3);outline-offset:2px}
nav.gn details{position:static}
nav.gn .gn-p{position:absolute;left:0;right:0;top:100%;background:var(--bg,#fff);border-bottom:1px solid var(--rule,#d2d2d7);box-shadow:0 22px 44px rgba(0,0,0,.10);max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain;animation:gnIn .2s ease}
@keyframes gnIn{from{opacity:0;transform:translateY(-6px)}}
.gn-in{max-width:1180px;margin:0 auto;padding:20px max(2px,env(safe-area-inset-left,0px)) 26px;display:grid;gap:8px 24px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
nav.gn .gn-p a{display:grid;gap:3px;align-content:start;padding:12px 14px;border-radius:16px;text-decoration:none;color:var(--ink,#1d1d1f);transition:background .15s}
nav.gn .gn-p a:hover{background:var(--tile,#f5f5f7)}
nav.gn .gn-p a b{font-size:16px;line-height:1.2;font-weight:650;letter-spacing:-.015em;color:var(--ink,#1d1d1f)}
nav.gn .gn-p a span{font-size:12.5px;line-height:1.35;color:var(--ink3,#6e6e73);font-weight:400}
nav.gn .gn-p a[aria-current]{background:var(--violet-s,#f3eafb)}
nav.gn .gn-p a[aria-current] b{color:var(--violet,#8e44d8)}
.ca-bar .gn-in{max-width:1080px}
.gn-g{display:grid;gap:2px;align-content:start}
.gn-k{font-size:11px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--violet,#8e44d8);padding:2px 14px 6px}
.gn-in.gn-th{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
@media (max-width:760px){
 .bar .wrap{flex-wrap:wrap;row-gap:0}
 .bar nav.gn,.ca-bar nav.gn,nav.gn{width:100%;margin-left:0;justify-content:space-between;padding-bottom:4px}
 nav.gn>a,nav.gn summary{padding:9px 8px}
 .gn-in{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;padding:12px max(4px,env(safe-area-inset-left,0px)) 20px}
 .gn-in.gn-th{grid-template-columns:minmax(0,1fr)}
 nav.gn .gn-p a{padding:10px 12px}
}
@media (prefers-reduced-motion:reduce){nav.gn .gn-p{animation:none}nav.gn summary::after{transition:none}}
/* gn:end */
