:root {
  --sand:#e9a663;
  --sand-light:#f4bf80;
  --terracotta:#e96531;
  --volcanic:#201b19;
  --cream:#fff8ea;
  --ink:#201b19;
  --glass:rgba(29,22,18,.70);
  --glass-line:rgba(255,255,255,.18);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#d88c4e;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--cream);touch-action:none}
button,a{font:inherit}
button{cursor:pointer}
#app,#gameCanvas{position:fixed;inset:0;width:100%;height:100%}
#gameCanvas{display:block;outline:0;filter:saturate(1.04) contrast(1.02)}
#app:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:5;background:radial-gradient(circle at 50% 46%,transparent 46%,rgba(74,39,22,.12) 100%);mix-blend-mode:multiply}
.overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:linear-gradient(180deg,rgba(54,29,16,.18),rgba(31,18,12,.56));opacity:0;visibility:hidden;pointer-events:none;transition:.28s ease}
.overlay--visible{opacity:1;visibility:visible;pointer-events:auto}
.card{width:min(680px,100%);max-height:calc(100dvh - 40px);overflow:auto;padding:clamp(24px,5vw,46px);border:1px solid var(--glass-line);border-radius:28px;background:linear-gradient(145deg,rgba(30,24,20,.90),rgba(47,31,22,.78));box-shadow:0 22px 80px rgba(0,0,0,.32);backdrop-filter:blur(16px)}
.card--small{width:min(380px,100%)}
.card--wide{width:min(760px,100%)}
.center{text-align:center}
.brand-logo{width:92px;height:92px;object-fit:contain;border-radius:18px}.brand-logo--large{width:112px;height:112px}
.hero-card{text-align:center}
.eyebrow{margin:14px 0 8px;font-size:12px;font-weight:900;letter-spacing:.22em;color:#ffd39a}
h1{margin:0;font-size:clamp(58px,14vw,108px);line-height:.78;letter-spacing:-.07em}h1 span{color:#ffab68}
h2{margin:0 0 22px;font-size:clamp(34px,8vw,58px);line-height:.95;letter-spacing:-.04em}
h2 small{font-size:.34em;letter-spacing:.04em;color:#ffd39a}
.lead{font-size:clamp(16px,3vw,20px);line-height:1.55;color:rgba(255,248,234,.84)}
.micro,.credit{font-size:11px;opacity:.58}.credit{margin-top:20px}
.btn{width:100%;border:0;border-radius:16px;padding:17px 22px;font-weight:900;letter-spacing:.08em;transition:transform .14s ease,filter .14s ease,opacity .14s}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn--primary{background:linear-gradient(135deg,#ffb16f,#e26830);color:#24170f;box-shadow:0 10px 30px rgba(226,104,48,.30)}.btn--secondary{margin-top:10px;background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.18)}
.rules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.rules-grid article{min-height:160px;padding:16px;border-radius:18px;background:rgba(255,255,255,.07);display:flex;flex-direction:column;gap:8px}.rules-grid span{font-size:32px}.rules-grid small{opacity:.68;line-height:1.4}.rule-callout{padding:14px 16px;border-radius:14px;background:rgba(216,109,56,.18);border:1px solid rgba(255,170,100,.2)}
.partner-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0}.partner-card{appearance:none;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);border-radius:18px;padding:15px;color:#fff;min-height:134px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;transition:.18s}.partner-card img{width:72px;height:72px;object-fit:contain;border-radius:12px}.partner-card span{font-size:12px;font-weight:800;text-align:center}.partner-card.selected{border-color:#ffb16f;background:rgba(255,177,111,.15);transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.18)}
.spinner{width:34px;height:34px;margin:18px auto;border:3px solid rgba(255,255,255,.18);border-top-color:#ffb16f;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.countdown{position:fixed;inset:0;z-index:30;display:grid;place-items:center;pointer-events:none;font-size:min(34vw,240px);font-weight:1000;letter-spacing:-.08em;text-shadow:0 12px 40px rgba(0,0,0,.35);opacity:0}.countdown.show{animation:countPop .72s ease both}@keyframes countPop{0%{opacity:0;transform:scale(.55)}20%{opacity:1;transform:scale(1.08)}80%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.16)}}
.hud{position:fixed;inset:0;z-index:10;pointer-events:none;display:none;padding:calc(12px + env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom))}.hud.active{display:block}.hud-top{display:grid;grid-template-columns:84px 1fr 84px;gap:9px;align-items:start}.hud-pill,.compass-panel,.mission-pill{border:1px solid rgba(255,255,255,.18);background:var(--glass);backdrop-filter:blur(10px);box-shadow:0 8px 24px rgba(0,0,0,.18)}.hud-pill{border-radius:15px;padding:9px 8px;text-align:center}.hud-pill strong{display:block;font-size:28px}.hud-label{display:block;font-size:9px;font-weight:900;letter-spacing:.12em;opacity:.68}.compass-panel{border-radius:15px;text-align:center;padding:7px 12px 8px}.compass-panel strong{font-size:28px;line-height:1}.compass-strip{margin-top:4px;font-size:9px;opacity:.6;white-space:nowrap;overflow:hidden}.mission-pill{position:absolute;top:calc(88px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);min-width:170px;border-radius:999px;padding:8px 18px;text-align:center}.mission-pill span,.mission-pill small{display:block;font-size:9px;letter-spacing:.12em;opacity:.7}.mission-pill strong{font-size:24px;color:#ffd39a}
.audio-btn{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));z-index:45;pointer-events:auto;width:42px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:var(--glass);color:#fff;font-size:17px;display:grid;place-items:center;backdrop-filter:blur(10px)}
.reset-btn{pointer-events:auto;position:absolute;right:14px;top:calc(100px + env(safe-area-inset-top));width:42px;height:42px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:var(--glass);color:#fff;font-size:24px;transition:.18s}.reset-btn.attention{animation:resetPulse .75s ease-in-out infinite alternate;background:rgba(226,104,48,.84)}@keyframes resetPulse{to{transform:scale(1.13);box-shadow:0 0 0 8px rgba(226,104,48,.16)}}
.toast{position:fixed;z-index:15;left:50%;top:42%;transform:translate(-50%,-50%) scale(.9);padding:16px 24px;border-radius:18px;background:rgba(30,22,16,.84);border:1px solid rgba(255,255,255,.16);font-weight:1000;font-size:clamp(24px,6vw,48px);opacity:0;pointer-events:none;text-align:center}.toast.show{animation:toastPop 1.2s ease both}@keyframes toastPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.65)}15%,70%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-60%) scale(1.05)}}
.mobile-controls{position:fixed;z-index:12;left:0;right:0;bottom:0;padding:12px max(14px,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));display:none;flex-direction:column;align-items:flex-start;gap:7px;pointer-events:none}.mobile-controls.active{display:flex}.touch-help{margin-left:20px;padding:6px 10px;border-radius:999px;background:rgba(31,24,19,.46);border:1px solid rgba(255,255,255,.13);font-size:9px;font-weight:900;letter-spacing:.13em;opacity:.8;backdrop-filter:blur(8px)}.drive-joystick{position:relative;width:138px;height:138px;border-radius:50%;pointer-events:auto;touch-action:none;user-select:none;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.11),rgba(31,24,19,.60) 68%);border:1px solid rgba(255,255,255,.24);box-shadow:0 12px 34px rgba(0,0,0,.23),inset 0 0 0 14px rgba(255,255,255,.025);backdrop-filter:blur(10px)}.joystick-knob{position:absolute;left:50%;top:50%;width:58px;height:58px;border-radius:50%;transform:translate(-50%,-50%);background:linear-gradient(145deg,rgba(255,190,132,.95),rgba(216,109,56,.92));border:2px solid rgba(255,255,255,.35);box-shadow:0 8px 20px rgba(0,0,0,.25);will-change:transform}.joystick-arrows{position:absolute;inset:8px;color:rgba(255,255,255,.42);font-size:15px;font-weight:900;pointer-events:none}.joystick-arrows span{position:absolute}.joystick-arrows span:nth-child(1){left:50%;top:0;transform:translateX(-50%)}.joystick-arrows span:nth-child(2){left:0;top:50%;transform:translateY(-50%)}.joystick-arrows span:nth-child(3){right:0;top:50%;transform:translateY(-50%)}.joystick-arrows span:nth-child(4){left:50%;bottom:0;transform:translateX(-50%)}.touch-legend{display:flex;gap:8px;margin-left:4px;font-size:8px;font-weight:900;letter-spacing:.08em;opacity:.58}.touch-legend span{padding:4px 7px;border-radius:999px;background:rgba(31,24,19,.42)}
.result-card{text-align:center}.result-card h2 span{font-size:1.7em;color:#ffb16f}.result-meta{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:18px 0;font-size:13px;opacity:.72}.share-links{display:flex;justify-content:center;gap:8px;margin-top:12px;flex-wrap:wrap}.share-links a{pointer-events:auto;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);padding:9px 12px;border-radius:10px;font-size:12px}
@media (hover:hover) and (pointer:fine){.mobile-controls{display:none!important}}
@media(max-width:700px){.card{border-radius:22px;padding:24px 20px}.rules-grid{grid-template-columns:1fr}.rules-grid article{min-height:auto;display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto}.rules-grid span{grid-row:1/3}.partner-grid{grid-template-columns:repeat(2,1fr)}.hud-top{grid-template-columns:74px 1fr 74px}.hud-pill strong,.compass-panel strong{font-size:24px}.brand-logo--large{width:90px;height:90px}}
@media(max-height:650px){.brand-logo--large{width:64px;height:64px}.hero-card .lead{margin:10px 0}.card{padding-top:18px;padding-bottom:18px}.rules-grid{margin:12px 0}.partner-card{min-height:100px}.partner-card img{width:52px;height:52px}.drive-joystick{width:112px;height:112px}.joystick-knob{width:50px;height:50px}.touch-help{display:none}.mobile-controls{padding-bottom:calc(8px + env(safe-area-inset-bottom))}}

/* =========================================================
   V2.1 — identité Gazelles Volcaniques / partenaires réels
========================================================= */
.brand-logo-shell{display:inline-grid;place-items:center;padding:10px 12px;border-radius:20px;background:#fff;box-shadow:0 12px 34px rgba(0,0,0,.18)}
.brand-logo-shell--hero{padding:9px 12px;margin-bottom:2px}
.brand-logo{border-radius:0;object-fit:contain}.brand-logo--large{width:min(290px,62vw);height:auto;max-height:190px}
.hero-card h1{font-size:clamp(42px,9.5vw,84px);line-height:.88;letter-spacing:-.055em;margin-top:8px}.hero-card h1 span{display:inline-block;color:#ff9d53;font-size:.66em;letter-spacing:-.035em}
.micro a,.credit a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.rules-grid{grid-template-columns:repeat(2,1fr)}
.rules-grid article{min-height:146px}

/* Les logos conservent leurs proportions : l'empilement donne un effet masonry. */
.partner-grid{display:block;columns:3 175px;column-gap:12px;margin:22px 0 12px}
.partner-card{width:100%;min-height:0;margin:0 0 12px;break-inside:avoid;padding:16px 14px;background:#fff;color:#241a15;border-color:rgba(255,255,255,.44);box-shadow:0 7px 22px rgba(0,0,0,.14)}
.partner-card img{display:block;width:100%;height:auto;max-height:92px;object-fit:contain;border-radius:0}
.partner-card span{font-size:11px;color:inherit;opacity:.72}
.partner-card.theme-dark{background:#121212;color:#fff}
.partner-card.selected{border-color:#ff9c54;background:#fff4e8;color:#241a15;box-shadow:0 0 0 3px rgba(255,156,84,.28),0 14px 34px rgba(0,0,0,.22)}
.partner-card.theme-dark.selected{background:#201a17;color:#fff}

/* Contrôle tactile à droite pour laisser respirer le paysage. */
.mobile-controls{align-items:flex-end;padding-right:max(18px,env(safe-area-inset-right));padding-left:max(14px,env(safe-area-inset-left))}
.touch-help{margin-left:0;margin-right:18px}.touch-legend{margin-left:0;margin-right:3px}

.share-card-wrap{margin:18px 0 12px;border-radius:18px;overflow:hidden;background:#15110f;border:1px solid rgba(255,255,255,.14);box-shadow:0 14px 36px rgba(0,0,0,.25)}
.share-preview{display:block;width:100%;aspect-ratio:1200/630;object-fit:cover;background:#2a1d16}
.partner-result-line{font-size:13px;line-height:1.55;color:rgba(255,248,234,.82);margin:10px 0 18px}.partner-result-line a{color:#ffd39a;font-weight:800;text-underline-offset:3px}
.btn--ghost{display:block;text-align:center;text-decoration:none;margin-top:10px;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.16)}
.result-card{width:min(760px,100%)}
.result-meta{margin:12px 0 6px}

@media(max-width:700px){
  .rules-grid{grid-template-columns:1fr}
  .partner-grid{columns:2 130px}
  .partner-card{padding:13px 11px}.partner-card img{max-height:72px}
  .hero-card h1{font-size:clamp(38px,12vw,64px)}
  .brand-logo--large{width:min(260px,72vw);max-height:160px}
  .audio-btn{right:auto;left:max(14px,env(safe-area-inset-left));bottom:calc(18px + env(safe-area-inset-bottom))}
}
@media(max-height:650px){
  .brand-logo-shell--hero{display:none}
  .hero-card h1{font-size:clamp(34px,9vw,54px)}
  .partner-grid{margin-top:12px}
}
