/* La Caisse — entraînement E5 BTS NDRC
   Encre navy + étiquette jaune promo. Signature : le ticket de caisse. */
:root{
  --ink:#14213D; --ink-2:#2A3A5C; --paper:#EEF2F7; --sheet:#FFFFFF; --slate:#5B6B82; --line:#D3DBE6;
  --promo:#FFC93C; --promo-deep:#E8A400; --sale:#FF4F79; --mint:#1FB5A6; --mint-soft:#D8F4F1; --sale-soft:#FFE3EA;
  --display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --body:"Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;
  --r-s:6px; --r-m:12px;
  --shadow:0 1px 0 rgba(20,33,61,.08), 0 8px 24px -12px rgba(20,33,61,.35);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.55 var(--body);font-variant-numeric:tabular-nums}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--promo-deep);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- top bar */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px clamp(16px,4vw,40px);background:var(--ink);color:#fff}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-tag{width:34px;height:34px}
.brand-tag path{fill:var(--promo);stroke:var(--promo);stroke-width:4;stroke-linejoin:round}
.brand-tag circle{fill:var(--ink)}
.brand-name{font:800 22px/1 var(--display);letter-spacing:-.01em}
.brand-sub{font-size:14px;color:#AEB9CC;margin-left:2px}
@media (max-width:560px){.brand-sub{display:none}}
.player-chip{display:flex;align-items:center;gap:12px;font-size:15px}
.player-chip .who{font-weight:700}
.player-chip .lvl{color:#AEB9CC;font-size:13px;display:block;line-height:1.1}
.xpbar{width:120px;height:8px;border-radius:99px;background:#33456C;overflow:hidden}
.xpbar i{display:block;height:100%;background:var(--promo);border-radius:99px;transition:width .8s cubic-bezier(.2,.8,.2,1)}
.flame{font:700 15px var(--display);color:var(--promo)}
@media (max-width:560px){.xpbar{width:70px}.player-chip .lvl{display:none}}

/* ---------- buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2px solid var(--ink);border-radius:var(--r-s);padding:10px 18px;font-weight:700;cursor:pointer;background:#fff;text-decoration:none;transition:transform .08s ease, box-shadow .08s ease}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--promo);box-shadow:3px 3px 0 var(--ink)}
.btn.primary:hover{box-shadow:4px 4px 0 var(--ink)}
.btn.dark{background:var(--ink);color:#fff}
.btn.ghost{border-color:transparent;background:transparent;text-decoration:underline;text-underline-offset:3px}
.btn.small{padding:6px 12px;font-size:15px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ---------- layout */
main{max-width:1180px;margin:0 auto;padding:28px clamp(16px,4vw,40px) 60px;outline:none}
.foot{max-width:1180px;margin:0 auto;padding:0 clamp(16px,4vw,40px) 40px;color:var(--slate);font-size:14px}

/* ---------- home hero */
.home-top{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
@media (max-width:880px){.home-top{grid-template-columns:1fr}}
.hero h1{font:800 clamp(40px,6.5vw,76px)/.95 var(--display);letter-spacing:-.03em;margin:8px 0 18px}
.hero p{max-width:34em;font-size:19px;color:var(--ink-2);margin:0 0 22px}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.me-card{margin-top:28px;display:grid;grid-template-columns:repeat(3,auto);gap:4px 28px;justify-content:start}
.me-card .n{font:800 34px/1 var(--display)}
.me-card .l{font-size:14px;color:var(--slate)}
.next-level{margin-top:14px;font-size:15px;color:var(--ink-2)}
.next-level .xpbar{width:min(360px,100%);height:10px;background:#D3DBE6;margin-top:6px}

/* ---------- the receipt (leaderboard + result) */
.receipt{position:relative;background:var(--sheet);padding:26px 24px 30px;filter:drop-shadow(0 10px 18px rgba(20,33,61,.18));--zig:10px}
.receipt::before,.receipt::after{content:"";position:absolute;left:0;right:0;height:var(--zig);background:linear-gradient(-45deg,var(--sheet) 50%,transparent 50%) 0 0/calc(var(--zig)*2) var(--zig) repeat-x,linear-gradient(45deg,var(--sheet) 50%,transparent 50%) 0 0/calc(var(--zig)*2) var(--zig) repeat-x}
.receipt::before{top:calc(var(--zig)*-1);transform:scaleY(-1)}
.receipt::after{bottom:calc(var(--zig)*-1)}
.receipt h2{font:800 22px/1.1 var(--display);text-align:center;margin:0}
.receipt .sub{text-align:center;color:var(--slate);font-size:14px;margin:4px 0 14px}
.dash{border:0;border-top:2px dashed var(--line);margin:12px 0}
.board{list-style:none;margin:0;padding:0}
.board li{display:grid;grid-template-columns:2.2em 1fr auto;gap:10px;align-items:baseline;padding:7px 4px;border-radius:var(--r-s)}
.board li + li{border-top:1px dotted var(--line)}
.board .pos{font:800 18px var(--display);color:var(--slate)}
.board li:nth-child(1) .pos,.board li:nth-child(2) .pos,.board li:nth-child(3) .pos{color:var(--ink)}
.board .nm{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.board .nm small{display:block;font-weight:400;color:var(--slate);font-size:13px}
.board .xp{font:800 18px var(--display);text-align:right}
.board .xp small{font:400 12px var(--body);color:var(--slate);display:block}
.board li.me{background:#FFF4D2;box-shadow:inset 3px 0 0 var(--promo-deep)}
.board .medal{display:inline-block;width:1.2em}
.board-empty{text-align:center;color:var(--slate);padding:18px 0}
.receipt .total{display:flex;justify-content:space-between;align-items:baseline;font:800 26px var(--display)}
.barcode{height:34px;margin:16px auto 0;width:70%;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 9px,var(--ink) 9px 12px,transparent 12px 13px)}

/* ---------- exercise shelves (price tags) */
.shelf{margin-top:56px}
.shelf-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.shelf h2{font:800 30px/1.1 var(--display);margin:0;letter-spacing:-.01em}
.shelf .desc{color:var(--slate);margin:0 0 18px;max-width:46em}
.shelf-progress{font-size:15px;color:var(--ink-2)}
.tags{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px 18px}
.tag{position:relative;display:flex;flex-direction:column;text-decoration:none;background:var(--sheet);padding:16px 18px 16px 30px;border:2px solid var(--ink);border-radius:var(--r-s) 0 0 var(--r-s);clip-path:polygon(0 0,calc(100% - 22px) 0,100% 50%,calc(100% - 22px) 100%,0 100%);min-height:128px;transition:transform .12s ease}
.tag::after{content:"";position:absolute;right:14px;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 2px var(--ink)}
.tag:hover,.tag:focus-visible{transform:rotate(-1.2deg) translateY(-2px)}
.tag .lv{display:flex;gap:4px;margin-bottom:8px}
.tag .lv i{width:10px;height:10px;border-radius:50%;border:2px solid var(--ink)}
.tag .lv i.on{background:var(--ink)}
.tag h3{font:700 18px/1.2 var(--display);margin:0 36px 6px 0}
.tag .meta{font-size:14px;color:var(--slate);margin-right:36px}
.tag .foot-row{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;margin-right:30px;min-height:34px}
.tag .price{font:800 15px var(--display)}
.tag.done{background:#FFFBEA}
.tag .stamp{font:800 24px/1 var(--display);padding:3px 8px;border:3px solid currentColor;border-radius:6px;transform:rotate(-8deg)}
.stamp.s-high{color:var(--mint)} .stamp.s-mid{color:var(--promo-deep)} .stamp.s-low{color:var(--sale)}
.tag .fresh{font-size:14px;color:var(--slate)}

/* ---------- badges */
.badges{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
.badge{display:flex;gap:10px;align-items:center;padding:8px 14px 8px 8px;border-radius:99px;background:#fff;border:2px dashed var(--line);color:var(--slate);font-size:14px;max-width:320px}
.badge b{display:block;color:inherit;font-size:15px}
.badge .medal{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--line);font:800 16px var(--display);color:#fff}
.badge.on{border:2px solid var(--ink);color:var(--ink)}
.badge.on .medal{background:var(--promo);color:var(--ink)}

/* ---------- exercise page */
.crumbs{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:18px}
.crumbs a{font-weight:700}
.exam{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:28px;align-items:start}
@media (max-width:960px){.exam{grid-template-columns:1fr}}
.sheet{background:var(--sheet);border-radius:var(--r-m);box-shadow:var(--shadow);padding:clamp(18px,3vw,32px)}
.sheet h1{font:800 clamp(26px,3.4vw,36px)/1.1 var(--display);margin:6px 0 16px;letter-spacing:-.01em}
.sheet .kind{font-size:14px;color:var(--slate)}
.sheet p{margin:0 0 14px;max-width:70ch}
.annex{margin:22px 0 0}
.annex h3{font:700 16px/1.3 var(--body);margin:0 0 8px}
.annex table{width:100%;border-collapse:collapse;font-size:16px}
.annex td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.annex td:last-child{text-align:right;font-weight:700;white-space:nowrap}
.annex tr:nth-child(odd) td{background:#F6F8FB}
.annex blockquote{margin:0;padding:14px 18px;background:#F6F8FB;border-radius:var(--r-s);font-style:italic;max-width:70ch}
.annex ul{margin:0;padding-left:1.2em}
.annex li{margin:4px 0}
.task{margin-top:26px;border:2px solid var(--ink);border-radius:var(--r-s);padding:14px 18px}
.task strong{display:block;font:700 15px var(--body);margin-bottom:4px}
.task p{margin:4px 0;font-weight:700}
.task p + p{font-weight:400;color:var(--ink-2)}

.copy{position:sticky;top:76px}
@media (max-width:960px){.copy{position:static}}
.copy h2{font:800 22px/1.2 var(--display);margin:0 0 4px}
.copy .hint-line{color:var(--slate);font-size:15px;margin:0 0 16px}
.field{display:grid;grid-template-columns:1fr 150px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px dotted var(--line)}
.field label{font-weight:700;font-size:16px}
.field label small{display:block;font-weight:400;color:var(--slate);font-size:13px}
.inwrap{position:relative}
.inwrap input{width:100%;padding:9px 34px 9px 10px;border:2px solid var(--ink);border-radius:var(--r-s);background:#fff;text-align:right;font-weight:700}
.inwrap span{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--slate);font-size:14px;pointer-events:none}
.inwrap.wide span{display:none}
.inwrap.wide input{padding-right:10px}
select{width:100%;padding:8px 10px;border:2px solid var(--ink);border-radius:var(--r-s);background:#fff}
.chgroup{margin:14px 0 4px;padding:12px 14px;border-radius:var(--r-s);background:#F6F8FB}
.chgroup h3{font:700 17px/1.2 var(--display);margin:0 0 6px}
.chgroup .field{grid-template-columns:1fr 120px}
.chgroup .sel{display:grid;grid-template-columns:1fr;gap:6px;padding:6px 0}
.chgroup .sel label{font-size:14px;color:var(--ink-2)}
@media (max-width:480px){.field,.chgroup .field{grid-template-columns:1fr}}

/* scratch-card hints */
.hints{margin:20px 0 6px}
.hints h3{font:700 16px var(--body);margin:0 0 8px}
.scratch{position:relative;margin:8px 0;border-radius:var(--r-s);overflow:hidden;border:2px solid var(--ink);background:#fff}
.scratch button{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;border:0;padding:11px 14px;background:repeating-linear-gradient(135deg,#C9D2E0 0 6px,#BCC6D6 6px 12px);font-weight:700;cursor:pointer;text-align:left}
.scratch button .cost{background:var(--sale);color:#fff;border-radius:99px;padding:2px 10px;font:800 14px var(--display);white-space:nowrap}
.scratch button[disabled]{cursor:not-allowed;opacity:.65}
.scratch .revealed{padding:12px 14px;white-space:pre-line;font-size:15px;animation:peel .45s ease-out}
.scratch .revealed b{display:block;margin-bottom:4px}
@keyframes peel{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.potential{display:flex;justify-content:space-between;align-items:baseline;margin:16px 0;padding-top:12px;border-top:2px dashed var(--line);font-weight:700}
.potential .big{font:800 26px var(--display)}
.copy-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}

/* ---------- result */
.result{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px;align-items:start;margin-top:8px}
@media (max-width:960px){.result{grid-template-columns:1fr}}
.receipt.print{animation:print 1.1s cubic-bezier(.2,.8,.2,1) both;transform-origin:top}
@keyframes print{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
.lines{list-style:none;margin:0;padding:0;font-size:15px}
.lines li{display:grid;grid-template-columns:1.4em 1fr auto;gap:8px;padding:5px 0;align-items:baseline}
.lines .mark{font-weight:800}
.lines .ok .mark{color:var(--mint)} .lines .ko .mark{color:var(--sale)}
.lines .lab small{display:block;color:var(--slate);font-size:13px}
.lines .pts{font:700 15px var(--display);white-space:nowrap}
.lines .grp{display:block;font:700 14px var(--display);color:var(--slate);padding-top:10px;grid-template-columns:1fr}
.lines .pen .pts,.lines .pen .mark{color:var(--sale)}
.big-score{text-align:center;margin:16px 0 4px}
.big-score .n{font:800 84px/1 var(--display);letter-spacing:-.04em}
.big-score .of{font:700 22px var(--display);color:var(--slate)}
.verdict{text-align:center;font:700 18px var(--display);margin:0 0 6px}
.gain{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:12px}
.pill{border-radius:99px;padding:5px 12px;font-weight:700;font-size:14px;background:var(--promo)}
.pill.mint{background:var(--mint-soft);color:#0B6E65}
.pill.grey{background:#E4E9F1;color:var(--ink-2)}
.levelup{margin-top:14px;padding:12px 14px;border-radius:var(--r-s);background:var(--ink);color:#fff;text-align:center;font-weight:700}
.levelup b{color:var(--promo)}
.corr h2{font:800 26px/1.1 var(--display);margin:0 0 14px}
.corr table{width:100%;border-collapse:collapse;font-size:15px;margin-bottom:12px}
.corr th{text-align:left;font-size:13px;color:var(--slate);font-weight:700;padding:6px 8px;border-bottom:2px solid var(--ink)}
.corr td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
.corr td.res{font-weight:800;white-space:nowrap;text-align:right}
.corr .concl{background:var(--mint-soft);padding:12px 16px;border-radius:var(--r-s);margin:12px 0}
.corr .traps{background:var(--sale-soft);padding:12px 16px 12px 34px;border-radius:var(--r-s);margin:12px 0}
.corr .traps li{margin:4px 0}
.corr h3{font:700 18px var(--display);margin:22px 0 6px}
.cat{display:inline-block;border-radius:99px;padding:1px 9px;font-size:13px;font-weight:700}
.cat.fav{background:var(--mint-soft);color:#0B6E65}.cat.moy{background:#FFF1C9;color:#7A5600}.cat.def{background:var(--sale-soft);color:#A3123A}
.after-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}


/* ---------- Rush du Caddie : bannière d'accueil */
.rush-banner{margin-top:48px;display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;text-decoration:none;background:var(--ink);color:#fff;border-radius:var(--r-m);padding:22px 26px;box-shadow:6px 6px 0 var(--promo);transition:transform .12s ease, box-shadow .12s ease}
.rush-banner:hover,.rush-banner:focus-visible{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--promo)}
.rb-cart{width:92px;height:74px;animation:roll 1.4s ease-in-out infinite alternate}
@keyframes roll{from{transform:translateX(-4px) rotate(-2deg)}to{transform:translateX(6px) rotate(1deg)}}
.rb-new{display:inline-block;background:var(--sale);color:#fff;border-radius:99px;padding:2px 10px;font:800 13px var(--display);letter-spacing:.02em;text-transform:uppercase}
.rb-text h2{font:800 clamp(26px,3.4vw,36px)/1.05 var(--display);margin:6px 0 6px;letter-spacing:-.02em;color:var(--promo)}
.rb-text p{margin:0;color:#C9D2E2;max-width:40em}
.rb-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:190px}
.rb-top{list-style:none;margin:0;padding:0;width:100%;font-size:15px}
.rb-top li{display:flex;justify-content:space-between;gap:12px;padding:2px 0;border-bottom:1px dotted #33456C}
.rb-top b{font-family:var(--display);color:var(--promo)}
.rb-me,.rb-empty{margin:0;font-size:14px;color:#C9D2E2}
.rush-banner .btn.primary{color:var(--ink);box-shadow:3px 3px 0 #000}
@media (max-width:760px){.rush-banner{grid-template-columns:1fr;text-align:left}.rb-cart{width:70px;height:56px}.rb-side{align-items:stretch}}

/* ---------- Rush : page de jeu */
.rush-head h1{font:800 clamp(34px,5vw,56px)/1 var(--display);letter-spacing:-.03em;margin:4px 0 10px}
.rush-head p{max-width:52em;color:var(--ink-2);margin:0 0 18px}
.stage{position:relative;border:3px solid var(--ink);border-radius:var(--r-m);overflow:hidden;background:var(--wall,#E3EAF3);box-shadow:6px 6px 0 var(--ink);touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;outline:none}
.stage:focus-visible{box-shadow:6px 6px 0 var(--promo-deep)}
.stage canvas{display:block;cursor:pointer}
.rush-keys{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:14px;color:var(--slate);margin:14px 0 0}
kbd{display:inline-block;min-width:1.7em;padding:1px 6px;border:2px solid currentColor;border-bottom-width:3px;border-radius:5px;font:700 12px/1.4 var(--body);text-align:center}
.rush-below{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:32px;align-items:start;margin-top:34px}
@media (max-width:880px){.rush-below{grid-template-columns:1fr}}
.rush-recap h2{font:800 24px/1.1 var(--display);margin:0 0 12px}
.rush-rules{margin:0;padding-left:1.1em}.rush-rules li{margin:8px 0}
.rush-log{list-style:none;margin:0;padding:0}
.rush-log li{display:grid;grid-template-columns:1.6em 1fr;gap:10px;padding:12px 0;border-top:1px dotted var(--line)}
.rush-log .mark{font:800 20px var(--display)}
.rush-log .ok .mark{color:var(--mint)}.rush-log .ko .mark{color:var(--sale)}.rush-log .skip .mark{color:var(--slate)}
.rush-log small{color:var(--slate);font-size:13px}
.rush-log p{margin:2px 0}
.rush-log .ans{font-size:15px}
.rush-log .why{font-size:15px;background:#F6F8FB;border-radius:var(--r-s);padding:6px 10px;margin-top:6px}
.rush-log .ko .why{background:var(--sale-soft)}

/* ---------- Rush : fenêtre de question */
.rq-back{position:fixed;inset:0;z-index:45;background:rgba(20,33,61,.62);display:grid;place-items:center;padding:16px;overflow:auto}
.rq-back[hidden]{display:none}
.rq{background:var(--sheet);border-radius:var(--r-m);width:min(620px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:22px 24px 20px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);animation:pop .22s cubic-bezier(.2,.9,.3,1.3)}
@keyframes pop{from{transform:scale(.92);opacity:0}to{transform:none;opacity:1}}
.rq-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.rq-kind{border-radius:99px;padding:3px 12px;font:800 14px var(--display)}
.rq-kind.chance{background:var(--sale);color:#fff}.rq-kind.bonus{background:var(--promo);color:var(--ink)}
.rq-label{font-size:14px;color:var(--slate);font-weight:700}
.rq-prompt{font:700 clamp(19px,2.4vw,23px)/1.3 var(--display);margin:0 0 14px}
.rq-data{width:100%;border-collapse:collapse;margin:0 0 14px;font-size:16px}
.rq-data td{padding:6px 10px;border-bottom:1px solid var(--line)}
.rq-data tr:nth-child(odd) td{background:#F6F8FB}
.rq-data td:last-child{text-align:right;font-weight:700;white-space:nowrap}
.rq-choices{display:grid;gap:8px}
.rq-choices.two{grid-template-columns:1fr 1fr}
.rq-choice{display:flex;gap:12px;align-items:center;text-align:left;width:100%;padding:11px 14px;border:2px solid var(--ink);border-radius:var(--r-s);background:#fff;cursor:pointer;font-weight:700;transition:transform .08s ease, background .15s}
.rq-choice:hover:not([disabled]){background:#FFF4D2;transform:translateX(2px)}
.rq-choice kbd{flex:none;color:var(--slate)}
.rq-choice[disabled]{cursor:default;opacity:.7}
.rq-choice.good{background:var(--mint-soft);border-color:#0B6E65;opacity:1}
.rq-choice.bad{background:var(--sale-soft);border-color:#A3123A;opacity:1}
.rq-input{display:grid;grid-template-columns:1fr auto;gap:10px}
.rq-input input{font-size:20px}
.rq-hint{font-size:14px;color:var(--slate);margin:6px 0 0}
.rq-fb{margin-top:14px;padding:12px 14px;border-radius:var(--r-s);display:grid;gap:4px;font-size:15px}
.rq-fb b:first-child{font:800 17px var(--display)}
.rq-fb.ok{background:var(--mint-soft)}.rq-fb.ko{background:var(--sale-soft)}
.rq-next,.rq-skip{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:14px}
.rq-next kbd{margin-left:4px;opacity:.7}
.rq-over{text-align:center}
.rq-over .rq-next{justify-content:center}

/* ---------- dialog */
.name-dialog{border:0;border-radius:var(--r-m);padding:0;max-width:440px;width:calc(100% - 32px);box-shadow:0 30px 60px -20px rgba(20,33,61,.6)}
.name-dialog::backdrop{background:rgba(20,33,61,.6)}
.name-dialog form{padding:26px}
.name-dialog h2{font:800 26px/1.1 var(--display);margin:0 0 8px}
.name-dialog label{display:block;font-weight:700;margin:14px 0 6px}
.name-dialog input{width:100%;padding:12px;border:2px solid var(--ink);border-radius:var(--r-s);font-size:19px}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.form-error{color:#B0103A;min-height:1.2em;margin:6px 0 0;font-size:15px}
.fineprint{font-size:13px;color:var(--slate);margin:16px 0 0}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 18px;border-radius:var(--r-s);z-index:50;box-shadow:var(--shadow);font-weight:700}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:60;width:100%;height:100%}
.loading{color:var(--slate);padding:40px 0}

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