
:root{
 --black:#050504;--ink:#c8b9aa;--ink2:#a99a8c;--paper:#080706;--line:#b8a796;
 --blue:#087fc1;--green:#5a991c;--red:#bf2818;--orange:#cf6812;
 --font-display:"Impact","Haettenschweiler","Arial Narrow Bold","Arial Black",sans-serif;
 --font-body:"Arial Narrow","Liberation Sans Narrow",Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#030303;color:var(--ink)}
body{
 font-family:var(--font-body);
 background-image:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.18)),url('assets/rulebook-bg.jpg');
 background-size:900px 900px;background-attachment:fixed;overflow-x:hidden;
}
body:after{content:"";position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 180px #000;z-index:10000}
.hide{display:none!important}.muted{color:var(--ink2)}.mono{font-family:var(--font-body)}.error{color:#e56850;font-weight:900;margin-top:10px}
.rulebook-shell{
 position:relative;z-index:1;width:min(1100px,calc(100% - 28px));min-height:calc(100vh - 28px);margin:14px auto;padding:26px 38px 34px;
 background:rgba(3,3,3,.34);border:2px solid rgba(200,185,170,.82);
 box-shadow:0 0 0 5px #050504,0 0 0 7px rgba(200,185,170,.38),inset 0 0 55px rgba(0,0,0,.75);
}
.rulebook-shell:after{content:"";position:absolute;inset:-7px;pointer-events:none;background:url('assets/rulebook-frame.png') center/100% 100% no-repeat;opacity:.76;z-index:-1}
.corner-x{position:absolute;top:124px;font:900 48px var(--font-display);color:var(--ink);opacity:.9}.x-left{left:28px}.x-right{right:28px}
.rulebook-brand{text-align:center;padding:0 65px 18px;border-bottom:1px solid rgba(200,185,170,.34);margin-bottom:20px}
.stamp{font:900 10px var(--font-body);letter-spacing:.22em;color:var(--ink2);text-transform:uppercase;margin-bottom:8px}
.brand-big,.page-brush-head span,.intro-title,.game-code,.timer,.score,.team-name,.card-title,.draw-word,.rule-section-title .cream-brush,.family-label{
 font-family:var(--font-display);text-transform:uppercase;font-weight:900
}
.brand-big,.intro-title,.card-title,.draw-word{
 background:url('assets/cream-distress.jpg') center/330px 330px;
 -webkit-background-clip:text;background-clip:text;color:transparent;
}
.brand-big{font-size:clamp(74px,12vw,132px);line-height:.76;letter-spacing:-.025em}
.brand-big span{display:block}
.brand-subline{font-size:clamp(18px,2.2vw,27px);font-weight:900;margin-top:14px;color:var(--ink)}
.page-brush-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:20px 0 25px}
.page-brush-head span{display:block;background:var(--ink);color:#050504;padding:7px 28px 9px 18px;font-size:clamp(44px,7vw,74px);line-height:.9;clip-path:polygon(0 6%,96% 0,100% 82%,4% 100%)}
.back{font:900 10px var(--font-body);color:var(--ink);text-decoration:none;border:1px solid rgba(200,185,170,.45);padding:9px 12px}
.rule-section{position:relative;margin:0 0 22px;padding:20px 24px 24px;background:rgba(4,4,3,.78);border-top:1px solid rgba(200,185,170,.42);border-bottom:1px solid rgba(200,185,170,.42)}
.rule-section:before{content:"";position:absolute;left:0;right:0;top:5px;height:1px;background:linear-gradient(90deg,transparent,var(--ink),transparent);opacity:.22}
.rule-section-title{display:flex;align-items:center;gap:0;margin:-3px 0 18px}
.round-icon{width:74px;height:74px;flex:0 0 74px;border:4px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#050504;color:var(--ink);font:900 31px var(--font-display);box-shadow:0 0 0 3px #050504,0 0 0 4px rgba(200,185,170,.45);z-index:2}
.round-icon img{width:46px;height:46px}
.cream-brush,.family-brush{display:flex;align-items:center;min-height:62px;padding:8px 42px 8px 24px;margin-left:-5px;font-size:clamp(31px,5vw,49px);line-height:.9;clip-path:polygon(0 5%,92% 0,100% 18%,96% 38%,100% 56%,92% 72%,100% 89%,90% 100%,0 94%,4% 73%,0 56%,3% 37%)}
.cream-brush{background:var(--ink);color:#050504}.family-brush{background:var(--orange);color:#050504}
.small-title .round-icon{width:60px;height:60px;flex-basis:60px}.small-title .cream-brush{min-height:52px;font-size:34px}
.intro-title{font-size:clamp(38px,6vw,66px);line-height:.88;margin:4px 0 18px}.lead{font-size:20px;line-height:1.42;color:var(--ink2);max-width:850px}
label{display:block;font:900 11px var(--font-body);letter-spacing:.12em;text-transform:uppercase;margin:0 0 7px}
.input{width:100%;height:55px;border:1px solid rgba(200,185,170,.72);border-radius:0;background:#030303;color:var(--ink);padding:12px 14px;font-size:18px}.settings{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:16px}.settings.single{grid-template-columns:1fr}.upper{text-transform:uppercase}
.btn{appearance:none;border:0;border-radius:0;min-height:65px;width:100%;background:var(--ink);color:#050504;padding:12px 25px;font:900 clamp(21px,2.7vw,30px) var(--font-display);text-transform:uppercase;cursor:pointer;clip-path:polygon(1% 5%,98% 0,100% 86%,3% 100%)}.btn-alt{background:#0b0a08;color:var(--ink);border-top:1px solid rgba(200,185,170,.4);border-bottom:1px solid rgba(200,185,170,.4);clip-path:polygon(0 4%,100% 0,99% 94%,2% 100%)}.btn:disabled{opacity:.38;cursor:not-allowed}
.two-btn,.exercise-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.vitale-btn{background:var(--green)}
.family-rule-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border-top:1px solid rgba(200,185,170,.28);border-bottom:1px solid rgba(200,185,170,.28);margin-top:4px}.family-mini{min-height:108px;background:#050504;display:grid;grid-template-columns:60px 1fr;grid-template-rows:1fr 1fr;align-items:center;padding:9px;color:var(--ink)}.family-mini img{width:48px;height:48px;grid-row:1/3;border-radius:50%;padding:6px;border:3px solid currentColor}.family-mini span{font:900 23px var(--font-display)}.family-mini b{font:900 11px var(--font-body);letter-spacing:.08em}.family-mini.blue{color:var(--blue)}.family-mini.green{color:var(--green)}.family-mini.red{color:var(--red)}.family-mini.orange{color:var(--orange)}
.dashboard-top,.score-strip{display:grid;grid-template-columns:1.35fr .65fr;gap:15px}.compact-section{margin-bottom:0}.game-code{font-size:clamp(70px,10vw,110px);line-height:.88;letter-spacing:.08em;color:var(--ink)}.timer{font-size:clamp(68px,9vw,105px);line-height:.88;color:var(--ink)}.host-note{text-align:right;font:900 10px var(--font-body);letter-spacing:.12em;margin:-10px 0 10px;color:var(--ink2)}
.host-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.host-team{position:relative;padding:15px 16px;background:#050504;border-top:1px solid rgba(200,185,170,.35);border-bottom:1px solid rgba(200,185,170,.25)}.host-team:before{content:"";position:absolute;left:12px;right:45%;top:5px;height:2px;background:var(--ink);opacity:.45;transform:rotate(-.6deg)}.host-team-top{display:flex;justify-content:space-between;gap:12px}.host-team-top strong,.team-name{font:900 29px var(--font-display);text-transform:uppercase}.host-team-top small{display:block;font:900 9px var(--font-body);letter-spacing:.13em;color:var(--ink2);margin-top:5px}.score{font-size:48px;line-height:.88;color:var(--ink)}.score i{font:900 10px var(--font-body);color:var(--ink2);font-style:normal;margin-left:5px}.score.huge{font-size:64px}
.active-card{margin-top:12px;padding:10px 12px;background:#090806;border-left:9px solid #777}.active-card.blue{border-color:var(--blue)}.active-card.green{border-color:var(--green)}.active-card.red{border-color:var(--red)}.active-card.orange{border-color:var(--orange)}.active-card span{font:900 9px var(--font-body);color:var(--ink2)}.active-card strong{display:block;font:900 22px var(--font-display);margin-top:4px}.statuses{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.statuses.outer{margin:0 0 12px}.status{padding:5px 7px;background:#090806;border-top:1px solid rgba(200,185,170,.25);border-bottom:1px solid rgba(200,185,170,.18);font:900 9px var(--font-body);text-transform:uppercase}.notice{border-left:3px solid var(--ink);padding:8px 10px;margin-top:9px;background:#090806;font-size:14px;font-weight:800}.approval-host{margin-top:10px;padding:12px;border:1px solid var(--green)}.approval-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.approval-actions button{min-height:42px;border:0;font:900 16px var(--font-display)}.approve{background:var(--green)}.reject{background:#12100d;color:var(--ink);border:1px solid var(--ink)!important}
.score-strip{margin-bottom:13px}.score-block,.chrono-block{padding:13px 15px;background:#050504;border-top:1px solid rgba(200,185,170,.35);border-bottom:1px solid rgba(200,185,170,.25)}.micro-label{font:900 10px var(--font-body);letter-spacing:.14em}.stack{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.game-card{--family:#777;position:relative;min-height:550px;margin:0 0 15px;background:#050504;border:2px solid rgba(200,185,170,.84);box-shadow:inset 0 0 0 6px #050504,inset 0 0 0 7px rgba(200,185,170,.26);padding:23px 25px 26px;display:flex;flex-direction:column}
.game-card:before{content:"";position:absolute;inset:0;background:url('assets/rulebook-bg.jpg') center/700px;opacity:.68;mix-blend-mode:screen;pointer-events:none}.game-card.blue{--family:var(--blue)}.game-card.green{--family:var(--green)}.game-card.red{--family:var(--red)}.game-card.orange{--family:var(--orange)}
.family-head{position:relative;z-index:2;display:grid;grid-template-columns:86px 1fr;align-items:center;margin:5px 0 12px}.family-icon-wrap{width:82px;height:82px;border:5px solid var(--family);border-radius:50%;background:#050504;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px #050504,0 0 0 4px rgba(200,185,170,.48)}.family-icon-wrap img{width:55px;height:55px}.family-label{display:flex;align-items:center;min-height:77px;margin-left:-4px;background:var(--family);color:#050504;padding:9px 40px 9px 25px;font-size:clamp(34px,5vw,55px);clip-path:polygon(0 4%,93% 0,100% 13%,95% 31%,100% 48%,94% 68%,100% 89%,90% 100%,0 94%,4% 72%,0 52%,3% 29%)}
.card-body{position:relative;z-index:2;padding:7px 13px}.card-title{font-size:clamp(59px,9vw,110px);line-height:.81;margin:10px 0 17px}.card-effect{font-size:clamp(25px,3.2vw,39px);line-height:1.08;font-weight:800;max-width:930px}.volume-notice{display:inline-block;margin-top:14px;padding:8px 4px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);font:900 12px var(--font-body);letter-spacing:.09em}.card-points span{display:inline-block;margin-top:17px;background:var(--family);color:#050504;padding:9px 19px;font:900 clamp(31px,4vw,49px) var(--font-display);clip-path:polygon(0 5%,98% 0,100% 88%,4% 100%)}.card-acid{position:relative;z-index:2;margin-top:auto;padding:16px 13px 3px;border-top:1px dashed rgba(200,185,170,.4);font-size:20px;font-style:italic;font-weight:800;color:var(--ink2)}
.target-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.target{appearance:none;border:2px solid var(--orange);background:#050504;color:var(--ink);padding:15px;text-align:left}.target strong{display:block;font:900 23px var(--font-display)}.target span{font:900 11px var(--font-body)}
.approval-wait{border:1px solid var(--green);padding:16px;text-align:center;background:#070907;margin-bottom:13px}.approval-wait strong{font:900 36px var(--font-display)}.approval-wait p{font-size:17px;color:var(--ink2)}
.interaction-popup{position:fixed;z-index:1400;inset:0;background:rgba(0,0,0,.92) url('assets/rulebook-bg.jpg') center/800px;display:flex;align-items:center;justify-content:center;padding:20px}.interaction-sheet{--event:var(--ink);width:min(760px,100%);background:#050504;border:3px solid var(--event);box-shadow:inset 0 0 0 7px #050504,inset 0 0 0 8px rgba(200,185,170,.38);padding:27px;text-align:center}.event-green .interaction-sheet{--event:var(--green)}.event-red .interaction-sheet{--event:var(--red)}.event-orange .interaction-sheet{--event:var(--orange)}.event-blue .interaction-sheet{--event:var(--blue)}.popup-icon{width:88px;height:88px;margin:0 auto 12px;border:6px solid var(--event);border-radius:50%;display:flex;align-items:center;justify-content:center;font:900 52px var(--font-display);color:var(--event)}.popup-family{font:900 13px var(--font-body);color:var(--event);letter-spacing:.13em}.interaction-sheet h2{font:900 clamp(50px,10vw,90px)/.84 var(--font-display);text-transform:uppercase;margin:10px 0;background:url('assets/cream-distress.jpg') center/300px;-webkit-background-clip:text;background-clip:text;color:transparent}.interaction-sheet p{font-size:clamp(21px,3vw,30px);font-weight:800;line-height:1.18;color:var(--ink);margin:18px 0 22px}
.karma-lock{position:fixed;z-index:1300;inset:0;background:#050504 url('assets/rulebook-bg.jpg') center/800px;display:flex;align-items:center;justify-content:center;padding:20px}.karma-sheet{width:min(820px,100%);border:3px solid var(--orange);box-shadow:inset 0 0 0 7px #050504,inset 0 0 0 8px rgba(200,185,170,.4);padding:27px;text-align:center}.karma-skull{width:96px;height:96px;border:6px solid var(--orange);border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center}.karma-skull img{width:62px}.karma-source{font:900 16px var(--font-body);color:var(--orange)}.karma-sheet h2{font:900 clamp(57px,12vw,108px)/.8 var(--font-display);margin:6px 0 16px;background:url('assets/cream-distress.jpg') center/300px;-webkit-background-clip:text;background-clip:text;color:transparent}.karma-exercise{padding:17px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.karma-exercise strong{display:block;font:900 clamp(34px,7vw,64px) var(--font-display)}.karma-exercise span{font-size:23px;font-weight:800}.karma-note{margin-top:16px;color:var(--ink2);font-size:18px;font-style:italic}
.draw-overlay{position:fixed;z-index:1200;inset:0;background:#050504 url('assets/rulebook-bg.jpg') center/800px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.draw-word{font-size:clamp(82px,17vw,185px);line-height:.71}.draw-sub{margin-top:25px;background:var(--ink);color:#050504;padding:10px 30px;font:900 14px var(--font-body);clip-path:polygon(0 6%,97% 0,100% 86%,4% 100%)}.reveal{animation:reveal .4s ease}@keyframes reveal{0%{transform:scale(.975);filter:brightness(.55)}65%{transform:scale(1.006);filter:brightness(1.05)}100%{transform:scale(1);filter:brightness(1)}}
@media(max-width:900px){.rulebook-shell{width:100%;min-height:100vh;margin:0;border-left:0;border-right:0;padding:18px 14px 28px}.rulebook-shell:after,.corner-x{display:none}.rulebook-brand{padding-left:5px;padding-right:5px}.brand-big{font-size:78px}.page-brush-head{align-items:flex-start}.page-brush-head span{font-size:48px}.settings,.dashboard-top,.score-strip,.host-grid,.two-btn,.exercise-actions,.target-grid,.family-rule-row{grid-template-columns:1fr}.round-icon{width:61px;height:61px;flex-basis:61px}.cream-brush,.family-brush{min-height:55px;font-size:33px;padding-left:19px}.game-card{min-height:470px;padding:16px}.family-head{grid-template-columns:64px 1fr}.family-icon-wrap{width:61px;height:61px;border-width:4px}.family-icon-wrap img{width:40px;height:40px}.family-label{min-height:61px;font-size:34px;padding-left:19px}.card-title{font-size:58px}.card-effect{font-size:26px}.game-code{font-size:72px}.timer{font-size:74px}}
@media(max-width:540px){.brand-big{font-size:66px}.brand-subline{font-size:17px}.page-brush-head span{font-size:41px}.intro-title{font-size:43px}.rule-section{padding:16px 13px}.card-title{font-size:49px}.card-effect{font-size:23px}.btn{font-size:22px}.score.huge{font-size:53px}.interaction-sheet{padding:20px}.interaction-sheet h2{font-size:57px}}


/* === V2.6 : inventaire permanent des jokers === */
.joker-rack{position:relative;margin:0 0 14px;padding:14px 16px 16px;background:#050504;border-top:1px solid rgba(200,185,170,.4);border-bottom:1px solid rgba(200,185,170,.32)}
.joker-rack-title{display:flex;align-items:center;margin-bottom:12px}.joker-rack-title .joker-rack-icon{width:55px;height:55px;flex-basis:55px;font-size:24px}.joker-rack-title .cream-brush{min-height:49px;font-size:30px;padding:7px 35px 7px 20px}
.joker-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.joker-card{position:relative;min-height:116px;display:grid;grid-template-columns:50px 1fr;grid-template-rows:auto auto;gap:4px 10px;align-items:start;padding:12px;background:#080705;border:1px solid rgba(200,185,170,.28);border-left:7px solid var(--green)}
.joker-symbol{grid-row:1/3;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:3px solid var(--green);color:var(--green);font:900 25px var(--font-display)}.joker-copy strong{display:block;font:900 22px var(--font-display);text-transform:uppercase;color:var(--green);line-height:.95}.joker-copy span{display:block;margin-top:5px;color:var(--ink2);font-size:13px;line-height:1.25;font-weight:800}
.joker-state,.joker-use-btn{grid-column:2;justify-self:start;margin-top:5px;font:900 9px var(--font-body);letter-spacing:.11em;text-transform:uppercase}.joker-state{color:var(--green);border-top:1px solid var(--green);border-bottom:1px solid var(--green);padding:4px 6px}.joker-use-btn{appearance:none;border:0;background:var(--green);color:#050504;padding:7px 10px;cursor:pointer;font-size:11px}.joker-empty{grid-column:1/-1;padding:9px 4px;font:900 10px var(--font-body);letter-spacing:.12em;color:var(--ink2);text-transform:uppercase}@media(max-width:900px){.joker-list{grid-template-columns:1fr}}

/* V2.7 : hiérarchie typographique resserrée à 2 familles */
.stamp,.back,label,.family-mini b,.host-note,.host-team-top small,.score i,.active-card span,.status,.micro-label,.popup-family,.karma-source,.draw-sub,.joker-state,.joker-use-btn,.joker-empty,.mono{font-family:var(--font-body)!important;font-weight:900}
.btn,.brand-big,.page-brush-head span,.intro-title,.game-code,.timer,.score,.team-name,.card-title,.draw-word,.cream-brush,.family-brush,.family-label,.host-team-top strong,.active-card strong,.approval-actions button,.joker-copy strong,.popup-icon,.interaction-sheet h2,.karma-sheet h2,.karma-exercise strong,.target strong{font-family:var(--font-display)!important}
.event-red .interaction-sheet{box-shadow:0 0 65px rgba(191,40,24,.24),inset 0 0 0 7px #050504,inset 0 0 0 8px rgba(200,185,170,.38)}
.event-red .popup-icon{animation:blackPulse .72s ease-in-out 2}@keyframes blackPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.16) rotate(-4deg)}}


/* === V2.8 : scènes sonores / visuelles pour cartes spéciales === */
.event-bank_error .interaction-sheet{
  --event:var(--green);
}
.event-bank_error .popup-icon:before{
  content:"€";
}
.event-bank_error .popup-icon{
  font-size:0;
}
.event-bank_error .popup-icon:before{
  font:900 52px Impact,sans-serif;
  color:var(--green);
}
.event-tax_audit .interaction-sheet{
  --event:var(--red);
}
.event-tax_audit .popup-icon:before{
  content:"§";
}
.event-tax_audit .popup-icon{
  font-size:0;
}
.event-tax_audit .popup-icon:before{
  font:900 50px Impact,sans-serif;
  color:var(--red);
}
.event-bank_error .interaction-sheet h2,
.event-tax_audit .interaction-sheet h2{
  letter-spacing:-.035em;
}
.event-tax_audit .interaction-sheet{
  animation:taxShake .45s ease;
}
.event-bank_error .interaction-sheet{
  animation:bankPop .42s ease;
}
@keyframes taxShake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-8px) rotate(-.4deg)}
  40%{transform:translateX(7px) rotate(.3deg)}
  60%{transform:translateX(-5px)}
  80%{transform:translateX(3px)}
}
@keyframes bankPop{
  0%{transform:scale(.93);filter:brightness(.7)}
  70%{transform:scale(1.02);filter:brightness(1.07)}
  100%{transform:scale(1);filter:brightness(1)}
}


/* V2.9 — reprise de partie */
.resume-box{
  margin:0 0 22px;padding:16px;background:#050704;border:2px solid var(--green);
  box-shadow:inset 0 0 0 5px #050504,inset 0 0 0 6px rgba(90,153,28,.25);
}
.resume-title{
  font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;
  font-size:32px;line-height:.95;color:var(--green);text-transform:uppercase;
}
.resume-info{margin:9px 0 13px;font-size:18px;font-weight:800;color:var(--ink)}
.resume-box .btn{margin-top:8px}


/* === V2.10 : DA renforcée + événements premium === */
:root{
 --shell-width:1180px;
}
body{letter-spacing:.01em}
.rulebook-shell{
 width:min(var(--shell-width),calc(100% - 26px));
 margin:13px auto; padding:24px 34px 32px;
 background:rgba(2,2,2,.42);
 border:2px solid rgba(200,185,170,.92);
 box-shadow:0 0 0 4px #040404,0 0 0 6px rgba(200,185,170,.32),inset 0 0 75px rgba(0,0,0,.82);
}
.rulebook-shell:before{content:"";position:absolute;inset:11px;border:1px solid rgba(200,185,170,.18);pointer-events:none}
.rulebook-brand{text-align:left;padding:0 0 16px;margin-bottom:16px}
.landing-shell .rulebook-brand{text-align:left}
.brand-big{font-size:clamp(82px,13vw,150px);letter-spacing:-.045em;line-height:.75}
.brand-subline{margin-top:10px;font-size:clamp(18px,2vw,25px);font-weight:900}
.page-brush-head{margin:16px 0 18px}
.page-brush-head span,.cream-brush,.family-brush,.family-label,.btn{
 text-transform:uppercase; letter-spacing:-.025em;
}
.page-brush-head span,.cream-brush{background:var(--ink);color:#050504}
.page-brush-head span{
 padding:8px 38px 10px 16px;
 clip-path:polygon(0 7%,93% 0,100% 16%,96% 47%,100% 82%,89% 100%,0 92%,3% 56%);
 font-size:clamp(42px,6vw,68px); line-height:.88;
}
.cream-brush,.family-brush{min-height:58px;padding:8px 42px 8px 18px;font-size:clamp(29px,4.7vw,47px)}
.family-brush{color:#050504}
.small-title .cream-brush{font-size:30px;min-height:48px}
.intro-title{font-size:clamp(42px,5.9vw,72px);margin:2px 0 14px;line-height:.9;letter-spacing:-.03em}
.lead{font-size:18px;line-height:1.46;color:var(--ink);max-width:920px}
.rule-section,.score-block,.chrono-block,.host-team,.joker-rack,.approval-wait{
 background:rgba(4,4,3,.84);
 border-top:1px solid rgba(200,185,170,.56);
 border-bottom:1px solid rgba(200,185,170,.24);
 box-shadow:inset 0 1px 0 rgba(200,185,170,.08),inset 0 -30px 55px rgba(0,0,0,.28);
}
.rule-section{padding:18px 22px 22px}
.round-icon{width:72px;height:72px;flex-basis:72px;border-width:4px;font-size:28px}
.btn{min-height:62px;font-size:clamp(20px,2.3vw,28px);padding:10px 20px;clip-path:polygon(1% 5%,97% 0,100% 81%,3% 100%)}
.btn-alt{background:#080808;color:var(--ink);border-top:1px solid rgba(200,185,170,.48);border-bottom:1px solid rgba(200,185,170,.28)}
.family-rule-row{margin-top:14px;gap:8px;border:0}
.family-mini{border-top:1px solid rgba(200,185,170,.3);border-bottom:1px solid rgba(200,185,170,.18)}
.host-team-top strong,.team-name{font-size:34px;letter-spacing:-.03em}
.host-team{padding:14px 14px 16px}
.score{font-size:58px}
.game-card{min-height:560px;border:2px solid rgba(200,185,170,.92);box-shadow:inset 0 0 0 4px #050504,inset 0 0 0 5px rgba(200,185,170,.2)}
.card-title{font-size:clamp(62px,9vw,112px);letter-spacing:-.045em;line-height:.82}
.card-effect{font-size:clamp(28px,4vw,40px);font-weight:900;line-height:1.03}
.card-acid{font-size:18px;line-height:1.3}
.interaction-popup,.karma-lock,.draw-overlay{backdrop-filter:blur(1.5px)}
.interaction-sheet,.karma-sheet{
 position:relative;
 background:#040403;
 border:2px solid var(--event);
 box-shadow:0 0 0 3px #050504,0 0 0 5px rgba(200,185,170,.28),0 0 45px rgba(0,0,0,.65),inset 0 0 55px rgba(0,0,0,.5);
}
.interaction-sheet:before,.karma-sheet:before{
 content:"";position:absolute;inset:10px;border:1px solid rgba(200,185,170,.18);pointer-events:none
}
.popup-icon{width:96px;height:96px;border-width:5px;font-size:34px;background:#050504}
.popup-family{display:inline-block;padding:6px 10px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
.interaction-sheet h2,.karma-sheet h2{letter-spacing:-.04em}
.interaction-sheet p{font-size:clamp(23px,3vw,32px)}
.event-bank_error .popup-icon:before,.event-tax_audit .popup-icon:before{content:none!important}
.event-bank_error .popup-icon,.event-tax_audit .popup-icon,.event-jackpot .popup-icon,.event-bonus_x2 .popup-icon,.event-could_be_worse .popup-icon,.event-player_model_request .popup-icon{font-size:30px}
.event-bank_error .interaction-sheet,.event-bonus_x2 .interaction-sheet,.event-jackpot .interaction-sheet,.event-could_be_worse .interaction-sheet,.event-player_model_request .interaction-sheet{animation:bankPop .42s ease}
.event-player_model_request .interaction-sheet{--event:var(--green)}
.event-jackpot .interaction-sheet{--event:var(--green)}
.event-bonus_x2 .interaction-sheet{--event:var(--green)}
.event-could_be_worse .interaction-sheet{--event:var(--green)}
.event-bonus_x2 .popup-family,.event-could_be_worse .popup-family,.event-player_model_request .popup-family,.event-jackpot .popup-family{color:var(--green)}
.joker-rack-title .cream-brush{font-size:28px;min-height:47px}
.joker-card{min-height:120px;background:#060505;border-top:1px solid rgba(200,185,170,.18);border-bottom:1px solid rgba(200,185,170,.14);border-left-width:6px}
.joker-copy strong{font-size:20px;letter-spacing:-.02em}
.joker-state,.joker-use-btn{font-size:10px}
.resume-title{font-family:var(--font-display);font-size:36px;line-height:.9;letter-spacing:-.03em}
.approval-wait strong{letter-spacing:-.03em}
.notice{font-size:13px;line-height:1.35}
@media(max-width:900px){
 .rulebook-shell{padding:16px 14px 24px}
 .page-brush-head span{font-size:48px}
 .brand-big{font-size:76px}
 .game-card{min-height:470px}
 .card-title{font-size:56px}
 .card-effect{font-size:25px}
}


/* === V2.11 : logo plus respirant === */
.rulebook-brand{
  padding-bottom:20px;
  margin-bottom:20px;
}
.brand-big{
  width:min(100%, 940px);
  font-size:clamp(72px,10.4vw,124px);
  line-height:.84;
  letter-spacing:-.018em;
}
.brand-big span{
  display:block;
}
.brand-big span + span{
  margin-top:.055em;
}
.brand-subline{
  margin-top:18px;
  max-width:900px;
  line-height:1.15;
}
@media(max-width:900px){
  .brand-big{
    font-size:clamp(64px,16vw,88px);
    line-height:.85;
    letter-spacing:-.015em;
  }
  .brand-big span + span{
    margin-top:.045em;
  }
  .brand-subline{
    margin-top:14px;
  }
}
@media(max-width:540px){
  .brand-big{
    font-size:clamp(58px,18vw,74px);
    line-height:.87;
    letter-spacing:-.01em;
  }
}


/* === V2.12 — composition calée sur le règlement officiel === */
:root{
  --font-display:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Black",sans-serif;
  --font-body:"Arial Narrow","Liberation Sans Narrow",Arial,sans-serif;
}
body{font-family:var(--font-body);background-size:1000px 1000px}
.rulebook-shell{
  width:min(1040px,calc(100% - 26px));
  padding:26px 34px 34px;
  border:2px solid rgba(200,185,170,.88);
  box-shadow:0 0 0 4px #030303,0 0 0 6px rgba(200,185,170,.48),inset 0 0 70px rgba(0,0,0,.78);
}
.rulebook-shell:before{inset:9px;border:1px solid rgba(200,185,170,.22)}
.rulebook-shell:after{opacity:.92}
.rulebook-brand,.landing-shell .rulebook-brand{
  position:relative;
  text-align:center;
  padding:8px 72px 28px;
  margin:0 0 24px;
  border-bottom:0;
}
.rulebook-brand:after{
  content:"";position:absolute;left:4%;right:4%;bottom:2px;height:12px;
  background:linear-gradient(to right,transparent 0 7%,var(--ink) 7% 40%,transparent 40% 60%,var(--ink) 60% 93%,transparent 93%);
  clip-path:polygon(0 47%,41% 43%,44% 50%,41% 58%,0 54%,0 47%,100% 46%,100% 53%,59% 57%,56% 50%,59% 42%,100% 45%);
  opacity:.76;
}
.stamp{font-family:var(--font-body)!important;font-size:9px;letter-spacing:.2em;opacity:.62;margin-bottom:10px}
.brand-big{
  width:auto;max-width:790px;margin:0 auto;
  font-size:clamp(74px,10.8vw,124px);
  line-height:.80;letter-spacing:.005em;
}
.brand-big span+span{margin-top:.015em}
.brand-subline{
  max-width:none;margin:18px auto 0;
  font-family:var(--font-body);font-size:clamp(20px,2.3vw,28px);font-weight:900;letter-spacing:.015em;
}
.corner-x{top:185px;font-size:46px}.x-left{left:64px}.x-right{right:64px}
.page-brush-head{margin:20px 0 28px;border-bottom:1px solid rgba(200,185,170,.35);padding-bottom:18px}
.page-brush-head span{
  width:auto;max-width:760px;padding:7px 44px 9px 22px;
  font-size:clamp(42px,5.6vw,66px);line-height:.9;
  clip-path:polygon(0 8%,92% 2%,100% 17%,95% 29%,100% 42%,95% 55%,100% 69%,94% 82%,100% 91%,87% 100%,0 94%,3% 73%,0 58%,3% 38%);
}
.rule-section{padding:18px 24px 24px;margin-bottom:24px;background:rgba(3,3,3,.66)}
.rule-section-title{margin:0 0 20px}
.round-icon{width:78px;height:78px;flex-basis:78px;border:5px solid var(--ink);box-shadow:0 0 0 3px #050504,0 0 0 5px rgba(200,185,170,.6)}
.cream-brush,.family-brush{
  min-height:65px;padding:8px 55px 8px 26px;margin-left:-6px;
  clip-path:polygon(0 4%,88% 0,96% 7%,91% 15%,100% 24%,93% 34%,99% 45%,92% 56%,100% 67%,92% 78%,98% 89%,86% 100%,0 94%,3% 77%,0 64%,3% 49%,0 34%,3% 19%);
}
.small-title .round-icon{width:66px;height:66px;flex-basis:66px}.small-title .cream-brush{min-height:55px;font-size:31px}
.access-lead{margin:0 0 22px;font-size:18px;max-width:760px}
.two-btn{gap:18px}.btn{min-height:68px}
.dashboard-top{gap:20px}.host-grid{gap:18px}.host-team{padding:17px}
.game-code{font-size:clamp(72px,10vw,108px);letter-spacing:.06em}
.timer{font-size:clamp(70px,9vw,104px)}
.joker-rack{padding:16px 18px 18px}
.game-card{padding:25px 27px 28px;min-height:570px}
.family-head{grid-template-columns:90px 1fr}.family-icon-wrap{width:86px;height:86px}
.family-label{min-height:82px;font-size:clamp(36px,5vw,56px)}
.card-title{font-size:clamp(58px,8.4vw,104px);line-height:.84}
.card-effect{font-family:var(--font-body);font-size:clamp(26px,3.4vw,37px);font-weight:900}
.interaction-popup{background:rgba(0,0,0,.94) url('assets/rulebook-bg.jpg') center/900px}
.interaction-sheet{
  width:min(780px,96vw);padding:30px 32px 32px;
  border-width:2px;
  box-shadow:0 0 0 5px #050504,0 0 0 7px rgba(200,185,170,.55),0 0 70px rgba(0,0,0,.8),inset 0 0 0 1px rgba(200,185,170,.14),inset 0 0 70px rgba(0,0,0,.54);
}
.popup-icon{width:98px;height:98px;border-width:5px;margin-bottom:16px}
.popup-family{font-size:12px;letter-spacing:.12em;margin-bottom:6px}
.interaction-sheet h2{font-size:clamp(56px,9vw,92px);line-height:.82;margin:12px 0 18px}
.interaction-sheet p{font-family:var(--font-body);font-size:clamp(23px,3vw,31px);line-height:1.12;max-width:650px;margin:0 auto 25px}
.event-green .interaction-sheet{--event:var(--green)}
.event-bank_error .interaction-sheet,.event-jackpot .interaction-sheet,.event-bonus_x2 .interaction-sheet,.event-could_be_worse .interaction-sheet,.event-player_model_request .interaction-sheet{--event:var(--green)}
.event-bank_error .popup-icon,.event-jackpot .popup-icon,.event-bonus_x2 .popup-icon,.event-could_be_worse .popup-icon,.event-player_model_request .popup-icon{color:var(--green);border-color:var(--green)}
.event-bank_error .interaction-sheet,.event-jackpot .interaction-sheet,.event-bonus_x2 .interaction-sheet,.event-player_model_request .interaction-sheet{animation:positiveImpact .48s ease}
@keyframes positiveImpact{0%{transform:scale(.94) rotate(-.3deg);filter:brightness(.68)}65%{transform:scale(1.015) rotate(.15deg);filter:brightness(1.08)}100%{transform:scale(1);filter:brightness(1)}}
.event-could_be_worse .interaction-sheet{animation:smallRelief .34s ease}
@keyframes smallRelief{0%{transform:translateY(12px);opacity:.4}100%{transform:translateY(0);opacity:1}}
@media(max-width:900px){
  .rulebook-shell{width:100%;padding:18px 14px 26px}
  .rulebook-brand,.landing-shell .rulebook-brand{padding:6px 8px 24px}
  .brand-big{font-size:clamp(62px,17vw,82px);line-height:.84}
  .brand-subline{font-size:18px;margin-top:14px}
  .corner-x{display:none}
  .page-brush-head{margin-top:12px}.page-brush-head span{font-size:46px}
}


/* === V2.13 — hiérarchie joueur + alerte maître du jeu === */
/* Le logo reste volontairement inchangé par rapport à la V2.12. */

/* Sur les vraies cartes, un seul mastodonte : le nom de la carte. */
.game-card:not(.neutral-state) .family-label{font-size:clamp(27px,3.5vw,42px);min-height:64px}
.game-card:not(.neutral-state) .family-icon-wrap{width:70px;height:70px}
.game-card:not(.neutral-state) .family-icon-wrap img{width:46px;height:46px}
.game-card:not(.neutral-state) .family-head{grid-template-columns:74px 1fr}
.card-title{font-size:clamp(48px,6.1vw,86px);line-height:.86;margin:14px 0 18px;letter-spacing:-.035em}
.card-effect{font-size:clamp(22px,2.3vw,31px);line-height:1.12;max-width:850px}
.card-points span{font-size:clamp(28px,3vw,43px)}

/* État neutre : ce n'est plus une fausse carte Mauvaise Pioche. */
.neutral-state{min-height:390px;padding:34px 34px 28px;justify-content:center}
.neutral-state .family-head{display:none}
.neutral-state .card-body{padding:0;max-width:840px}
.neutral-state .card-title{font-size:clamp(42px,5vw,72px);line-height:.9;margin:0 0 16px}
.neutral-state .card-effect{font-size:clamp(21px,2.2vw,29px);line-height:1.15;color:var(--ink);max-width:720px}
.neutral-state .card-acid{margin-top:45px;font-size:17px;border-top:1px dashed rgba(200,185,170,.3)}
.waiting-state .card-title{font-size:clamp(34px,4vw,58px);color:var(--ink);background:none;-webkit-text-fill-color:var(--ink)}
.waiting-state .card-effect{color:var(--ink2)}
.ready-state{background:rgba(3,3,3,.86)}
.ready-state .card-title{max-width:650px}
.ended-state .card-title{font-size:clamp(40px,4.8vw,66px)}
.action-zone .draw-btn{min-height:76px;font-size:clamp(26px,3.2vw,38px)}

/* L'état dans la vue maître n'écrase plus les cartes. */
.neutral-active strong{font-size:18px!important;color:var(--ink);letter-spacing:.01em}
.neutral-active span{font-size:9px!important}

/* Joueur modèle côté joueur */
.player-judgement{padding:25px 22px;border:2px solid var(--green);box-shadow:0 0 0 4px #050504,0 0 0 5px rgba(90,153,28,.28);text-align:left}
.player-judgement .approval-kicker{display:inline-block;background:var(--green);color:#050504;padding:5px 11px;font:900 12px var(--font-body);letter-spacing:.1em;margin-bottom:12px}
.player-judgement strong{display:block;font-size:clamp(34px,4.6vw,62px);line-height:.9;color:var(--ink)}
.player-judgement p{font-size:20px;line-height:1.3;color:var(--ink);max-width:760px}
.player-judgement .approval-acid{margin-top:18px;padding-top:12px;border-top:1px dashed rgba(200,185,170,.38);font-style:italic;color:var(--ink2)}

/* Alerte prioritaire Maître du jeu */
.host-approval-popup{position:fixed;z-index:1900;inset:0;background:rgba(0,0,0,.94) url('assets/rulebook-bg.jpg') center/760px;display:flex;align-items:center;justify-content:center;padding:22px}
.host-approval-sheet{position:relative;width:min(850px,100%);padding:30px 34px 28px;background:#050504;border:3px solid var(--green);box-shadow:0 0 0 5px #050504,0 0 0 7px rgba(200,185,170,.36),0 0 70px rgba(90,153,28,.20),inset 0 0 65px rgba(0,0,0,.7);text-align:center}
.host-approval-sheet:before{content:"";position:absolute;inset:11px;border:1px solid rgba(200,185,170,.18);pointer-events:none}
.host-alert-icon{position:relative;z-index:1;width:92px;height:92px;margin:0 auto 12px;border:5px solid var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--green);font:900 50px var(--font-display);animation:hostAlertPulse .8s ease-in-out infinite alternate}
.host-alert-family{position:relative;z-index:1;display:inline-block;padding:5px 10px;border-top:1px solid var(--green);border-bottom:1px solid var(--green);font:900 12px var(--font-body);letter-spacing:.13em;color:var(--green)}
.host-approval-sheet h2{position:relative;z-index:1;margin:14px 0 10px;font:900 clamp(48px,7vw,82px)/.86 var(--font-display);letter-spacing:-.035em;text-transform:uppercase;background:url('assets/cream-distress.jpg') center/300px;-webkit-background-clip:text;background-clip:text;color:transparent}
.host-approval-team{position:relative;z-index:1;margin:5px auto 18px;font:900 clamp(34px,5vw,58px)/.9 var(--font-display);color:var(--green);text-transform:uppercase}
.host-approval-sheet p{position:relative;z-index:1;font-size:21px;line-height:1.3;color:var(--ink);max-width:700px;margin:0 auto 20px}
.host-approval-actions{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.approve-big,.reject-big{min-height:72px;border:0;font:900 27px var(--font-display);text-transform:uppercase;cursor:pointer}
.approve-big{background:var(--green);color:#050504}
.reject-big{background:#0a0907;color:var(--ink);border:1px solid rgba(200,185,170,.48)}
.host-approval-queue{position:relative;z-index:1;margin:0 0 13px;font:900 11px var(--font-body);letter-spacing:.1em;color:var(--ink2);text-transform:uppercase}
.host-approval-acid{position:relative;z-index:1;margin-top:17px;padding-top:12px;border-top:1px dashed rgba(200,185,170,.36);font-style:italic;color:var(--ink2)}
.approval-host.urgent{border:2px solid var(--green);background:rgba(90,153,28,.08)}
.approval-host.urgent strong{font:900 22px var(--font-display);color:var(--green)}
@keyframes hostAlertPulse{from{transform:scale(1);box-shadow:0 0 0 rgba(90,153,28,0)}to{transform:scale(1.08);box-shadow:0 0 28px rgba(90,153,28,.28)}}

/* Desktop : plafonds pour éviter l'effet affiche géante partout. */
@media(min-width:1200px){
 .game-card:not(.neutral-state) .card-title{font-size:82px}
 .game-card:not(.neutral-state) .card-effect{font-size:29px}
 .game-card:not(.neutral-state) .family-label{font-size:39px}
 .neutral-state .card-title{font-size:66px}
 .page-brush-head span{font-size:62px}
 .game-code{font-size:92px}.timer{font-size:90px}
}
@media(max-width:900px){
 .neutral-state{min-height:330px;padding:26px 20px 22px}
 .neutral-state .card-title{font-size:45px}
 .neutral-state .card-effect{font-size:23px}
 .game-card:not(.neutral-state) .card-title{font-size:52px}
 .game-card:not(.neutral-state) .card-effect{font-size:24px}
 .game-card:not(.neutral-state) .family-label{font-size:31px}
 .host-approval-actions{grid-template-columns:1fr}
 .host-approval-sheet{padding:24px 18px}
 .host-approval-sheet h2{font-size:52px}
}


/* V2.14 QR access */

.join-link-wrap{word-break:break-all;margin:.2rem 0 .8rem 0}
.join-link-wrap a{color:#d9d0c3;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.qr-host-card .two-btn{margin-top:1rem}
.qr-inline-zone{display:flex;gap:1rem;align-items:center;margin:.9rem 0 1rem 0;padding:.8rem;background:rgba(255,255,255,.03);border:1px solid rgba(242,234,223,.15)}
.qr-inline-box{width:132px;min-width:132px;height:132px;background:#f2eadf;display:flex;align-items:center;justify-content:center;padding:8px}
.join-qr-img{display:block;width:100%;height:100%;object-fit:contain;background:#f2eadf}
.qr-inline-title{font-family:Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;font-size:1.15rem;letter-spacing:.04em;color:#f2eadf}
.qr-inline-sub{font-size:.92rem;line-height:1.35;color:#c6bbad;margin:.25rem 0 .6rem 0}
.btn-small{padding:.7rem 1rem;font-size:.92rem}
.qr-modal{position:fixed;inset:0;background:rgba(0,0,0,.82);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}
.qr-modal.hide{display:none}
.qr-modal-sheet{width:min(92vw,640px);background:#090909;border:2px solid rgba(242,234,223,.45);padding:1.2rem;box-shadow:0 0 0 1px rgba(242,234,223,.08) inset;text-align:center}
.qr-modal-kicker{font-size:.85rem;letter-spacing:.18em;color:#c6bbad;margin-bottom:.4rem}
.qr-modal-code{font-family:Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;font-size:clamp(2.2rem,8vw,4.2rem);line-height:.95;color:#f2eadf;margin-bottom:1rem}
.join-qr-img-large{display:block;width:min(72vw,360px);height:min(72vw,360px);margin:0 auto 1rem auto;background:#f2eadf;padding:12px;object-fit:contain}
.qr-modal-url{word-break:break-all;color:#d9d0c3;margin-bottom:.7rem}
.qr-modal-help{font-size:.95rem;line-height:1.4;color:#c6bbad;margin:0 auto 1rem auto;max-width:34rem}
.scan-hint{margin:.7rem 0 1rem 0;padding:.8rem 1rem;border:1px solid rgba(46,141,209,.45);background:rgba(46,141,209,.12);color:#f2eadf;line-height:1.35}
@media (max-width: 780px){.qr-inline-zone{flex-direction:column;align-items:flex-start}.qr-inline-box{width:150px;height:150px}}

/* V2.15 QR local */
.join-qr-img:not([src]),.join-qr-img-large:not([src]){font-size:.8rem;color:#111;padding:1rem;text-align:center}


/* =========================================================
   MAUVAISE PIOCHE V3.0 — CONFIGURATION MAÎTRE DU JEU
   ========================================================= */
.v3-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}
.v3-field{border:1px solid rgba(241,230,204,.18);background:rgba(255,255,255,.025);padding:14px}
.v3-field label{display:block;margin-bottom:7px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.v3-field small{display:block;margin-top:7px;color:#bfb7a5;line-height:1.35}
.v3-advanced-toggle{margin:4px 0 14px}
.v3-advanced{border-top:1px dashed rgba(241,230,204,.25);padding-top:18px;margin-top:8px}
.v3-subtitle{font-weight:1000;letter-spacing:.08em;text-transform:uppercase;margin:10px 0 5px;color:#f1e6cc}
.v3-check-grid,.v3-exercise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 18px}
.v3-check{display:flex;gap:8px;align-items:flex-start;padding:9px 10px;border:1px solid rgba(241,230,204,.15);background:rgba(0,0,0,.2);cursor:pointer}
.v3-check input{margin-top:3px;accent-color:#f1e6cc}
.v3-check span{line-height:1.25}
.v3-exercise-grid{max-height:360px;overflow:auto;padding-right:6px}
.v3-actions-inline{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.mini-btn{border:1px solid rgba(241,230,204,.35);background:#111;color:#f1e6cc;padding:7px 10px;font-weight:900;cursor:pointer}
.v3-preview{margin:16px 0;padding:12px 14px;border-left:4px solid #3b82f6;background:rgba(59,130,246,.08);font-weight:700}
.v3-preview.warning{border-left-color:#d97706;background:rgba(217,119,6,.09)}
.muted-block{opacity:.38;pointer-events:none}
.v3-game-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.v3-game-summary span{display:block;border:1px solid rgba(241,230,204,.14);padding:10px;background:rgba(0,0,0,.18)}
.v3-game-summary b{display:block;font-size:.72rem;letter-spacing:.1em;color:#a9a08f;margin-bottom:4px}

@media(max-width:780px){
  .v3-config-grid{grid-template-columns:1fr}
  .v3-check-grid,.v3-exercise-grid{grid-template-columns:1fr}
  .v3-game-summary{grid-template-columns:1fr 1fr}
}

/* =========================================================
   MAUVAISE PIOCHE V3.1 — UX MAÎTRE DU JEU
   ========================================================= */
.v31-setup-stack{display:grid;gap:14px;margin:18px 0 16px}
.v31-step{border:1px solid rgba(241,230,204,.15);background:rgba(0,0,0,.17);padding:15px 16px 4px;box-shadow:inset 0 0 35px rgba(0,0,0,.2)}
.v31-step-head{display:flex;gap:12px;align-items:center;margin-bottom:2px}
.v31-step-num{width:38px;height:38px;flex:0 0 38px;border:2px solid rgba(241,230,204,.65);border-radius:50%;display:flex;align-items:center;justify-content:center;font:900 21px var(--font-display);color:var(--ink)}
.v31-step-head strong{display:block;font:900 20px var(--font-display);letter-spacing:.045em;color:var(--ink)}
.v31-step-head small{display:block;margin-top:2px;color:#aaa08f;font-size:13px;line-height:1.25}
.v31-step .v3-config-grid{margin:13px 0 12px}
.v31-primary-field{border-color:rgba(241,230,204,.27);background:rgba(241,230,204,.035)}
.v3-advanced-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding-left:20px;padding-right:20px;text-align:left}
.v3-advanced-toggle small{font:900 11px var(--font-body);letter-spacing:.1em;opacity:.7}
.v3-advanced-toggle.is-open{box-shadow:inset 0 -3px 0 rgba(241,230,204,.35)}
.v3-advanced{border:1px dashed rgba(241,230,204,.25);padding:18px;margin-top:-2px;background:rgba(0,0,0,.15)}
.v31-search{margin:10px 0 6px;max-width:520px}
.v31-create-btn{width:100%;font-size:clamp(27px,3vw,38px);margin-top:4px}
.v3-preview{border-left-width:5px;padding:14px 16px}
.v31-preview-main{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.v31-preview-main strong{font:900 26px var(--font-display);letter-spacing:.02em}
.v31-preview-main span{color:#c4bbaa;font-weight:700}
.v31-preview-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.v31-preview-tags span{border:1px solid rgba(241,230,204,.24);padding:4px 7px;font-size:10px;font-weight:900;letter-spacing:.08em;background:rgba(0,0,0,.22)}
.v31-preview-alert{margin-top:10px;padding-top:9px;border-top:1px dashed rgba(217,119,6,.4);color:#e7bd7a}
@media(max-width:780px){
  .v31-step{padding:13px 11px 3px}
  .v31-step-head strong{font-size:18px}
  .v31-step-head small{font-size:12px}
  .v31-preview-main strong{font-size:22px}
}


/* =========================================================
   MAUVAISE PIOCHE V3.1.1 — PASSE GRAPHIQUE MAÎTRE DU JEU
   Moteur inchangé : uniquement hiérarchie, lisibilité et DA.
   ========================================================= */

/* La configuration devient un vrai pupitre de jeu, pas un formulaire. */
.v311-create-shell{
  position:relative;
  overflow:hidden;
  padding:22px 24px 28px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.018),rgba(0,0,0,.15)),
    rgba(3,3,3,.78);
  border-top:2px solid rgba(241,230,204,.68);
  border-bottom:2px solid rgba(241,230,204,.28);
  box-shadow:
    inset 0 0 0 1px rgba(241,230,204,.05),
    inset 0 -50px 90px rgba(0,0,0,.34);
}
.v311-create-shell:before{
  content:"";
  position:absolute;
  inset:10px;
  pointer-events:none;
  border:1px solid rgba(241,230,204,.10);
  clip-path:polygon(0 0,100% 0,100% 92%,98% 92%,98% 100%,4% 100%,4% 98%,0 98%);
}
.v311-create-shell>.rule-section-title,
.v311-create-shell>.intro-title,
.v311-create-shell>.v31-setup-stack,
.v311-create-shell>.v3-advanced-toggle,
.v311-create-shell>.v3-advanced,
.v311-create-shell>.v3-preview,
.v311-create-shell>.v31-create-btn{position:relative;z-index:1}

.v311-create-shell>.intro-title{
  max-width:850px;
  margin:0 0 23px;
  font-size:clamp(38px,4.6vw,58px);
  line-height:.9;
}
.v311-create-shell>.rule-section-title{margin-bottom:12px}

/* 3 étapes : vraie hiérarchie visuelle et rythme vertical plus court. */
.v31-setup-stack{gap:12px;margin:12px 0 18px}
.v31-step{
  position:relative;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(241,230,204,.22);
  background:rgba(8,8,7,.76);
  box-shadow:inset 0 0 40px rgba(0,0,0,.32);
}
.v31-step:after{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;width:5px;
  background:rgba(241,230,204,.72);
  opacity:.78;
}
.v31-step-head{
  min-height:64px;
  margin:0;
  padding:11px 15px 11px 13px;
  gap:13px;
  border-bottom:1px solid rgba(241,230,204,.15);
  background:rgba(241,230,204,.035);
}
.v31-step-num{
  width:42px;height:42px;flex-basis:42px;
  border:2px solid var(--ink);
  color:#050504;
  background:var(--ink);
  box-shadow:0 0 0 3px #050504,0 0 0 4px rgba(241,230,204,.30);
}
.v31-step-head strong{
  font-size:22px;
  line-height:.95;
  letter-spacing:.025em;
}
.v31-step-head small{
  margin-top:5px;
  color:#bdb4a3;
  font-size:13px;
  max-width:680px;
}
.v31-step .v3-config-grid{
  margin:0;
  padding:14px 16px 15px;
  gap:12px;
}

/* Champs : contrastés, cliquables, sans look back-office. */
.v3-field,.v31-primary-field{
  position:relative;
  padding:12px 13px 13px;
  border:1px solid rgba(241,230,204,.16);
  background:rgba(255,255,255,.018);
  transition:border-color .15s ease,background .15s ease,transform .15s ease;
}
.v3-field:hover{
  border-color:rgba(241,230,204,.37);
  background:rgba(241,230,204,.032);
}
.v3-field label{
  margin-bottom:8px;
  font-family:var(--font-body);
  font-size:11px;
  letter-spacing:.13em;
  color:#b9af9e;
}
.v3-field .input,
.v31-search{
  width:100%;
  min-height:50px;
  padding:9px 42px 9px 12px;
  border:1px solid rgba(241,230,204,.52);
  border-radius:0;
  background:#080807;
  color:var(--ink);
  font:900 18px var(--font-body);
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.6);
}
.v3-field select.input{
  appearance:none;
  -webkit-appearance:none;
  background-image:
    linear-gradient(45deg,transparent 50%,#e8ddc5 50%),
    linear-gradient(135deg,#e8ddc5 50%,transparent 50%);
  background-position:
    calc(100% - 18px) 21px,
    calc(100% - 12px) 21px;
  background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;
}
.v3-field .input:focus,.v31-search:focus{
  outline:none;
  border-color:var(--ink);
  box-shadow:0 0 0 2px #050504,0 0 0 3px rgba(241,230,204,.42);
}
.v3-field small{
  margin-top:8px;
  min-height:18px;
  font-size:12px;
  color:#9f9687;
}

/* Bouton avancé : sobre, secondaire et clair. */
.v3-advanced-toggle{
  min-height:54px;
  margin:2px 0 0;
  padding:10px 16px;
  clip-path:none;
  border:1px dashed rgba(241,230,204,.35);
  background:#080807;
  color:var(--ink);
  font-size:19px;
}
.v3-advanced-toggle:hover{background:#0e0d0b}
.v3-advanced-toggle small{
  padding:4px 7px;
  border:1px solid rgba(241,230,204,.2);
  color:#c7bdad;
}
.v3-advanced-toggle.is-open{
  border-style:solid;
  box-shadow:none;
  background:rgba(241,230,204,.045);
}
.v3-advanced{
  margin:8px 0 0;
  padding:17px 18px 18px;
  border:1px solid rgba(241,230,204,.20);
  background:rgba(0,0,0,.28);
}
.v3-subtitle{
  margin:13px 0 5px;
  font:900 20px var(--font-display);
  letter-spacing:.035em;
}
.v3-subtitle:first-child{margin-top:0}
.v3-actions-inline{margin:9px 0 11px}
.mini-btn{
  min-height:34px;
  padding:7px 10px;
  border:1px solid rgba(241,230,204,.25);
  font:900 11px var(--font-body);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.mini-btn:hover{border-color:rgba(241,230,204,.65);background:#171512}

/* Inventaire / exclusions : petites tuiles compactes. */
.v3-check-grid,.v3-exercise-grid{
  gap:7px;
  margin:8px 0 17px;
}
.v3-check{
  min-height:44px;
  align-items:center;
  padding:8px 9px;
  border:1px solid rgba(241,230,204,.13);
  background:#070706;
}
.v3-check:hover{border-color:rgba(241,230,204,.35)}
.v3-check input{
  width:17px;height:17px;flex:0 0 17px;
  margin:0;
  accent-color:#d8ccb2;
}
.v3-check span{font-size:13px;line-height:1.15}

/* Résumé : devient la zone de confirmation avant lancement. */
.v3-preview{
  position:relative;
  margin:14px 0 11px;
  padding:14px 16px 14px 19px;
  border:1px solid rgba(241,230,204,.21);
  border-left:5px solid rgba(241,230,204,.78);
  background:#080807;
  box-shadow:inset 0 0 30px rgba(0,0,0,.32);
}
.v3-preview.warning{
  border-color:rgba(217,119,6,.42);
  border-left:5px solid #d97706;
  background:rgba(217,119,6,.055);
}
.v31-preview-main{gap:8px}
.v31-preview-main strong{
  font-size:28px;
  line-height:.9;
  color:var(--ink);
}
.v31-preview-main span{font-size:13px;color:#b8af9f}
.v31-preview-tags{margin-top:9px;gap:5px}
.v31-preview-tags span{
  padding:4px 7px;
  background:#0d0c0a;
  border-color:rgba(241,230,204,.16);
  font-size:9px;
  color:#c8bead;
}

/* CTA unique et brutal. */
.v31-create-btn{
  min-height:78px;
  margin-top:0;
  border:0;
  background:var(--ink);
  color:#050504;
  font-size:clamp(30px,3.4vw,43px);
  letter-spacing:-.01em;
  clip-path:polygon(0 5%,98% 0,100% 82%,96% 92%,3% 100%,0 88%);
  box-shadow:inset 0 -8px 0 rgba(0,0,0,.10);
}
.v31-create-btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.v31-create-btn:active{transform:translateY(1px)}

/* Lobby : même langage visuel après création. */
.dashboard-top .rule-section,
#lobbyBox>.rule-section{
  background:rgba(4,4,3,.77);
}
.qr-inline-zone{
  background:#080807;
  border-color:rgba(241,230,204,.16);
}
.qr-inline-title{letter-spacing:.025em}
.v3-game-summary span{
  min-height:60px;
  background:#080807;
  border-color:rgba(241,230,204,.16);
}
.v3-game-summary b{color:#a9a08f}

/* Desktop : plus de largeur utile sans transformer l’écran en affiche. */
@media(min-width:1050px){
  .v311-create-shell{padding-left:28px;padding-right:28px}
  .v31-step .v3-config-grid{padding-left:18px;padding-right:18px}
}

/* Mobile : empilement net et gros targets tactiles. */
@media(max-width:780px){
  .v311-create-shell{padding:15px 12px 20px}
  .v311-create-shell>.intro-title{font-size:38px;margin-bottom:17px}
  .v31-step-head{align-items:flex-start;min-height:0;padding:11px 10px}
  .v31-step-num{width:36px;height:36px;flex-basis:36px;font-size:19px}
  .v31-step-head strong{font-size:19px}
  .v31-step .v3-config-grid{padding:10px}
  .v3-field .input{font-size:17px}
  .v3-advanced{padding:13px 10px}
  .v3-advanced-toggle{font-size:17px}
  .v31-create-btn{min-height:70px;font-size:31px}
}


/* =========================================================
   V3.2 — Ajustement titre + activation du mode Chaos
   ========================================================= */
.v32-setup-title{
  max-width:760px !important;
  font-size:clamp(31px,3.45vw,45px) !important;
  line-height:.94 !important;
  margin-bottom:20px !important;
}
.v32-setup-title span{
  display:inline;
  opacity:.78;
  font-size:.82em;
}
#modeHelp{
  min-height:32px;
  line-height:1.25;
}
#modeSelect option[value="chaos"]{
  font-weight:900;
}
@media(max-width:780px){
  .v32-setup-title{
    font-size:31px !important;
    max-width:620px !important;
  }
  .v32-setup-title span{font-size:.8em}
}


/* =========================================================
   MAUVAISE PIOCHE V3.5 — CONSOLIDATION VISUELLE GLOBALE
   Aucun changement moteur.
   ========================================================= */

:root{
  --v35-panel:#080807;
  --v35-panel-2:#0d0c0a;
  --v35-line:rgba(241,230,204,.18);
  --v35-line-strong:rgba(241,230,204,.38);
}

/* Plus de respiration générale, moins d'effet "affiche géante". */
.rulebook-shell{
  max-width:1180px;
}
.rulebook-brand{
  padding-top:18px;
  padding-bottom:16px;
}
.brand-big{
  transform:none;
}
.brand-big span{
  line-height:.79;
}
.page-brush-head{
  min-height:58px;
}
.rule-section{
  border-color:var(--v35-line);
}

/* Configuration hôte */
.v35-setup-kicker,
.v35-review-label{
  margin:0 0 8px;
  font:900 10px var(--font-body);
  letter-spacing:.18em;
  color:#a99f8f;
}
.v32-setup-title{
  display:flex;
  flex-wrap:wrap;
  gap:0 .22em;
  max-width:690px !important;
  font-size:clamp(28px,3vw,39px) !important;
  line-height:.92 !important;
  margin:0 0 18px !important;
}
.v32-setup-title span{
  display:inline !important;
  font-size:1em !important;
  opacity:.62 !important;
}
.v31-step{
  border-color:var(--v35-line);
  background:linear-gradient(180deg,rgba(255,255,255,.015),rgba(0,0,0,.06)),var(--v35-panel);
}
.v31-step-head{
  min-height:58px;
}
.v31-step-head strong{
  font-size:20px;
}
.v31-step-num{
  width:38px;height:38px;flex-basis:38px;
  font-size:19px;
}
.v3-field{
  background:rgba(255,255,255,.012);
}
.v3-field label{
  color:#c5baa8;
}
.v3-field .input{
  min-height:48px;
  font-size:17px;
  background:#070706;
}
.v35-mode-personality{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid rgba(241,230,204,.10);
}
.v35-mode-personality strong{
  flex:0 0 auto;
  padding:3px 6px;
  border:1px solid rgba(241,230,204,.26);
  font:900 9px var(--font-body);
  letter-spacing:.12em;
}
.v35-mode-personality span{
  font-size:11px;
  color:#a99f8f;
}
.v3-advanced-toggle{
  min-height:50px;
  font-size:17px;
  letter-spacing:.025em;
}
.v3-preview{
  margin-top:0;
}
.v31-preview-main strong{
  font-size:25px;
}
.v31-create-btn{
  min-height:70px;
  font-size:clamp(27px,3vw,37px);
}

/* Lobby maître : davantage dashboard, moins empilement de cadres. */
.dashboard-top{
  gap:12px;
}
.dashboard-top .rule-section,
#lobbyBox>.rule-section{
  border:1px solid var(--v35-line);
  background:var(--v35-panel);
}
.game-code{
  letter-spacing:.14em;
}
.host-team{
  border-color:var(--v35-line);
  background:var(--v35-panel);
}
.host-team-top{
  border-bottom-color:rgba(241,230,204,.11);
}
.active-card{
  box-shadow:none;
}
.neutral-active{
  opacity:.78;
}

/* Joueur : les informations essentielles dominent, les états secondaires reculent. */
.v35-player-intro{
  margin:-2px 0 15px;
  color:#a99f8f;
  font-size:13px;
}
.score-strip{
  gap:10px;
}
.score-block,.chrono-block{
  border-color:var(--v35-line);
  background:var(--v35-panel);
}
.score.huge{
  font-size:clamp(48px,7vw,82px);
  line-height:.85;
}
.timer{
  font-size:clamp(43px,6vw,72px);
}
#phaseText{
  font-size:10px;
  letter-spacing:.13em;
  opacity:.62;
}
.joker-rack{
  border-color:var(--v35-line);
  background:var(--v35-panel);
}
.joker-rack-title{
  align-items:center;
  gap:7px;
}
.joker-rack-title small{
  margin-left:auto;
  font:800 9px var(--font-body);
  letter-spacing:.08em;
  color:#8f877a;
  text-transform:uppercase;
}
.joker-item{
  background:var(--v35-panel-2);
  border-color:var(--v35-line);
}
.play-card,
.card-stage{
  border-color:var(--v35-line);
}
.card-title{
  line-height:.9;
}

/* Popups : toujours visibles, mais sans surdimensionnement gratuit. */
.interaction-sheet h2,
.karma-sheet h2{
  font-size:clamp(35px,5vw,62px);
  line-height:.88;
}
.popup-family{
  letter-spacing:.16em;
}

/* Responsive */
@media(max-width:780px){
  .rulebook-brand{padding-top:13px;padding-bottom:11px}
  .v32-setup-title{
    font-size:28px !important;
    max-width:100% !important;
  }
  .v31-step-head strong{font-size:18px}
  .v31-preview-main strong{font-size:22px}
  .v31-create-btn{font-size:29px}
  .joker-rack-title small{display:none}
  .score-strip{gap:7px}
}


/* =========================================================
   V3.5.1 — FINITION UI + CLASSEMENT JOUEUR
   ========================================================= */
body{background-color:#090908}
.rulebook-shell{background:linear-gradient(180deg,rgba(255,255,255,.012),rgba(0,0,0,.03)),#0b0b0a}
.v311-create-shell,.rule-section,.dashboard-top .rule-section,#lobbyBox>.rule-section,.host-team,.score-block,.chrono-block,.joker-rack{background:#12110f}
.v31-step,.v3-preview{background:#151411}
.v3-field,.v3-advanced{background:#181713}
.v3-field .input,.v31-search{background:#090908}
.v31-step,.v3-field,.v3-preview,.rule-section{border-color:rgba(241,230,204,.27)}

.v351-mode-field{grid-column:1/-1}
.v351-mode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.v351-mode-card{
  min-height:82px;padding:12px 11px;text-align:left;color:#cfc3ae;
  border:1px solid rgba(241,230,204,.22);background:#0a0a09;cursor:pointer;transition:.14s ease
}
.v351-mode-card strong{display:block;font:900 20px var(--font-display);line-height:.9;letter-spacing:.02em}
.v351-mode-card span{display:block;margin-top:8px;font:700 11px var(--font-body);line-height:1.2;color:#8f8779}
.v351-mode-card:hover{border-color:rgba(241,230,204,.48);background:#11100e}
.v351-mode-card.is-active{color:#080807;background:var(--ink);border-color:var(--ink);box-shadow:inset 0 -5px 0 rgba(0,0,0,.12)}
.v351-mode-card.is-active span{color:#3b372f}

.v351-live-ranking{margin:10px 0 12px;padding:12px;border:1px solid rgba(241,230,204,.22);background:#12110f}
.v351-ranking-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:9px;border-bottom:1px solid rgba(241,230,204,.12)}
.v351-ranking-head strong{display:block;margin-top:3px;font:900 20px var(--font-display);line-height:.9}
.v351-ranking-head small{color:#837b6e;font-size:10px;text-align:right}
.v351-ranking-list{display:grid;gap:5px;margin-top:8px}
.v351-rank-row{display:grid;grid-template-columns:30px 1fr auto;align-items:center;min-height:38px;gap:8px;padding:5px 8px;border:1px solid rgba(241,230,204,.11);background:#0a0a09}
.v351-rank-row.mine{border-color:rgba(241,230,204,.38);background:#191713}
.v351-rank-row.leader{border-color:rgba(205,91,57,.44)}
.v351-rank-pos{font:900 18px var(--font-display);color:#8f8678}
.v351-rank-row strong{font-size:13px}
.v351-rank-row strong em{margin-left:5px;padding:2px 4px;border:1px solid rgba(241,230,204,.26);font:900 8px var(--font-body);letter-spacing:.09em;font-style:normal}
.v351-rank-score{font:900 15px var(--font-body);white-space:nowrap}

@media(max-width:800px){
  .v351-mode-grid{grid-template-columns:1fr 1fr}
  .v351-mode-card{min-height:76px}
  .v351-mode-card strong{font-size:18px}
  .v351-ranking-head small{display:none}
}


/* V3.5.2 — classement : identité par la ligne, sans badge "TOI". */
.v351-rank-row.mine{
  position:relative;
  padding-left:11px;
  border-color:rgba(241,230,204,.48);
  background:#1d1a15;
}
.v351-rank-row.mine:before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:3px;
  background:rgba(241,230,204,.72);
}


/* =========================================================
   V3.6 — JOURNAL DE JEU & STATISTIQUES
   ========================================================= */
.v36-head-links{display:flex;gap:12px;align-items:center}
.v36-structure-field{grid-column:1/-1}
.v36-report{margin-top:14px}
.v36-report-kicker{margin:-2px 0 13px;font:800 11px var(--font-body);letter-spacing:.09em;color:#9a9182}
.v36-metric-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}
.v36-metric{padding:12px 8px;border:1px solid rgba(241,230,204,.17);background:#0c0c0a;text-align:center}
.v36-metric strong{display:block;font:900 28px var(--font-display);line-height:.9}
.v36-metric span{display:block;margin-top:6px;font:800 8px var(--font-body);letter-spacing:.08em;color:#8f8779}
.v36-report-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.v36-report-columns>div{padding:12px;border:1px solid rgba(241,230,204,.15);background:#0c0c0a}
.v36-report-columns h3{margin:0 0 8px;font:900 16px var(--font-display)}
.v36-report-row{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid rgba(241,230,204,.09)}
.v36-report-row:last-child{border-bottom:0}
.v36-report-row>span{font-weight:900;white-space:nowrap}
.v36-stats-link{display:inline-flex;margin-top:12px;text-decoration:none}
@media(max-width:850px){
  .v36-metric-grid{grid-template-columns:repeat(3,1fr)}
  .v36-report-columns{grid-template-columns:1fr}
}
@media(max-width:520px){.v36-metric-grid{grid-template-columns:1fr 1fr}}

/* ============================================================
   V4.0 — CARTE DE JEU : DA PHYSIQUE VALIDÉE
   Objectif : faire de l'écran joueur le prolongement direct
   des cartes imprimées, sans toucher au moteur V3.6.
   ============================================================ */

.game-card{
  --family:#777;
  width:min(100%,780px);
  min-height:650px;
  margin:18px auto 20px;
  padding:22px 25px 17px;
  overflow:hidden;
  border:3px solid rgba(232,225,215,.88);
  border-radius:22px;
  background:#050504;
  box-shadow:
    0 0 0 4px #050504,
    0 0 0 6px rgba(200,185,170,.52),
    inset 0 0 0 7px #050504,
    inset 0 0 0 8px rgba(200,185,170,.25),
    inset 0 0 80px rgba(0,0,0,.76);
}
.game-card:before{
  background:
    linear-gradient(rgba(0,0,0,.34),rgba(0,0,0,.34)),
    url('assets/rulebook-bg.jpg') center/780px;
  opacity:.92;
  mix-blend-mode:normal;
}
.game-card:after{
  content:"";position:absolute;inset:11px;border:1px dashed rgba(232,225,215,.44);
  border-radius:13px;pointer-events:none;z-index:1;
}
.game-card.blue{--family:var(--blue)}
.game-card.green{--family:var(--green)}
.game-card.red{--family:var(--red)}
.game-card.orange{--family:var(--orange)}

.mp-card-top{position:relative;z-index:3;display:flex;justify-content:center;margin:0 auto 24px;width:88%}
.family-label{
  position:relative;isolation:isolate;
  display:flex;justify-content:center;align-items:center;
  width:100%;min-height:68px;margin:0;padding:8px 30px;
  background:transparent;color:#050504;
  font-family:var(--font-display)!important;font-size:clamp(34px,4.1vw,48px)!important;
  font-style:italic;font-weight:900;line-height:.94;letter-spacing:-.012em;text-align:center;
  clip-path:none!important;
}
.family-label:before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:var(--family);
  -webkit-mask-image:url('assets/brush-mask-alpha.png');mask-image:url('assets/brush-mask-alpha.png');
  -webkit-mask-size:100% 100%;mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
}
.family-label>span{position:relative;z-index:1;display:block}

.mp-card-content{
  position:relative;z-index:3;
  display:grid;grid-template-columns:minmax(165px,31%) 1fr;
  gap:24px;align-items:center;flex:1;
  padding:2px 15px 0;
}
.mp-card-visual{
  min-height:250px;display:flex;align-items:center;justify-content:center;
  padding:6px 0 8px;
}
.mp-card-visual img{
  display:block;width:100%;max-width:220px;max-height:255px;object-fit:contain;
  filter:contrast(1.05) saturate(.95) drop-shadow(0 2px 0 rgba(0,0,0,.28));
}
.card-body{padding:0!important;min-width:0}
.card-title{
  margin:0 0 11px!important;
  font-size:clamp(43px,4.8vw,68px)!important;line-height:.94!important;
  letter-spacing:-.025em!important;text-wrap:balance;
  background:url('assets/cream-distress.jpg') center/300px 300px!important;
  -webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;
}
.card-effect{
  color:var(--ink)!important;
  font-size:clamp(23px,2.7vw,34px)!important;line-height:1.02!important;
  font-weight:900!important;margin:0!important;max-width:none!important;
}
.game-card.blue .card-effect{
  font-family:var(--font-display)!important;text-transform:uppercase;letter-spacing:-.025em;
}
.game-card.green .card-effect,.game-card.red .card-effect,.game-card.orange .card-effect{
  font-family:var(--font-body)!important;text-transform:none;letter-spacing:0;line-height:1.13!important;
}
.volume-notice{
  margin-top:11px!important;padding:6px 0!important;border:0!important;
  color:var(--family);font-size:11px!important;
}
.mp-card-rule{
  height:2px;margin:13px 0 7px;background:linear-gradient(90deg,var(--family),var(--family) 78%,transparent);
  opacity:.95;
}
.card-points{min-height:58px}
.card-points span{
  display:inline-block!important;margin:0!important;padding:0!important;background:none!important;
  clip-path:none!important;color:var(--family)!important;
  font-family:var(--font-display)!important;font-size:clamp(39px,5.2vw,67px)!important;
  line-height:.9!important;letter-spacing:-.035em;text-transform:uppercase;
}
.card-acid{
  position:relative;z-index:3;
  width:86%;margin:18px auto 3px!important;padding:14px 12px 0!important;
  border-top:0!important;text-align:center;color:var(--ink)!important;
  font-family:var(--font-body)!important;font-size:clamp(17px,2vw,22px)!important;
  line-height:1.16!important;font-style:normal!important;font-weight:900!important;
}
.mp-card-meta{
  position:relative;z-index:3;display:flex;justify-content:space-between;align-items:end;
  min-height:25px;margin-top:8px;padding:0 6px;
  color:var(--ink);font:900 14px var(--font-display);letter-spacing:.02em;text-transform:uppercase;
}

/* états sans carte : on garde l'écran simple et un seul point focal */
.neutral-state{min-height:430px;justify-content:center;padding:38px 32px}
.neutral-state .mp-card-top,.neutral-state .mp-card-visual,.neutral-state .mp-card-rule,.neutral-state .mp-card-meta{display:none!important}
.neutral-state .mp-card-content{display:block;padding:0 24px;text-align:center;flex:0}
.neutral-state .card-title{font-size:clamp(45px,6vw,74px)!important;margin-bottom:18px!important}
.neutral-state .card-effect{font-family:var(--font-body)!important;text-transform:none!important;font-size:clamp(23px,2.6vw,31px)!important;line-height:1.15!important}
.neutral-state .card-acid{margin-top:45px!important;width:80%;color:var(--ink2)!important;font-size:17px!important}

/* mini-carte maître du jeu : même langage visuel sans alourdir le dashboard */
.active-card{
  position:relative;overflow:hidden;margin-top:12px;padding:12px 13px 12px 18px;
  border:1px solid rgba(200,185,170,.35);border-radius:9px;border-left:0!important;
  background:#050504;box-shadow:inset 0 0 0 3px #050504,inset 0 0 0 4px rgba(200,185,170,.15);
}
.active-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:#777}
.active-card.blue:before{background:var(--blue)}.active-card.green:before{background:var(--green)}.active-card.red:before{background:var(--red)}.active-card.orange:before{background:var(--orange)}
.active-card span{color:var(--ink2)}
.active-card strong{font-size:23px;line-height:.9;color:var(--ink)}

/* V4.0.1 — lisibilité écran ordinateur / tablette paysage.
   Le mobile validé reste inchangé. */
@media(min-width:561px) and (max-width:1050px){
  .game-card{padding-left:22px;padding-right:22px}
  .mp-card-top{width:90%;margin-bottom:20px}
  .family-label{min-height:62px!important;font-size:36px!important;line-height:1!important;letter-spacing:0!important}
  .mp-card-content{grid-template-columns:minmax(145px,28%) 1fr;gap:20px;padding-left:10px;padding-right:10px}
  .mp-card-visual{min-height:220px}
  .mp-card-visual img{max-height:225px;max-width:205px}
  .card-title{font-size:clamp(39px,5.1vw,50px)!important;line-height:.97!important;letter-spacing:-.015em!important;margin-bottom:12px!important}
  .card-effect{font-size:clamp(21px,2.8vw,27px)!important;line-height:1.08!important}
  .card-points span{font-size:clamp(37px,5vw,52px)!important}
}

@media(max-width:900px){
  .game-card{min-height:590px;padding:18px 18px 14px;border-radius:18px}
  .card-acid{width:94%;font-size:18px!important;margin-top:13px!important}
}
@media(max-width:560px){
  .game-card{min-height:535px;padding:15px 13px 12px;border-width:2px;border-radius:15px}
  .game-card:after{inset:8px;border-radius:10px}
  .mp-card-top{width:96%;margin-bottom:14px}
  .family-label{min-height:54px;padding:6px 20px;font-size:36px!important}
  .mp-card-content{grid-template-columns:34% 1fr;gap:10px;padding:0 5px}
  .mp-card-visual{min-height:190px;padding:0}
  .mp-card-visual img{max-height:195px}
  .card-title{font-size:clamp(33px,9.2vw,48px)!important;line-height:.83!important;margin-bottom:8px!important}
  .card-effect{font-size:clamp(18px,5.1vw,24px)!important}
  .mp-card-rule{margin-top:10px}
  .card-points{min-height:45px}
  .card-points span{font-size:clamp(31px,9vw,45px)!important}
  .card-acid{width:96%;font-size:16px!important;line-height:1.12!important;margin-top:11px!important;padding-top:9px!important}
  .mp-card-meta{font-size:11px;margin-top:5px}
  .neutral-state{min-height:400px}
  .neutral-state .mp-card-content{padding:0 6px}
  .neutral-state .card-title{font-size:43px!important}
}


/* ============================================================
   V4.1.6 — RETOURNEMENT PHYSIQUE UNIQUE
   Le dos est une vraie face cachée, pas un écran intermédiaire.
   Le mouvement de la carte entière est piloté en JS via Web Animations
   pour ne pas être interrompu par le polling.
   ============================================================ */
.game-card{transform-style:preserve-3d;backface-visibility:hidden;will-change:transform,filter}
.card-reveal-cover{
  position:absolute;inset:0;z-index:40;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  border-radius:19px;pointer-events:none;
  background:#050504 url('assets/rulebook-bg.jpg') center/780px;
  opacity:1;
}
.card-reveal-cover:before{
  content:"";position:absolute;inset:11px;border:1px dashed rgba(232,225,215,.46);
  border-radius:13px;box-shadow:inset 0 0 0 6px #050504,inset 0 0 0 7px rgba(200,185,170,.18);
}
.card-reveal-cover:after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 50% 44%,rgba(232,225,215,.06),transparent 43%);
}
.card-reveal-back{position:relative;z-index:2;width:78%;text-align:center}
.card-reveal-brand{
  color:var(--ink);font:900 clamp(58px,8.2vw,100px)/.72 var(--font-display);
  letter-spacing:-.045em;text-transform:uppercase;
  background:url('assets/cream-distress.jpg') center/320px 320px;
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.card-reveal-accent{
  width:min(300px,60%);height:3px;margin:30px auto 0;
  background:rgba(232,225,215,.72);box-shadow:none;
}
.card-reveal-tag{display:none!important}
/* Les enfants de la carte restent fixes : c'est la carte entière qui tourne. */
.game-card.reveal,.game-card.reveal *{animation:none!important;filter:none!important}
@media(max-width:560px){
  .card-reveal-cover{border-radius:13px}
  .card-reveal-cover:before{inset:8px;border-radius:10px}
  .card-reveal-brand{font-size:clamp(54px,17vw,78px)}
  .card-reveal-accent{margin-top:24px}
}
@media(prefers-reduced-motion:reduce){
  .game-card{will-change:auto}
}

/* =========================================================
   V4.2.0 — PLAYER UI CONSOLIDATION
   La carte reste la star. HUD, jokers et classement deviennent
   des modules secondaires cohérents avec la DA physique.
   ========================================================= */

/* HUD de partie : plus compact, plus lisible, sans concurrencer la carte */
#playBox .score-strip{
  position:relative;
  grid-template-columns:minmax(0,1.35fr) minmax(180px,.65fr);
  gap:10px;
  margin-bottom:10px;
}
#playBox .score-block,#playBox .chrono-block{
  position:relative;
  overflow:hidden;
  min-height:112px;
  padding:14px 18px;
  background:#0b0a09;
  border:1px solid rgba(200,185,170,.28);
}
#playBox .score-block:after,#playBox .chrono-block:after{
  content:"";position:absolute;left:14px;right:42%;bottom:7px;height:2px;
  background:rgba(200,185,170,.24);transform:rotate(-.5deg)
}
#playBox .score-block>strong{
  display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font:900 clamp(24px,3vw,38px)/.92 var(--font-display);color:var(--ink);text-transform:uppercase
}
#playBox .score.huge{font-size:clamp(48px,6.6vw,76px);margin-top:7px}
#playBox .chrono-block{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;text-align:right}
#playBox .chrono-block .timer{font-size:clamp(44px,5.8vw,68px);line-height:.86}
#playBox #phaseText{margin-top:7px;font-weight:900;color:var(--ink2)}

/* Effets temporaires : n'existent visuellement que lorsqu'ils existent réellement */
.v420-statusbar{margin:0 0 10px!important;padding:8px 10px!important;border-left:4px solid var(--green);background:#0c0b09}
.v420-statusbar .status{background:transparent;border:0;border-right:1px solid rgba(200,185,170,.18);padding:3px 9px 3px 0;color:var(--ink)}

/* La carte est le premier gros objet visuel de la page */
#playBox .game-card{margin-top:0}

/* Jokers = vraies mini-cartes vertes, uniquement lorsqu'un joker existe */
.v420-joker-rack{margin:12px 0 10px;padding:13px 14px 14px;border:1px solid rgba(106,178,36,.36)!important;background:#0b0b08!important}
.v420-joker-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(106,178,36,.22)}
.v420-joker-head>div{min-width:0}.v420-joker-head strong{display:block;margin-top:2px;font:900 24px/.9 var(--font-display);color:var(--green);text-transform:uppercase}
.v420-joker-head small{margin:0!important;color:#7e776b!important;font-size:9px!important;white-space:nowrap}
.v420-joker-list{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px!important}
.v420-mini-card{position:relative;display:grid!important;grid-template-columns:58px 1fr;grid-template-rows:auto auto;gap:7px 10px;align-items:center;min-height:118px!important;padding:10px!important;background:#080807!important;border:1px solid rgba(106,178,36,.34)!important;border-left:5px solid var(--green)!important;border-radius:8px;overflow:hidden}
.v420-mini-card:after{content:"";position:absolute;inset:5px;border:1px dashed rgba(200,185,170,.14);pointer-events:none}
.v420-joker-icon{grid-row:1/3;width:52px!important;height:52px!important;display:flex;align-items:center;justify-content:center;background:rgba(106,178,36,.08);border:1px solid rgba(106,178,36,.18)}
.v420-joker-icon img{width:44px;height:44px;object-fit:contain;filter:none}
.v420-mini-card .joker-copy{min-width:0;position:relative;z-index:1}
.v420-mini-card .joker-copy strong{font-size:18px!important;line-height:.9!important;color:var(--ink)!important}
.v420-mini-card .joker-copy span{display:block;margin-top:5px;font-size:10px;line-height:1.2;color:#999084}
.v420-mini-card .joker-state,.v420-mini-card .joker-use-btn{position:relative;z-index:2;grid-column:2;justify-self:start;margin:0;padding:5px 8px;border:1px solid rgba(106,178,36,.32);background:#0e1109;color:var(--green);font:900 9px var(--font-body);letter-spacing:.08em}
.v420-mini-card .joker-use-btn{cursor:pointer;background:var(--green);color:#070805;border-color:var(--green)}

/* Classement : secondaire, mais lisible et tactique */
.v420-live-ranking{margin:16px 0 0!important;padding:13px!important;background:#0b0a09!important;border-color:rgba(200,185,170,.20)!important}
.v420-ranking-head{padding-bottom:9px!important}.v420-ranking-head strong{font-size:23px!important;color:var(--ink)}
.v420-ranking-list{gap:6px!important}
.v420-ranking-list .v351-rank-row{grid-template-columns:38px minmax(0,1fr) auto;min-height:48px;padding:7px 10px;background:#080807;border-color:rgba(200,185,170,.13)}
.v420-ranking-list .v351-rank-row.mine{background:#17140f;border-color:rgba(200,185,170,.50);box-shadow:inset 3px 0 0 rgba(200,185,170,.76)}
.v420-ranking-list .v351-rank-row.leader{border-color:rgba(200,185,170,.34)}
.v420-ranking-list .v351-rank-pos{display:flex;align-items:center;justify-content:center;width:29px;height:29px;border:1px solid rgba(200,185,170,.18);border-radius:50%;font-size:16px;color:#9b9286}
.v420-ranking-list .leader .v351-rank-pos{color:var(--ink);border-color:rgba(200,185,170,.48)}
.v420-rank-name{min-width:0}.v420-rank-name strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:900 17px/.95 var(--font-display);color:var(--ink);text-transform:uppercase}
.v420-rank-name small{display:block;margin-top:4px;font:900 8px var(--font-body);letter-spacing:.10em;color:#766f64;text-transform:uppercase}
.v420-ranking-list .leader .v420-rank-name small{color:var(--ink2)}
.v420-ranking-list .v351-rank-score{font:900 23px/.9 var(--font-display);color:var(--ink)}
.v420-ranking-list .v351-rank-score em{display:inline;margin-left:3px;font:900 8px var(--font-body);color:#81796e;font-style:normal;text-transform:uppercase}
@keyframes v420LeaderChange{0%{box-shadow:inset 0 0 0 1px rgba(200,185,170,.0)}35%{box-shadow:inset 0 0 0 2px rgba(200,185,170,.55)}100%{box-shadow:inset 0 0 0 1px rgba(200,185,170,0)}}
.v420-ranking-list .leader-change{animation:v420LeaderChange .75s ease-out}

@media(max-width:800px){
  #playBox .score-strip{grid-template-columns:1.2fr .8fr;gap:7px}
  #playBox .score-block,#playBox .chrono-block{min-height:92px;padding:11px 12px}
  #playBox .score-block>strong{font-size:23px}
  #playBox .score.huge{font-size:48px}
  #playBox .chrono-block .timer{font-size:42px}
  .v420-joker-head small,.v420-ranking-head small{display:none!important}
  .v420-joker-list{grid-template-columns:1fr!important}
  .v420-mini-card{grid-template-columns:50px 1fr;min-height:92px!important}
  .v420-joker-icon{width:45px!important;height:45px!important}.v420-joker-icon img{width:38px;height:38px}
  .v420-live-ranking{margin-top:12px!important}
  .v420-ranking-list .v351-rank-row{min-height:44px;grid-template-columns:33px minmax(0,1fr) auto;padding:6px 8px}
  .v420-rank-name strong{font-size:15px}.v420-ranking-list .v351-rank-score{font-size:20px}
}

/* =========================================================
   V4.2.1 — MAÎTRE DU JEU + FIN DE PARTIE
   Même moteur. Nouvelle hiérarchie visuelle uniquement.
   ========================================================= */

/* --- Suivi maître : plus lisible, moins "tableau admin" --- */
.v421-host-team{position:relative;overflow:hidden;padding:15px 15px 14px 48px!important;border:1px solid rgba(200,185,170,.16)!important;border-left:5px solid rgba(200,185,170,.24)!important;background:#0b0a09!important;box-shadow:none!important}
.v421-host-team.blue{border-left-color:var(--blue)!important}.v421-host-team.green{border-left-color:var(--green)!important}.v421-host-team.red{border-left-color:var(--red)!important}.v421-host-team.orange{border-left-color:var(--orange)!important}
.v421-host-team.is-leader{border-color:rgba(200,185,170,.42)!important;background:#12100d!important;box-shadow:inset 0 0 0 1px rgba(200,185,170,.10)!important}
.v421-host-team:before{display:none!important}
.v421-team-rank{position:absolute;left:11px;top:13px;width:27px;height:27px;border:1px solid rgba(200,185,170,.22);border-radius:50%;display:flex;align-items:center;justify-content:center;font:900 14px var(--font-display);color:#8b8377}
.v421-host-team.is-leader .v421-team-rank{color:var(--ink);border-color:rgba(200,185,170,.55)}
.v421-team-identity{min-width:0}.v421-team-identity strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:29px!important}.v421-team-identity small{font-size:8px!important;color:#81796e!important}
.v421-host-team.is-leader .v421-team-identity small{color:var(--ink2)!important}
.v421-host-team .score{font-size:42px!important;white-space:nowrap}
.v421-active-card{position:relative;margin:12px 0 9px;padding:10px 11px 10px 13px;background:#070706;border:1px solid rgba(200,185,170,.12);overflow:hidden}
.v421-active-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#777}
.v421-active-card.blue:before{background:var(--blue)}.v421-active-card.green:before{background:var(--green)}.v421-active-card.red:before{background:var(--red)}.v421-active-card.orange:before{background:var(--orange)}
.v421-active-family{margin-bottom:4px;font:900 8px var(--font-body);letter-spacing:.14em;color:#8d8579}
.v421-active-card strong{display:block;font:900 19px/.95 var(--font-display);text-transform:uppercase;color:var(--ink)}
.v421-active-card small{display:block;margin-top:5px;font:700 10px/1.25 var(--font-body);color:#91897d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v421-effects{display:flex;flex-wrap:wrap;gap:5px}.v421-effects span{padding:5px 7px;border:1px solid rgba(106,178,36,.25);background:#0b0d08;color:#a6c786;font:900 8px var(--font-body);letter-spacing:.07em;text-transform:uppercase}
.v421-effects.empty span{border-color:rgba(200,185,170,.10);background:transparent;color:#625d55}

/* --- Fin de partie : le bilan devient un écran de résultat, pas un dashboard --- */
.v421-ended #gameReportBox{margin-top:0!important;border-color:rgba(200,185,170,.30)!important;background:#090807!important}
.v421-ended .dashboard-top{opacity:.48;filter:saturate(.65)}
.v421-ended #gameReportBox .rule-section-title{margin-bottom:10px}
.v421-ended #gameReportBox .v36-report-kicker{display:none}
.v421-ended #gameReportMetrics{display:block!important}
.v421-final-hero{position:relative;text-align:center;padding:21px 18px 19px;margin:3px 0 12px;background:#050504;border:1px solid rgba(200,185,170,.22);overflow:hidden}
.v421-final-hero:after{content:"";position:absolute;left:10%;right:10%;bottom:7px;height:2px;background:var(--ink);opacity:.18;transform:rotate(-.35deg)}
.v421-final-kicker{font:900 9px var(--font-body);letter-spacing:.18em;color:#8a8276}
.v421-final-crown{width:48px;height:48px;margin:10px auto 9px;border:1px solid rgba(200,185,170,.35);border-radius:50%;display:flex;align-items:center;justify-content:center;font:900 24px var(--font-display);color:var(--ink)}
.v421-final-hero h2{max-width:760px;margin:0 auto;font:900 clamp(32px,5vw,58px)/.86 var(--font-display);letter-spacing:-.035em;color:var(--ink);text-transform:uppercase}
.v421-final-hero p{margin:12px 0 0;font:900 13px var(--font-body);color:#aaa093}
.v421-final-acid{display:inline-block;margin-top:13px;padding-top:9px;border-top:1px solid rgba(200,185,170,.14);font:700 11px/1.25 var(--font-body);font-style:italic;color:#80786e}
.v421-final-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0 0 12px}
.v421-stat{padding:11px 8px;background:#0d0c0a;border:1px solid rgba(200,185,170,.13);text-align:center}.v421-stat strong{display:block;font:900 28px/.9 var(--font-display);color:var(--ink)}.v421-stat span{display:block;margin-top:6px;font:900 7px var(--font-body);letter-spacing:.09em;color:#776f65}
.v421-ended .v36-report-columns{gap:9px}.v421-ended .v36-report-columns>div{background:#080706;border-color:rgba(200,185,170,.14);padding:13px}.v421-ended .v36-report-columns h3{font-size:19px;color:var(--ink);letter-spacing:-.02em}
.v421-podium-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:44px;padding:7px 5px;border-bottom:1px solid rgba(200,185,170,.09)}.v421-podium-row:last-child{border-bottom:0}.v421-podium-row b{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid rgba(200,185,170,.18);border-radius:50%;font:900 13px var(--font-display);color:#888074}.v421-podium-row strong{font:900 17px/.95 var(--font-display);text-transform:uppercase;color:var(--ink)}.v421-podium-row span{font:900 17px var(--font-display);color:#a69d90}.v421-podium-row.winner{background:#13110e}.v421-podium-row.winner b{color:var(--ink);border-color:rgba(200,185,170,.50)}.v421-podium-row.winner strong,.v421-podium-row.winner span{color:var(--ink)}
.v421-top-special{display:grid;grid-template-columns:1fr auto;gap:3px 9px;align-items:end;padding:9px 8px 10px;margin-bottom:5px;background:#11100d;border-left:4px solid var(--orange)}.v421-top-special small{grid-column:1/-1;font:900 7px var(--font-body);letter-spacing:.12em;color:#756d62}.v421-top-special strong{font:900 17px/.95 var(--font-display);text-transform:uppercase;color:var(--ink)}.v421-top-special span{font:900 22px/.9 var(--font-display);color:var(--orange)}

@media(max-width:900px){
  .v421-host-team{padding-left:45px!important}.v421-team-identity strong{font-size:25px!important}.v421-host-team .score{font-size:37px!important}.v421-active-card strong{font-size:17px}.v421-final-stats{grid-template-columns:repeat(2,1fr)}.v421-final-hero{padding:17px 12px}.v421-final-hero h2{font-size:38px}.v421-final-hero p{font-size:11px}
}

/* ===== V4.2.2 — FIN DE PARTIE / VERDICT ===== */
.v422-report-columns{align-items:stretch}
.v422-final-hero{position:relative;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 22px 30px;margin:4px 0 10px;background:linear-gradient(180deg,rgba(8,8,7,.78),rgba(2,2,2,.96)),url('assets/rulebook-bg.jpg') center/cover;border:1px solid rgba(205,190,172,.28);overflow:hidden}
.v422-final-hero:before{content:"";position:absolute;inset:10px;border:1px dashed rgba(205,190,172,.18);pointer-events:none}
.v422-final-hero:after{content:"";position:absolute;left:8%;right:8%;bottom:10px;height:3px;background:var(--ink);opacity:.16;transform:rotate(-.35deg)}
.v422-stamp{position:absolute;top:20px;right:24px;padding:8px 15px 6px;border:3px solid #b86b31;color:#c87b3b;font:900 20px/.9 var(--font-display);letter-spacing:.06em;transform:rotate(7deg);opacity:.9}
.v422-final-kicker{font:900 10px var(--font-body);letter-spacing:.22em;color:#8f857a;margin-bottom:13px}
.v422-winner-name{max-width:960px;font:900 clamp(48px,8vw,92px)/.78 var(--font-display);letter-spacing:-.045em;color:var(--ink);text-transform:uppercase;text-shadow:0 3px 0 rgba(0,0,0,.55)}
.v422-winner-score{margin-top:19px;font:900 clamp(15px,2.2vw,23px)/1 var(--font-body);letter-spacing:.04em;color:#c7b6a2;text-transform:uppercase}
.v422-final-acid{margin-top:22px;padding-top:13px;border-top:1px solid rgba(205,190,172,.18);font:700 12px/1.25 var(--font-body);font-style:italic;color:#8d8175}
.v422-final-hero.is-tie .v422-stamp{border-color:#8f857a;color:#aaa095}
.v422-scoreboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px;margin:0 0 10px}
.v422-score-card{position:relative;min-height:96px;padding:14px 15px;background:#080807;border:1px solid rgba(205,190,172,.16);display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:2px 10px;align-items:center;overflow:hidden}
.v422-score-card:after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#70685e;opacity:.55}.v422-score-card.first:after{background:#b86b31;opacity:1}
.v422-score-card>span{grid-row:1/3;font:900 22px var(--font-display);color:#8d8378}.v422-score-card>strong{font:900 22px/.9 var(--font-display);color:var(--ink);text-transform:uppercase}.v422-score-card>b{font:900 27px/.8 var(--font-display);color:var(--ink);white-space:nowrap}.v422-score-card b small{display:block;font:800 7px var(--font-body);letter-spacing:.15em;color:#756c62;text-align:right}.v422-score-card>em{font:800 8px var(--font-body);letter-spacing:.12em;color:#746b61;font-style:normal;text-transform:uppercase}.v422-score-card.first>em{color:#b86b31}
.v422-timeline{margin:9px 0 10px;padding:14px 18px 11px;background:#070706;border:1px solid rgba(205,190,172,.16)}
.v422-timeline-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.v422-timeline-head span{font:900 10px var(--font-body);letter-spacing:.16em;color:#b4a595}.v422-timeline-head small{font:800 9px var(--font-body);color:#71685f;text-transform:uppercase}
.v422-track{position:relative;height:4px;margin:0 16px;background:rgba(205,190,172,.18)}.v422-leader-mark{position:absolute;top:50%;width:31px;height:31px;border-radius:50%;background:#090908;border:2px solid #958779;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;font-style:normal}.v422-leader-mark b{font:900 10px var(--font-body);color:var(--ink);text-transform:uppercase}.v422-track-scale{display:flex;justify-content:space-between;margin-top:14px;font:800 7px var(--font-body);letter-spacing:.12em;color:#625b54}
.v422-final-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0 0 12px}.v422-final-stats>div{min-height:78px;padding:12px;background:#090908;border:1px solid rgba(205,190,172,.16);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.v422-final-stats strong{font:900 34px/.9 var(--font-display);color:var(--ink)}.v422-final-stats span{margin-top:7px;font:900 7px var(--font-body);letter-spacing:.12em;color:#756c62}
.v422-podium-row{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:11px;min-height:75px;margin-bottom:7px;padding:9px 14px 9px 9px;background:#080807;border:1px solid rgba(205,190,172,.14);position:relative;overflow:hidden}.v422-podium-row:after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#575149}.v422-podium-row.rank-1:after{background:#b86b31}.v422-place{width:38px;height:38px;border-radius:50%;border:1px solid rgba(205,190,172,.3);display:flex;align-items:center;justify-content:center;font:900 18px var(--font-display);color:#b7a895}.v422-podium-name strong{display:block;font:900 23px/.9 var(--font-display);color:var(--ink);text-transform:uppercase}.v422-podium-name small{display:block;margin-top:7px;font:800 7px var(--font-body);letter-spacing:.1em;color:#766d63}.v422-podium-score{text-align:right;font:900 30px/.8 var(--font-display);color:var(--ink)}.v422-podium-score small{display:block;margin-top:5px;font:800 7px var(--font-body);letter-spacing:.12em;color:#70675f}
.v422-memory-grid{display:grid;gap:7px}.v422-memory-card{position:relative;min-height:105px;padding:14px 52px 13px 14px;background:#080807;border:1px solid rgba(205,190,172,.14);overflow:hidden}.v422-memory-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#746b62}.v422-memory-card.orange:before{background:#c06a20}.v422-memory-card.blue:before{background:#078bcf}.v422-memory-card small{display:block;font:900 7px var(--font-body);letter-spacing:.13em;color:#756d64;margin-bottom:8px}.v422-memory-card strong{display:block;font:900 23px/.9 var(--font-display);text-transform:uppercase;color:var(--ink);max-width:92%}.v422-memory-card b{position:absolute;right:13px;top:13px;font:900 25px var(--font-display);color:#a89989}.v422-memory-card.orange b{color:#c06a20}.v422-memory-card.blue b{color:#078bcf}.v422-memory-card em{display:block;margin-top:10px;font:700 9px/1.2 var(--font-body);font-style:italic;color:#766d63}
@media(max-width:760px){.v422-stamp{position:relative;top:auto;right:auto;margin-bottom:17px;transform:rotate(4deg)}.v422-final-hero{min-height:260px;padding:24px 13px}.v422-winner-name{font-size:52px}.v422-scoreboard{grid-template-columns:1fr 1fr}.v422-final-stats{grid-template-columns:1fr 1fr}.v422-score-card{min-height:85px}.v422-timeline{padding-left:10px;padding-right:10px}.v422-podium-name strong{font-size:20px}.v422-podium-score{font-size:25px}}
@media(max-width:480px){.v422-scoreboard{grid-template-columns:1fr}.v422-winner-name{font-size:44px}.v422-final-stats strong{font-size:29px}.v422-podium-row{grid-template-columns:40px 1fr auto;padding-right:9px}.v422-memory-card strong{font-size:20px}}


/* =========================================================
   V4.2.5 — AJUSTEMENT CHRONO FINAL / LISIBILITÉ
   Aucun changement de mécanique. Mise en scène + lecture du bilan.
   ========================================================= */
.v423-final-curtain{position:fixed;inset:0;z-index:9999;background:#020202;display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:1;transition:opacity .6s ease}
.v423-final-curtain.hide{display:none!important}.v423-final-curtain.is-leaving{opacity:0;pointer-events:none}
.v423-curtain-grain{position:absolute;inset:-12%;background:url('assets/grunge.png') center/520px repeat;opacity:.12;animation:v423Grain .6s steps(2) infinite;pointer-events:none}
.v423-curtain-stage{position:relative;width:min(980px,92vw);min-height:560px;padding:44px 35px 46px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-top:1px solid rgba(205,190,172,.2);border-bottom:1px solid rgba(205,190,172,.2)}
.v423-curtain-zero{font:900 clamp(74px,14vw,168px)/.78 var(--font-display);letter-spacing:-.04em;color:rgba(242,234,223,.88);text-shadow:0 3px 0 #000;opacity:0;transform:scale(1.12)}
.v423-curtain-stop{margin-top:18px;padding:10px 18px 9px;border:1px solid rgba(199,119,52,.38);background:rgba(199,119,52,.08);font:900 clamp(24px,3.8vw,42px)/1 var(--font-body);letter-spacing:.18em;color:#d28342;text-transform:uppercase;opacity:0;transform:translateY(14px)}
.v423-curtain-rule{margin-top:16px;font:900 11px/1.2 var(--font-body);letter-spacing:.22em;color:#8a7f73;opacity:0}
.v423-curtain-verdict{margin-top:30px;padding-top:24px;width:min(760px,92%);border-top:1px solid rgba(205,190,172,.18);opacity:0;transform:translateY(18px)}
.v423-curtain-verdict small{display:block;font:900 9px var(--font-body);letter-spacing:.22em;color:#82776c}.v423-curtain-verdict strong{display:block;margin-top:12px;font:900 clamp(40px,7vw,82px)/.82 var(--font-display);text-transform:uppercase;color:var(--ink);text-shadow:0 3px 0 #000}.v423-curtain-verdict span{display:block;margin-top:15px;font:900 clamp(15px,2vw,20px)/1.15 var(--font-body);letter-spacing:.08em;color:#c4b3a0}
.v423-final-curtain.run .v423-curtain-zero{animation:v423Zero .72s .08s cubic-bezier(.2,.8,.2,1) forwards}.v423-final-curtain.run .v423-curtain-stop{animation:v423Pop .5s .75s ease-out forwards}.v423-final-curtain.run .v423-curtain-rule{animation:v423Fade .4s 1.05s ease forwards}.v423-final-curtain.run .v423-curtain-verdict{animation:v423Pop .65s 1.65s ease-out forwards}
@keyframes v423Zero{0%{opacity:0;transform:scale(1.16)}55%{opacity:1;transform:scale(.96)}100%{opacity:1;transform:scale(1)}}@keyframes v423Pop{to{opacity:1;transform:translateY(0)}}@keyframes v423Fade{to{opacity:1}}@keyframes v423Grain{0%{transform:translate(0,0)}25%{transform:translate(2%,-1%)}50%{transform:translate(-1%,2%)}75%{transform:translate(1%,1%)}100%{transform:translate(0,0)}}

.v423-final-hero{position:relative;min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:52px 24px 40px;margin:4px 0 14px;background:linear-gradient(180deg,rgba(5,5,4,.78),rgba(1,1,1,.97)),url('assets/rulebook-bg.jpg') center/cover;border:1px solid rgba(205,190,172,.3);overflow:hidden}
.v423-final-hero:before{content:"";position:absolute;inset:11px;border:1px dashed rgba(205,190,172,.2);pointer-events:none}.v423-final-hero:after{content:"";position:absolute;left:-3%;right:-3%;top:51%;height:1px;background:rgba(205,190,172,.08);transform:rotate(-1deg)}
.v423-final-topline{position:absolute;left:22px;right:22px;top:18px;display:flex;align-items:center;justify-content:space-between;gap:15px}.v423-final-topline span{font:900 8px var(--font-body);letter-spacing:.17em;color:#786f65}.v423-final-topline b{padding:7px 12px 5px;border:2px solid #bc6e31;color:#c67b3c;font:900 15px/.9 var(--font-display);letter-spacing:.08em;transform:rotate(3deg)}.v423-final-hero.is-tie .v423-final-topline b{border-color:#8a8177;color:#aaa095}
.v423-final-kicker{font:900 10px var(--font-body);letter-spacing:.24em;color:#8f857a;margin-bottom:12px}.v423-winner-block{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:min(900px,94%)}.v423-winner-block small{font:900 9px var(--font-body);letter-spacing:.22em;color:#8d8378;text-transform:uppercase}.v423-winner-name{position:relative;z-index:1;display:block;max-width:100%;padding:0 10px;font:900 clamp(38px,6.3vw,76px)/.86 var(--font-display);letter-spacing:-.025em;color:var(--ink);text-transform:uppercase;text-shadow:0 3px 0 #000;text-wrap:balance;word-break:break-word}.v423-winner-block.is-compact .v423-winner-name{font-size:clamp(34px,5.4vw,62px);line-height:.9;letter-spacing:-.015em}.v423-winner-block.is-ultra-compact .v423-winner-name{font-size:clamp(28px,4.7vw,52px);line-height:.95;letter-spacing:0}.v423-winner-block.is-tie .v423-winner-name{font-size:clamp(26px,4.4vw,48px);line-height:1}.v423-winner-score{position:relative;z-index:1;margin-top:18px;font:900 clamp(15px,2vw,23px)/1.08 var(--font-body);letter-spacing:.06em;color:#c7b6a2;text-transform:uppercase}.v423-final-acid{position:relative;z-index:1;max-width:800px;margin-top:24px;padding-top:14px;border-top:1px solid rgba(205,190,172,.18);font:700 11px/1.35 var(--font-body);font-style:italic;color:#83786d}
.v423-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:17px 1px 8px;padding-bottom:7px;border-bottom:1px solid rgba(205,190,172,.13)}.v423-section-head span{font:900 13px var(--font-display);letter-spacing:.04em;color:var(--ink)}.v423-section-head small{font:800 7px var(--font-body);letter-spacing:.11em;color:#6f675f;text-align:right}
.v423-score-race{display:grid;gap:6px}.v423-race-row{display:grid;grid-template-columns:40px minmax(0,1fr) 64px;align-items:center;gap:10px;min-height:68px;padding:10px 13px 10px 8px;background:#080807;border:1px solid rgba(205,190,172,.13);position:relative;overflow:hidden}.v423-race-row.winner{background:#11100d;border-color:rgba(205,190,172,.27)}.v423-race-row.winner:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#bd6d30}.v423-race-rank{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(205,190,172,.25);border-radius:50%;font:900 16px var(--font-display);color:#95897d}.v423-race-name{display:flex;justify-content:space-between;gap:10px;align-items:end}.v423-race-name strong{font:900 20px/.9 var(--font-display);color:var(--ink);text-transform:uppercase}.v423-race-name span{font:900 15px var(--font-display);color:#b8aa9a;white-space:nowrap}.v423-race-line{height:7px;margin-top:8px;background:#14120f;border:1px solid rgba(205,190,172,.08);overflow:hidden}.v423-race-line i{display:block;height:100%;background:linear-gradient(90deg,#776c60,#c77734);transform-origin:left center;animation:v423Race .8s ease-out both}.v423-race-row em{text-align:right;font:900 10px var(--font-body);letter-spacing:.08em;color:#6f665d;font-style:normal}.v423-race-row.winner em{color:#c77734}@keyframes v423Race{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.v423-timeline{margin:9px 0 4px;padding:15px 18px 14px;background:#070706;border:1px solid rgba(205,190,172,.15)}.v423-timeline-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:10px;flex-wrap:wrap}.v423-timeline-head span{font:900 10px var(--font-body);letter-spacing:.16em;color:#b4a595}.v423-timeline-head small{font:800 8px var(--font-body);color:#71685f;text-transform:uppercase}.v423-track{position:relative;height:6px;margin:0 10px;background:rgba(205,190,172,.16)}.v423-leader-mark{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#c77734;border:2px solid #090908;box-shadow:0 0 0 1px rgba(205,190,172,.25);transform:translate(-50%,-50%);display:block;font-style:normal}.v423-leader-mark::after{content:attr(data-step);position:absolute;left:50%;top:-18px;transform:translateX(-50%);font:800 7px var(--font-body);letter-spacing:.04em;color:#867b6e}.v423-track-scale{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-top:15px;font:800 7px var(--font-body);letter-spacing:.12em;color:#625b54}.v423-track-scale b{text-align:center;font-weight:800;color:#504a44}.v423-leader-feed{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px;margin-top:14px}.v423-leader-event{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:48px;padding:8px 10px;background:#0b0b0a;border:1px solid rgba(205,190,172,.12)}.v423-leader-event b{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px solid rgba(205,190,172,.22);font:900 10px var(--font-body);color:#c77734}.v423-leader-event strong{font:900 15px/.92 var(--font-display);color:var(--ink);text-transform:uppercase;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v423-leader-event small{font:800 9px var(--font-body);letter-spacing:.08em;color:#8a8074;white-space:nowrap}
.v423-final-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.v423-final-stats>div{min-height:92px;padding:13px;background:#090908;border:1px solid rgba(205,190,172,.15);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.v423-final-stats strong{font:900 38px/.85 var(--font-display);color:var(--ink)}.v423-final-stats span{margin-top:9px;font:900 7px var(--font-body);letter-spacing:.12em;color:#756c62}
.v423-moments{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.v423-moment{position:relative;min-height:148px;padding:15px 15px 14px 18px;background:#080807;border:1px solid rgba(205,190,172,.14);overflow:hidden}.v423-moment:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#777}.v423-moment.blue:before{background:var(--blue)}.v423-moment.green:before{background:var(--green)}.v423-moment.orange:before{background:var(--orange)}.v423-moment small{display:block;font:900 7px var(--font-body);letter-spacing:.12em;color:#746c63;margin-bottom:13px}.v423-moment strong{display:block;font:900 25px/.88 var(--font-display);text-transform:uppercase;color:var(--ink)}.v423-moment span{display:block;margin-top:9px;font:900 10px/1.25 var(--font-body);color:#ab9e90;text-transform:uppercase}.v423-moment em{display:block;margin-top:12px;font:700 9px/1.25 var(--font-body);font-style:italic;color:#71685f}
.v423-podium-row{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:11px;min-height:75px;margin-bottom:7px;padding:9px 14px 9px 9px;background:#080807;border:1px solid rgba(205,190,172,.14);position:relative;overflow:hidden}.v423-podium-row:after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#575149}.v423-podium-row.rank-1:after{background:#b86b31}.v423-place{width:38px;height:38px;border-radius:50%;border:1px solid rgba(205,190,172,.3);display:flex;align-items:center;justify-content:center;font:900 18px var(--font-display);color:#b7a895}.v423-podium-name strong{display:block;font:900 23px/.9 var(--font-display);color:var(--ink);text-transform:uppercase}.v423-podium-name small{display:block;margin-top:7px;font:800 7px var(--font-body);letter-spacing:.1em;color:#766d63}.v423-podium-score{text-align:right;font:900 30px/.8 var(--font-display);color:var(--ink)}.v423-podium-score small{display:block;margin-top:5px;font:800 7px var(--font-body);letter-spacing:.12em;color:#70675f}
.v423-memory-grid{display:grid;gap:7px}.v423-memory-card{position:relative;min-height:105px;padding:14px 52px 13px 14px;background:#080807;border:1px solid rgba(205,190,172,.14);overflow:hidden}.v423-memory-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#746b62}.v423-memory-card.orange:before{background:#c06a20}.v423-memory-card.blue:before{background:#078bcf}.v423-memory-card small{display:block;font:900 7px var(--font-body);letter-spacing:.13em;color:#756d64;margin-bottom:8px}.v423-memory-card strong{display:block;font:900 23px/.9 var(--font-display);text-transform:uppercase;color:var(--ink);max-width:92%}.v423-memory-card b{position:absolute;right:13px;top:13px;font:900 25px var(--font-display);color:#a89989}.v423-memory-card.orange b{color:#c06a20}.v423-memory-card.blue b{color:#078bcf}.v423-memory-card em{display:block;margin-top:10px;font:700 9px/1.2 var(--font-body);font-style:italic;color:#766d63}
@media(max-width:900px){.v423-moments{grid-template-columns:1fr}.v423-final-stats{grid-template-columns:1fr 1fr}.v423-section-head{align-items:start;flex-direction:column;gap:4px}.v423-section-head small{text-align:left}.v423-curtain-stage{min-height:500px}}
@media(max-width:600px){.v423-final-hero{min-height:300px;padding:58px 14px 32px}.v423-final-topline{left:14px;right:14px}.v423-final-topline span{max-width:60%;text-align:left}.v423-winner-block{max-width:100%}.v423-winner-name{font-size:42px;padding:0 4px}.v423-race-row{grid-template-columns:35px minmax(0,1fr) 48px;padding-right:8px}.v423-race-name strong{font-size:17px}.v423-race-name span{font-size:13px}.v423-race-row em{font-size:8px}.v423-track-scale b{display:none}.v423-track-scale{grid-template-columns:auto auto;justify-content:space-between}.v423-leader-feed{grid-template-columns:1fr}.v423-leader-mark::after{display:none}.v423-curtain-zero{font-size:70px}.v423-curtain-stop{font-size:22px;letter-spacing:.14em;padding:8px 12px}.v423-curtain-rule{font-size:8px}.v423-curtain-verdict strong{font-size:46px}}

/* =========================================================
   V4.3.0 — PLAYER FLOW / ACTION TOUJOURS ACCESSIBLE
   Aucun changement moteur : ergonomie mobile, CTA contextuel,
   lecture tactique et verdict personnel uniquement.
   ========================================================= */

/* L'espace joueur réserve de la place au dock d'action fixe. */
#playBox{padding-bottom:150px}

/* Mini HUD : visible uniquement une fois le HUD principal sorti de l'écran. */
.v430-sticky-hud{
  position:fixed;z-index:930;top:max(8px,env(safe-area-inset-top));left:50%;
  width:min(720px,calc(100vw - 20px));min-height:58px;
  display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;
  padding:8px 10px 8px 12px;background:rgba(7,7,6,.96);border:1px solid rgba(200,185,170,.30);
  border-left:4px solid var(--ink2);box-shadow:0 10px 30px rgba(0,0,0,.38);
  transform:translate(-50%,-130%);opacity:0;pointer-events:none;
  transition:transform .2s ease,opacity .2s ease;backdrop-filter:blur(8px)
}
.v430-sticky-hud.show{transform:translate(-50%,0);opacity:1}
.v430-sticky-hud small{display:block;font:900 7px/1 var(--font-body);letter-spacing:.14em;color:#746c62;text-transform:uppercase}
.v430-hud-team{min-width:0}.v430-hud-team strong{display:block;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:900 18px/.9 var(--font-display);color:var(--ink);text-transform:uppercase}
.v430-hud-score{display:flex;align-items:baseline;gap:4px;padding:0 12px;border-left:1px solid rgba(200,185,170,.16);border-right:1px solid rgba(200,185,170,.16)}
.v430-hud-score strong{font:900 25px/.8 var(--font-display);color:var(--ink)}
.v430-hud-score small{color:#8e8478}
.v430-hud-time{text-align:right}.v430-hud-time strong{display:block;margin-top:4px;font:900 25px/.8 var(--font-display);letter-spacing:.02em;color:var(--ink)}

/* Le bouton d'action existant devient le dock permanent : pas de doublon dans la page. */
#playBox #actions.action-zone{
  position:fixed;z-index:920;left:50%;bottom:max(10px,env(safe-area-inset-bottom));
  width:min(720px,calc(100vw - 20px));margin:0;padding:9px;
  background:rgba(6,6,5,.96);border:1px solid rgba(200,185,170,.30);
  box-shadow:0 -12px 34px rgba(0,0,0,.42);transform:translateX(-50%);backdrop-filter:blur(8px)
}
#playBox #actions>.btn,#playBox #actions .exercise-actions>.btn{width:100%;min-height:62px;margin:0;font-size:clamp(20px,3vw,28px)}
#playBox #actions .exercise-actions{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:7px}
#playBox #actions .v430-secondary-action{min-height:62px!important;padding-left:10px;padding-right:10px;font:900 clamp(12px,1.7vw,17px)/1 var(--font-body)!important;letter-spacing:.06em!important}
#playBox #actions .v430-target-cta{background:var(--orange);color:#070605}

/* Carte Vitale : le rack indique l'état, l'action se fait uniquement dans le dock. */
.v420-mini-card .joker-state.is-ready{background:rgba(106,178,36,.16);border-color:var(--green);color:var(--green)}

/* Cibles : lecture tactique immédiate, rang + score + identité. */
#targets.target-grid{grid-template-columns:1fr!important;gap:7px}
.target.v430-target{
  display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;
  min-height:66px;padding:9px 12px;background:#080807;border:1px solid rgba(192,106,32,.45);border-left:4px solid var(--orange)
}
.target.v430-target:hover,.target.v430-target:focus{background:#120d08;border-color:var(--orange)}
.v430-target-rank{display:flex!important;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid rgba(200,185,170,.22);border-radius:50%;font:900 15px var(--font-display)!important;color:#b6a796!important}
.target.v430-target>div{min-width:0}.target.v430-target>div strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:900 21px/.9 var(--font-display);color:var(--ink);text-transform:uppercase}
.target.v430-target>div small{display:block;margin-top:5px;font:900 7px var(--font-body);letter-spacing:.11em;color:#887d71;text-transform:uppercase}
.v430-target-score{display:flex!important;align-items:baseline;gap:3px!important;font:900 24px/.85 var(--font-display)!important;color:var(--ink)!important;white-space:nowrap}
.v430-target-score em{font:900 7px var(--font-body);letter-spacing:.08em;color:#82786d;font-style:normal}

/* Verdict personnel : le téléphone raconte le résultat sans copier le gros écran maître. */
.ended-state{border-color:rgba(200,185,170,.34)!important;background:linear-gradient(180deg,#0b0a08,#050504)!important}
.ended-state .card-title{font-size:clamp(42px,6vw,70px)!important;margin-bottom:10px!important}
.ended-state .card-effect{font:900 clamp(30px,4.2vw,48px)/.9 var(--font-display)!important;text-transform:uppercase!important;color:var(--ink)!important}
.ended-state .card-points{display:flex;flex-direction:column;align-items:center;min-height:0!important}
.ended-state .card-points span{margin-top:18px!important;background:var(--ink)!important;color:#070605!important;font-size:clamp(30px,4vw,46px)!important}
.ended-state .card-points small{display:block;margin-top:9px;font:900 9px var(--font-body);letter-spacing:.14em;color:#9a8f82;text-transform:uppercase}
.ended-state .card-acid{margin-top:30px!important}

@media(max-width:600px){
  #playBox{padding-bottom:142px}
  .v430-sticky-hud{width:calc(100vw - 12px);top:max(5px,env(safe-area-inset-top));grid-template-columns:minmax(0,1fr) auto auto;gap:7px;padding:7px 8px 7px 10px;min-height:54px}
  .v430-hud-team strong{font-size:15px}.v430-hud-score{padding:0 8px}.v430-hud-score strong,.v430-hud-time strong{font-size:22px}
  #playBox #actions.action-zone{width:calc(100vw - 12px);bottom:max(6px,env(safe-area-inset-bottom));padding:7px}
  #playBox #actions>.btn,#playBox #actions .exercise-actions>.btn{min-height:58px;font-size:21px}
  #playBox #actions .exercise-actions{grid-template-columns:1fr;gap:5px}
  #playBox #actions .v430-secondary-action{min-height:42px!important;font-size:12px!important}
  .target.v430-target{grid-template-columns:34px minmax(0,1fr) auto;min-height:61px;padding:8px 9px;gap:8px}
  .target.v430-target>div strong{font-size:18px}.v430-target-score{font-size:21px!important}
  .ended-state .card-title{font-size:43px!important}.ended-state .card-effect{font-size:32px!important}
}
#playBox #actions.action-zone.is-locked{pointer-events:none;opacity:.58}

/* =========================================================
   V4.4.0 — STATISTIQUES PAR SALLE / HALL OF SHAME
   ========================================================= */
.v36-stats-filter{position:relative}
.v36-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.v36-filter-grid label{display:block;margin:0 0 6px;font:900 8px var(--font-body);letter-spacing:.12em;color:#82786d;text-transform:uppercase}
.v3-actions-inline{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.v36-stats-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.v36-stat-metric{min-height:108px;padding:16px 12px;background:#080807;border:1px solid rgba(205,190,172,.15);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.v36-stat-metric strong{font:900 clamp(30px,4vw,48px)/.86 var(--font-display);color:var(--ink);text-transform:uppercase}
.v36-stat-metric span{margin-top:10px;font:900 7px/1.2 var(--font-body);letter-spacing:.13em;color:#776d62;text-transform:uppercase}
.v36-stats-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.v36-stat-panel{padding:15px;background:#080807;border:1px solid rgba(205,190,172,.14);min-height:180px}
.v36-stat-panel h3{margin:0 0 13px;padding-bottom:8px;border-bottom:1px solid rgba(205,190,172,.12);font:900 11px var(--font-body);letter-spacing:.13em;color:#aa9c8e}
.v36-break-row{display:flex;justify-content:space-between;align-items:center;gap:14px;min-height:37px;border-bottom:1px solid rgba(205,190,172,.08)}
.v36-break-row:last-child{border-bottom:0}.v36-break-row strong{font:900 11px/1.1 var(--font-body);color:#b7aa9c;text-transform:uppercase}.v36-break-row span{font:900 14px var(--font-display);color:var(--ink);white-space:nowrap}
.v36-games-table{display:grid;gap:6px}.v36-game-row{width:100%;display:grid;grid-template-columns:1.45fr .9fr .85fr 1fr 54px;align-items:center;gap:10px;padding:12px 14px;background:#080807;border:1px solid rgba(205,190,172,.14);color:inherit;text-align:left;cursor:pointer}.v36-game-row:hover{border-color:rgba(199,119,52,.5)}.v36-game-row span{min-width:0}.v36-game-row b,.v36-game-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v36-game-row b{font:900 12px var(--font-body);color:var(--ink)}.v36-game-row small{margin-top:4px;font:700 8px var(--font-body);color:#756c62}.v36-game-open{font:900 8px var(--font-body);letter-spacing:.08em;color:#c77734!important;text-align:right}
.v36-detail-sheet{max-width:920px!important;text-align:left!important;max-height:90vh;overflow:auto}.v36-detail-title{font:900 clamp(30px,5vw,54px)/.85 var(--font-display);text-transform:uppercase;color:var(--ink);margin:10px 0 16px}.v36-detail-summary{display:flex;gap:7px;flex-wrap:wrap}.v36-detail-summary span{padding:7px 9px;background:#11100e;border:1px solid rgba(205,190,172,.14);font:800 8px var(--font-body);color:#93877a}.v36-detail-teams{margin:12px 0}.v36-report-row{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;padding:9px 10px;border-bottom:1px solid rgba(205,190,172,.1)}.v36-report-row strong{font:900 16px var(--font-display);text-transform:uppercase}.v36-report-row span{font:900 14px var(--font-body);color:#b5a696}.v36-history{display:grid;gap:5px;margin:10px 0 18px}.v36-history-row{display:grid;grid-template-columns:48px 1fr;gap:10px;padding:9px;background:#090908;border:1px solid rgba(205,190,172,.1)}.v36-history-row time{font:900 9px var(--font-body);color:#c77734}.v36-history-row strong,.v36-history-row span{display:block}.v36-history-row strong{font:900 9px var(--font-body);letter-spacing:.08em;color:#aaa}.v36-history-row span{margin-top:4px;font:700 9px/1.3 var(--font-body);color:#756c62}

.mp440-scope{position:relative;margin:0 0 12px;padding:18px 20px 16px;background:linear-gradient(100deg,rgba(199,119,52,.11),rgba(9,9,8,.15) 55%),#080807;border:1px solid rgba(205,190,172,.16);border-left:4px solid #c77734;overflow:hidden}.mp440-scope:after{content:"SALLE";position:absolute;right:14px;top:5px;font:900 48px/.9 var(--font-display);color:rgba(205,190,172,.025);letter-spacing:.04em}.mp440-scope small,.mp440-scope strong,.mp440-scope span{display:block;position:relative;z-index:1}.mp440-scope small{font:900 7px var(--font-body);letter-spacing:.18em;color:#756b60}.mp440-scope strong{margin-top:7px;font:900 clamp(26px,4.5vw,48px)/.9 var(--font-display);color:var(--ink);text-transform:uppercase}.mp440-scope span{margin-top:7px;font:700 9px/1.3 var(--font-body);color:#81766b}
.mp440-hall-intro{max-width:780px;margin:-2px 0 13px;font:700 10px/1.45 var(--font-body);color:#82776b}.mp440-hall-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.mp440-hall-card{position:relative;min-height:140px;padding:14px 13px 13px 16px;background:#080807;border:1px solid rgba(205,190,172,.14);overflow:hidden}.mp440-hall-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#70675e}.mp440-hall-card.orange:before{background:#c77734}.mp440-hall-card.red:before{background:#a64236}.mp440-hall-card.green:before{background:#688f62}.mp440-hall-card.cream:before{background:#b7a791}.mp440-hall-card.black:before{background:#3f3b37}.mp440-hall-card small,.mp440-hall-card strong,.mp440-hall-card span{display:block}.mp440-hall-card small{font:900 7px/1.25 var(--font-body);letter-spacing:.12em;color:#746a60;text-transform:uppercase}.mp440-hall-card strong{margin-top:16px;font:900 clamp(19px,2.4vw,29px)/.9 var(--font-display);color:var(--ink);text-transform:uppercase;word-break:break-word}.mp440-hall-card span{margin-top:10px;font:800 8px/1.3 var(--font-body);letter-spacing:.05em;color:#897d71;text-transform:uppercase}.mp440-identity-note{margin-top:9px;padding:9px 11px;border:1px dashed rgba(205,190,172,.13);font:700 8px/1.4 var(--font-body);color:#655e57}.mp440-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.mp440-volume-row strong{max-width:72%}.mp440-volume-row span{font-size:12px}

@media(max-width:950px){.v36-filter-grid{grid-template-columns:1fr 1fr}.mp440-hall-grid{grid-template-columns:1fr 1fr}.mp440-columns{grid-template-columns:1fr 1fr}.v36-game-row{grid-template-columns:1fr 1fr}.v36-game-open{display:none}}
@media(max-width:620px){.v36-filter-grid,.v36-stats-metrics,.v36-stats-columns,.mp440-hall-grid,.mp440-columns{grid-template-columns:1fr}.v36-stats-metrics{grid-template-columns:1fr 1fr}.v36-stat-metric{min-height:86px}.v36-game-row{grid-template-columns:1fr;padding:12px}.mp440-hall-card{min-height:118px}.mp440-scope{padding-right:14px}.mp440-scope:after{font-size:36px}.v3-actions-inline .mini-btn{flex:1 1 100%}}


/* =========================================================
   V4.5.0 — PILOT READY / STABILITÉ & FEEDBACK RÉSEAU
   Aucun changement de gameplay.
   ========================================================= */
.v450-network-state{position:sticky;top:8px;z-index:75;margin:8px auto 0;width:min(520px,calc(100% - 20px));padding:9px 12px;border:1px solid rgba(205,190,172,.22);background:#0a0908;text-align:center;font:900 9px/1.2 var(--font-body);letter-spacing:.14em;color:#b9aa99;box-shadow:0 7px 22px rgba(0,0,0,.35)}
.v450-network-state.is-down{border-color:rgba(181,53,47,.55);color:#d9776f;background:#140807}.v450-network-state.is-back{border-color:rgba(75,150,95,.48);color:#8bc69a;background:#071008}
#actions.v450-pending .btn{opacity:.72;filter:saturate(.7);cursor:wait}#actions.v450-pending:after{content:'ENREGISTREMENT EN COURS';display:block;margin-top:7px;text-align:center;font:800 7px var(--font-body);letter-spacing:.14em;color:#786f65}
#targets button:disabled{opacity:.55;pointer-events:none}

.v450-security-warning{display:flex;gap:12px;align-items:flex-start;margin:0 0 16px;padding:12px 14px;border:1px solid rgba(181,53,47,.48);background:#130807;color:#c8b7a4}.v450-security-warning strong{flex:0 0 auto;font:900 11px var(--font-display);letter-spacing:.05em;color:#d26b62}.v450-security-warning span{font:700 9px/1.4 var(--font-body);color:#a99582}.v450-security-warning code{font-family:monospace;color:#d9c7b2}.v450-field-error{outline:2px solid rgba(181,53,47,.75)!important;outline-offset:2px}


/* V4.5.1 — Stabilisation pilote */
.v451-host-network{position:fixed;top:10px;left:50%;transform:translateX(-50%);z-index:2500;max-width:min(92vw,620px);box-shadow:0 8px 30px rgba(0,0,0,.45)}
.v451-release-team{margin:10px 14px 14px;width:calc(100% - 28px);border-color:rgba(214,132,47,.45);opacity:.9}
.v451-report-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.v451-report-actions .btn,.v451-report-actions .v36-stats-link{flex:1;min-width:220px}
@media(max-width:700px){.v451-report-actions{display:block}.v451-report-actions .btn,.v451-report-actions .v36-stats-link{width:100%;display:block;margin-top:8px}}


/* V4.5.2 — Contrôle du lobby */
.v452-lobby-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.v452-lobby-actions .btn{margin:0}
.btn-danger{background:transparent!important;border:2px solid #b94b43!important;color:#e8d8c6!important}
.btn-danger:hover{background:#b94b43!important;color:#0b0b0a!important}
.v452-lobby-locked{margin-top:12px;padding:10px 12px;border:1px dashed rgba(232,216,198,.35);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.v452-edit-back{margin-top:10px}
@media(max-width:720px){.v452-lobby-actions{grid-template-columns:1fr}}

/* V4.5.10 — ACK événement transactionnel, routes joueur sans verrou de session PHP ; socle V4.5.8/V4.5.9 conservé */
.v453-ready-count{margin:14px 0 10px;padding:13px 16px;border:1px solid rgba(213,197,178,.32);background:rgba(255,255,255,.025);font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;font-size:clamp(20px,2vw,30px);letter-spacing:.02em;text-align:center;color:#9e968c;text-transform:uppercase}
.v453-ready-count.is-ready{color:#d8c8b6;border-color:rgba(216,200,182,.6);background:rgba(216,200,182,.07)}
.v453-ready-count.is-live{color:#d8c8b6}
.v421-host-team.is-disconnected{border-color:rgba(197,126,48,.62);box-shadow:inset 4px 0 0 rgba(197,126,48,.8)}
.v421-host-team.is-disconnected .v421-team-identity small{color:#d99b55}
.v453-logout{appearance:none;cursor:pointer;font:inherit;background:transparent;color:inherit}
.v453-logout:hover{background:rgba(216,200,182,.08)}
@media(max-width:760px){.v453-ready-count{font-size:20px}.v36-head-links{flex-wrap:wrap;justify-content:flex-end}.v453-logout{min-height:38px}}

/* === V4.5.11 · Diagnostic ACK temporaire === */
.v4511-player-diag{margin:14px auto 0;width:min(640px,100%);padding:10px 12px;border:1px dashed rgba(205,190,172,.45);background:#090807;color:#cabbaa;text-align:left;white-space:pre-wrap;font:800 10px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.02em}
.v4511-diag-trigger{appearance:none;-webkit-appearance:none;background:transparent!important;border-color:rgba(230,124,25,.65)!important;color:#e27c19!important;cursor:pointer!important;font:900 10px var(--font-body)!important;position:relative;z-index:5}
.v4511-diag-trigger:hover,.v4511-diag-trigger:focus-visible{background:rgba(226,124,25,.10)!important;border-color:#e27c19!important;outline:none}
.v4511-diag-modal{position:fixed;z-index:3200;inset:0;background:rgba(0,0,0,.94);display:flex;align-items:center;justify-content:center;padding:18px}
.v4511-diag-sheet{width:min(1000px,96vw);max-height:92vh;overflow:auto;background:#070605;border:2px solid #cbb9a7;box-shadow:0 18px 70px rgba(0,0,0,.75),inset 0 0 0 6px #070605,inset 0 0 0 7px rgba(203,185,167,.25);padding:20px}
.v4511-diag-head{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(203,185,167,.2);padding-bottom:12px}.v4511-diag-head small{display:block;font:900 9px var(--font-body);letter-spacing:.16em;color:#e27c19}.v4511-diag-head strong{display:block;font:900 clamp(34px,6vw,58px)/.9 var(--font-display);color:#cbb9a7}.v4511-diag-sheet>p{color:#aa9b8c;font-weight:700}
.v4511-diag-summary{margin:12px 0;padding:10px;border-left:4px solid #e27c19;background:#0d0b09;color:#d7c7b8;font:900 11px var(--font-body);letter-spacing:.08em}
.v4511-diag-log{margin:0;min-height:240px;max-height:52vh;overflow:auto;padding:14px;background:#020202;border:1px solid rgba(203,185,167,.22);color:#ddd0c2;white-space:pre-wrap;word-break:break-word;font:700 11px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.v4511-diag-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.v4511-diag-actions .btn{margin:0}
@media(max-width:700px){.v4511-diag-actions{grid-template-columns:1fr}.v4511-diag-sheet{padding:14px}.v4511-diag-log{font-size:9px}}


/* =========================================================
   V4.5.15 — RÈGLES INTÉGRÉES
   Page informative uniquement. Aucun changement de gameplay.
   ========================================================= */
.v4515-rules-page{scroll-behavior:smooth}
.v4515-rules-shell{max-width:1180px}
.v4515-rules-shell .rule-section{scroll-margin-top:18px}
.v4515-rules-link{border-color:rgba(200,185,170,.72);background:rgba(200,185,170,.07)}
.v4515-rules-link:hover,.v4515-rules-nav a:hover,.v4515-rules-footer .back:hover{background:var(--ink);color:#050504}
.v4515-rules-nav{position:sticky;top:8px;z-index:60;display:flex;gap:7px;flex-wrap:wrap;margin:-8px 0 22px;padding:9px;background:rgba(5,5,4,.96);border-top:1px solid rgba(200,185,170,.28);border-bottom:1px solid rgba(200,185,170,.28);box-shadow:0 10px 25px rgba(0,0,0,.32)}
.v4515-rules-nav a{flex:1 1 auto;min-width:112px;padding:9px 10px;border:1px solid rgba(200,185,170,.24);color:var(--ink2);text-decoration:none;text-align:center;font:900 8px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;transition:.16s ease}
.v4515-manifesto{border-left:5px solid var(--orange)}
.v4515-manifesto .intro-title{margin-bottom:12px}
.v4515-manifesto-big{max-width:900px;margin:0 0 10px;font:900 clamp(19px,2.4vw,28px)/1.13 var(--font-body);color:var(--ink)}
.v4515-manifesto p:not(.v4515-manifesto-big){max-width:920px;font-size:16px;line-height:1.45;color:var(--ink2)}
.v4515-acid-line{margin-top:18px;padding:11px 13px;border-top:1px dashed rgba(207,104,18,.55);border-bottom:1px dashed rgba(207,104,18,.55);font:900 9px/1.35 var(--font-body);letter-spacing:.12em;color:var(--orange);text-transform:uppercase}
.v4515-principle-grid,.v4515-mode-grid,.v4515-master-grid,.v4515-finish-grid{display:grid;gap:9px}
.v4515-principle-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.v4515-principle-grid article,.v4515-master-grid article,.v4515-finish-grid article,.v4515-effect-rules article{position:relative;background:#080807;border:1px solid rgba(200,185,170,.16);padding:16px 15px;min-height:135px;overflow:hidden}
.v4515-principle-grid article b{position:absolute;right:8px;top:3px;font:900 54px/.9 var(--font-display);color:rgba(200,185,170,.055)}
.v4515-principle-grid strong,.v4515-master-grid strong,.v4515-finish-grid strong,.v4515-effect-rules strong{display:block;font:900 24px/.95 var(--font-display);color:var(--ink);text-transform:uppercase}
.v4515-principle-grid p,.v4515-master-grid p,.v4515-finish-grid p,.v4515-effect-rules p{margin:9px 0 0;font:700 14px/1.35 var(--font-body);color:var(--ink2)}
.v4515-core-rule{margin-top:10px;padding:18px 18px 20px;text-align:center;background:linear-gradient(110deg,rgba(207,104,18,.13),rgba(5,5,4,.25) 58%),#080807;border:1px solid rgba(207,104,18,.55);box-shadow:inset 0 0 0 5px #050504,inset 0 0 0 6px rgba(207,104,18,.13)}
.v4515-core-rule small,.v4515-core-rule strong,.v4515-core-rule span{display:block}
.v4515-core-rule small{font:900 8px var(--font-body);letter-spacing:.18em;color:var(--orange)}
.v4515-core-rule strong{margin:8px 0 6px;font:900 clamp(34px,6vw,66px)/.86 var(--font-display);color:var(--ink);text-transform:uppercase}
.v4515-core-rule span{font:800 14px/1.35 var(--font-body);color:var(--ink2)}
.v4515-flow{display:grid;gap:7px}
.v4515-flow article{display:grid;grid-template-columns:58px 1fr;gap:14px;align-items:center;padding:12px 14px;background:#080807;border-left:4px solid rgba(200,185,170,.36);border-top:1px solid rgba(200,185,170,.12);border-bottom:1px solid rgba(200,185,170,.08)}
.v4515-flow article>span{width:48px;height:48px;border:3px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;font:900 23px var(--font-display)}
.v4515-flow strong{display:block;font:900 22px/.95 var(--font-display);text-transform:uppercase}.v4515-flow p{margin:5px 0 0;color:var(--ink2);font-size:14px;line-height:1.35;font-weight:700}
.v4515-note{display:flex;gap:12px;align-items:center;margin-top:10px;padding:11px 13px;background:#090806;border-left:4px solid var(--ink)}
.v4515-note strong{flex:0 0 auto;font:900 12px var(--font-body);letter-spacing:.08em;color:var(--ink);text-transform:uppercase}.v4515-note span{font:700 13px/1.35 var(--font-body);color:var(--ink2)}
.v4515-family-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.v4515-family-grid article{--f:var(--ink);position:relative;min-height:205px;padding:17px 14px 15px;background:#080807;border:1px solid rgba(200,185,170,.13);border-top:5px solid var(--f);overflow:hidden}.v4515-family-grid article.blue{--f:var(--blue)}.v4515-family-grid article.green{--f:var(--green)}.v4515-family-grid article.red{--f:var(--red)}.v4515-family-grid article.orange{--f:var(--orange)}
.v4515-family-symbol{width:43px;height:43px;border:3px solid var(--f);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--f);font:900 17px var(--font-display);margin-bottom:13px}
.v4515-family-grid strong{display:block;font:900 25px/.92 var(--font-display);color:var(--f);text-transform:uppercase}.v4515-family-grid p{margin:10px 0;font:700 13px/1.35 var(--font-body);color:var(--ink2)}.v4515-family-grid em{display:block;margin-top:auto;padding-top:9px;border-top:1px dashed rgba(200,185,170,.16);font:800 italic 12px/1.25 var(--font-body);color:#766c62}
.v4515-effect-rules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:9px}.v4515-effect-rules article{min-height:125px;border-top:3px solid rgba(200,185,170,.32)}.v4515-effect-rules strong{font-size:20px}
.v4515-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.v4515-mode-grid article{position:relative;min-height:210px;padding:17px 18px 16px;background:#080807;border:1px solid rgba(200,185,170,.15);border-left:5px solid var(--orange);overflow:hidden}.v4515-mode-grid article small,.v4515-mode-grid article strong,.v4515-mode-grid article b,.v4515-mode-grid article em{display:block}.v4515-mode-grid small{font:900 7px var(--font-body);letter-spacing:.16em;color:#756b61}.v4515-mode-grid strong{margin-top:7px;font:900 clamp(34px,4.6vw,52px)/.85 var(--font-display);color:var(--ink);text-transform:uppercase}.v4515-mode-grid b{display:inline-block!important;margin-top:10px;color:var(--orange);font:900 8px var(--font-body);letter-spacing:.13em}.v4515-mode-grid p{margin:11px 0;font:700 14px/1.4 var(--font-body);color:var(--ink2)}.v4515-mode-grid u{text-decoration-color:var(--orange);text-underline-offset:3px}.v4515-mode-grid em{margin-top:11px;font:800 italic 12px/1.3 var(--font-body);color:#766c62}
.v4515-master-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v4515-master-grid article{border-top:4px solid var(--ink)}
.v4515-judge{margin-top:9px;padding:18px;text-align:center;border:1px solid rgba(200,185,170,.35);background:#050504}.v4515-judge span{display:block;font:900 8px var(--font-body);letter-spacing:.17em;color:var(--orange)}.v4515-judge strong{display:block;margin:7px 0;font:900 clamp(30px,5vw,52px)/.88 var(--font-display);text-transform:uppercase}.v4515-judge p{margin:0;color:var(--ink2);font:700 13px var(--font-body)}
.v4515-finish-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v4515-finish-grid article{border-top:4px solid var(--orange)}.v4515-finish-grid article b{display:block;margin-bottom:12px;font:900 42px/.85 var(--font-display);color:var(--orange)}
.v4515-safety{border:1px solid rgba(191,40,24,.48);border-left:6px solid var(--red)}.v4515-safety .intro-title{font-size:clamp(31px,5vw,55px);margin-bottom:10px}.v4515-safety p{max-width:920px;font:800 16px/1.45 var(--font-body);color:var(--ink2)}.v4515-safety strong{color:var(--ink)}
.v4515-rules-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:8px 4px 4px;border-top:1px solid rgba(200,185,170,.25)}.v4515-rules-footer span{font:900 8px var(--font-body);letter-spacing:.14em;color:#6f665d}
@media(max-width:900px){.v4515-rules-nav{position:relative;top:auto}.v4515-principle-grid,.v4515-family-grid,.v4515-effect-rules,.v4515-master-grid,.v4515-finish-grid{grid-template-columns:1fr 1fr}.v4515-mode-grid{grid-template-columns:1fr}.v4515-rules-shell .page-brush-head{align-items:center}.v4515-rules-shell .page-brush-head span{font-size:42px}.v4515-rules-shell .page-brush-head .back{white-space:nowrap}}
@media(max-width:620px){.v4515-principle-grid,.v4515-family-grid,.v4515-effect-rules,.v4515-master-grid,.v4515-finish-grid{grid-template-columns:1fr}.v4515-rules-nav{display:grid;grid-template-columns:1fr 1fr}.v4515-note{display:block}.v4515-note strong{display:block;margin-bottom:6px}.v4515-rules-footer{align-items:flex-start;flex-direction:column}.v4515-rules-shell .page-brush-head{display:block}.v4515-rules-shell .page-brush-head .back{display:inline-block;margin-top:10px}.v4515-family-grid article,.v4515-mode-grid article{min-height:0}}


/* === V4.5.16 : POLISH LISIBILITÉ RÈGLES — aucun changement gameplay === */
.v4515-rules-shell{max-width:1240px}
.v4515-rules-shell .rule-section{padding:24px 28px 30px;margin-bottom:28px}
.v4515-rules-shell .rule-section-title{margin-bottom:22px}

/* Sommaire : plus lisible sans devenir une deuxième interface */
.v4515-rules-nav{gap:9px;padding:10px;margin-bottom:26px}
.v4515-rules-nav a{min-width:126px;padding:11px 12px;font-size:10px;line-height:1.1;letter-spacing:.1em}

/* Intro / manifeste */
.v4515-manifesto-big{max-width:1040px;font-size:clamp(22px,2.45vw,31px);line-height:1.22}
.v4515-manifesto p:not(.v4515-manifesto-big){max-width:1050px;font-size:17px;line-height:1.58}
.v4515-acid-line{padding:13px 15px;font-size:10px;line-height:1.45}

/* Principe */
.v4515-principle-grid{gap:12px}
.v4515-principle-grid article,.v4515-master-grid article,.v4515-finish-grid article,.v4515-effect-rules article{padding:19px 18px;min-height:148px}
.v4515-principle-grid strong,.v4515-master-grid strong,.v4515-finish-grid strong,.v4515-effect-rules strong{font-size:26px;line-height:1}
.v4515-principle-grid p,.v4515-master-grid p,.v4515-finish-grid p,.v4515-effect-rules p{margin-top:11px;font-size:15.5px;line-height:1.5}
.v4515-core-rule{margin-top:14px;padding:22px 22px 24px}
.v4515-core-rule small{font-size:9px}
.v4515-core-rule strong{margin:10px auto 9px;max-width:1080px;font-size:clamp(38px,5.6vw,64px);line-height:.9}
.v4515-core-rule span{font-size:16px;line-height:1.45}

/* Déroulement : davantage d’air et de corps */
.v4515-flow{gap:9px}
.v4515-flow article{grid-template-columns:62px 1fr;gap:17px;padding:15px 17px}
.v4515-flow article>span{width:52px;height:52px;font-size:24px}
.v4515-flow strong{font-size:25px;line-height:1}
.v4515-flow p{margin-top:6px;font-size:15.5px;line-height:1.48}
.v4515-note{gap:14px;margin-top:13px;padding:14px 16px;align-items:flex-start}
.v4515-note strong{font-size:13px;line-height:1.25}
.v4515-note span{font-size:15px;line-height:1.5}

/* Les 4 familles : 2x2 au lieu de 4 colonnes tassées */
.v4515-family-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.v4515-family-grid article{min-height:190px;padding:20px 18px 18px}
.v4515-family-symbol{width:47px;height:47px;margin-bottom:14px;font-size:18px}
.v4515-family-grid strong{font-size:31px;line-height:.96}
.v4515-family-grid p{margin:12px 0;font-size:15.5px;line-height:1.5}
.v4515-family-grid em{padding-top:11px;font-size:13.5px;line-height:1.35}

/* Règles d’effets : 2x2 pour lire sans plisser les yeux */
.v4515-effect-rules{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.v4515-effect-rules article{min-height:135px}
.v4515-effect-rules strong{font-size:24px}

/* Modes */
.v4515-mode-grid{gap:12px}
.v4515-mode-grid article{min-height:220px;padding:21px 22px 20px}
.v4515-mode-grid small{font-size:9px}
.v4515-mode-grid strong{font-size:clamp(39px,4.5vw,55px);line-height:.88}
.v4515-mode-grid b{margin-top:12px;font-size:10px;line-height:1.2}
.v4515-mode-grid p{margin:13px 0;font-size:16px;line-height:1.52}
.v4515-mode-grid em{font-size:13.5px;line-height:1.4}

/* Maître + fin */
.v4515-master-grid,.v4515-finish-grid{gap:12px}
.v4515-judge{margin-top:12px;padding:22px}
.v4515-judge span{font-size:9px}
.v4515-judge strong{margin:9px 0;font-size:clamp(34px,4.6vw,50px);line-height:.92}
.v4515-judge p{font-size:15px;line-height:1.45}
.v4515-finish-grid article b{margin-bottom:14px;font-size:46px}

/* Règle Zéro : forte, lisible, jamais compressée */
.v4515-safety{padding-top:26px!important;padding-bottom:28px!important}
.v4515-safety .intro-title{max-width:1080px;font-size:clamp(34px,4.5vw,50px);line-height:.94;margin-bottom:16px}
.v4515-safety p{max-width:1080px;font-size:18px;line-height:1.58}
.v4515-safety p strong{font-size:1.03em}

.v4515-rules-footer span{font-size:9px;line-height:1.3}

/* Tablettes : priorité à la lecture */
@media(max-width:900px){
  .v4515-rules-shell .rule-section{padding:20px 18px 24px}
  .v4515-rules-nav{display:grid;grid-template-columns:repeat(3,1fr)}
  .v4515-rules-nav a{min-width:0;font-size:9px}
  .v4515-principle-grid,.v4515-family-grid,.v4515-effect-rules,.v4515-master-grid,.v4515-finish-grid{grid-template-columns:1fr}
  .v4515-principle-grid article,.v4515-master-grid article,.v4515-finish-grid article,.v4515-effect-rules article{min-height:0}
  .v4515-flow strong{font-size:23px}
  .v4515-flow p,.v4515-principle-grid p,.v4515-master-grid p,.v4515-finish-grid p,.v4515-effect-rules p{font-size:15px}
}
@media(max-width:620px){
  .v4515-rules-nav{grid-template-columns:1fr 1fr}
  .v4515-rules-shell .rule-section{padding:18px 14px 22px}
  .v4515-manifesto p:not(.v4515-manifesto-big),.v4515-safety p{font-size:16px}
  .v4515-flow article{grid-template-columns:50px 1fr;gap:12px;padding:13px 12px}
  .v4515-flow article>span{width:44px;height:44px;font-size:21px}
  .v4515-flow strong{font-size:21px}
  .v4515-family-grid strong{font-size:27px}
  .v4515-mode-grid article{padding:18px 16px}
  .v4515-mode-grid p{font-size:15px}
  .v4515-safety .intro-title{font-size:clamp(31px,10vw,42px)}
}


/* =========================================================
   V4.5.17 — 10 ÉQUIPES / ARBITRAGE DU MAÎTRE
   Socle DA V4.5.16 conservé.
   ========================================================= */
.v4517-host-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:10px}
.v4517-correct-btn{border-color:rgba(205,190,172,.34)!important;color:var(--ink)!important;background:rgba(205,190,172,.045)!important}
.v4517-correct-btn:hover{border-color:rgba(205,190,172,.65)!important;background:rgba(205,190,172,.09)!important}
.v4517-correction-modal{position:fixed;z-index:2100;inset:0;background:rgba(0,0,0,.94) url('assets/rulebook-bg.jpg') center/760px;display:flex;align-items:center;justify-content:center;padding:22px}
.v4517-correction-sheet{width:min(560px,100%);padding:28px;border:1px solid rgba(205,190,172,.32);background:#0b0a09;box-shadow:0 30px 90px rgba(0,0,0,.65)}
.v4517-correction-kicker{font:900 8px/1.2 var(--font-body);letter-spacing:.18em;color:var(--ink2);text-transform:uppercase}
.v4517-correction-sheet h2{margin:8px 0 16px;font:900 clamp(34px,6vw,54px)/.9 var(--font-display);color:var(--ink);text-transform:uppercase}
.v4517-correction-team{font:900 23px/.95 var(--font-display);color:var(--orange);text-transform:uppercase}
.v4517-correction-current{margin:8px 0 18px;font:800 10px/1.4 var(--font-body);letter-spacing:.06em;color:var(--ink2);text-transform:uppercase}.v4517-correction-current strong{font-size:15px;color:var(--ink)}
.v4517-correction-signs{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:15px}.v4517-correction-signs button{appearance:none;padding:12px;border:1px solid rgba(205,190,172,.2);background:#080807;color:var(--ink2);font:900 10px var(--font-body);letter-spacing:.08em;cursor:pointer}.v4517-correction-signs button.is-active{border-color:var(--orange);color:var(--ink);background:rgba(199,119,52,.12)}
.v4517-correction-sheet label{display:block;margin:12px 0 5px}.v4517-correction-sheet label small{font-size:8px;color:var(--ink2)}
.v4517-correction-rule{margin-top:16px;padding:10px 12px;border-left:3px solid var(--orange);background:rgba(199,119,52,.06);font:900 9px/1.4 var(--font-body);letter-spacing:.12em;color:var(--ink2)}
.v4517-correction-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.v4517-correction-actions .btn{margin:0}
@media(max-width:650px){.v4517-correction-sheet{padding:20px 16px}.v4517-correction-signs,.v4517-correction-actions{grid-template-columns:1fr}.v4517-host-actions{justify-content:stretch}.v4517-host-actions button{flex:1}}

/* ============================================================
   V4.5.18 — CARTE EXERCICE : HIÉRARCHIE VISUELLE V2
   Référentiel joueur validé :
   1) nom exercice
   2) volume / calories
   3) points
   4) pictogramme(s) centré(s) sous le texte
   5) punchline tout en bas

   IMPORTANT : uniquement les cartes EXERCICE (.game-card.blue).
   Les BONUS / MALUS / COUPS BAS restent inchangés.
   ============================================================ */

/* La carte exercice devient verticale : texte d'abord, visuel ensuite. */
.game-card.blue .mp-card-content{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:0!important;
  width:100%!important;
  padding:2px 20px 0!important;
}

.game-card.blue .card-body{
  order:1!important;
  width:100%!important;
  text-align:center!important;
}

.game-card.blue .card-title{
  max-width:100%!important;
  margin:0 auto 10px!important;
  text-align:center!important;
  text-wrap:balance;
}

.game-card.blue .card-effect{
  width:100%!important;
  max-width:none!important;
  margin:0 auto!important;
  text-align:center!important;
}

.game-card.blue .mp-card-rule{
  width:min(92%,620px)!important;
  margin:13px auto 8px!important;
  background:linear-gradient(90deg,transparent,var(--family) 10%,var(--family) 90%,transparent)!important;
}

.game-card.blue .card-points{
  min-height:0!important;
  text-align:center!important;
}

.game-card.blue .card-points span{
  display:block!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0 auto!important;
  text-align:center!important;
}

/* Le pictogramme devient un vrai bloc pédagogique sous les infos. */
.game-card.blue .mp-card-visual{
  order:2!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:210px!important;
  margin:22px auto 0!important;
  padding:0!important;
  overflow:visible!important;
}

.game-card.blue .mp-card-visual img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:min(92%,640px)!important;
  max-height:280px!important;
  object-fit:contain!important;
  object-position:center center!important;
  margin:0 auto!important;
  filter:contrast(1.05) saturate(.95) drop-shadow(0 2px 0 rgba(0,0,0,.28))!important;
}

/* La punchline est le dernier élément et reste visuellement au pied de la carte. */
.game-card.blue .card-acid{
  margin-top:auto!important;
  padding-top:18px!important;
}

/* Tablettes / petits ordinateurs */
@media(min-width:561px) and (max-width:1050px){
  .game-card.blue .mp-card-content{padding-left:14px!important;padding-right:14px!important}
  .game-card.blue .mp-card-visual{min-height:200px!important;margin-top:18px!important}
  .game-card.blue .mp-card-visual img{max-width:min(94%,570px)!important;max-height:245px!important}
}

/* Mobile : priorité à la lisibilité et à la largeur du mouvement. */
@media(max-width:560px){
  .game-card.blue{
    min-height:650px!important;
  }
  .game-card.blue .mp-card-content{
    padding:0 8px!important;
  }
  .game-card.blue .card-title{
    font-size:clamp(38px,10.5vw,52px)!important;
    line-height:.86!important;
    margin-bottom:8px!important;
  }
  .game-card.blue .card-effect{
    font-size:clamp(20px,5.8vw,26px)!important;
    line-height:1!important;
  }
  .game-card.blue .mp-card-rule{
    width:92%!important;
    margin:10px auto 7px!important;
  }
  .game-card.blue .card-points span{
    font-size:clamp(38px,11vw,52px)!important;
    line-height:.9!important;
  }
  .game-card.blue .mp-card-visual{
    width:100%!important;
    min-height:175px!important;
    margin-top:16px!important;
  }
  .game-card.blue .mp-card-visual img{
    max-width:96%!important;
    max-height:215px!important;
  }
  .game-card.blue .card-acid{
    width:96%!important;
    margin-top:auto!important;
    padding-top:14px!important;
  }
}

/* Très petits écrans : on garde le pictogramme large sans casser la carte. */
@media(max-width:390px){
  .game-card.blue{min-height:630px!important}
  .game-card.blue .mp-card-visual{min-height:160px!important;margin-top:13px!important}
  .game-card.blue .mp-card-visual img{max-width:98%!important;max-height:195px!important}
}

/* ============================================================
   V4.5.19 — EXERCICES MOBILE SAFE / DECK PICTOGRAMMES OFFICIEL
   Objectif : aucune illustration rognée, même sur petit écran.
   Le pictogramme est volontairement légèrement plus petit afin
   de garantir 100 % du mouvement, des flèches et des repères.
   ============================================================ */

/* Aucune largeur interne ne doit pouvoir créer de scroll horizontal. */
#playBox{overflow-x:clip}
.game-card.blue .mp-card-content,
.game-card.blue .mp-card-visual{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

/* Zone illustration sécurisée : jamais de cover, jamais de rognage. */
.game-card.blue .mp-card-visual{
  width:100%!important;
  min-height:195px!important;
  margin:16px auto 0!important;
  padding:10px 22px 12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
}
.game-card.blue .mp-card-visual img{
  display:block!important;
  flex:0 1 auto!important;
  width:auto!important;
  height:auto!important;
  max-width:88%!important;
  max-height:230px!important;
  min-width:0!important;
  object-fit:contain!important;
  object-position:50% 50%!important;
  margin:0 auto!important;
  transform:none!important;
  clip-path:none!important;
}

/* Le bas de carte garde une zone de respiration face au dock fixe. */
.game-card.blue .card-acid{
  padding-top:12px!important;
}

@media(max-width:560px){
  #playBox{
    padding-bottom:190px!important;
  }
  .game-card.blue{
    min-height:610px!important;
    margin-bottom:86px!important;
  }
  .game-card.blue .mp-card-content{
    padding-left:5px!important;
    padding-right:5px!important;
  }
  .game-card.blue .mp-card-visual{
    min-height:165px!important;
    margin-top:11px!important;
    padding:8px 8px 10px!important;
  }
  .game-card.blue .mp-card-visual img{
    max-width:88%!important;
    max-height:185px!important;
  }
  .game-card.blue .card-acid{
    padding-top:9px!important;
  }
}

@media(max-width:390px){
  .game-card.blue{
    min-height:590px!important;
  }
  .game-card.blue .mp-card-visual{
    min-height:155px!important;
    margin-top:9px!important;
    padding:7px 6px 9px!important;
  }
  .game-card.blue .mp-card-visual img{
    max-width:86%!important;
    max-height:172px!important;
  }
}

/* =========================================================
   V5.1.0 — Accès structures / coachs
   ========================================================= */
.mp510-login-grid,.mp510-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.mp510-login-grid small,.mp510-admin-grid small{display:block;margin-top:6px;color:var(--ink2);font-size:.78rem}
.mp510-shared-request,.mp510-inline-check{display:flex;gap:10px;align-items:flex-start;margin:14px 0 18px;padding:12px 14px;border:1px solid rgba(200,185,170,.24);background:rgba(255,255,255,.025);cursor:pointer}
.mp510-shared-request input,.mp510-inline-check input{margin-top:3px;accent-color:var(--orange)}
.mp510-shared-request span{display:flex;flex-direction:column;gap:4px}.mp510-shared-request small{color:var(--ink2);font-size:.78rem}
.mp510-auth-banner{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:0 0 18px;padding:11px 14px;border:1px solid rgba(200,185,170,.32);background:rgba(255,255,255,.035)}
.mp510-auth-banner strong{font-family:var(--font-display);letter-spacing:.06em;color:#eadccf}.mp510-auth-banner span{font-size:.82rem;color:var(--ink2);text-align:right}
.mp510-locked{opacity:.78;border-style:dashed!important;cursor:not-allowed}
.mp510-structure-list{display:grid;gap:18px;margin-top:16px}.mp510-structure-card{border:1px solid rgba(200,185,170,.26);padding:16px;background:rgba(255,255,255,.018)}
.mp510-structure-card.is-disabled,.mp510-coach-card.is-disabled{opacity:.58}
.mp510-structure-head,.mp510-coach-head,.mp510-device-row,.mp510-pending{display:flex;justify-content:space-between;gap:14px;align-items:center}
.mp510-structure-head>div:first-child,.mp510-coach-head>div:first-child,.mp510-device-row>span,.mp510-pending>div:first-child{display:flex;flex-direction:column;gap:4px}
.mp510-structure-head strong{font-family:var(--font-display);font-size:1.45rem;letter-spacing:.04em;color:#eadccf}.mp510-structure-head small{color:var(--orange);font-weight:700}.mp510-structure-head span,.mp510-coach-head span,.mp510-device-row small,.mp510-pending span{color:var(--ink2);font-size:.78rem}
.mp510-coach-list{display:grid;gap:12px;margin-top:14px}.mp510-coach-card{padding:13px;border-left:3px solid rgba(8,127,193,.65);background:rgba(255,255,255,.025)}
.mp510-coach-head strong{font-size:1rem;color:#eadccf}.mp510-device-block{margin-top:12px;padding-top:10px;border-top:1px solid rgba(200,185,170,.16)}.mp510-device-block h4{margin:0 0 8px;font-size:.75rem;letter-spacing:.08em;color:var(--ink2)}
.mp510-device-row{padding:8px 0;border-bottom:1px solid rgba(200,185,170,.09)}.mp510-device-row:last-child{border-bottom:0}
.mp510-pending{padding:12px 14px;margin:8px 0;border:1px solid rgba(207,104,18,.38);background:rgba(207,104,18,.06)}.mp510-pending strong{color:#eadccf}
@media(max-width:760px){.mp510-login-grid,.mp510-admin-grid{grid-template-columns:1fr}.mp510-auth-banner,.mp510-structure-head,.mp510-coach-head,.mp510-device-row,.mp510-pending{align-items:flex-start;flex-direction:column}.mp510-auth-banner span{text-align:left}.mp510-device-row .v3-actions-inline,.mp510-structure-head .v3-actions-inline,.mp510-coach-head .v3-actions-inline{width:100%}}

/* =========================================================
   V5.1.0 RC2 — FINITIONS RESPONSIVE / IDENTITÉ COACH
   Aucun changement fonctionnel : CSS uniquement.
   ========================================================= */

/* Sécurise toute la page contre les débordements horizontaux accidentels. */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

.rulebook-shell,
.rule-section,
.page-brush-head,
.mp510-auth-banner,
.mp510-structure-card,
.mp510-coach-card,
.mp510-structure-head,
.mp510-coach-head,
.mp510-device-row,
.mp510-pending{
  min-width:0;
  max-width:100%;
}

.page-brush-head > *,
.mp510-auth-banner > *,
.mp510-structure-head > *,
.mp510-coach-head > *,
.mp510-device-row > *,
.mp510-pending > *{
  min-width:0;
  max-width:100%;
}

/* Bandeau d'identité : le nom du coach devient beaucoup plus lisible
   et ne ressemble plus à un gros bloc typographique. */
.mp510-auth-banner{
  padding:12px 15px;
  border-left:3px solid rgba(207,104,18,.72);
}

.mp510-auth-banner strong{
  font-family:var(--font-body)!important;
  font-size:1.05rem;
  line-height:1.15;
  font-weight:900;
  letter-spacing:.025em;
  text-transform:none;
  color:#eadccf;
}

.mp510-auth-banner span{
  font-family:var(--font-body);
  font-size:.78rem;
  line-height:1.3;
  letter-spacing:.01em;
  overflow-wrap:anywhere;
}

/* Les textes longs des écrans d'accès restent contenus dans leur carte. */
.mp510-structure-head span,
.mp510-coach-head span,
.mp510-device-row small,
.mp510-pending span,
.mp510-login-grid small,
.mp510-admin-grid small{
  overflow-wrap:anywhere;
}

/* Placeholder de connexion plus discret et plus court visuellement. */
.mp510-login-grid .input::placeholder{
  font-family:var(--font-body);
  font-size:.82em;
  letter-spacing:0;
  color:#7f7469;
  opacity:1;
}

/* Petits écrans : on garde enfin le cadre extérieur visible,
   avec une vraie marge de sécurité au lieu de le coller/couper au viewport. */
@media(max-width:900px){
  .rulebook-shell{
    width:calc(100% - 16px)!important;
    margin:8px auto!important;
    padding-left:12px!important;
    padding-right:12px!important;
    border-left:2px solid rgba(200,185,170,.88)!important;
    border-right:2px solid rgba(200,185,170,.88)!important;
    box-shadow:
      0 0 0 3px #030303,
      0 0 0 5px rgba(200,185,170,.34),
      inset 0 0 70px rgba(0,0,0,.78)!important;
  }

  .rulebook-shell:before{
    inset:7px;
  }

  .page-brush-head{
    flex-wrap:wrap;
    gap:10px;
  }

  .page-brush-head span{
    max-width:100%;
  }
}

/* Téléphones : titre + boutons du haut ne peuvent plus pousser la page
   en dehors de l'écran. */
@media(max-width:760px){
  .page-brush-head{
    align-items:flex-start!important;
  }

  .page-brush-head span{
    width:auto;
    max-width:100%;
    padding-right:28px;
    font-size:clamp(34px,11vw,46px);
  }

  .v36-head-links{
    width:100%;
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-start!important;
    gap:6px;
  }

  .v36-head-links .back,
  .v36-head-links button{
    flex:1 1 0;
    min-width:0;
    text-align:center;
    padding:9px 6px;
    font-size:9px;
    white-space:nowrap;
  }

  .mp510-auth-banner{
    gap:6px;
    padding:11px 12px;
  }

  .mp510-auth-banner strong{
    font-size:1rem;
  }

  .mp510-auth-banner span{
    font-size:.74rem;
  }

  .mp510-login-grid .input::placeholder{
    font-size:.74em;
  }

  .mp510-device-row .v3-actions-inline,
  .mp510-structure-head .v3-actions-inline,
  .mp510-coach-head .v3-actions-inline{
    max-width:100%;
    flex-wrap:wrap;
  }
}

/* Très petits téléphones : encore un peu plus de sécurité. */
@media(max-width:390px){
  .rulebook-shell{
    width:calc(100% - 12px)!important;
    margin:6px auto!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }

  .page-brush-head span{
    font-size:34px;
  }

  .v36-head-links .back,
  .v36-head-links button{
    font-size:8px;
    padding-left:5px;
    padding-right:5px;
  }

  .mp510-login-grid .input::placeholder{
    font-size:.70em;
  }
}

