:root{
  --bg:#0f1720; --bg2:#152230; --panel:#1b2b3b; --panel2:#22364a;
  --ink:#f4efe3; --ink2:#b9c4d0; --ink3:#8595a4; --line:#2b3f54;
  --gold:#f2b736; --gold-deep:#c88a12; --sun:#ff9f20;
  --good:#37b26e; --good-bg:#123024; --bad:#e2604f; --bad-bg:#3a1c19;
  --neutral:#efe7d0; --radius:16px;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --display:"Fraunces",Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
body{
  font-family:var(--sans); color:var(--ink);
  background:radial-gradient(120% 80% at 50% -10%, #1a2a3a 0%, var(--bg) 55%);
  background-attachment:fixed; overflow-x:hidden;
  padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
.app{max-width:640px;margin:0 auto;min-height:100dvh;padding:18px 16px 34px;display:flex;flex-direction:column;}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.1;letter-spacing:-.01em;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
svg{display:block;}

/* Header */
.hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;min-height:44px;}
.hdr .brand{display:flex;align-items:center;gap:10px;}
.hdr .brand img{width:34px;height:34px;}
.hdr .brand b{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700;}
.icon-btn{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--ink2);background:var(--panel);border:1px solid var(--line);font-size:1.1rem;}
.icon-btn:active{transform:scale(.95);}
.pill{font-size:.8rem;font-weight:700;color:var(--gold);background:rgba(242,183,54,.12);border:1px solid rgba(242,183,54,.3);border-radius:999px;padding:6px 12px;}

/* Home */
.home-hero{text-align:center;padding:14px 4px 26px;}
.hero-badge{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:6px;}
.hero-badge img{width:128px;height:128px;border-radius:22px;filter:drop-shadow(0 10px 26px rgba(0,0,0,.34));}
.hero-badge .wordmark{font-family:"Fraunces",serif;font-size:1.5rem;font-weight:600;letter-spacing:.02em;color:var(--gold);line-height:1;}
.hero-badge .wordmark span{font-family:inherit;font-weight:600;}
.hero-badge .sub{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink2);font-weight:600;}
.home-hero .kicker{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-weight:700;}
.home-hero h1{font-size:clamp(1.9rem,7vw,2.6rem);margin:.4rem 0 .5rem;}
.home-hero h1 em{font-style:italic;color:var(--gold);}
.home-hero p{color:var(--ink2);font-size:1rem;max-width:30rem;margin:0 auto;line-height:1.55;}
.mode-list{display:grid;gap:14px;margin-top:8px;}
.mode-card{display:flex;align-items:center;gap:16px;text-align:left;background:linear-gradient(135deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:20px;padding:18px;transition:transform .15s,border-color .15s;}
.mode-card:active{transform:scale(.98);}
.mode-card .emoji{font-size:2rem;width:56px;height:56px;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(242,183,54,.12);border-radius:16px;}
.mode-card .txt h3{font-size:1.25rem;margin-bottom:2px;}
.mode-card .txt p{color:var(--ink2);font-size:.9rem;line-height:1.4;}
.mode-card .go{margin-left:auto;color:var(--gold);font-size:1.3rem;}
.home-foot{margin-top:auto;padding-top:22px;text-align:center;color:var(--ink3);font-size:.8rem;line-height:1.5;}
.stat-strip{display:flex;gap:10px;justify-content:center;margin:18px 0 6px;flex-wrap:wrap;}
.stat-chip{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:.82rem;color:var(--ink2);}
.stat-chip b{color:var(--ink);font-weight:700;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:1rem;padding:14px 22px;border-radius:14px;background:linear-gradient(135deg,var(--gold),var(--sun));color:#241703;box-shadow:0 8px 22px -8px rgba(242,183,54,.6);transition:transform .12s,filter .12s;min-height:50px;}
.btn:active{transform:translateY(1px) scale(.99);}
.btn.ghost{background:var(--panel);color:var(--ink);box-shadow:none;border:1px solid var(--line);}
.btn.small{padding:9px 14px;font-size:.85rem;min-height:0;border-radius:11px;}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px;}

/* Level select */
.section-title{text-align:center;margin:6px 0 4px;font-size:1.5rem;}
.section-sub{text-align:center;color:var(--ink2);font-size:.92rem;margin-bottom:18px;}
.level-list{display:grid;gap:12px;}
.level-card{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;text-align:left;transition:transform .12s,border-color .12s;}
.level-card:active{transform:scale(.98);}
.level-card .num{width:44px;height:44px;flex:none;border-radius:12px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:1.15rem;color:var(--gold);border:1px solid var(--line);}
.level-card .num.done{background:var(--good-bg);color:var(--good);border-color:transparent;}
.level-card .num.lock{color:var(--ink3);}
.level-card h4{font-size:1.08rem;margin-bottom:2px;}
.level-card p{color:var(--ink2);font-size:.82rem;}
.level-card .st{margin-left:auto;font-size:.78rem;color:var(--ink3);font-weight:600;}
.level-card.locked{opacity:.5;}

/* Game HUD */
.game-hud{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.hud-chip{font-size:.85rem;font-weight:700;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 13px;color:var(--ink);}
.hud-chip.time{color:var(--gold);}
.hud-chip.time.low{color:var(--bad);border-color:var(--bad);}
.hud-grow{flex:1;}
.progress-bar{height:8px;border-radius:99px;background:var(--bg2);overflow:hidden;margin-bottom:14px;border:1px solid var(--line);}
.progress-bar > i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--sun));transition:width .35s cubic-bezier(.22,1,.36,1);}

/* Map (puzzle + quiz) */
.board{background:linear-gradient(180deg,#0c141d,#101c28);border:1px solid var(--line);border-radius:var(--radius);padding:10px;position:relative;}
.map{width:100%;height:auto;max-height:50vh;touch-action:none;display:block;margin:0 auto;}
.map .ghost{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.22);stroke-width:1.4;stroke-dasharray:5 4;}
.map .ghost.hint{stroke:var(--gold);stroke-width:2.2;stroke-dasharray:none;}
.map .locked{stroke:#0c141d;stroke-width:1.1;transition:fill .3s;}
.map .quiz-shape{stroke:#0c141d;stroke-width:1.1;fill:rgba(255,255,255,.07);}
.map .quiz-shape.pulse{animation:pulseN 1.2s ease-in-out infinite;}
.map .quiz-shape.static{fill:var(--neutral);stroke:var(--gold);stroke-width:2.6;}
.map .qmark{fill:none;stroke:var(--gold);stroke-width:3;opacity:.92;}
@keyframes pulseN{0%,100%{fill:var(--neutral);filter:drop-shadow(0 0 0 rgba(242,183,54,0));}50%{fill:#fff6df;filter:drop-shadow(0 0 7px rgba(242,183,54,.6));}}
.map .revealed{stroke:#0c141d;stroke-width:1.1;transition:fill .4s;}

/* Tray + dragging piece */
.tray{display:flex;gap:8px;overflow-x:auto;padding:12px 4px 4px;margin-top:12px;scrollbar-width:thin;}
.tray-piece{flex:none;width:92px;height:92px;background:var(--panel);border:1px solid var(--line);border-radius:14px;display:flex;align-items:center;justify-content:center;padding:8px 8px 20px;position:relative;touch-action:none;box-shadow:0 4px 10px -6px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.05);transition:transform .13s ease,box-shadow .13s ease;}
.tray-piece svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 3px 3px rgba(0,0,0,.32));}
.tray-piece:active{transform:translateY(-3px) scale(1.05);box-shadow:0 12px 20px -7px rgba(0,0,0,.55);}
.tray-piece .lab{position:absolute;bottom:2px;left:2px;right:2px;text-align:center;font-size:.62rem;font-weight:600;color:var(--ink);background:rgba(10,15,20,.72);border-radius:7px;padding:2px 4px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;}
.theme-light .tray-piece .lab{background:rgba(255,255,255,.82);color:#241703;}
.tray-piece.hidden{visibility:hidden;}
.drag-layer{position:fixed;inset:0;pointer-events:none;z-index:50;perspective:820px;}
.drag-piece{position:absolute;width:96px;height:96px;transform:translate(-50%,-50%) rotateX(13deg) scale(1.07);filter:drop-shadow(0 18px 22px rgba(0,0,0,.55));}
.drag-piece svg{width:100%;height:100%;overflow:visible;}
.hint-text{text-align:center;color:var(--ink2);font-size:.88rem;margin-top:10px;min-height:1.2em;}
.hint-text b{color:var(--gold);}

/* Quiz */
.quiz-q{text-align:center;font-family:var(--display);font-size:1.35rem;margin:16px 4px 6px;}
.quiz-q b{color:var(--gold);}
.answers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
@media(max-width:420px){.answers{grid-template-columns:1fr;}}
.answer{display:flex;align-items:center;gap:10px;padding:15px 14px;border-radius:13px;border:1px solid var(--line);background:var(--panel);font-size:1rem;font-weight:600;text-align:left;transition:transform .1s;min-height:54px;}
.answer:active{transform:scale(.98);}
.answer .dot{width:14px;height:14px;border-radius:5px;flex:none;}
.answer.correct{background:var(--good-bg);border-color:var(--good);color:#8ff0bb;}
.answer.wrong{background:var(--bad-bg);border-color:var(--bad);color:#ffb3a8;}
.answer:disabled{opacity:.85;}
.feedback{text-align:center;color:var(--ink2);font-size:.92rem;margin-top:14px;min-height:1.4em;line-height:1.5;}

/* Win / result overlay */
.result{text-align:center;padding:28px 10px;}
.result .big{font-size:3.4rem;line-height:1;}
.result h2{font-size:1.8rem;margin:10px 0 6px;}
.result .score{font-family:var(--display);font-size:2.6rem;color:var(--gold);margin:6px 0;}
.result p{color:var(--ink2);font-size:.95rem;}
.stars{font-size:1.8rem;letter-spacing:6px;margin:8px 0;}

/* Toast */
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);background:#0c141d;border:1px solid var(--line);color:var(--ink);padding:11px 18px;border-radius:12px;font-size:.9rem;font-weight:600;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:80;box-shadow:0 10px 30px rgba(0,0,0,.5);}
.toast.show{opacity:1;transform:translate(-50%,0);}
.toast.good{border-color:var(--good);} .toast.bad{border-color:var(--bad);}

/* toggle */
.seg{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:3px;gap:3px;}
.seg button{font-size:.82rem;font-weight:700;padding:7px 13px;border-radius:9px;color:var(--ink2);}
.seg button.on{background:rgba(242,183,54,.16);color:var(--gold);}

/* ===== TÉTRIS 2.5D ===== */
.tetris-board{position:relative;height:62vh;min-height:430px;overflow:hidden;border-radius:16px;border:1px solid var(--line);background:linear-gradient(180deg,#0a1019 0%,#0e1a27 55%,#16273a 100%);}
.tetris-floor{position:absolute;left:0;right:0;bottom:0;height:44%;display:flex;align-items:flex-end;justify-content:center;perspective:720px;pointer-events:none;}
.tetris-floor svg{width:94%;height:auto;transform:rotateX(54deg);transform-origin:bottom center;pointer-events:none;}
.tslot{fill:rgba(255,255,255,.045);stroke:rgba(255,255,255,.2);stroke-width:1.6;stroke-dasharray:6 4;pointer-events:auto;}
.tslot.filled{stroke:#ffffff;stroke-width:2.4;stroke-dasharray:none;paint-order:stroke;filter:drop-shadow(0 5px 5px rgba(0,0,0,.65)) brightness(1.08);}
.tslot.pop{animation:tpop .7s ease-out;}
@keyframes tpop{
  0%{filter:drop-shadow(0 0 14px rgba(242,183,54,1)) brightness(1.6);}
  55%{filter:drop-shadow(0 8px 8px rgba(0,0,0,.6)) drop-shadow(0 0 8px rgba(242,183,54,.7)) brightness(1.2);}
  100%{filter:drop-shadow(0 5px 5px rgba(0,0,0,.65)) brightness(1.08);}
}
.tslot.miss{stroke:var(--bad);stroke-dasharray:none;}
.tfall{position:absolute;width:118px;height:118px;transform:translate(-50%,-50%);pointer-events:none;z-index:5;filter:drop-shadow(0 10px 16px rgba(0,0,0,.55));}
.tfall svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 4px 4px rgba(0,0,0,.4));}
.tetris-controls{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-top:14px;}
.tctrl-group{display:flex;gap:8px;}
.tctrl{min-width:62px;height:62px;padding:0 8px;border-radius:16px;background:var(--panel);border:1px solid var(--line);color:var(--ink);font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;}
.tctrl:active{transform:scale(.95);background:var(--panel2);}
.tctrl.big{width:96px;height:96px;border-radius:22px;font-size:2.2rem;background:linear-gradient(135deg,var(--gold),var(--sun));color:#241703;border:none;box-shadow:0 8px 20px -8px rgba(242,183,54,.6);}

/* ===== THÈME CLAIR "PAPIER" (bascule) ===== */
.theme-light{
  --bg:#f4efe1; --bg2:#efe8d6; --panel:#fffdf8; --panel2:#f6f1e6;
  --ink:#22201b; --ink2:#5c5850; --ink3:#8a8479; --line:#e3dcc9;
  --gold:#c8991f; --gold-deep:#8a6414; --sun:#e08a1f;
  --good:#2e7d4f; --good-bg:#e6f0e8; --bad:#b53f30; --bad-bg:#f6e6e2; --neutral:#efe7d0;
}
body.theme-light{background:radial-gradient(120% 80% at 50% -12%, #fdf9f0 0%, #f2ead9 55%);}
.theme-light .board{background:linear-gradient(180deg,#fdf9f0,#f0e6d3);}
.theme-light .tetris-board{background:linear-gradient(180deg,#fdf9f0 0%,#f3ebd9 55%,#ead9bc 100%);}
.theme-light .map .ghost{fill:rgba(40,30,10,.05);stroke:rgba(40,30,10,.3);}
.theme-light .map .quiz-shape{fill:rgba(40,30,10,.06);stroke:#f0e6d3;}
.theme-light .map .quiz-shape.static{fill:#f0d68a;stroke:var(--gold-deep);}
.theme-light .map .locked,.theme-light .map .revealed{stroke:#fdf9f0;}
.theme-light .tslot{fill:rgba(40,30,10,.05);stroke:rgba(40,30,10,.28);}
.theme-light .tslot.filled{stroke:#3a352c;}
.theme-light .toast{background:#26221b;}
.hdr-actions{display:flex;align-items:center;gap:8px;}

@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important;}}

/* ---------- Modale d'installation ---------- */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.58);display:flex;align-items:center;justify-content:center;padding:22px;z-index:95;animation:fadein .18s ease;}
.modal-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;max-width:420px;width:100%;padding:22px 22px 18px;box-shadow:0 24px 60px rgba(0,0,0,.55);}
.modal-card h3{margin:0 0 8px;font-size:1.2rem;color:var(--ink);}
.modal-card>p{color:var(--ink2);font-size:.94rem;line-height:1.55;margin:0 0 12px;}
.modal-card .steps{display:flex;flex-direction:column;gap:10px;}
.modal-card .step{display:flex;gap:12px;align-items:flex-start;color:var(--ink);font-size:.95rem;line-height:1.5;}
.modal-card .step-n{flex:none;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--sun));color:#241703;font-weight:800;font-size:.85rem;display:flex;align-items:center;justify-content:center;}
@keyframes fadein{from{opacity:0}to{opacity:1}}

/* Aventure + dilemmes */
.mode-card.locked{opacity:.55;}
.answer.chosen{border-color:var(--gold);box-shadow:0 0 0 2px rgba(242,183,54,.25) inset;}

/* Cartes-découverte : pastilles "à voir" + liens actuels */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:.82rem;font-weight:600;color:var(--ink);background:rgba(242,183,54,.12);border:1px solid rgba(242,183,54,.32);border-radius:999px;padding:6px 12px;text-decoration:none;transition:background .12s,border-color .12s;}
.chip:hover{background:rgba(242,183,54,.22);border-color:var(--gold);}
.link-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.link-row .btn{text-decoration:none;}

/* ================= Relief & médaillons (pièces historiques) ================= */
/* Icônes = médaillons dorés en relief, façon pièces de collection bien conservées */
.mode-card .emoji, .level-card .num{
  border-radius:50%;
  background:radial-gradient(125% 125% at 32% 24%, #ffeab4 0%, #f3c657 30%, #d99f2e 60%, #a9761a 100%);
  border:1px solid rgba(108,72,16,.65);
  box-shadow:0 8px 16px -6px rgba(0,0,0,.55), inset 0 2px 3px rgba(255,255,255,.65), inset 0 -4px 7px rgba(84,52,10,.55), inset 0 0 0 3px rgba(255,255,255,.14), inset 0 0 0 4px rgba(120,84,24,.35);
  color:#3f2c07;position:relative;overflow:hidden;
}
.mode-card .emoji::after, .level-card .num::after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(150deg, rgba(255,255,255,.38) 0%, rgba(255,255,255,0) 44%);pointer-events:none;}
/* symbole gravé dans le métal */
.emoji .glyph{display:inline-block;line-height:1;filter:grayscale(1) brightness(.5) sepia(1) saturate(2.6) hue-rotate(-6deg) drop-shadow(0 1px 0 rgba(255,255,255,.5));}
.level-card .num{font-family:var(--display);color:#3f2c07;text-shadow:0 1px 0 rgba(255,255,255,.4);}
.level-card .num.done{background:radial-gradient(125% 125% at 32% 24%, #bfe8cf 0%, #57b483 42%, #2e8b57 100%);color:#0e2c1c;border-color:rgba(20,70,45,.6);}

/* Pièces de puzzle : plus de profondeur et de relief */
.tray-piece{background:linear-gradient(180deg, var(--panel2), var(--panel));box-shadow:0 6px 14px -6px rgba(0,0,0,.6), inset 0 2px 2px rgba(255,255,255,.10), inset 0 -6px 10px rgba(0,0,0,.28);}
.tray-piece svg{filter:drop-shadow(0 4px 4px rgba(0,0,0,.45)) drop-shadow(0 1px 0 rgba(255,255,255,.15));}
.drag-piece{filter:drop-shadow(0 22px 24px rgba(0,0,0,.6)) drop-shadow(0 2px 0 rgba(255,255,255,.25));}

/* Cartes : la carte assemblée prend du relief, le plateau est légèrement creusé */
.board{box-shadow:inset 0 2px 10px rgba(0,0,0,.4), inset 0 -1px 0 rgba(255,255,255,.04);}
.map .locked, .map .revealed{filter:drop-shadow(0 3px 3px rgba(0,0,0,.5));}

/* Thème clair : reliefs adaptés au papier */
.theme-light .tray-piece{background:linear-gradient(180deg,#fffdf7,#f4ecd8);box-shadow:0 6px 12px -6px rgba(80,55,10,.35), inset 0 2px 2px rgba(255,255,255,.7), inset 0 -5px 9px rgba(120,90,40,.14);}
.theme-light .tray-piece svg{filter:drop-shadow(0 3px 3px rgba(90,60,15,.3));}
.theme-light .board{box-shadow:inset 0 2px 10px rgba(120,90,40,.16);}
.theme-light .map .locked, .theme-light .map .revealed{filter:drop-shadow(0 2px 2px rgba(90,60,15,.35));}

/* Passeport : carte des régions fédérales cliquable */
.map .pass-region{fill:rgba(255,255,255,.06);stroke:#0c141d;stroke-width:1.2;cursor:pointer;transition:fill .25s;}
.map .pass-region:hover{fill:rgba(242,183,54,.25);}
.map .pass-region.done{filter:drop-shadow(0 3px 3px rgba(0,0,0,.45));}
.theme-light .map .pass-region{fill:rgba(40,30,10,.06);stroke:#d8cba0;}
.theme-light .map .pass-region:hover{fill:rgba(242,183,54,.3);}

/* Carte-découverte : mise en page allégée */
.disc-head{text-align:center;padding:6px 2px 10px;}
.disc-head h1{font-size:1.6rem;margin:.2rem 0;}
.disc-embleme{color:var(--ink2);font-size:.92rem;line-height:1.45;max-width:30rem;margin:2px auto 0;}
.disc-card{padding:16px;display:flex;flex-direction:column;gap:10px;}
.disc-lbl{color:var(--gold);font-weight:700;font-size:.9rem;}
.disc-savais{font-style:italic;color:var(--ink2);font-size:.9rem;line-height:1.5;margin:0;}
.disc-links{justify-content:center;margin-top:12px;}
.disc-valeur{text-align:center;color:var(--ink2);font-size:.9rem;margin:14px 0 0;}
.disc-valeur b{color:var(--ink);}
.disc-cliff{font-style:italic;color:var(--ink);line-height:1.5;margin:12px 2px 0;padding-left:12px;border-left:3px solid var(--gold);}

/* ================= Accueil refondu (écran 01) ================= */
.page-title{text-align:center;margin:8px 2px 2px;}
.page-title h1{font-size:clamp(1.7rem,7.5vw,2.5rem);line-height:1.02;text-transform:uppercase;letter-spacing:.01em;}
.page-title h1 .em{display:block;color:var(--gold);}
.page-title .eyebrow{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink2);font-weight:700;margin-top:8px;}

.adv-hero{background:linear-gradient(135deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:22px;padding:16px;margin-top:16px;box-shadow:0 12px 30px -14px rgba(0,0,0,.6);}
.adv-top{display:flex;gap:14px;align-items:center;}
.adv-info{flex:1;min-width:0;}
.adv-info .kicker{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:800;}
.adv-step{color:var(--ink2);font-size:.95rem;margin-top:3px;}
.adv-region{font-size:1.5rem;margin:.15rem 0 .6rem;}
.adv-progress{display:flex;align-items:center;gap:10px;}
.adv-progress .progress-bar{flex:1;margin:0;}
.adv-progress b{color:var(--gold);font-size:.95rem;}
.adv-map{width:44%;max-width:210px;flex:none;cursor:pointer;}
.adv-map svg{width:100%;height:auto;display:block;filter:drop-shadow(0 6px 14px rgba(0,0,0,.45));}
.adv-reg{fill:rgba(255,255,255,.06);stroke:#0c141d;stroke-width:1.1;transition:fill .3s;}
.adv-reg.done{filter:drop-shadow(0 2px 2px rgba(0,0,0,.4));}
.theme-light .adv-reg{fill:rgba(40,30,10,.06);stroke:#d8cba0;}
.adv-continue{width:100%;margin-top:14px;flex-direction:column;gap:1px;padding:13px;}
.adv-continue span{font-size:1.05rem;font-weight:800;letter-spacing:.02em;}
.adv-continue small{font-weight:600;font-size:.78rem;color:#3a2a08;opacity:.85;}

.big-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px;}
.big-card{background:linear-gradient(135deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:18px;padding:14px 10px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .12s,border-color .12s;}
.big-card:active{transform:scale(.98);}
.big-card .emoji{width:58px;height:58px;font-size:2rem;display:flex;align-items:center;justify-content:center;}
.big-card h3{font-size:1rem;}
.big-card p{font-size:.72rem;color:var(--ink2);line-height:1.35;}
.big-card .go{color:var(--gold);font-size:1.1rem;}

.mini-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px;}
@media (max-width:540px){.mini-grid{grid-template-columns:repeat(3,1fr);}}
.mini-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 6px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .12s;}
.mini-card:active{transform:scale(.97);}
.mini-card .emoji.sm{width:42px;height:42px;font-size:1.35rem;display:flex;align-items:center;justify-content:center;}
.mini-card h4{font-size:.76rem;line-height:1.15;}
.mini-card p{font-size:.66rem;color:var(--ink2);line-height:1.25;}

/* médailles aussi sur les cartes d'accueil */
.big-card .emoji, .mini-card .emoji{
  border-radius:50%;
  background:radial-gradient(125% 125% at 32% 24%, #ffeab4 0%, #f3c657 30%, #d99f2e 60%, #a9761a 100%);
  border:1px solid rgba(108,72,16,.65);
  box-shadow:0 6px 13px -5px rgba(0,0,0,.55), inset 0 2px 3px rgba(255,255,255,.6), inset 0 -4px 6px rgba(84,52,10,.55), inset 0 0 0 3px rgba(255,255,255,.12);
  position:relative;overflow:hidden;
}
.big-card .emoji::after, .mini-card .emoji::after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(150deg, rgba(255,255,255,.36) 0%, rgba(255,255,255,0) 44%);pointer-events:none;}

/* Marque complète à côté du logo + sous-titre d'accueil */
.hdr .brand-txt{display:flex;flex-direction:column;line-height:1;}
.hdr .brand-txt i{font-style:normal;font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);font-weight:600;margin-top:3px;}
.page-sub{color:var(--ink2);font-size:.95rem;line-height:1.5;max-width:30rem;margin:10px auto 0;}

/* ================= Densité : tenir en une page (moins de scroll) ================= */
.app{padding:14px 14px 18px;}
.hdr{margin-bottom:12px;}
.page-title{margin-top:2px;}
.page-title h1{font-size:clamp(1.5rem,6.4vw,2.1rem);}
.page-sub{font-size:.85rem;line-height:1.4;margin-top:6px;}
.adv-hero{padding:12px;margin-top:12px;border-radius:18px;}
.adv-info .kicker{font-size:.68rem;}
.adv-step{font-size:.88rem;margin-top:2px;}
.adv-region{font-size:1.28rem;margin:.1rem 0 .45rem;}
.adv-map{max-width:172px;}
.progress-bar{margin-bottom:0;}
.adv-continue{margin-top:11px;padding:11px;min-height:0;}
.adv-continue span{font-size:1rem;}
.adv-continue small{font-size:.72rem;}
.big-grid{margin-top:12px;gap:8px;}
.big-card{padding:12px 8px 10px;gap:5px;}
.big-card .emoji{width:50px;height:50px;font-size:1.65rem;}
.big-card h3{font-size:.92rem;}
.big-card p{font-size:.68rem;line-height:1.3;}
.mini-grid{margin-top:10px;gap:7px;}
.mini-card{padding:10px 5px;gap:5px;}
.mini-card .emoji.sm{width:38px;height:38px;font-size:1.2rem;}
.mini-card h4{font-size:.72rem;}
.mini-card p{font-size:.62rem;}
.stat-strip{margin:12px 0 2px;}
.home-foot{padding-top:12px;font-size:.72rem;}
/* écrans de contenu plus compacts */
.section-title{margin:2px 0 2px;font-size:1.35rem;}
.section-sub{font-size:.86rem;margin-bottom:12px;}
.mode-list{gap:11px;}
.mode-card{padding:14px;}
.level-list{gap:10px;}
.level-card{padding:13px;}

/* Accueil : resserrage final pour tout voir sans scroller */
.page-title h1{font-size:clamp(1.4rem,6vw,1.95rem);}
.adv-hero{padding:11px;margin-top:10px;}
.adv-region{font-size:1.2rem;margin:.05rem 0 .4rem;}
.adv-map{max-width:150px;}
.adv-continue{padding:9px;margin-top:9px;}
.adv-continue span{font-size:.95rem;}
.adv-continue small{font-size:.7rem;}
.big-grid{margin-top:10px;gap:7px;}
.big-card{padding:10px 7px 8px;gap:3px;}
.big-card .emoji{width:44px;height:44px;font-size:1.45rem;}
.big-card h3{font-size:.86rem;}
.big-card p{font-size:.64rem;line-height:1.25;}
.big-card .go{font-size:1rem;margin-top:1px;}
.mini-grid{margin-top:9px;}
.mini-card .emoji.sm{width:36px;height:36px;font-size:1.1rem;}
.stat-strip{margin:10px 0 2px;}
.home-foot{padding-top:10px;}

/* Accueil : dernier gain d'espace (flèches retirées, pied resserré) */
.big-card .go{display:none;}
.big-card{padding:9px 7px;}
.big-card .emoji{width:42px;height:42px;font-size:1.4rem;}
.mini-card{padding:9px 5px;}
.stat-strip{margin:8px 0 0;}
.home-foot{padding-top:6px;font-size:.66rem;}
.adv-hero{padding:10px;}
.adv-map{max-width:140px;}

/* Écran de résultat : célébration façon fin d'étape */
.result{padding:22px 10px;}
.result .big{display:inline-flex;align-items:center;justify-content:center;width:96px;height:96px;border-radius:50%;font-size:2.9rem;background:radial-gradient(125% 125% at 32% 24%, #ffeab4 0%, #f3c657 30%, #d99f2e 60%, #a9761a 100%);border:1px solid rgba(108,72,16,.65);box-shadow:0 10px 24px -8px rgba(0,0,0,.55), inset 0 2px 3px rgba(255,255,255,.6), inset 0 -4px 7px rgba(84,52,10,.55);position:relative;overflow:hidden;}
.result .big::after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(150deg,rgba(255,255,255,.4) 0%,rgba(255,255,255,0) 44%);pointer-events:none;}
.result h2{font-size:1.7rem;margin:14px 0 4px;}
.result .stars{font-size:1.55rem;color:var(--gold);letter-spacing:4px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4));margin:2px 0 6px;}

/* Passeport : tampons (sceaux datés par région) */
.stamps{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;}
.stamp{width:94px;height:94px;border-radius:50%;border:3px solid var(--sc);color:var(--sc);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px;background:rgba(255,255,255,.03);box-shadow:inset 0 0 0 2px rgba(255,255,255,.05);position:relative;transform:rotate(-6deg);}
.stamp::before{content:"";position:absolute;inset:7px;border-radius:50%;border:1px dashed var(--sc);opacity:.5;}
.stamp-nm{font-family:var(--display);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.02em;line-height:1.05;padding:0 8px;}
.stamp-dt{font-size:.58rem;opacity:.8;font-weight:600;}
.stamp:nth-child(even){transform:rotate(5deg);}
.stamp:nth-child(3n){transform:rotate(-2deg);}

/* Collection : badges */
.badge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.badge-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;}
.badge-card.locked{opacity:.62;}
.badge-medal{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.55rem;position:relative;overflow:hidden;}
.badge-card.earned .badge-medal{background:radial-gradient(125% 125% at 32% 24%, #ffeab4 0%, #f3c657 30%, #d99f2e 60%, #a9761a 100%);border:1px solid rgba(108,72,16,.65);box-shadow:0 6px 13px -5px rgba(0,0,0,.55), inset 0 2px 3px rgba(255,255,255,.6), inset 0 -4px 6px rgba(84,52,10,.55);}
.badge-card.earned .badge-medal::after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(150deg,rgba(255,255,255,.36) 0%,rgba(255,255,255,0) 44%);pointer-events:none;}
.badge-card.earned .badge-medal .glyph{filter:grayscale(1) brightness(.5) sepia(1) saturate(2.6) hue-rotate(-6deg) drop-shadow(0 1px 0 rgba(255,255,255,.5));}
.badge-card.locked .badge-medal{background:var(--bg2);border:1px solid var(--line);}
.badge-card h4{font-size:.9rem;line-height:1.15;}
.badge-card p{font-size:.68rem;color:var(--ink2);line-height:1.3;}
.badge-prog{font-size:.72rem;font-weight:700;color:var(--gold);}
.badge-prog.on{color:var(--good);}

/* Vignettes touristiques (illustrations monochromes) */
.disc-vignette{color:var(--gold);background:linear-gradient(180deg,#0c141d,#101c28);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-top:6px;display:flex;justify-content:center;}
.disc-vignette svg{width:100%;max-width:280px;height:auto;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4));}
.theme-light .disc-vignette{background:linear-gradient(180deg,#fffdf7,#f4ecd8);}
.tour-thumb{width:46px;height:30px;flex:none;color:var(--gold);display:flex;align-items:center;justify-content:center;}
.tour-thumb svg{width:100%;height:100%;}

/* ================= Passeport premium ================= */
.pp-title{text-align:center;margin:6px 2px 2px;}
.pp-title h1{font-size:clamp(1.6rem,7vw,2.2rem);text-transform:uppercase;letter-spacing:.01em;}
.pp-sub{color:var(--ink2);font-size:.9rem;margin-top:2px;letter-spacing:.02em;}
.pp-panel{padding:14px;display:flex;gap:14px;align-items:center;margin-top:12px;}
.pp-info{flex:1;min-width:0;}
.pp-info .kicker{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:800;}
.pp-big{font-family:var(--display);font-size:2rem;color:var(--gold);line-height:1;margin:3px 0;}
.pp-lbl{color:var(--ink2);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;}
.pp-mapwrap{width:46%;max-width:200px;flex:none;}
.pp-map{width:100%;height:auto;display:block;}
.pp-reg{fill:rgba(255,255,255,.07);stroke:#0c141d;stroke-width:.8;transition:fill .3s;}
.pp-reg.found{fill:var(--good);}
.pp-reg.cur{fill:var(--gold);}
.theme-light .pp-reg{fill:rgba(40,30,10,.08);stroke:#d8cba0;}
.pp-legend{display:flex;gap:14px;justify-content:center;margin:8px 0 2px;font-size:.7rem;color:var(--ink2);}
.pp-legend .lg{display:inline-flex;align-items:center;gap:5px;}
.pp-legend .lg::before{content:"";width:10px;height:10px;border-radius:3px;background:rgba(255,255,255,.15);}
.pp-legend .lg.found::before{background:var(--good);}
.pp-legend .lg.cur::before{background:var(--gold);}

.pp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px;}
.pp-stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 5px;text-align:center;}
.pp-stat-ic{font-size:1.05rem;}
.pp-stat-v{font-family:var(--display);font-size:1.02rem;color:var(--gold);margin-top:2px;}
.pp-stat-l{font-size:.58rem;color:var(--ink2);text-transform:uppercase;letter-spacing:.02em;line-height:1.1;margin-top:2px;}

.etapes{display:flex;gap:10px;overflow-x:auto;padding:10px 2px 4px;scrollbar-width:thin;}
.etape-card{flex:none;width:118px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:0 0 8px;text-align:center;overflow:hidden;}
.etape-vig{height:54px;display:flex;align-items:center;justify-content:center;color:var(--sc);background:linear-gradient(180deg,#0c141d,#101c28);border-bottom:1px solid var(--line);}
.etape-vig svg{width:72%;height:80%;}
.etape-nm{font-family:var(--display);font-size:.76rem;margin:8px 6px 3px;line-height:1.1;}
.etape-seal{font-size:.64rem;font-weight:700;color:var(--ink3);}
.etape-card.done .etape-seal{color:var(--good);}
.etape-card.done{border-color:var(--sc);}
.etape-dt{font-size:.6rem;color:var(--ink3);margin-top:2px;}
.theme-light .etape-vig{background:linear-gradient(180deg,#fffdf7,#f4ecd8);}

.pp-row{display:flex;align-items:center;justify-content:space-between;margin-top:16px;}
.pp-link{color:var(--gold);font-weight:700;font-size:.8rem;}
.badges-recent{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap;}
.badge-medal.sm{width:46px;height:46px;font-size:1.3rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(125% 125% at 32% 24%, #ffeab4 0%, #f3c657 30%, #d99f2e 60%, #a9761a 100%);border:1px solid rgba(108,72,16,.65);box-shadow:inset 0 2px 3px rgba(255,255,255,.5), inset 0 -3px 5px rgba(84,52,10,.5);position:relative;overflow:hidden;}
.badge-medal.sm .glyph{filter:grayscale(1) brightness(.5) sepia(1) saturate(2.6) hue-rotate(-6deg);}
.pp-next{display:flex;gap:12px;align-items:center;margin-top:10px;padding:14px;}
.pp-next-ic{width:50px;height:50px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:var(--bg2);border:1px solid var(--line);}
.pp-next .kicker{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:800;}
.pp-next h4{font-size:1rem;}
.pp-next p{font-size:.75rem;color:var(--ink2);line-height:1.3;}

/* Accueil : occuper le bas (on relâche un peu la compression) */
.big-grid{margin-top:14px;gap:9px;}
.big-card{padding:13px 8px 11px;}
.big-card .emoji{width:48px;height:48px;font-size:1.55rem;}
.mini-grid{margin-top:12px;gap:9px;}
.mini-card{padding:12px 6px;}
.mini-card .emoji.sm{width:40px;height:40px;font-size:1.2rem;}
.stat-strip{margin:14px 0 4px;}
.home-foot{padding-top:14px;}

/* Tétris : pavé directionnel (gauche/droite au-dessus, bas en dessous) */
.tctrl-pad{display:flex;flex-direction:column;gap:10px;align-items:center;}
.tctrl-row{display:flex;gap:12px;justify-content:center;}

/* Accueil : resserrage final pour afficher les stats du bas */
.page-title{margin-top:0;}
.page-sub{margin-top:5px;}
.adv-hero{padding:9px;margin-top:8px;}
.adv-continue{margin-top:7px;padding:8px;}
.adv-continue span{font-size:.92rem;}
.big-grid{margin-top:8px;gap:7px;}
.big-card{padding:9px 7px;}
.big-card .emoji{width:40px;height:40px;font-size:1.35rem;}
.mini-grid{margin-top:7px;gap:7px;}
.mini-card{padding:8px 5px;}
.mini-card .emoji.sm{width:34px;height:34px;font-size:1.05rem;}
.stat-strip{margin:7px 0 0;}
.home-foot{padding-top:6px;}

/* Culture et gastronomie : écran détaillé plus vivant */
.cult-hero{position:relative;background:linear-gradient(180deg,#0c141d,#101c28);border:1px solid var(--line);border-top:3px solid var(--sc);border-radius:var(--radius);padding:16px;margin-top:8px;display:flex;justify-content:center;color:var(--sc);box-shadow:0 12px 28px -16px rgba(0,0,0,.6);}
.cult-hero svg{width:100%;max-width:250px;height:auto;filter:drop-shadow(0 5px 12px rgba(0,0,0,.5));}
.theme-light .cult-hero{background:linear-gradient(180deg,#fffdf7,#f4ecd8);}
.cult-card{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;margin-top:10px;}
.cult-ic{width:46px;height:46px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;position:relative;overflow:hidden;background:radial-gradient(125% 125% at 32% 24%, #ffeab4 0%, #f3c657 30%, #d99f2e 60%, #a9761a 100%);border:1px solid rgba(108,72,16,.65);box-shadow:inset 0 2px 3px rgba(255,255,255,.5), inset 0 -3px 5px rgba(84,52,10,.5);}
.cult-ic .glyph{filter:grayscale(1) brightness(.5) sepia(1) saturate(2.6) hue-rotate(-6deg);}
.cult-lbl{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:800;}
.cult-card h4{font-size:1.05rem;margin:2px 0;}
.cult-card p{font-size:.86rem;color:var(--ink2);line-height:1.4;}

/* Dilemmes : ligne conséquence */
.dil-conseq{display:inline-block;margin-top:8px;padding-left:10px;border-left:3px solid var(--bad);color:var(--ink2);font-size:.9rem;line-height:1.4;}

/* Match des régions (match-3) */
.m-legend{display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:center;margin-bottom:10px;font-size:.66rem;color:var(--ink2);}
.m-leg{display:inline-flex;align-items:center;gap:5px;}
.m-leg-ic{width:18px;height:18px;flex:none;display:inline-flex;}
.m-leg-ic svg{width:100%;height:100%;}
.m-board{display:grid;gap:6px;background:linear-gradient(180deg,#0c141d,#101c28);border:1px solid var(--line);border-radius:var(--radius);padding:8px;box-shadow:inset 0 2px 12px rgba(0,0,0,.45);touch-action:none;-webkit-user-select:none;user-select:none;}
.result-fact{margin:14px auto 0;max-width:340px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:12px;padding:11px 13px;font-size:14px;line-height:1.5;text-align:left;color:var(--ink);}
.result-fact b{color:var(--gold);}
.theme-light .result-fact{background:#fffdf7;}
.player-bar{display:flex;align-items:center;gap:11px;background:linear-gradient(180deg,var(--panel),rgba(0,0,0,.14));border:1px solid var(--line);border-radius:16px;padding:10px 12px;margin:2px 0 12px;box-shadow:0 6px 18px -12px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.04);}
.pl-ava{flex:none;width:44px;height:44px;border-radius:50%;border:2px solid var(--gold);background:radial-gradient(circle at 50% 35%,#243244,#141d28);display:flex;align-items:center;justify-content:center;font-size:22px;padding:0;box-shadow:0 0 0 3px rgba(242,183,54,.14);}
.pl-main{flex:1;min-width:0;}
.pl-row{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.pl-row b{font-size:15px;color:var(--ink);}
.pl-lvl{flex:none;font-size:12px;font-weight:700;color:var(--gold);background:rgba(242,183,54,.12);border:1px solid rgba(242,183,54,.32);border-radius:999px;padding:2px 9px;}
.pl-xpbar{height:8px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden;margin:6px 0 4px;}
.pl-xpbar i{display:block;height:100%;background:linear-gradient(90deg,#f2b736,#ffd97a);border-radius:999px;transition:width .5s ease;}
.pl-sub{font-size:11.5px;color:rgba(206,216,226,.66);}
.pl-badge{flex:none;display:flex;align-items:center;gap:4px;background:rgba(242,183,54,.1);border:1px solid rgba(242,183,54,.3);border-radius:12px;padding:7px 10px;color:var(--gold);font-weight:700;}
.pl-badge .glyph{font-size:16px;}
.theme-light .player-bar{background:linear-gradient(180deg,#fffdf7,#f6efe0);}
.theme-light .pl-ava{background:radial-gradient(circle at 50% 35%,#fff,#efe6d3);}
.theme-light .pl-sub{color:#6b6152;}
.intro{max-width:560px;margin:0 auto;}
.intro-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.intro-skip{background:none;border:none;color:rgba(206,216,226,.6);font-size:13px;font-weight:600;padding:4px 6px;}
.theme-light .intro-skip{color:#6b6152;}
.intro-chip{display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 14px 7px 10px;font-weight:700;font-size:14px;color:var(--ink);}
.intro-chip .glyph{font-size:16px;}
.intro-hero{display:flex;gap:12px;align-items:center;margin:12px 0 4px;background:var(--panel);background:linear-gradient(160deg,rgba(242,183,54,.13),var(--panel));border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 8px 22px -14px rgba(0,0,0,.6);}
.intro-hero.nomedia{display:block;}
.ih-txt{flex:1;min-width:0;}
.intro-hero .intro-title{margin:0 0 6px;font-size:23px;}
.intro-hero .intro-lead{margin:0;}
.ih-map{flex:none;width:118px;}
.ih-map svg{width:100%;height:auto;display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45));}
.ih-big{flex:none;text-align:center;padding:4px 8px;}
.ih-big b{display:block;font-family:"Fraunces",serif;font-size:25px;color:var(--gold);line-height:1;}
.ih-big span{display:block;font-size:11px;line-height:1.35;color:rgba(206,216,226,.72);margin-top:6px;max-width:135px;}
.theme-light .ih-big span{color:#6b6152;}
.intro-blocks{margin-top:12px;display:flex;flex-direction:column;gap:10px;}
.iblk{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;}
.iblk-ic{flex:none;width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:19px;background:rgba(242,183,54,.14);border:1px solid rgba(242,183,54,.3);}
.iblk p{margin:0;font-size:13.5px;line-height:1.5;color:rgba(226,232,240,.92);}
.theme-light .iblk p{color:#3a352d;}
.intro-plabel{margin:14px 0 6px;font-weight:700;font-size:13px;color:var(--gold);}
.iblk-body{flex:1;min-width:0;}
.intro-blocks.ladder .iblk{align-items:center;}
.iblk-ic.num{font-family:"Fraunces",serif;font-weight:600;font-size:17px;color:#1a1205;background:linear-gradient(180deg,#ffd97a,#f2b736);border:none;}
.intro-blocks.ladder .iblk:nth-child(1) .iblk-ic.num{opacity:.72;transform:scale(.9);}
.intro-blocks.ladder .iblk:nth-child(2) .iblk-ic.num{opacity:.8;transform:scale(.94);}
.intro-blocks.ladder .iblk:nth-child(3) .iblk-ic.num{opacity:.88;transform:scale(.98);}
.intro-blocks.ladder .iblk:nth-child(4) .iblk-ic.num{opacity:.94;}
.intro-blocks.ladder .iblk:nth-child(5) .iblk-ic.num{box-shadow:0 0 0 3px rgba(242,183,54,.25);}
.iblk-bar{height:5px;border-radius:999px;background:rgba(242,183,54,.14);overflow:hidden;margin-top:7px;}
.iblk-bar i{display:block;height:100%;background:linear-gradient(90deg,#f2b736,#ffd97a);border-radius:999px;}
.intro-title{font-family:"Fraunces",serif;font-size:26px;line-height:1.15;margin:6px 0 4px;color:var(--gold);}
.intro-lead{font-size:15px;line-height:1.45;color:var(--ink);margin:0 0 10px;font-weight:500;}
.intro-body{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;}
.intro-body p{font-size:14.5px;line-height:1.55;margin:0 0 10px;color:rgba(226,232,240,.9);}
.theme-light .intro-body p{color:#3a352d;}
.intro-points{margin:2px 0 0;padding-left:18px;list-style:none;}
.intro-points li{position:relative;font-size:14px;line-height:1.5;margin:0 0 9px;color:rgba(226,232,240,.9);}
.intro-points li::before{content:"";position:absolute;left:-15px;top:8px;width:7px;height:7px;border-radius:2px;background:var(--gold);}
.theme-light .intro-points li{color:#3a352d;}
.intro-dots{display:flex;gap:7px;justify-content:center;margin:14px 0 12px;}
.intro-dots .dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.22);padding:0;transition:width .2s ease;}
.intro-dots .dot.on{background:var(--gold);width:22px;border-radius:5px;}
.intro-nav{display:flex;gap:10px;}
.intro-nav .btn{flex:1;}
.intro-note{font-size:12.5px;line-height:1.5;font-style:italic;color:rgba(206,216,226,.7);margin:10px 0 0;padding-left:10px;border-left:2px solid rgba(242,183,54,.4);}
.theme-light .intro-note{color:#6b6152;}
.intro-lb{display:block;text-align:center;margin-top:12px;color:var(--gold);font-size:13px;text-decoration:none;font-weight:600;}
.foot-link{background:none;border:none;color:var(--gold);font:inherit;font-size:inherit;padding:0;text-decoration:underline;cursor:pointer;}
.home-h3{font-family:"Fraunces",serif;font-size:19px;margin:16px 0 10px;color:var(--ink);}
.uni-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.uni-card{position:relative;overflow:hidden;text-align:left;border:1px solid var(--line);border-radius:16px;padding:13px 13px 14px;background:var(--panel);background:linear-gradient(160deg,color-mix(in srgb,var(--uc) 22%,var(--panel)),var(--panel));box-shadow:0 6px 16px -12px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.05);}
.uni-card .uni-ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:21px;background:var(--uc);box-shadow:0 3px 8px -3px color-mix(in srgb,var(--uc) 70%,transparent);margin-bottom:8px;}
.uni-card h4{margin:0 0 2px;font-size:15px;color:var(--ink);}
.uni-card p{margin:0;font-size:12px;line-height:1.35;color:rgba(206,216,226,.7);}
.theme-light .uni-card p{color:#6b6152;}
.defi-jour{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin-top:12px;border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:linear-gradient(120deg,rgba(242,183,54,.14),var(--panel));box-shadow:0 6px 16px -12px rgba(0,0,0,.6);}
.defi-jour .dj-txt{flex:1;min-width:0;}
.defi-jour h4{margin:2px 0;font-size:16px;color:var(--ink);}
.defi-jour p{margin:0;font-size:12.5px;line-height:1.4;color:rgba(206,216,226,.7);}
.theme-light .defi-jour p{color:#6b6152;}
.defi-jour .dj-play{flex:none;display:flex;align-items:center;gap:3px;color:#1a1205;font-weight:800;background:linear-gradient(90deg,#f2b736,#ffd97a);border-radius:999px;padding:8px 14px;}
.tabbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;justify-content:space-around;align-items:center;gap:2px;padding:7px 6px calc(7px + env(safe-area-inset-bottom));background:var(--panel);background:color-mix(in srgb,var(--panel) 92%,#000);border-top:1px solid var(--line);backdrop-filter:blur(8px);}
.tab-b{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;padding:4px 2px;color:rgba(206,216,226,.6);}
.tab-b .tab-ic{font-size:20px;line-height:1;opacity:.8;}
.tab-b .tab-l{font-size:11px;font-weight:600;}
.tab-b.on{color:var(--gold);}
.tab-b.on .tab-ic{opacity:1;}
.theme-light .tab-b{color:#6b6152;}
.theme-light .tab-b.on{color:#b9871f;}
body.with-tab #app{padding-bottom:74px;}
.profil-head{text-align:center;padding:6px 0 4px;}
.profil-head h2{margin:10px 0 2px;font-family:"Fraunces",serif;}
.profil-head .pl-lvl{display:inline-block;margin-bottom:10px;}
.profil-head .pl-xpbar{max-width:280px;margin:0 auto 5px;}
.profil-head .pl-sub{text-align:center;}
.pl-ava.big{width:74px;height:74px;font-size:36px;margin:0 auto;}
.prof-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:6px;}
.prof-stat{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:13px;padding:10px 12px;background:var(--panel);}
.prof-stat .ps-ic{font-size:19px;}
.prof-stat .ps-txt{display:flex;flex-direction:column;}
.prof-stat .ps-txt b{font-size:15px;color:var(--ink);}
.prof-stat .ps-txt span{font-size:11.5px;color:rgba(206,216,226,.65);}
.theme-light .prof-stat .ps-txt span{color:#6b6152;}
.hud-btn{cursor:pointer;font:inherit;font-size:15px;line-height:1;color:var(--ink);}
.vs-jour{background:var(--panel);background:linear-gradient(120deg,rgba(76,159,112,.18),var(--panel));}
.vs-form{display:flex;flex-direction:column;gap:9px;margin:12px 0 4px;}
.vs-row{display:flex;align-items:center;gap:10px;}
.vs-badge{flex:none;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#1a1205;background:linear-gradient(180deg,#ffd97a,#f2b736);}
.vs-name{flex:1;min-width:0;font:inherit;font-size:15px;padding:11px 12px;border-radius:11px;border:1px solid var(--line);background:var(--panel);color:var(--ink);}
.vs-name:focus{outline:none;border-color:var(--gold);}
.vs-scores{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 4px;}
.vs-sc{flex:1 1 0;min-width:70px;text-align:center;border:1px solid var(--line);border-radius:12px;padding:8px 6px;background:var(--panel);}
.vs-sc b{display:block;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.vs-sc span{font-size:12px;color:rgba(206,216,226,.7);}
.vs-sc.on{border-color:var(--gold);box-shadow:0 0 0 2px rgba(242,183,54,.22) inset;}
.theme-light .vs-sc span{color:#6b6152;}
.vs-hand{text-align:center;padding:26px 10px;}
.vs-hand h2{font-family:"Fraunces",serif;font-size:24px;margin:6px 0 4px;color:var(--gold);}
.vs-hand p{color:rgba(206,216,226,.75);margin:0 0 16px;}
.vs-hand .btn{max-width:280px;margin:0 auto;}
.theme-light .vs-hand p{color:#6b6152;}
.vs-turn{text-align:center;font-weight:700;color:var(--gold);margin:10px 0 2px;}
.vs-rank{display:flex;flex-direction:column;gap:8px;margin:14px auto 0;max-width:340px;}
.vs-rk{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--panel);}
.vs-rk.win{border-color:var(--gold);background:linear-gradient(120deg,rgba(242,183,54,.16),var(--panel));}
.vs-rk .rk-pos{flex:none;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;background:rgba(255,255,255,.08);color:var(--ink);}
.vs-rk.win .rk-pos{background:linear-gradient(180deg,#ffd97a,#f2b736);color:#1a1205;}
.vs-rk b{flex:1;text-align:left;}
.vs-rk .rk-sc{color:var(--gold);font-weight:700;}
.pk-jour{background:var(--panel);background:linear-gradient(120deg,rgba(142,68,173,.2),var(--panel));}
.pk-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle;}
.pk-arena{position:relative;width:100%;aspect-ratio:1/1.12;max-height:66vh;margin:8px auto;background:radial-gradient(ellipse 60% 50% at 50% 50%,rgba(242,183,54,.06),transparent 70%),radial-gradient(circle at 50% 50%,#0e1a26,#0a121b 80%);border-radius:24px;overflow:hidden;}
.pk-track{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 0 4px rgba(242,183,54,.4));}
.pk-cell{position:absolute;transform:translate(-50%,-50%);width:21%;max-width:96px;min-height:62px;border:1px solid var(--line);border-radius:13px;background:var(--panel);padding:4px 4px 5px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:visible;box-shadow:0 5px 12px -5px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.07);}
.pk-cell.pk-region{border-color:var(--rc);background:var(--panel);background:linear-gradient(160deg,color-mix(in srgb,var(--rc) 30%,var(--panel)),var(--panel));}
.pk-cell.pk-start{background:linear-gradient(160deg,rgba(242,183,54,.28),var(--panel));border-color:rgba(242,183,54,.55);}
.pk-cell.pk-tax{background:linear-gradient(160deg,rgba(46,134,171,.24),var(--panel));border-color:rgba(46,134,171,.4);}
.pk-cell.pk-solidarity{background:linear-gradient(160deg,rgba(76,159,112,.24),var(--panel));border-color:rgba(76,159,112,.4);}
.pk-cell.pk-card{background:linear-gradient(160deg,rgba(120,110,180,.22),var(--panel));border-color:rgba(120,110,180,.4);}
.pk-cell.pk-district{background:linear-gradient(160deg,rgba(255,255,255,.07),var(--panel));}
.pk-lab{font-size:9px;font-weight:700;line-height:1.1;color:var(--ink);text-align:center;word-break:break-word;margin-top:1px;}
.pk-pips{display:flex;gap:2px;margin-top:2px;}
.pk-pips i{width:5px;height:5px;border-radius:2px;background:rgba(255,255,255,.15);}
.pk-pips i.on{background:currentColor;}
.pk-pawns{position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);display:flex;gap:3px;}
.pk-pawn{width:13px;height:13px;border-radius:50%;border:1px solid rgba(0,0,0,.5);box-shadow:0 1px 3px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.35);}
.pk-pawn.act{animation:pkHop .3s ease;box-shadow:0 2px 6px rgba(0,0,0,.6),0 0 0 2px rgba(255,255,255,.5);z-index:5;}
@keyframes pkHop{0%{transform:translateY(0) scale(1)}45%{transform:translateY(-9px) scale(1.18)}100%{transform:translateY(0) scale(1)}}
.pk-dais{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56%;max-width:320px;max-height:74%;border:1px solid rgba(242,183,54,.32);border-radius:22px;background:radial-gradient(circle at 50% 28%,#16232f,#0d1620);box-shadow:0 0 0 6px rgba(242,183,54,.05),0 12px 32px -10px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.05);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px 12px 13px;gap:6px;overflow:auto;}
.pk-dais .pk-q{font-size:13px;margin-bottom:2px;}
.pk-dais .pk-ans{grid-template-columns:1fr;gap:7px;width:100%;margin-top:2px;}
@media(orientation:landscape){.pk-dais{width:52%;max-width:420px;}.pk-dais .pk-ans{grid-template-columns:1fr 1fr;}}
.pk-dais .answer{padding:9px 10px;min-height:0;font-size:12.5px;justify-content:center;}
.pk-turn{font-weight:800;font-size:13px;}
.pk-die{width:52px;height:52px;border-radius:12px;background:linear-gradient(160deg,#fffdf5,#e3e8ee);box-shadow:0 4px 10px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.8);padding:6px;}
.die-grid{width:100%;height:100%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;}
.die-grid span{border-radius:50%;}
.die-grid span.pip{background:#16202b;box-shadow:inset 0 1px 1px rgba(0,0,0,.4);}
.pk-die.tumble{animation:pkTumble .5s linear infinite;}
@keyframes pkTumble{0%{transform:rotate(0) scale(1)}25%{transform:rotate(90deg) scale(1.09)}50%{transform:rotate(180deg) scale(1)}75%{transform:rotate(270deg) scale(1.09)}100%{transform:rotate(360deg) scale(1)}}
.pk-num{position:absolute;top:2px;left:4px;font-size:9px;font-weight:800;color:var(--gold);opacity:.9;}
.pk-icon{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;margin:2px 0;}
.pk-emoji{font-size:21px;line-height:1;}
.pk-emblem{display:block;width:76%;max-width:46px;}
.pk-emblem svg{width:100%;height:auto;display:block;}
.pk-legend{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;font-size:9px;color:rgba(206,216,226,.7);margin-top:4px;}
.theme-light .pk-legend{color:#6b6152;}
.pk-pots{display:flex;gap:8px;margin-top:2px;}
.pk-pot-chip{flex:1;text-align:center;font-size:11px;padding:7px 6px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:rgba(206,216,226,.85);}
.theme-light .pk-pot-chip{color:#4a4238;}
.pk-rules-btn{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--panel);font-size:20px;box-shadow:0 4px 12px rgba(0,0,0,.4);z-index:40;}
.pk-modal{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:20px;}
.pk-modal-card{max-width:420px;width:100%;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;max-height:80vh;overflow:auto;}
.pk-modal-card h3{margin:0 0 10px;font-family:"Fraunces",serif;color:var(--gold);}
.pk-rules{margin:0 0 14px;padding-left:18px;}
.pk-rules li{font-size:13.5px;line-height:1.5;margin:0 0 8px;}
.pk-msg{font-size:11.5px;line-height:1.35;color:rgba(206,216,226,.85);}
.theme-light .pk-msg{color:#4a4238;}
.pk-qpanel{max-width:460px;margin:10px auto 0;background:linear-gradient(160deg,rgba(242,183,54,.1),var(--panel));border:1px solid rgba(242,183,54,.35);border-radius:16px;padding:14px;box-shadow:0 10px 26px -12px rgba(0,0,0,.6);}
.pk-q{font-size:15px;font-weight:600;color:var(--ink);text-align:center;margin-bottom:10px;}
.pk-ans{grid-template-columns:1fr 1fr;gap:8px;margin-top:0;width:100%;}
@media(max-width:420px){.pk-ans{grid-template-columns:1fr;}}
.pk-ans .answer{padding:11px 10px;min-height:0;font-size:13px;justify-content:center;}
.pk-btn{padding:10px 16px;font-size:14px;}
.pk-pot{text-align:center;font-size:12px;color:rgba(206,216,226,.75);margin-top:2px;}
.theme-light .pk-pot{color:#6b6152;}
.m-tile{touch-action:none;position:relative;}
.m-tile.sp{box-shadow:0 0 0 2px var(--gold),0 0 14px 3px rgba(242,183,54,.7);animation:spPulse 1.1s ease-in-out infinite;z-index:2;}
.m-tile.sp::after{content:"\2605";position:absolute;top:1px;right:4px;font-size:12px;line-height:1;color:var(--gold);text-shadow:0 1px 2px #000;}
@keyframes spPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.m-board.flash{animation:mFlash .5s ease;}
@keyframes mFlash{0%{box-shadow:inset 0 2px 12px rgba(0,0,0,.45)}28%{box-shadow:inset 0 0 0 3px rgba(242,183,54,.85),inset 0 2px 12px rgba(0,0,0,.45)}100%{box-shadow:inset 0 2px 12px rgba(0,0,0,.45)}}
.m-tile{aspect-ratio:1;border-radius:12px;background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);display:flex;align-items:center;justify-content:center;padding:5px;box-shadow:0 5px 9px -5px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.09), inset 0 -4px 8px rgba(0,0,0,.28);transition:transform .1s ease, box-shadow .1s ease;}
.m-tile svg{width:100%;height:100%;filter:drop-shadow(0 3px 3px rgba(0,0,0,.55)) drop-shadow(0 1px 0 rgba(255,255,255,.15));}
.m-tile:active{transform:scale(.93);}
.m-tile.sel{transform:scale(.9);border-color:var(--gold);box-shadow:0 0 0 2px var(--gold) inset, 0 8px 14px -5px rgba(0,0,0,.6);}
.m-tile.empty{background:transparent;border-color:transparent;box-shadow:none;pointer-events:none;}
.theme-light .m-board{background:linear-gradient(180deg,#fffdf7,#f4ecd8);}
.theme-light .m-tile{background:linear-gradient(180deg,#fffdf7,#f1e8d2);}
