:root{
    --velvet:#080C18;
    --velvet-2:#11182A;
    --panel:#151D31;
    --felt:#176A67;
    --felt-2:#0D4442;
    --gold:#D8B56A;
    --gold-deep:#9C7938;
    --red:#C23B5A;
    --red-deep:#7F233A;
    --cream:#F5EAD9;
    --muted:#B9AC94;
    --line:rgba(216,181,106,.22);
    --paon:#27A6A1;
    --violet:#6C4BB6;
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  html,body{margin:0;padding:0}
  body{
    font-family:'Josefin Sans','Outfit',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
    color:var(--cream);
    background:
      linear-gradient(135deg,transparent 0 48%,rgba(216,181,106,.026) 49% 51%,transparent 52%) 0 0/44px 44px,
      radial-gradient(110% 68% at 50% -10%,rgba(216,181,106,.16),transparent 55%),
      radial-gradient(90% 60% at 50% 110%,rgba(39,166,161,.18),transparent 60%),
      var(--velvet);
    background-attachment:fixed;
    min-height:100dvh;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
  /* ---- layout shell ---- */
  .phone{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;
    padding:max(14px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom)) 16px;position:relative}
  .topbar{display:flex;align-items:center;gap:10px;min-height:44px;margin-bottom:6px}
  .topbar .ttl{font-family:'Anton';font-size:20px;letter-spacing:.5px;color:var(--gold);text-transform:uppercase;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
  .iconbtn{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:18px;
    background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--cream);transition:transform .12s,background .2s}
  .iconbtn:active{transform:scale(.9)}
  .chip{height:42px;padding:0 12px;border-radius:12px;display:inline-flex;align-items:center;gap:6px;font-weight:700;
    font-size:14px;background:rgba(255,61,90,.12);border:1px solid rgba(255,61,90,.35);color:#ffd0d8;transition:transform .12s}
  .chip:active{transform:scale(.94)}
  .content{flex:1;display:flex;flex-direction:column}
  /* ---- buttons ---- */
  .btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;border-radius:16px;
    font-weight:800;font-size:17px;letter-spacing:.2px;transition:transform .12s,box-shadow .2s,filter .2s}
  .btn:active{transform:translateY(2px) scale(.99)}
  .btn-gold{color:#2A1606;background:linear-gradient(180deg,#F4D072,var(--gold) 45%,var(--gold-deep));
    box-shadow:0 6px 0 #7c560f,0 12px 24px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.5)}
  .btn-gold:active{box-shadow:0 2px 0 #7c560f,0 6px 14px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.5)}
  .btn-red{color:#fff;background:linear-gradient(180deg,#ff6c83,var(--red) 45%,var(--red-deep));
    box-shadow:0 6px 0 #7a1325,0 12px 24px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.3)}
  .btn-red:active{box-shadow:0 2px 0 #7a1325,0 6px 14px rgba(0,0,0,.45)}
  .btn-ghost{background:rgba(255,255,255,.03);border:1.5px solid var(--line);color:var(--cream);min-height:54px;font-size:16px}
  .btn-ghost:active{background:rgba(255,255,255,.06)}
  .btn:disabled{filter:grayscale(.6) brightness(.7);box-shadow:none;transform:none}
  /* ---- home ---- */
  .brand{text-align:center;margin:18px 0 6px}
  .brand .dots{color:var(--gold);letter-spacing:8px;font-size:12px;opacity:.7;margin-bottom:2px}
  .brand h1{font-family:'Anton';font-size:64px;line-height:.9;margin:0;text-transform:uppercase;letter-spacing:2px;
    background:linear-gradient(180deg,#FBE9B0,var(--gold) 50%,var(--gold-deep));-webkit-background-clip:text;
    background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 #5e3f08) drop-shadow(0 8px 20px rgba(232,184,75,.25))}
  .brand .sub{color:var(--muted);font-size:14px;font-weight:500;margin-top:8px;letter-spacing:.3px}
  .eyebrow{font-family:'Anton';font-size:13px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted);
    margin:22px 4px 12px;display:flex;align-items:center;gap:10px}
  .eyebrow::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,var(--line),transparent)}
  .players-bar{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border-radius:16px;
    background:linear-gradient(180deg,rgba(17,83,62,.35),rgba(17,83,62,.15));border:1px solid rgba(232,184,75,.22);transition:transform .12s}
  .players-bar:active{transform:scale(.99)}
  .players-bar .pb-ico{font-size:24px}
  .players-bar .pb-txt{flex:1;text-align:left}
  .players-bar .pb-txt b{display:block;font-size:16px;font-weight:700}
  .players-bar .pb-txt span{font-size:13px;color:var(--muted)}
  .players-bar .pb-go{color:var(--gold);font-size:20px}
  .tools{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
  .tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px 6px;border-radius:16px;
    background:var(--panel);border:1px solid var(--line);transition:transform .12s,box-shadow .2s}
  .tool:active{transform:translateY(2px) scale(.98)}
  .tool .ti{font-size:30px}
  .tool .tn{font-family:'Anton';font-size:15px;letter-spacing:.4px;text-transform:uppercase;color:var(--gold);text-align:center;line-height:1.05}
  .tool .ti{font-size:28px}
  .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}
  .card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:1/1.12;padding:14px;
    border-radius:20px;background:linear-gradient(165deg,var(--panel),var(--velvet-2));border:1px solid var(--line);
    overflow:hidden;transition:transform .14s,box-shadow .25s,border-color .25s}
  .card::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 50% at 50% 0%,rgba(232,184,75,.12),transparent 70%);opacity:0;transition:opacity .25s}
  .card:active{transform:translateY(2px) scale(.985)}
  .card:active::before{opacity:1}
  .card .em{font-size:38px;line-height:1;margin-bottom:auto}
  .card .cn{font-family:'Anton';font-size:19px;line-height:1;letter-spacing:.4px;text-transform:uppercase;color:var(--cream)}
  .card .cd{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.25}
  .card.locked{filter:saturate(.5)}
  .card.locked .badge{position:absolute;top:10px;right:10px;font-family:'Anton';font-size:10px;letter-spacing:1px;
    padding:4px 8px;border-radius:20px;background:rgba(0,0,0,.45);border:1px solid var(--line);color:var(--muted)}
  .foot{text-align:center;color:var(--muted);font-size:12px;margin-top:auto;padding-top:18px;opacity:.7}
  /* ---- players screen ---- */
  .addrow{display:flex;gap:10px;margin-bottom:14px}
  .addrow input{flex:1;height:56px;border-radius:14px;padding:0 16px;font-size:17px;font-family:inherit;color:var(--cream);
    background:rgba(255,255,255,.04);border:1.5px solid var(--line);outline:none}
  .addrow input::placeholder{color:var(--muted)}
  .addrow input:focus{border-color:var(--gold)}
  .addrow .add{width:56px;height:56px;border-radius:14px;flex:none}
  .plist{display:flex;flex-direction:column;gap:10px}
  .prow{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
  .prow .av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-family:'Anton';font-size:17px;color:#2A1606;
    background:linear-gradient(180deg,#F4D072,var(--gold-deep))}
  .prow .nm{flex:1;font-weight:600;font-size:16px}
  .prow .del{width:36px;height:36px;border-radius:10px;color:var(--red);font-size:18px;background:rgba(255,61,90,.1)}
  .prow .del:active{transform:scale(.9)}
  .empty{text-align:center;color:var(--muted);padding:40px 20px}
  .empty .be{font-size:46px;margin-bottom:10px}
  .empty h3{font-family:'Anton';color:var(--cream);letter-spacing:.5px;margin:0 0 6px;font-size:20px}
  .savednote{text-align:center;color:var(--muted);font-size:12px;margin-top:14px;display:flex;align-items:center;justify-content:center;gap:6px}
  /* ---- generic game panel ---- */
  .stage{flex:1;display:flex;flex-direction:column;justify-content:center;gap:18px}
  .counter{text-align:center;font-family:'Anton';font-size:12px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}
  .promptcard{background:linear-gradient(165deg,var(--panel),var(--velvet-2));border:1px solid var(--line);border-radius:24px;
    padding:30px 22px;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
    box-shadow:0 20px 40px rgba(0,0,0,.4);position:relative;overflow:hidden}
  .promptcard::after{content:"";position:absolute;inset:0;border-radius:24px;border:1px solid rgba(255,255,255,.05);pointer-events:none}
  .promptcard .kicker{font-family:'Anton';font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
  .promptcard .q{font-size:25px;font-weight:700;line-height:1.25}
  .promptcard.flip{animation:flip .42s ease}
  @keyframes flip{0%{transform:rotateX(90deg);opacity:0}100%{transform:rotateX(0);opacity:1}}
  .accent-red .promptcard .kicker{color:var(--red)}
  .designee{text-align:center;min-height:30px;font-size:17px;color:var(--cream)}
  .designee b{font-family:'Anton';font-size:22px;letter-spacing:.5px;color:var(--gold)}
  .actions{display:flex;flex-direction:column;gap:10px}
  .row2{display:flex;gap:10px}
  .row2>*{flex:1}
  /* ---- wheel ---- */
  .wheelwrap{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;justify-content:center}
  .wheelbox{position:relative;width:min(82vw,340px);aspect-ratio:1/1}
  .wheelbox canvas{width:100%;height:100%;display:block;filter:drop-shadow(0 16px 30px rgba(0,0,0,.5))}
  .pointer{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:0;height:0;z-index:3;
    border-left:15px solid transparent;border-right:15px solid transparent;border-top:26px solid var(--gold);
    filter:drop-shadow(0 3px 3px rgba(0,0,0,.5))}
  .hub{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;z-index:2;
    background:radial-gradient(circle at 35% 30%,#FBE9B0,var(--gold) 50%,var(--gold-deep));
    border:3px solid #6e4c0d;box-shadow:0 3px 8px rgba(0,0,0,.5)}
  .winner{text-align:center;min-height:60px;display:flex;flex-direction:column;justify-content:center}
  .winner .wl{font-family:'Anton';font-size:12px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}
  .winner .wn{font-family:'Anton';font-size:38px;letter-spacing:1px;color:var(--gold);line-height:1;
    text-shadow:0 0 18px rgba(232,184,75,.5)}
  .winner.pop .wn{animation:pop .5s cubic-bezier(.2,1.4,.4,1)}
  @keyframes pop{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1)}}
  /* ---- dice ---- */
  .dicewrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px}
  .die{width:150px;height:150px;border-radius:28px;padding:18px;display:grid;grid-template-columns:repeat(3,1fr);
    grid-template-rows:repeat(3,1fr);gap:4px;background:linear-gradient(160deg,#FFF7E6,#EFD9A6);
    box-shadow:0 16px 30px rgba(0,0,0,.5),inset 0 -6px 12px rgba(169,120,31,.25),inset 0 4px 8px rgba(255,255,255,.8)}
  .die .pip{display:grid;place-items:center}
  .die .pip i{width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#5a3410,#2A1606);
    box-shadow:inset 0 1px 1px rgba(255,255,255,.2)}
  .die.rolling{animation:tumble .6s ease}
  @keyframes tumble{0%{transform:rotate(0) scale(1)}25%{transform:rotate(-18deg) scale(1.06)}
    50%{transform:rotate(20deg) scale(.97)}75%{transform:rotate(-10deg) scale(1.04)}100%{transform:rotate(0) scale(1)}}
  .dieval{font-family:'Anton';font-size:18px;letter-spacing:2px;color:var(--muted);text-transform:uppercase}
  /* ---- 10 sec ---- */
  .timer{font-family:'Anton';font-size:78px;line-height:1;text-align:center;color:var(--gold);letter-spacing:2px;
    text-shadow:0 0 24px rgba(232,184,75,.4)}
  .timer.warn{color:var(--red);text-shadow:0 0 24px rgba(255,61,90,.5);animation:pulse .5s infinite}
  @keyframes pulse{50%{transform:scale(1.06)}}
  .ten-result{text-align:center}
  .ten-result .big{font-family:'Anton';font-size:30px;color:var(--gold);margin:6px 0}
  .ten-result .big.red{color:var(--red)}
  .numfield{display:flex;align-items:center;justify-content:center;gap:16px;margin:8px 0}
  .numfield button{width:54px;height:54px;border-radius:14px;font-family:'Anton';font-size:26px;color:var(--gold);
    background:rgba(232,184,75,.1);border:1px solid var(--line)}
  .numfield button:active{transform:scale(.9)}
  .numfield .num{font-family:'Anton';font-size:48px;min-width:70px;text-align:center;color:var(--cream)}
  /* ---- gauche / droite + donne un nombre ---- */
  .gd-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .btn-left{color:#fff;background:linear-gradient(180deg,#ff6c83,var(--red) 45%,var(--red-deep));
    box-shadow:0 6px 0 #7a1325,0 12px 24px rgba(0,0,0,.4)}
  .btn-right{color:#fff;background:linear-gradient(180deg,#5b9ee8,#2766a8 45%,#174675);
    box-shadow:0 6px 0 #103354,0 12px 24px rgba(0,0,0,.4)}
  .btn-left:active,.btn-right:active{box-shadow:0 2px 0 rgba(0,0,0,.45)}
  .gd-verdict{font-family:'Anton';font-size:34px;letter-spacing:.8px;text-transform:uppercase;margin-bottom:12px}
  .gd-verdict.left{color:#ff758a}.gd-verdict.right{color:#75b7ff}
  .gd-why{font-size:20px;font-weight:700;line-height:1.3}
  .secret-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;width:100%;margin-top:8px}
  .secret-num{min-height:54px;border-radius:14px;font-family:'Anton';font-size:24px;color:var(--gold);
    background:rgba(232,184,75,.08);border:1px solid var(--line);transition:transform .1s,background .15s,color .15s}
  .secret-num:active{transform:scale(.92)}
  .secret-num.chosen{color:#2A1606;background:linear-gradient(180deg,#F4D072,var(--gold-deep));border-color:transparent}
  .scale{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;width:100%;margin-top:18px}
  .scale-end{font-size:13px;color:var(--muted);line-height:1.2}
  .scale-end:first-child{text-align:left}.scale-end:last-child{text-align:right}
  .scale-line{width:62px;height:6px;border-radius:10px;background:linear-gradient(90deg,var(--red),var(--gold),#37C98A)}
  .secret-cover{font-size:58px;line-height:1;margin-bottom:12px}
  .reveal-number{font-family:'Anton';font-size:92px;line-height:1;color:var(--gold);text-shadow:0 0 28px rgba(232,184,75,.45)}
  /* ---- toast / modal / overlay ---- */
  .toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(20px);
    background:var(--velvet-2);border:1px solid var(--line);color:var(--cream);padding:12px 18px;border-radius:14px;
    font-weight:600;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:50;box-shadow:0 10px 30px rgba(0,0,0,.5);max-width:88vw;text-align:center}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
  .flash{position:fixed;inset:0;background:radial-gradient(circle,rgba(232,184,75,.35),transparent 60%);opacity:0;
    pointer-events:none;z-index:40}
  .flash.go{animation:flash .6s ease}
  @keyframes flash{0%{opacity:0}30%{opacity:1}100%{opacity:0}}
  .modal{position:fixed;inset:0;background:rgba(8,4,7,.7);backdrop-filter:blur(4px);display:none;align-items:flex-end;
    justify-content:center;z-index:60;padding:16px}
  .modal.open{display:flex}
  .sheet{background:var(--velvet-2);border:1px solid var(--line);border-radius:22px;padding:22px;width:100%;max-width:448px;
    box-shadow:0 -10px 40px rgba(0,0,0,.6);animation:up .25s ease}
  @keyframes up{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}
  .sheet h3{font-family:'Anton';font-size:22px;letter-spacing:.5px;margin:0 0 4px;color:var(--gold);text-transform:uppercase;text-align:center}
  .sheet p{color:var(--muted);font-size:14px;text-align:center;margin:0 0 18px}
  .sparkle{position:absolute;font-size:18px;animation:spk 1s ease forwards;pointer-events:none}
  @keyframes spk{0%{transform:scale(0);opacity:1}100%{transform:scale(1.4) translateY(-20px);opacity:0}}
  .sbgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
  .sbpad{position:relative;overflow:hidden;aspect-ratio:1/1;border-radius:18px;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:7px;color:var(--cream);background:linear-gradient(165deg,var(--panel),var(--velvet-2));
    border:1.5px solid var(--pc);box-shadow:0 5px 0 rgba(0,0,0,.35),0 10px 18px rgba(0,0,0,.35);
    transition:transform .08s,box-shadow .08s,filter .15s}
  .sbpad::before{content:"";position:absolute;inset:0;background:radial-gradient(75% 60% at 50% 0%,var(--pc),transparent 70%);opacity:.16}
  .sbpad:active{transform:translateY(4px);box-shadow:0 1px 0 rgba(0,0,0,.35),0 4px 10px rgba(0,0,0,.35)}
  .sbpad .sbi{font-size:30px;line-height:1;z-index:1}
  .sbpad .sbn{font-family:'Anton';font-size:12px;letter-spacing:.3px;text-transform:uppercase;text-align:center;line-height:1.05;color:var(--pc);z-index:1;padding:0 4px}
  .sbpad.hit{animation:padhit .35s ease}
  @keyframes padhit{0%{filter:brightness(1.9)}100%{filter:brightness(1)}}
  .sbpad.sbadd{border-style:dashed;border-color:var(--line)}
  .sbpad.sbadd::before{display:none}
  .sbpad.sbadd .sbi,.sbpad.sbadd .sbn{color:var(--muted)}
  .sbdel{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
    font-size:11px;color:#fff;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.25);z-index:2;line-height:1}
  .sbdel:active{transform:scale(.85)}
  .btn-launch{flex-direction:column;gap:3px;min-height:72px}
  .btn-launch .bl-t{font-family:'Anton';font-size:20px;letter-spacing:.6px}
  .btn-launch small{font-size:12px;font-weight:700;opacity:.75;text-transform:none;letter-spacing:.2px}
  .slist{max-height:42vh;overflow:auto;margin:4px 0}
  .srow{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line)}
  .srow:last-child{border-bottom:0}
  .srow .snm{flex:1;font-weight:600;font-size:15px;text-align:left}
  .srow .sct{font-family:'Anton';font-size:18px;color:var(--gold);min-width:28px;text-align:center}
  .mini{width:40px;height:40px;border-radius:11px;font-family:'Anton';font-size:18px;color:var(--cream);background:rgba(255,255,255,.05);border:1px solid var(--line)}
  .mini.gold{color:#2A1606;background:linear-gradient(180deg,#F4D072,var(--gold-deep));border:0}
  .mini:active{transform:scale(.9)}
  .rrow{display:flex;align-items:center;justify-content:space-between;padding:8px 2px;border-bottom:1px solid var(--line);font-size:15px}
  .rrow b{font-family:'Anton';color:var(--gold);font-size:17px}
  .recaptitle{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:rgba(232,184,75,.08);border:1px solid var(--line);margin-top:8px}
  .recaptitle .rt-e{font-size:24px}
  .recaptitle .rt-t{flex:1;text-align:left;font-size:13px;color:var(--muted)}
  .recaptitle .rt-n{font-family:'Anton';color:var(--gold);font-size:16px}
  .assignwrap{display:flex;flex-wrap:wrap;gap:9px;justify-content:center}
  .assignchip{padding:11px 16px;border-radius:14px;font-weight:800;font-size:15px;color:#2A1606;background:linear-gradient(180deg,#F4D072,var(--gold-deep));box-shadow:0 3px 0 #7c560f}
  .assignchip:active{transform:translateY(2px);box-shadow:0 1px 0 #7c560f}
  .timer.sm{font-size:58px}

  /* ---- débat ---- */
  .debate-duel{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;margin-top:8px}
  .debate-role{display:flex;flex-direction:column;gap:4px;padding:13px 10px;border-radius:16px;text-align:center;border:1px solid var(--line);background:rgba(255,255,255,.035)}
  .debate-role span{font-family:'Anton';font-size:15px;letter-spacing:.8px}
  .debate-role b{font-size:17px;overflow-wrap:anywhere}
  .debate-role.pour{border-color:rgba(55,201,138,.45);box-shadow:inset 0 0 22px rgba(55,201,138,.08)}
  .debate-role.pour span{color:#55dda1}
  .debate-role.contre{border-color:rgba(255,61,90,.45);box-shadow:inset 0 0 22px rgba(255,61,90,.08)}
  .debate-role.contre span{color:#ff758a}
  .debate-relance{width:100%;margin-top:10px;padding:12px 14px;border-radius:15px;border:1px solid rgba(232,184,75,.3);background:rgba(232,184,75,.08);color:var(--cream);font-size:15px;font-weight:700;line-height:1.35;text-align:left}
  .debate-relance:empty{display:none}
  .debate-relance span{display:block;font-family:'Anton';font-size:12px;letter-spacing:.8px;color:var(--gold);margin-bottom:4px}

  /* ---- identité Grand Palace / Art déco ---- */
  .brand{margin:2px 0 12px;position:relative}
  .brand .brand-logo{display:block;width:min(92%,380px);height:auto;margin:0 auto;filter:drop-shadow(0 14px 24px rgba(0,0,0,.34))}
  .brand .dots,.brand>h1:not(.sr-only){display:none}
  .brand .sub{margin-top:-2px;color:var(--muted);font-size:13px;font-weight:600;letter-spacing:.8px;text-transform:uppercase}
  .sr-only,.brand h1.sr-only{display:block!important;position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  .topbar .ttl,.eyebrow,.tool .tn,.card .cn,.card.locked .badge,.prow .av,.empty h3,.counter,
  .promptcard .kicker,.designee b,.winner .wl,.winner .wn,.dieval,.timer,.ten-result .big,
  .numfield button,.numfield .num,.gd-verdict,.secret-num,.reveal-number,.sheet h3,.sbpad .sbn,
  .btn-launch .bl-t,.srow .sct,.mini,.rrow b,.recaptitle .rt-n,.debate-role span,.debate-relance span{
    font-family:'Josefin Sans','Outfit',sans-serif
  }
  .topbar .ttl,.eyebrow,.tool .tn,.card .cn,.promptcard .kicker,.btn-launch .bl-t{letter-spacing:1.4px}
  .eyebrow{color:var(--gold);margin-top:25px}
  .eyebrow::before{content:"";width:9px;height:9px;background:var(--red);transform:rotate(45deg);flex:none;box-shadow:0 0 0 2px var(--velvet),0 0 0 3px var(--gold)}
  .eyebrow::after{background:linear-gradient(90deg,var(--gold),transparent);opacity:.55}
  .btn{border-radius:4px;position:relative}
  .btn-gold{color:var(--velvet);background:linear-gradient(180deg,#E7C982,var(--gold));border:1px solid #F3DDA8;
    box-shadow:0 5px 0 var(--gold-deep),0 12px 24px rgba(0,0,0,.38),inset 0 0 0 3px rgba(8,12,24,.12)}
  .btn-gold:active{box-shadow:0 2px 0 var(--gold-deep),0 6px 14px rgba(0,0,0,.38),inset 0 0 0 3px rgba(8,12,24,.12)}
  .btn-red{background:linear-gradient(180deg,#D95772,var(--red));box-shadow:0 5px 0 var(--red-deep),0 12px 24px rgba(0,0,0,.38)}
  .btn-ghost,.iconbtn,.chip{border-radius:4px}
  .players-bar{border-radius:4px;background:linear-gradient(145deg,rgba(39,166,161,.20),rgba(39,166,161,.07));
    border-color:rgba(39,166,161,.48);box-shadow:inset 0 0 0 4px rgba(8,12,24,.35)}
  .players-bar .pb-go{color:var(--gold)}
  .tools{gap:9px}
  .tool{border-radius:4px;background:linear-gradient(160deg,var(--panel),var(--velvet-2));box-shadow:inset 0 0 0 3px rgba(216,181,106,.035)}
  .tool:nth-child(1){border-color:rgba(194,59,90,.50)}
  .tool:nth-child(2){border-color:rgba(39,166,161,.50)}
  .tool:nth-child(3){border-color:rgba(108,75,182,.52)}
  .grid{gap:10px}
  .card{--card-accent:var(--gold);border-radius:4px;background:linear-gradient(155deg,var(--panel),var(--velvet-2));
    border-color:color-mix(in srgb,var(--card-accent) 48%,transparent);box-shadow:inset 0 0 0 4px rgba(8,12,24,.42)}
  .grid .card:nth-child(4n+1){--card-accent:var(--red)}
  .grid .card:nth-child(4n+2){--card-accent:var(--paon)}
  .grid .card:nth-child(4n+3){--card-accent:var(--violet)}
  .grid .card:nth-child(4n){--card-accent:var(--gold)}
  .card::before{inset:0;opacity:1;background:linear-gradient(145deg,color-mix(in srgb,var(--card-accent) 18%,transparent),transparent 48%)}
  .card::after{content:"";position:absolute;inset:7px;border:1px solid color-mix(in srgb,var(--card-accent) 50%,transparent);pointer-events:none}
  .card .em,.card .cn,.card .cd{position:relative;z-index:1}
  .card .cn{color:var(--cream)}
  .promptcard{border-radius:54px 54px 5px 5px;background:linear-gradient(165deg,var(--panel),var(--velvet-2));
    box-shadow:0 20px 40px rgba(0,0,0,.42),inset 0 0 0 5px rgba(216,181,106,.035)}
  .promptcard::after{border-radius:48px 48px 3px 3px;inset:7px;border-color:rgba(216,181,106,.30)}
  .sheet{border-radius:5px 5px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.65),inset 0 0 0 5px rgba(216,181,106,.035)}
  .foot{letter-spacing:1px;text-transform:uppercase}
  @media (prefers-reduced-motion: reduce){
    *{animation:none!important;transition:none!important}
  }
