/* WORLD ORDER v024 — duel clarity: full-table release frame, targeting card over the dock,
   card spotlight for declarations, richer result screen, guided first duel coach. */

/* ---------------------------------------------------------------- release frame */
.table-drop-zone.table-frame{inset:30px 0 0 0;width:auto;min-height:0;height:auto;padding:0;pointer-events:none;justify-content:center;
  background:radial-gradient(ellipse at 50% 50%,#1d425052,#0a1a2240 70%);border:3px dashed #d9c183aa;border-radius:8px;box-shadow:inset 0 0 70px #0009}
.table-drop-zone.table-frame.drop-hover{background:radial-gradient(ellipse at 50% 50%,#2a5a6c80,#0d243066 72%);border-color:#ffe2a1;border-style:solid;box-shadow:inset 0 0 90px #e9c97a2e,0 0 0 2px #ffe2a144}
.table-drop-zone.table-frame>*{background:none;box-shadow:none}
.tdz-label{display:flex;flex-direction:column;align-items:center;gap:0;pointer-events:none}
.tdz-label strong{padding:12px 28px 5px;border-radius:6px 6px 0 0;border:1px solid #d9c18388;border-bottom:0;background:#0a1a22f2;font:700 clamp(17px,1.4vw,26px)/1.1 var(--wo-title);letter-spacing:.16em;color:#f6e5bd;box-shadow:0 10px 30px #000c}
.tdz-label span{padding:3px 28px 12px;border-radius:0 0 6px 6px;border:1px solid #d9c18388;border-top:0;background:#0a1a22f2;font:600 clamp(12px,.95vw,15px)/1.2 var(--wo-text);letter-spacing:.05em;color:#c9d6d8}
/* with lit targets inside, the label sits on the top edge so it never covers a target */
.table-drop-zone.table-frame:not(.table-only){justify-content:flex-start}
.table-drop-zone.table-frame:not(.table-only) .tdz-label{transform:translateY(-55%)}
.table-drop-zone.table-frame:not(.table-only) .tdz-label strong{font-size:clamp(14px,1.05vw,19px);padding:9px 22px 4px}
.table-drop-zone.table-frame:not(.table-only) .tdz-label span{font-size:12px;padding:2px 22px 9px}

/* ---------------------------------------------------------------- targeting card over the hand */
.selection-banner{position:fixed;left:50%;top:auto;bottom:calc(24px + 10px);transform:translateX(-50%);z-index:45;display:flex;align-items:center;gap:18px;
  width:min(760px,58vw);max-width:none;height:calc(var(--dock-height,220px) - 18px);padding:12px 18px 12px 14px;
  background:linear-gradient(135deg,#183441f7,#0b1a23fa);border:1px solid #d9c183;border-radius:8px;box-shadow:0 -10px 40px #000b,0 0 0 1px #000;font-size:14px}
.selection-banner[hidden]{display:none}
.selection-banner .sel-face{flex:none;height:100%;aspect-ratio:3/4;width:auto}
.selection-banner .sel-face>.face{height:100%;width:auto;box-shadow:0 0 0 2px #f0d18f,0 10px 26px #000c}
.selection-banner .sel-leader{flex:none;height:100%;aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#2b3d47,#0b1820);border:1px solid #d9c18399}
.selection-banner .sel-leader img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.sel-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.sel-copy .eyebrow{font:600 10.5px/1 var(--wo-title);letter-spacing:.2em;color:#cbb07a}
.sel-copy strong{font:700 clamp(20px,1.6vw,28px)/1 var(--wo-title);color:#f3ead4;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sel-step{display:flex;align-items:center;gap:8px;font:600 clamp(13px,1vw,16px)/1.2 var(--wo-text);color:#ffe2a1}
.sel-step svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8}
html:not(.wo-reduced-motion) .sel-step svg{animation:sel-pulse 1.4s ease-in-out infinite}
@keyframes sel-pulse{50%{transform:scale(1.25);opacity:.7}}
.sel-copy p{margin:0;font:13px/1.4 var(--wo-text);color:#b9c8c8;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.selection-banner>button{flex:none;align-self:center;margin:0;padding:10px 14px;background:#0d1d27;border:1px solid #8ca69b66;border-radius:4px;color:#e6dcc4;font:600 12px/1 var(--wo-title);letter-spacing:.12em}
.selection-banner>button:hover{border-color:#e68c7a;color:#ffd0c4}
.selection-banner>button kbd{margin-left:6px;font:600 10px var(--wo-num);opacity:.7}
@media (max-height:800px){.sel-copy p{-webkit-line-clamp:2;font-size:12px}}
.battle-app.has-targeting .hand-card.active{opacity:0}

/* ---------------------------------------------------------------- card spotlight */
.spotlight{position:absolute;inset:0;z-index:58;cursor:pointer;background:radial-gradient(ellipse 80% 70% at 50% 45%,#02070a8c,#02070ad0);user-select:none}
.spotlight.is-player{background:radial-gradient(ellipse 80% 70% at 50% 45%,#02070a59,#02070a9c)}
.spot-lines{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.spot-line{fill:none;stroke:#f0cf8a;stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 6px #e0a93a)}
.is-enemy .spot-line{stroke:#ff9d8a;filter:drop-shadow(0 0 6px #e65c45)}
.spot-dot{fill:#fff2d0;stroke:#f0cf8a;stroke-width:3}
.is-enemy .spot-dot{stroke:#ff9d8a}
.spot-target{position:absolute;border-radius:10px;pointer-events:none;box-shadow:0 0 0 3px #ffe2a1,0 0 30px #ffe2a1aa,inset 0 0 40px #ffe2a133}
.is-enemy .spot-target{box-shadow:0 0 0 3px #ff9d8a,0 0 34px #e65c45aa,inset 0 0 40px #e65c4533}
html:not(.wo-reduced-motion) .spot-target{animation:spot-pulse 1.1s ease-in-out infinite}
@keyframes spot-pulse{50%{box-shadow:0 0 0 5px #fff1cc,0 0 46px #ffe2a1cc,inset 0 0 40px #ffe2a144}}
html:not(.wo-reduced-motion) .is-enemy .spot-target{animation-name:spot-pulse-enemy}
@keyframes spot-pulse-enemy{50%{box-shadow:0 0 0 5px #ffd2c8,0 0 50px #e65c45dd,inset 0 0 40px #e65c4544}}
.spot-target em{position:absolute;left:50%;top:-14px;transform:translate(-50%,-100%);padding:4px 10px;border-radius:3px;background:#0a1a22f2;border:1px solid currentColor;color:#ffe2a1;font:700 11px/1 var(--wo-title);font-style:normal;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.is-enemy .spot-target em{color:#ffb3a3}
.spot-stage{position:absolute;display:flex;align-items:center;gap:26px;pointer-events:none}
.spot-card{flex:none;width:var(--card-w)!important;max-width:none!important;margin:0!important;padding:0!important;filter:drop-shadow(0 20px 40px #000e)}
.spot-special{position:relative;aspect-ratio:3/4;border-radius:10px;overflow:hidden;border:2px solid #d4aa5b;background:radial-gradient(ellipse at 50% 30%,#2b3d47,#0b1820)}
.spot-special img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 8%}
.spot-special b{position:absolute;left:0;right:0;bottom:30px;text-align:center;font:700 22px/1 var(--wo-title);color:#f6e2b0;text-shadow:0 2px 8px #000;text-transform:uppercase}
.spot-special small{position:absolute;left:0;right:0;bottom:12px;text-align:center;font:600 10px/1 var(--wo-title);letter-spacing:.2em;color:#cbb07a}
.spot-copy{display:flex;flex-direction:column;gap:9px;padding:16px 18px;border:1px solid #d9c18388;border-radius:6px;background:linear-gradient(160deg,#152c38f5,#0a1820f5);box-shadow:0 18px 50px #000c}
.is-enemy .spot-copy{border-color:#e68c7a99}
.spot-actor{display:flex;align-items:center;gap:8px;font:600 11px/1 var(--wo-title);letter-spacing:.16em;color:#a9bcbc;text-transform:uppercase}
.spot-actor img{width:30px;height:30px;border-radius:50%;object-fit:cover;object-position:50% 12%;border:1px solid #d9c18388;background:#13232d}
.spot-actor b{color:#f0d38f;font-weight:700}
.is-enemy .spot-actor b{color:#ffb3a3}
.spot-copy h3{margin:0;font:700 clamp(22px,1.8vw,32px)/1 var(--wo-title);text-transform:uppercase;color:#f6ecd4;letter-spacing:.01em}
.spot-rule{margin:0;font:15px/1.45 var(--wo-text);color:#dcd6c6}
.spot-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.spot-list li{display:flex;align-items:baseline;gap:7px;font:14px/1.3 var(--wo-text);color:#e8dfc8}
.spot-list li span{color:#f0cf8a;font-weight:700}
.is-enemy .spot-list li span{color:#ff9d8a}
.spot-list li small{color:#8fa4a6;font-size:12px}
.spot-note{margin:0;padding:7px 10px;border-left:2px solid #d4aa5b;background:#d4aa5b14;font:600 13px/1.35 var(--wo-text);color:#f0d9a5}
.tone-cancel .spot-note{border-color:#e68c7a;background:#e68c7a1a;color:#ffc3b5}
.spot-hint{position:relative;display:block;padding-top:6px;font:600 10.5px/1 var(--wo-title);letter-spacing:.14em;color:#7f9799;text-transform:uppercase}
.spot-hint i{position:absolute;left:0;bottom:-6px;height:2px;width:100%;background:#d4aa5b55;transform-origin:left}
html:not(.wo-reduced-motion) .spot-hint i{animation:spot-timer var(--hold) linear both}
@keyframes spot-timer{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.spotlight.is-still{background:radial-gradient(ellipse 80% 70% at 50% 45%,#02070a8c,#02070ad0)}
@media (max-height:800px){.spot-rule{font-size:13.5px}.spot-copy{padding:12px 14px;gap:7px}}

/* the pending declaration in the response panel */
.inline-response .ir-card{display:flex;gap:10px;align-items:center;margin:6px 0 4px}
.inline-response .ir-card .field-card{width:52px;flex:none}
.inline-response .ir-card div{display:flex;flex-direction:column;gap:3px;min-width:0}
.inline-response .ir-card b{font:700 15px/1.1 var(--wo-title);color:#f3e6c6}
.inline-response .ir-card small{font:12px/1.3 var(--wo-text);color:#c3cdca}
.inline-response .ir-card em{font:600 10px/1 var(--wo-title);font-style:normal;letter-spacing:.14em;color:#ffb3a3}
.hand-card.is-spotlit{visibility:hidden}
.inline-response.has-card p{margin:4px 0 2px;font-size:12.5px;line-height:1.35}

/* ---------------------------------------------------------------- result screen */
dialog.result-modal.result-v24{width:min(1340px,96vw);max-width:none;max-height:94svh;min-height:0;padding:0;overflow:hidden;background:radial-gradient(ellipse at 0% 0%,#2a4250,transparent 55%),linear-gradient(140deg,#152a35,#08141b)}
.result-v24 #result-content{height:100%}
.rs{display:grid;grid-template-columns:minmax(340px,30%) minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:min(94svh,1010px)}
.rs-hero{display:flex;flex-direction:column;gap:10px;padding:26px 28px 22px;border-right:1px solid #a68e5c33;background:linear-gradient(180deg,#0e1f29cc,#0a1820ee);overflow:auto}
.rs-portraits{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;height:clamp(120px,19vh,200px);margin:-6px -8px 4px;overflow:hidden;
  -webkit-mask:linear-gradient(180deg,#000 80%,transparent);mask:linear-gradient(180deg,#000 80%,transparent)}
.rs-portraits img{width:100%;height:100%;object-fit:cover;object-position:50% 14%}
.rs-portraits b{align-self:center;padding:4px 6px;font:700 14px/1 var(--wo-title);color:#cbb07a;letter-spacing:.1em}
.result-player .rs-portraits img.is-enemy,.result-enemy .rs-portraits img.is-player{filter:grayscale(.7) brightness(.55)}
.rs-hero .eyebrow{font:600 11px/1 var(--wo-title);letter-spacing:.2em;color:#cbb07a}
.rs-hero h2{margin:0;font:700 clamp(44px,4vw,68px)/.95 var(--wo-title);text-transform:uppercase;letter-spacing:.02em}
.rs-hero h2.result-player{color:#f3cf7a;text-shadow:0 0 30px #e0a93a55}
.rs-hero h2.result-enemy{color:#ff9d8a}
.rs-hero h2.result-draw{color:#cfdcdc}
.rs-hero>p{margin:0;font:14px/1.45 var(--wo-text);color:#c9d1cd}
.rs-hero .result-scores{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0;padding:12px 0;border-top:1px solid #8ca69b22;border-bottom:1px solid #8ca69b22}
.rs-hero .result-scores div{display:flex;flex-direction:column;gap:3px}
.rs-hero .result-scores span{font:600 12px/1 var(--wo-title);letter-spacing:.1em;color:#a9bcbc;text-transform:uppercase}
.rs-hero .result-scores strong{font:700 40px/1 var(--wo-num);color:#f3e6c6}
.rs-hero .result-scores small{font:600 9px/1 var(--wo-title);letter-spacing:.14em;color:#7f9799}
.rs-hero .result-limit-note{font-size:12.5px;color:#8fa9ae}
.rs-actions{display:flex;flex-direction:column;gap:7px;margin-top:auto;padding-top:8px}
.rs-actions .primary-button{height:50px;font:700 16px/1 var(--wo-title)!important;letter-spacing:.18em!important}
.rs-actions .primary-button svg{width:18px;height:18px}
.rs-actions-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.rs-actions .secondary-button{padding:10px 8px;font-size:11px;letter-spacing:.12em}
.rs-actions .result-review{align-self:center;font-size:12px}
.rs-body{display:flex;flex-direction:column;gap:12px;padding:20px 24px 20px;overflow:auto;min-height:0}
.rs-panel{padding:12px 16px 14px;border:1px solid #8ca69b30;border-radius:6px;background:#0a1820b3}
.rs-panel h3{display:flex;align-items:center;gap:14px;margin:0 0 8px;font:600 10.5px/1 var(--wo-title);letter-spacing:.2em;color:#cbb07a}
.rs-legend{margin-left:auto;display:flex;align-items:center;gap:6px;letter-spacing:.1em;color:#a9bcbc;text-transform:uppercase}
.rs-legend i{width:12px;height:4px;border-radius:2px;background:#f0c463;margin-left:8px}
.rs-legend i.is-enemy{background:#e8806b}
.rs-svg{display:block;width:100%;height:auto;max-height:200px}
.rs-grid{stroke:#8ca69b26;stroke-width:1}
.rs-tick{font-family:var(--wo-num);font-size:12px;font-weight:600;fill:#7f9799}
.rs-line{fill:none;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
.rs-line.is-player{stroke:#f0c463}.rs-line.is-enemy{stroke:#e8806b}
.rs-dots.is-player circle{fill:#f0c463}.rs-dots.is-enemy circle{fill:#e8806b}
.rs-dots circle{stroke:#0a1820;stroke-width:1.5}
.rs-end{font-family:var(--wo-title);font-size:14px;font-weight:700;letter-spacing:.04em}
.rs-end.is-player{fill:#f6dc9a}.rs-end.is-enemy{fill:#ffb3a3}
.rs-mark{stroke:#cbb07a77;stroke-dasharray:3 4}
.rs-mark-t{font-family:var(--wo-title);font-size:12px;font-weight:600;fill:#cbb07a;letter-spacing:.04em}
.rs-fronts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.rs-front{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:5px;background:#0d1d27;border:1px solid #8ca69b26}
.rs-front.is-won{border-color:#f0c46377;box-shadow:inset 0 0 0 1px #f0c46322}
.rs-front.is-lost{border-color:#e8806b66}
.rs-front-name{display:flex;align-items:center;gap:7px;font:700 13px/1 var(--wo-title);letter-spacing:.14em;color:#e8dfc8}
.rs-front-name svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;color:#cbb07a}
.rs-front-name em{margin-left:auto;font:600 9.5px/1 var(--wo-title);font-style:normal;letter-spacing:.14em;color:#8fa4a6}
.rs-front.is-won em{color:#f0c463}.rs-front.is-lost em{color:#ff9d8a}
.rs-bar{display:flex;align-items:center;gap:8px;height:16px}
.rs-bar b{display:block;height:10px;min-width:2px;border-radius:2px;background:#f0c463}
.rs-bar.is-enemy b{background:#e8806b}
.rs-bar span{font:700 13px/1 var(--wo-num);color:#e8dfc8}
.rs-front small{font:11px/1.35 var(--wo-text);color:#8fa4a6}
.rs-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px}
.rs-stats{margin:0;display:grid;gap:5px}
.rs-stats div{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:baseline;gap:8px;padding:3px 0;border-bottom:1px solid #8ca69b18}
.rs-stats dt{font:13px/1.3 var(--wo-text);color:#c3cdca}
.rs-stats dd{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:right}
.rs-stats dd b{font:700 17px/1 var(--wo-num);color:#f6dc9a}
.rs-stats dd s{font:700 17px/1 var(--wo-num);color:#ffb3a3;text-decoration:none}
.rs-stats dd small{display:block;margin-top:2px;font:600 9.5px/1 var(--wo-num);color:#8fa4a6}
.rs-stats-head dd b,.rs-stats-head dd s{font:600 10px/1 var(--wo-title)!important;letter-spacing:.14em}
.rs-keys{display:flex;flex-direction:column;gap:10px}
.rs-key{display:flex;gap:12px;align-items:center}
.rs-key .field-card{width:78px;flex:none}
.rs-key div:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.rs-key .eyebrow{font:600 9.5px/1 var(--wo-title);letter-spacing:.18em;color:#cbb07a}
.rs-key.is-enemy .eyebrow{color:#ff9d8a}
.rs-key b{font:700 17px/1.1 var(--wo-title);color:#f3e6c6}
.rs-key small{font:12px/1.3 var(--wo-text);color:#a9bcbc}
.rs-body .result-events{margin:0;padding-left:18px;font-size:13px;color:#c9d1cd}
@media (max-height:820px){.rs-hero{padding:18px 20px 16px;gap:7px}.rs-hero h2{font-size:42px}.rs-hero .result-scores strong{font-size:32px}.rs-body{padding:14px 16px;gap:9px}.rs-svg{max-height:170px}.rs-key .field-card{width:62px}}

/* ---------------------------------------------------------------- v024 guided first duel */
.guided-coach{position:absolute;z-index:44;display:flex;flex-direction:column;gap:10px;padding:16px 18px 14px;box-sizing:border-box;overflow:auto;
  border:1px solid #d4aa5b;border-radius:6px;background:linear-gradient(165deg,#173241f7,#0a1820fa);box-shadow:0 18px 50px #000d,0 0 0 1px #d4aa5b33,inset 0 1px 0 #ffffff14;color:#e8e0cc}
.guided-coach header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.guided-coach .eyebrow{font:600 10.5px/1 var(--wo-title);letter-spacing:.2em;color:#d4aa5b}
.gc-skip{margin:0;padding:5px 9px;background:none;border:1px solid #8ca69b55;border-radius:3px;color:#9fb3b2;font:600 10.5px/1 var(--wo-title);letter-spacing:.12em}
.gc-skip:hover{color:#ffd0c4;border-color:#e68c7a}
.guided-coach h3{margin:0;font:700 clamp(19px,1.45vw,26px)/1.05 var(--wo-title);text-transform:uppercase;color:#f6e6bd;letter-spacing:.02em}
.guided-coach p{margin:0;font:clamp(13.5px,.95vw,15.5px)/1.5 var(--wo-text);color:#dcd6c6}
.guided-coach .gc-wait{color:#9fb3b2;font-style:italic}
.gc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px}
.gc-actions .primary-button,.gc-actions .secondary-button{margin:0;padding:10px 16px;font-size:13px}
.gc-do{display:inline-flex;align-items:center;gap:8px;font:600 11px/1 var(--wo-title);letter-spacing:.16em;color:#ffe2a1;text-transform:uppercase}
.gc-do::before{content:'';width:9px;height:9px;border-radius:50%;background:#ffe2a1;box-shadow:0 0 10px #ffe2a1;animation:sel-pulse 1.2s ease-in-out infinite}
.gc-progress{height:3px;border-radius:2px;background:#ffffff14;overflow:hidden}
.gc-progress i{display:block;height:100%;background:linear-gradient(90deg,#b8893d,#f0cf8a);transition:width .4s}
.battle-app .guide-focus{outline:3px solid #ffe2a1;outline-offset:3px;border-radius:8px;animation:guide-pulse 1.4s ease-in-out infinite;position:relative;z-index:6}
.battle-app .hand-card.guide-focus{z-index:8}
@keyframes guide-pulse{50%{outline-color:#fff6dc;box-shadow:0 0 34px #ffe2a1aa}}
.battle-app.is-guided #wo-tutorial-launch,body:has(.battle-app.is-guided) #wo-tutorial-launch{display:none}
@media (prefers-reduced-motion:reduce){.battle-app .guide-focus,.gc-do::before{animation:none}}
.battle-app.reduced-motion .guide-focus{animation:none}
/* main menu entry */
.mm-item .mm-badge{margin-left:auto;align-self:center;padding:4px 8px;border:1px solid #d4aa5b;border-radius:3px;font:700 10px/1 var(--wo-title);font-style:normal;letter-spacing:.16em;color:#f0cf8a;background:#d4aa5b1f}
.mm-item .mm-badge[hidden]{display:none}
.mm-item.is-recommended{border-left-color:#d4aa5b88}
@media (max-height:820px){
  .guided-coach{gap:7px;padding:11px 13px 10px}
  .guided-coach h3{font-size:18px}
  .guided-coach p{font-size:12.5px;line-height:1.42}
  .gc-actions .primary-button,.gc-actions .secondary-button{padding:8px 12px;font-size:12px}
  .guided-coach .eyebrow{font-size:9.5px;letter-spacing:.16em}
}
.result-v24 .result-event-round{font-size:10px}
/* rarity on the spotlight: the v019 entry colours (Rare silver, Epic violet, Legendary gold) */
.spot-rarity{align-self:flex-start;padding:3px 8px;border-radius:3px;font:700 10.5px/1 var(--wo-title);letter-spacing:.2em;border:1px solid currentColor}
.spotlight.rarity-rare .spot-rarity{color:#b9d4ea;background:#b9d4ea1a}
.spotlight.rarity-epic .spot-rarity{color:#c9a6ff;background:#c9a6ff1a}
.spotlight.rarity-legendary .spot-rarity{color:#f3cf7a;background:#f3cf7a1f}
.spotlight.rarity-rare .spot-card{filter:drop-shadow(0 20px 40px #000e) drop-shadow(0 0 16px #b9d4ea88)}
.spotlight.rarity-epic .spot-card{filter:drop-shadow(0 20px 40px #000e) drop-shadow(0 0 22px #a77bffaa)}
.spotlight.rarity-legendary .spot-card{filter:drop-shadow(0 20px 40px #000e) drop-shadow(0 0 26px #f3cf7acc)}
/* v025: the spotlight uses the current card model (table/hand face), scaled with its container */
.spot-face>.field-card{width:100%;margin:0}
.spot-face>.field-card>.face{box-shadow:0 0 0 1px #ffffff14,0 1.4rem 3rem #000d}

/* ---------------------------------------------------------------- v027 round-wide effects (G20 Summit, Revolt) */
.round-status{margin-left:.8rem;padding:5px 10px;border:1px solid #d4aa5b;border-radius:3px;background:#d4aa5b1f;color:#f0cf8a;font:700 10.5px/1 var(--wo-title);letter-spacing:.14em;white-space:nowrap;box-shadow:0 0 14px #d4aa5b33}

/* ---------------------------------------------------------------- v028 leader cards */
/* KGB (whole opposing hand) and The Art of War (two random cards): a floating stage instead of a panel.
   Large cards hover over the dimmed table and lean towards the pointer (card-tilt.js .float-card). */
.choice-modal.float-stage{width:min(1240px,96vw);max-height:98svh;background:transparent;border:0;box-shadow:none;padding:6px 16px 14px;text-align:center;overflow:visible}
.choice-modal.float-stage::backdrop{background:#020a0eeb;backdrop-filter:blur(5px)}
.choice-modal.float-stage>h2{font-size:34px;margin:4px 0 8px;text-shadow:0 3px 18px #000}
.choice-modal.float-stage>p{max-width:780px;margin:0 auto 6px;color:#c4d6d2;text-shadow:0 2px 10px #000}
.float-row{--w:min(214px,calc((min(1200px,92vw) - (var(--n) - 1) * 22px) / var(--n)),calc((100svh - 380px) * .75));display:flex;justify-content:center;gap:22px;padding:22px 0 4px}
.float-slot{width:var(--w);flex:0 0 var(--w);display:flex;flex-direction:column;align-items:center;gap:7px;animation:float-bob 4.2s ease-in-out infinite;animation-delay:calc(var(--i) * -1.1s)}
@keyframes float-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
html.wo-reduced-motion .float-slot{animation:none}
.float-card{display:block;width:100%;padding:0;margin:0;border:0;background:none;color:inherit;filter:drop-shadow(0 24px 26px #000d);transition:transform .18s ease,filter .18s ease}
.float-card>.card-model{transition:transform .1s linear}
.float-card>.card-model>.face{box-shadow:0 0 0 1px #ffffff1c}
html:not(.wo-reduced-motion) .float-card.is-tilting>.card-model{transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}
.float-card.is-choosable{cursor:pointer}
.float-card.is-choosable:hover,.float-card.is-choosable:focus-visible{transform:translateY(-8px) scale(1.05);filter:drop-shadow(0 30px 30px #000e) drop-shadow(0 0 20px #e8c97f99)}
.float-card.is-choosable:focus-visible{outline:none}
.float-card.is-muted{filter:drop-shadow(0 18px 20px #000b) saturate(.25) brightness(.5)}
.float-caption{font:700 10.5px/1.2 var(--wo-title);letter-spacing:.14em;color:#ecc979;text-shadow:0 2px 8px #000}
.float-slot:has(.is-muted) .float-caption{color:#8da2a5}
.float-inspect{font-size:10px;gap:5px;color:#a9c0c0;padding:2px 6px}.float-inspect svg{width:12px;height:12px}
.float-empty{margin:26px 0;color:#a9c0c0}
.front-choice{margin:14px auto 0;max-width:920px}
.front-choice>.eyebrow{display:block;margin-bottom:12px;color:#d9bc80;letter-spacing:.2em;font-size:11px;text-shadow:0 2px 8px #000}
.front-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
/* the three fronts are letterings in the front colour (bold title type), not filled buttons */
.front-button{--fc:#f3d060;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding:6px 8px;border:0;background:none;color:var(--fc);cursor:pointer;transition:transform .15s,filter .15s,text-shadow .15s}
.front-eco{--fc:#f3d060}.front-mil{--fc:#ec5d45}.front-dip{--fc:#5aaaf0}
.front-button strong{font:900 clamp(30px,3.4vw,46px)/1 var(--wo-title);letter-spacing:.06em;color:var(--fc);text-shadow:0 3px 16px #000,0 0 24px color-mix(in srgb,var(--fc) 35%,transparent)}
.front-button b{font:700 15px/1 var(--wo-title);letter-spacing:.12em;color:var(--fc)}
.front-button em{font-style:normal;font-size:11px;color:#d7e2df}
.front-button small{font-size:11.5px;line-height:1.3;color:#b9cccb;max-width:100%}
.front-button:not(:disabled):hover,.front-button:not(:disabled):focus-visible{transform:translateY(-3px);outline:none}
.front-button:not(:disabled):hover strong,.front-button:not(:disabled):focus-visible strong{text-shadow:0 3px 16px #000,0 0 30px color-mix(in srgb,var(--fc) 75%,transparent)}
.front-button:disabled{cursor:not-allowed;opacity:.38}
.choice-modal.float-stage h2:focus{outline:none}

/* ---------------------------------------------------------------- v029 first-time keyword note */
/* Shown once per keyword beside the card that carries it; it never takes clicks and closes on its own (9 s) or on any click. */
.keyword-tip{position:absolute;z-index:40;width:300px;padding:11px 14px 12px;border:1px solid #d4aa5bb0;border-radius:6px;background:#0b1820f2;box-shadow:0 14px 34px #000c,0 0 0 1px #0008;pointer-events:none;animation:kw-tip-in .25s ease-out both}
.keyword-tip[hidden]{display:none}
.keyword-tip>.eyebrow{display:block;font-size:9px;letter-spacing:.16em;color:#c8ac72;margin-bottom:6px}
.keyword-tip>strong{display:block;margin-bottom:6px}
.keyword-tip>strong .chip{font-size:11px;padding:3px 8px;border-radius:3px;color:#f3d38a;border-color:#d4aa5b99;background:#d4aa5b1f}
.keyword-tip>p{margin:0;font-size:12.5px;line-height:1.45;color:#dfe7e3}
@keyframes kw-tip-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
html.wo-reduced-motion .keyword-tip{animation:none}
