/* ================================================================== */
/* v2.1 — progression : niveau, missions, bagages, Grand Tour, lexique */
/* ================================================================== */

/* ---- Carte de niveau : puces ---- */
.prog-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem;}
.pchip{display:inline-flex;align-items:center;gap:.3rem;min-height:36px;font:600 .8rem "Work Sans",sans-serif;color:var(--text);
  background:var(--surface);border:1px solid var(--rule);border-radius:99px;padding:.35rem .75rem;cursor:pointer;transition:transform .12s,border-color .12s;}
.pchip:hover{border-color:var(--accent);transform:translateY(-1px);}
.pchip:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.pchip.hot{border-color:color-mix(in srgb, #e8794c 70%, var(--rule));background:color-mix(in srgb, #e8794c 16%, var(--surface));}
.pchip.bag-chip{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 20%, var(--surface));animation:chipNudge 2.4s ease-in-out infinite;}
@keyframes chipNudge{0%,72%,100%{transform:none;}80%{transform:translateY(-3px) rotate(-2deg);}88%{transform:rotate(2deg);}}

/* ---- Missions du jour ---- */
.missions-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:.85rem 1rem .75rem;margin-bottom:.9rem;box-shadow:0 6px 16px rgba(0,0,0,.2);}
.ms-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;flex-wrap:wrap;margin-bottom:.2rem;}
.ms-head .section-title{font-size:1.15rem;}
.ms-sub{font:600 .72rem "IBM Plex Mono",monospace;color:var(--text-mute);}
.ms-list{list-style:none;margin:0;padding:0;}
.ms{display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"t n r" "b b b";gap:.2rem .6rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--rule);font-size:.86rem;color:var(--text);}
.ms:first-child{border-top:0;}
.ms-t{grid-area:t;}
.ms-t small{display:block;font-size:.7rem;color:var(--text-mute);}
.ms-n{grid-area:n;font:600 .75rem "IBM Plex Mono",monospace;color:var(--text-mute);}
.ms-r{grid-area:r;font:700 .72rem "IBM Plex Mono",monospace;color:var(--accent);}
.ms-r::after{content:" pts";font-weight:500;}
.ms-bar{grid-area:b;height:5px;border-radius:99px;background:var(--surface-2);overflow:hidden;}
.ms-bar i{display:block;height:100%;background:var(--ok);border-radius:inherit;transition:width .5s;}
.ms.done .ms-t{color:var(--text-mute);text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--ok) 70%, transparent);}
.ms.done .ms-n{color:var(--ok);font-weight:700;}
.ms-foot{font-size:.7rem;color:var(--text-mute);margin-top:.3rem;}

/* ---- Carte du Grand Tour ---- */
.tour-card{display:flex;align-items:center;gap:.9rem;width:100%;text-align:left;cursor:pointer;color:inherit;font:inherit;margin-bottom:1.3rem;
  padding:.95rem 1.1rem;border-radius:var(--radius);border:1px solid color-mix(in srgb, #4f9fd6 45%, var(--rule));
  background:radial-gradient(360px 120px at 100% 0, rgba(79,159,214,.22), transparent 70%), var(--surface);box-shadow:0 6px 16px rgba(0,0,0,.2);transition:transform .15s,border-color .15s;}
.tour-card:hover{transform:translateY(-1px);border-color:#4f9fd6;}
.tour-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.tc-ico{font-size:1.6rem;width:2.8rem;height:2.8rem;display:grid;place-items:center;border-radius:12px;background:rgba(79,159,214,.16);}
.tc-main{display:flex;flex-direction:column;min-width:0;flex:1;}
.tc-name{font:700 1.2rem "Big Shoulders Display",sans-serif;color:var(--flap);}
.tc-desc{font-size:.8rem;color:var(--text-dim);}
.tc-side{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;flex:none;}
.tc-stars{font:700 .95rem "IBM Plex Mono",monospace;color:var(--accent);}
.tc-go{font-weight:700;font-size:.8rem;color:#4f9fd6;}

/* ---- Annonces ---- */
.mc-pop{position:fixed;inset:auto;top:calc(12px + env(safe-area-inset-top,0px));left:0;right:0;bottom:auto;margin:0 auto;width:max-content;max-width:min(440px, calc(100vw - 24px));height:auto;
  z-index:200;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.65rem .9rem;border-radius:14px;overflow:visible;
  background:var(--board-2);color:var(--text);border:1.5px solid var(--accent);box-shadow:0 18px 40px -12px rgba(0,0,0,.6);
  transform:translateY(-20px) scale(.96);opacity:0;transition:transform .28s cubic-bezier(.2,1.4,.4,1),opacity .25s;cursor:pointer;}
.mc-pop.show{transform:none;opacity:1;}
.mc-pop-ic{font-size:1.7rem;line-height:1;flex:none;}
.mc-pop-body{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0;}
.mc-pop-body b{font:700 1.02rem "Big Shoulders Display",sans-serif;letter-spacing:.02em;color:var(--flap);}
.mc-pop-body span{font-size:.8rem;color:var(--text-dim);}
.mc-pop-btn{flex:none;margin-left:auto;border:0;border-radius:99px;padding:.5rem .9rem;font:700 .8rem "Work Sans",sans-serif;color:#2b1c07;cursor:pointer;
  background:linear-gradient(180deg,#f6d287 0%,var(--accent) 55%,#cd9538 100%);}
.mc-pop.lvl{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 28%, transparent),0 18px 40px -12px rgba(0,0,0,.6);}

.mc-float{position:fixed;left:0;right:0;margin:0 auto;width:max-content;max-width:calc(100vw - 32px);top:32vh;z-index:190;pointer-events:none;white-space:nowrap;
  font:800 clamp(1.4rem, 1rem + 3vw, 2.4rem)/1 "Big Shoulders Display",sans-serif;letter-spacing:.02em;color:#2b1c07;padding:.55rem 1.2rem;border-radius:99px;
  background:linear-gradient(180deg,#f6d287 0%,var(--accent) 60%,#cd9538 100%);box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 30%, transparent),0 20px 40px -10px rgba(0,0,0,.55);
  animation:mcFloat 1.7s cubic-bezier(.2,1.4,.4,1) forwards;}
.mc-float.near{background:var(--board-2);color:var(--flap);border:2px solid var(--bad);}
.mc-float.fire{background:linear-gradient(180deg,#ffd27a,#f07e3a 60%,#d9503a);color:#2b0c02;}
@keyframes mcFloat{0%{transform:scale(.3);opacity:0;}18%{transform:scale(1.12);opacity:1;}30%{transform:none;}80%{opacity:1;}100%{transform:translateY(-40px) scale(.95);opacity:0;}}

/* ---- En manche : record en vue, série en feu ---- */
.game-head{flex-wrap:wrap;}
.record-chip{flex-basis:100%;order:5;align-self:center;margin-top:.35rem;font:600 .76rem "IBM Plex Mono",monospace;color:var(--text-mute);text-align:right;}
.record-chip.near{color:var(--accent);}
.record-chip.beat{color:#2b1c07;background:linear-gradient(180deg,#f6d287,var(--accent));border-radius:99px;padding:.2rem .7rem;width:max-content;margin-left:auto;animation:tapPop .5s ease-out;}
.record-chip.tour{color:#4f9fd6;text-align:left;}
#calcul-serie.hot .flap{background:linear-gradient(180deg,#ffe3a1,#f6b04c);box-shadow:0 2px 0 #b8761e,0 0 12px rgba(246,176,76,.6);}
#calcul-serie.fire .flap{background:linear-gradient(180deg,#ffd27a,#f07e3a 60%,#d9503a);color:#2b0c02;box-shadow:0 2px 0 #8d2c16,0 0 18px rgba(240,126,58,.8);animation:fireGlow .8s ease-in-out infinite alternate;}
@keyframes fireGlow{to{box-shadow:0 2px 0 #8d2c16,0 0 26px rgba(240,126,58,1);}}

/* ---- Fin de manche : bloc de progression ---- */
.prog-sheet{width:100%;display:flex;flex-direction:column;gap:.45rem;margin:.2rem 0 .1rem;padding:.7rem .8rem;border-radius:14px;background:var(--surface-2);border:1px solid var(--rule);text-align:left;}
.ps-gain{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.ps-gain .ps-bag{margin-left:auto;padding:.35rem .7rem;font-size:.82rem;}
.ps-gain b{font:800 1.5rem "Big Shoulders Display",sans-serif;color:var(--accent);}
.ps-chip{font-size:.72rem;color:var(--text-mute);}
.ps-level{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;}
.ps-lvl{font:700 .7rem "IBM Plex Mono",monospace;color:#2b1c07;background:var(--accent);border-radius:5px;padding:.12rem .4rem;}
.ps-bar{position:relative;height:10px;border-radius:99px;background:var(--board-3);overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.45);}
.ps-bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#c9892a,var(--accent),#f6d287);box-shadow:0 0 10px rgba(226,166,59,.5);transition:width .8s cubic-bezier(.3,.9,.3,1);}
.ps-flash{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:800 .62rem "Work Sans",sans-serif;letter-spacing:.12em;font-style:normal;color:#2b1c07;animation:lvlBlink .45s ease-in-out 4 alternate;}
@keyframes lvlBlink{from{opacity:.35;}to{opacity:1;}}
.ps-xp{font:600 .72rem "IBM Plex Mono",monospace;color:var(--text-mute);}
.ps-next{font-size:.76rem;color:var(--text-dim);}
.ps-tour{border-top:1px solid var(--rule);padding-top:.45rem;display:flex;flex-direction:column;gap:.4rem;}
.ps-tour-head{font:700 1.05rem "Big Shoulders Display",sans-serif;color:var(--flap);display:flex;justify-content:space-between;align-items:center;}
.ps-stars{color:var(--accent);letter-spacing:.1em;}
.ps-note{font-size:.78rem;color:var(--text-dim);}
.ps-tour-btns{display:flex;flex-wrap:wrap;gap:.4rem;}
.ps-tour-btns .btn{flex:1 1 auto;font-size:.85rem;padding:.55rem .8rem;}
.ps-lex{font-size:.8rem;color:var(--text);border-top:1px solid var(--rule);padding-top:.4rem;}
.ps-lex-list{display:block;font:600 .72rem "IBM Plex Mono",monospace;color:var(--text-mute);margin-top:.15rem;}
.ps-missions{display:flex;flex-wrap:wrap;gap:.2rem .8rem;font-size:.74rem;color:var(--text-mute);border-top:1px solid var(--rule);padding-top:.4rem;}
.ps-m.done{color:var(--text);}
.ps-m em{font-style:normal;font-family:"IBM Plex Mono",monospace;}
.ps-bag{display:inline-flex;align-items:center;gap:.5rem;align-self:flex-start;font-weight:700;}
.ps-bag .bag-svg.mini{width:30px;height:26px;}
.ps-badge{display:inline-block;min-width:1.2rem;padding:0 .35rem;border-radius:99px;background:var(--bad);color:#fff;font-size:.7rem;text-align:center;}

/* ---- Cartes postales ---- */
.postcard{position:relative;border-radius:10px;padding:.7rem .9rem .75rem;background:repeating-linear-gradient(135deg, #f7efdd 0 14px, #f3e7cf 14px 28px);color:#2b2418;
  border:1px solid #d9c79c;box-shadow:0 6px 14px rgba(0,0,0,.25);font-size:.86rem;line-height:1.45;}
.postcard p{margin:.35rem 0 0;font-family:Georgia,"Times New Roman",serif;font-style:italic;}
.postcard-stamp{display:inline-block;font:800 .8rem "Big Shoulders Display",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#8d2c16;border:2px dashed #8d2c16;border-radius:6px;padding:.1rem .5rem;transform:rotate(-3deg);}
.postcard.small{font-size:.8rem;}

/* ---- Écran du Grand Tour ---- */
.tour-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;}
.tour-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.9rem;}
.tour-head .prompt{margin:.3rem 0 0;}
.tour-total{flex:none;display:flex;flex-direction:column;align-items:center;border:2px solid var(--accent);border-radius:14px;padding:.45rem .8rem;background:var(--surface);}
.tour-total b{font:800 1.6rem "Big Shoulders Display",sans-serif;color:var(--accent);line-height:1;}
.tour-total span{font:600 .66rem "IBM Plex Mono",monospace;color:var(--text-mute);}
.tour-line{border:1px solid color-mix(in srgb, var(--line) 50%, var(--rule));border-radius:var(--radius);padding:.8rem .8rem .6rem;margin-bottom:1rem;
  background:linear-gradient(180deg, color-mix(in srgb, var(--line) 12%, var(--surface)) 0%, var(--surface) 70%);}
.tour-line.locked{opacity:.75;filter:saturate(.4);}
.tour-line-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.4rem;}
.tour-line-no{font:700 .66rem "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:#1b1204;background:var(--line);border-radius:5px;padding:.12rem .45rem;}
.tour-line-head h3{font-size:1.2rem;color:var(--flap);flex:1;}
.tour-line-stars{font:700 .8rem "IBM Plex Mono",monospace;color:var(--accent);}
.tour-gate{font-size:.8rem;color:var(--text-dim);background:var(--surface-2);border:1px dashed var(--rule);border-radius:10px;padding:.45rem .7rem;margin:.2rem 0 .5rem;}
.tour-board{display:flex;flex-direction:column;border-radius:10px;overflow:hidden;background:var(--board-3);border:1px solid var(--rule);}
.tour-row{display:grid;grid-template-columns:3.6rem 1fr 1fr 2.4rem 5.6rem;align-items:center;gap:.5rem;padding:.6rem .7rem;border:0;border-top:1px solid var(--rule);
  background:none;color:var(--flap);font:600 .86rem "IBM Plex Mono",monospace;text-align:left;cursor:pointer;min-height:48px;}
.tour-row:first-child{border-top:0;}
.tour-row.tour-th{cursor:default;min-height:0;padding:.35rem .7rem;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-mute);background:rgba(0,0,0,.15);}
.tour-row:not(.tour-th):hover{background:rgba(255,255,255,.04);}
.tour-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.tour-dep{color:var(--accent);}
.tour-city{font:700 1rem "Big Shoulders Display",sans-serif;letter-spacing:.04em;text-transform:uppercase;}
.tour-game{font:500 .74rem "Work Sans",sans-serif;color:var(--text-dim);}
.tour-voie{text-align:center;background:var(--flap);color:var(--ink);border-radius:4px;font-weight:700;}
.tour-state{font-size:.74rem;text-align:right;}
.tour-state.done{color:var(--accent);letter-spacing:.08em;font-size:.95rem;}
.tour-state.board{color:#08231a;background:var(--ok);border-radius:99px;padding:.15rem .5rem;text-align:center;font:700 .66rem "Work Sans",sans-serif;letter-spacing:.06em;text-transform:uppercase;animation:boardBlink 1.4s ease-in-out infinite;}
.tour-state.lock{color:var(--text-mute);}
@keyframes boardBlink{50%{opacity:.55;}}
.tour-row.locked{cursor:not-allowed;opacity:.55;}
.tour-row.next{box-shadow:inset 3px 0 0 var(--ok);}
.tour-row.shake{animation:rowShake .35s;}
@keyframes rowShake{25%{transform:translateX(-6px);}75%{transform:translateX(6px);}}
.tour-end{text-align:center;padding:.9rem;border-radius:var(--radius);border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--text);}
.tour-end a{color:var(--accent);font-weight:700;}
@media (max-width:520px){
  .tour-row{grid-template-columns:3rem minmax(0,1fr) auto;grid-template-areas:"dep city state" "dep game state";row-gap:0;}
  .tour-dep{grid-area:dep;}
  .tour-city{grid-area:city;}
  .tour-game{grid-area:game;}
  .tour-state{grid-area:state;}
  .tour-voie, .tour-th{display:none !important;}
  .tour-head{flex-direction:column;}
}

/* ---- Boîtes de dialogue (billet, bagage, décor) ---- */
.mc-dialog{border:1px solid var(--accent-dim);border-radius:20px;background:var(--board-2);color:var(--text);padding:1rem 1.1rem 1.1rem;width:min(430px, 94vw);max-height:90vh;overflow:auto;box-shadow:0 30px 60px -12px rgba(0,0,0,.6);}
.mc-dialog::backdrop{background:rgba(5,8,18,.62);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);}
.mc-dialog .dlg-x{position:absolute;top:.6rem;right:.6rem;}
.mc-dialog[open]{position:fixed;}
.dlg-title{font-size:1.3rem;color:var(--flap);margin:0 2rem .6rem 0;}
.bag-actions{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-top:.9rem;}
.bag-stage{display:flex;justify-content:center;padding:1rem 0 .3rem;cursor:pointer;outline:none;}
.bag-stage:focus-visible .bag-svg{outline:2px solid var(--accent);outline-offset:6px;border-radius:12px;}
.bag-svg{display:block;overflow:visible;}
.bag-svg.big{width:140px;height:122px;filter:drop-shadow(0 14px 16px rgba(0,0,0,.4));}
.bag-svg.wobble{animation:bagWobble 1.6s ease-in-out infinite;}
.bag-svg .bag-lid{transform-origin:32px 14px;transition:transform .45s cubic-bezier(.3,1.6,.5,1);}
.bag-svg.open .bag-lid{transform:translateY(-8px) rotate(-12deg);}
.bag-svg.open{animation:bagPop .5s ease-out;}
@keyframes bagWobble{0%,60%,100%{transform:none;}66%{transform:rotate(-6deg);}74%{transform:rotate(6deg);}82%{transform:rotate(-3deg);}}
@keyframes bagPop{50%{transform:scale(1.1);}}
.bag-title{text-align:center;color:var(--flap);font-size:1.3rem;margin-top:.3rem;}
#bag-body .prompt{text-align:center;}
.bag-reveal{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding-top:.4rem;}
.bag-card{width:100%;display:flex;flex-direction:column;align-items:center;gap:.25rem;text-align:center;padding:1rem .9rem;border-radius:14px;border:1px solid var(--rule);background:var(--surface-2);animation:tapPop .5s ease-out;}
.bag-card.legend{border-color:var(--accent);box-shadow:0 0 26px -4px color-mix(in srgb, var(--accent) 70%, transparent);}
.bag-card.joker{border-color:#4f9fd6;}
.bag-kicker{font:700 .66rem "Work Sans",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);}
.bag-word{font:800 1.6rem "IBM Plex Mono",monospace;letter-spacing:.08em;color:var(--flap);}
.bag-def{font-size:.86rem;color:var(--text-dim);line-height:1.4;}
.bag-pts{font:800 1.5rem "Big Shoulders Display",sans-serif;color:var(--accent);}
.ticket{position:relative;border-radius:14px;padding:.9rem 1rem 1rem;background:linear-gradient(180deg, color-mix(in srgb, var(--line) 18%, var(--surface)), var(--surface));border:1px solid color-mix(in srgb, var(--line) 60%, var(--rule));display:flex;flex-direction:column;gap:.6rem;}
.ticket::before, .ticket::after{content:"";position:absolute;top:3.1rem;width:18px;height:18px;border-radius:50%;background:var(--board-2);}
.ticket::before{left:-10px;} .ticket::after{right:-10px;}
.ticket-top{display:flex;justify-content:space-between;font:600 .7rem "IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--text-mute);border-bottom:1px dashed var(--rule);padding-bottom:.55rem;}
.ticket-route{display:flex;align-items:center;gap:.6rem;font:800 1.5rem "Big Shoulders Display",sans-serif;color:var(--flap);text-transform:uppercase;letter-spacing:.03em;flex-wrap:wrap;}
.ticket-from{color:var(--text-dim);font-size:1.05rem;}
.ticket-arrow{color:var(--line);}
.ticket-kicker{display:block;font:700 .62rem "Work Sans",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);}
.ticket-mission{font-size:.9rem;color:var(--text);}
.ticket-goals{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;font-size:.84rem;color:var(--text-dim);}
.ticket-goals li.ok{color:var(--accent);font-weight:700;}
.ticket-note{margin:0;font-size:.78rem;}
.decor-picker{display:grid;grid-template-columns:repeat(auto-fill, minmax(8.6rem, 1fr));gap:.5rem;width:100%;}
.decor-opt{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;text-align:left;padding:.55rem .6rem;border-radius:12px;border:1px solid var(--rule);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;}
.decor-opt.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent);}
.decor-opt.locked{opacity:.5;cursor:not-allowed;}
.decor-sw{width:100%;height:1.6rem;border-radius:7px;border:1px solid var(--rule);}
.decor-name{font:700 .82rem "Work Sans",sans-serif;}
.decor-lvl{font-size:.68rem;color:var(--text-mute);line-height:1.3;}
.set-row.set-col{flex-direction:column;align-items:stretch;gap:.6rem;}

/* ---- Lexique ---- */
.lex-total{font:600 .9rem "Work Sans",sans-serif;color:var(--text);margin:.3rem 0 0;}
.lex-total b{font:800 1.5rem "Big Shoulders Display",sans-serif;color:var(--accent);}
.lex-leg{margin-left:.4rem;color:var(--text-dim);}
.lex-lens{display:flex;flex-wrap:wrap;gap:.35rem;margin:.6rem 0;}
.lex-len{font:600 .76rem "IBM Plex Mono",monospace;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--rule);border-radius:99px;padding:.3rem .6rem;cursor:pointer;min-height:34px;}
.lex-len small{font-weight:500;color:var(--text-mute);}
.lex-len.on{color:#2b1c07;background:var(--accent);border-color:var(--accent);}
.lex-len.on small{color:#4a3510;}
.lex-search{width:100%;font:600 16px "IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase;padding:.55rem .8rem;border-radius:10px;border:1px solid var(--rule);background:var(--surface-2);color:var(--text);margin-bottom:.6rem;}
.lex-list{display:flex;flex-direction:column;}
.lex-item{display:flex;flex-direction:column;gap:.1rem;padding:.5rem 0;border-top:1px solid var(--rule);}
.lex-word{font:700 .95rem "IBM Plex Mono",monospace;letter-spacing:.08em;color:var(--flap);}
.lex-item.legend .lex-word{color:var(--accent);}
.lex-item.legend .lex-word::after{content:" 🦉";}
.lex-def{font-size:.82rem;color:var(--text-dim);line-height:1.4;}
.lex-empty{margin-top:.6rem;}

/* ---- Succès à paliers ---- */
.tier-wrap{margin-top:1rem;}
.tier-head{font-size:1.15rem;color:var(--flap);margin:0 0 .4rem;}
.tier{display:flex;gap:.7rem;align-items:flex-start;padding:.55rem 0;border-top:1px solid var(--rule);}
.tier:not(.got){opacity:.62;}
.tier-ic{font-size:1.3rem;line-height:1.1;width:1.7rem;text-align:center;flex:none;}
.tier-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem;}
.tier-name{display:flex;justify-content:space-between;gap:.5rem;font:700 .95rem "Big Shoulders Display",sans-serif;letter-spacing:.02em;color:var(--flap);}
.tier-medals span{opacity:.22;filter:grayscale(1);}
.tier-medals span.on{opacity:1;filter:none;}
.tier-bar{height:5px;border-radius:99px;background:var(--surface-2);overflow:hidden;}
.tier-bar i{display:block;height:100%;background:var(--accent);}
.tier-sub{font-size:.72rem;color:var(--text-mute);}

/* ---- Thème clair : lisibilité ---- */
:root[data-theme="light"] .mc-pop, :root[data-theme="light"] .mc-dialog{background:#fffdf8;}
:root[data-theme="light"] .tc-name, :root[data-theme="light"] .mc-pop-body b, :root[data-theme="light"] .ps-tour-head, :root[data-theme="light"] .tour-line-head h3, :root[data-theme="light"] .tour-row, :root[data-theme="light"] .dlg-title, :root[data-theme="light"] .bag-title, :root[data-theme="light"] .bag-word, :root[data-theme="light"] .ticket-route, :root[data-theme="light"] .lex-word, :root[data-theme="light"] .tier-name, :root[data-theme="light"] .tier-head{color:#1c2333;}
:root[data-theme="light"] .tour-board{background:#f6f1e6;}
:root[data-theme="light"] .mc-float.near{background:#fffdf8;color:#1c2333;}
:root[data-theme="light"] .ticket::before, :root[data-theme="light"] .ticket::after{background:#fffdf8;}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]) .mc-pop, :root:not([data-theme="dark"]) .mc-dialog{background:#fffdf8;}
  :root:not([data-theme="dark"]) .tc-name, :root:not([data-theme="dark"]) .mc-pop-body b, :root:not([data-theme="dark"]) .ps-tour-head, :root:not([data-theme="dark"]) .tour-line-head h3, :root:not([data-theme="dark"]) .tour-row, :root:not([data-theme="dark"]) .dlg-title, :root:not([data-theme="dark"]) .bag-title, :root:not([data-theme="dark"]) .bag-word, :root:not([data-theme="dark"]) .ticket-route, :root:not([data-theme="dark"]) .lex-word, :root:not([data-theme="dark"]) .tier-name, :root:not([data-theme="dark"]) .tier-head{color:#1c2333;}
  :root:not([data-theme="dark"]) .tour-board{background:#f6f1e6;}
  :root:not([data-theme="dark"]) .mc-float.near{background:#fffdf8;color:#1c2333;}
  :root:not([data-theme="dark"]) .ticket::before, :root:not([data-theme="dark"]) .ticket::after{background:#fffdf8;}
}

/* ---- Décors du tableau (accent partout ; fond du tableau en thème sombre) ---- */
:root[data-decor="quai"]{--accent:#5cc8d6;--accent-dim:#2f7f8a;}
:root[data-decor="artdeco"]{--accent:#c9a86a;--accent-dim:#7d6534;}
:root[data-decor="orient"]{--accent:#e0b85c;--accent-dim:#8a6a26;}
:root[data-decor="vignes"]{--accent:#a9c46a;--accent-dim:#5d7433;}
:root[data-decor="neon"]{--accent:#ff5fa8;--accent-dim:#a3306a;}
:root[data-decor="grandluxe"]{--accent:#f1d27a;--accent-dim:#9a7f33;}
:root[data-decor="quai"][data-theme="dark"]{--board:#0b1b2b;--board-2:#0e2236;--board-3:#07131f;}
:root[data-decor="artdeco"][data-theme="dark"]{--board:#10201b;--board-2:#132822;--board-3:#0b1612;}
:root[data-decor="orient"][data-theme="dark"]{--board:#35121d;--board-2:#401826;--board-3:#260c14;}
:root[data-decor="vignes"][data-theme="dark"]{--board:#1b2413;--board-2:#222d18;--board-3:#131a0d;}
:root[data-decor="neon"][data-theme="dark"]{--board:#150d24;--board-2:#1d1233;--board-3:#0e0818;}
:root[data-decor="grandluxe"][data-theme="dark"]{--board:#0d0d0f;--board-2:#16161a;--board-3:#08080a;}
@media (prefers-color-scheme: dark){
  :root[data-decor="quai"]:not([data-theme="light"]){--board:#0b1b2b;--board-2:#0e2236;--board-3:#07131f;}
  :root[data-decor="artdeco"]:not([data-theme="light"]){--board:#10201b;--board-2:#132822;--board-3:#0b1612;}
  :root[data-decor="orient"]:not([data-theme="light"]){--board:#35121d;--board-2:#401826;--board-3:#260c14;}
  :root[data-decor="vignes"]:not([data-theme="light"]){--board:#1b2413;--board-2:#222d18;--board-3:#131a0d;}
  :root[data-decor="neon"]:not([data-theme="light"]){--board:#150d24;--board-2:#1d1233;--board-3:#0e0818;}
  :root[data-decor="grandluxe"]:not([data-theme="light"]){--board:#0d0d0f;--board-2:#16161a;--board-3:#08080a;}
}
:root[data-decor] .hero{background:radial-gradient(500px 180px at 100% 0%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 70%), linear-gradient(160deg, color-mix(in srgb, var(--board-2) 80%, white 8%) 0%, var(--board-2) 60%);}
:root[data-decor][data-theme="light"] .hero{background:radial-gradient(500px 180px at 100% 0%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 70%), linear-gradient(160deg,#fff8e8 0%, #fffdf8 60%);}
@media (prefers-color-scheme: light){ :root[data-decor]:not([data-theme="dark"]) .hero{background:radial-gradient(500px 180px at 100% 0%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 70%), linear-gradient(160deg,#fff8e8 0%, #fffdf8 60%);} }

@media (prefers-reduced-motion: reduce){
  .pchip.bag-chip, .bag-svg.wobble, .tour-state.board, #calcul-serie.fire .flap{animation:none !important;}
  .ps-bar i, .ms-bar i{transition:none;}
}

/* carte du Grand Tour sur téléphone : le côté droit passe sous le texte */
@media (max-width:520px){
  .tour-card{flex-wrap:wrap;gap:.6rem .8rem;}
  .tc-main{flex:1 1 60%;}
  .tc-side{flex-direction:row;width:100%;justify-content:space-between;align-items:center;}
}
/* décors en thème clair : une teinte de fond propre à chaque décor */
:root[data-decor="quai"][data-theme="light"]{--board:#e3ecef;}
:root[data-decor="artdeco"][data-theme="light"]{--board:#e8e6d6;}
:root[data-decor="orient"][data-theme="light"]{--board:#f0e0df;}
:root[data-decor="vignes"][data-theme="light"]{--board:#e6ecd9;}
:root[data-decor="neon"][data-theme="light"]{--board:#efe3ee;}
:root[data-decor="grandluxe"][data-theme="light"]{--board:#e9e6dc;}
@media (prefers-color-scheme: light){
  :root[data-decor="quai"]:not([data-theme="dark"]){--board:#e3ecef;}
  :root[data-decor="artdeco"]:not([data-theme="dark"]){--board:#e8e6d6;}
  :root[data-decor="orient"]:not([data-theme="dark"]){--board:#f0e0df;}
  :root[data-decor="vignes"]:not([data-theme="dark"]){--board:#e6ecd9;}
  :root[data-decor="neon"]:not([data-theme="dark"]){--board:#efe3ee;}
  :root[data-decor="grandluxe"]:not([data-theme="dark"]){--board:#e9e6dc;}
}
/* la notification « Succès débloqué » d'origine restait illisible en thème clair */
:root[data-theme="light"] .ach-toast-name{color:#1c2333;}
@media (prefers-color-scheme: light){ :root:not([data-theme="dark"]) .ach-toast-name{color:#1c2333;} }
