:root{--bg:#07070a;--panel:#111116;--ink:#ecebf2;--dim:#b4b2c4;--silver:#c9cbd6;--q:#e0384a;--v:#a77bff;--r:#3fe0c8;font-family:Georgia,"Palatino Linotype",serif}
*{box-sizing:border-box}
html{background:#07070a}
body{margin:0;background:radial-gradient(ellipse at 50% 0,#1d1a2a 0,#07070a 70%) fixed;color:var(--ink);min-height:100vh}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;color:#000;padding:6px;z-index:9}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:3px solid #ffd76a;outline-offset:2px}
h1{font-weight:normal;letter-spacing:.18em;text-transform:uppercase;margin:.3em 0;font-size:clamp(1.4rem,5vw,2.6rem);text-shadow:0 0 18px #6b5cff55}
.title{max-width:900px;margin:0 auto;padding:16px;text-align:center}
.sub{color:var(--dim);margin:0 0 14px}
.picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;text-align:left}
.pick{background:#0e0d13;border:1px solid #3a3946;border-radius:10px;overflow:hidden;padding:0;text-align:left;box-shadow:0 10px 30px #000a}
.pick img{width:100%;height:120px;object-fit:cover;display:block;filter:saturate(1.1) contrast(1.05)}
.pick div{padding:10px 12px}.pick b{font-size:1.15rem}.pick p{margin:.3em 0;color:var(--dim);font-size:.9rem}
.pick[aria-pressed=true]{border-color:#ffd76a;box-shadow:0 0 0 2px #ffd76a,0 10px 30px #000a}
.row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:14px 0}
.btn{background:linear-gradient(#2a2a33,#15151b);border:1px solid #6d6f80;border-radius:6px;padding:8px 14px;color:var(--ink)}
.btn.primary{border-color:#ffd76a;background:linear-gradient(#3a3320,#1b170c)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.hud{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;background:#0b0b10cc;border-bottom:1px solid #2b2b36;flex-wrap:wrap;font-size:.9rem}
.hud .t{letter-spacing:.1em}
.notches{display:inline-flex;gap:3px;vertical-align:middle}.notch{width:12px;height:16px;border:1px solid #aaa;transform:skewX(-12deg)}.notch.done{background:#ccc}.notch.cut{border-color:var(--q);background:repeating-linear-gradient(45deg,#3a0d12 0 3px,#000 3px 6px)}
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px;max-width:1100px;margin:0 auto}
.lane{display:flex;flex-direction:column;gap:6px;border-radius:10px;background:#0c0c11;border:1px solid #262633;padding:6px}
.lane.target{border-color:#ffd76a;box-shadow:0 0 0 2px #ffd76a66}
.side{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;min-height:60px}
.loc{position:relative;border-radius:8px;overflow:hidden;min-height:104px;border:1px solid #444;padding:0;text-align:left;background:#000}
.loc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.6) saturate(1.1)}
.loc .info{position:relative;padding:6px 8px;display:flex;flex-direction:column;height:100%;justify-content:space-between;text-shadow:0 1px 3px #000,0 0 6px #000}
.loc .nm{font-size:.95rem;letter-spacing:.06em}.loc .perk{font-size:.75rem;color:#e5e3ef}
.score{display:flex;justify-content:space-between;font-size:.9rem;font-family:system-ui,sans-serif;font-weight:600}
.lead{display:inline-block;background:#000b;border:1px solid #ffd76a;color:#ffd76a;border-radius:4px;padding:0 4px;font-size:.75rem}
.card{position:relative;aspect-ratio:5/7;border:none;padding:0;background:#000;overflow:hidden;color:#fff;font-family:system-ui,sans-serif;min-width:0}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.15) contrast(1.05)}
.card .shade{position:absolute;inset:0;background:linear-gradient(#0008,transparent 30%,transparent 55%,#000d)}
.card .cost,.card .pow{position:absolute;font-weight:700;font-size:.8rem;min-width:1.4em;text-align:center;padding:1px 3px;background:#000c;border:1px solid #ddd}
.card .cost{top:3px;left:3px;border-radius:50%;width:1.7em;height:1.7em;line-height:1.5em;padding:0;background:radial-gradient(#3b3220,#120e05);border:2px solid #ffd76a;color:#ffe9a8;font-size:.85rem}
.card .pow{font-size:.9rem;background:#f1f1f4;color:#000;border:1px solid #000;padding:1px 5px}
.card i{display:none;position:absolute;font-style:normal;font-size:.55rem;font-weight:600;background:#000d;color:#fff;padding:0 3px;border-radius:2px;white-space:nowrap}
.card .cost i{top:100%;left:0;margin-top:2px}.card .pow i{bottom:100%;right:0;margin-bottom:2px}
.card:hover i,.card:focus-visible i{display:block}
#hand .card.cant{opacity:1}#hand .card.cant img{filter:grayscale(1) brightness(.45)}
.need{position:absolute;left:0;right:0;top:42%;text-align:center;background:#000d;color:#ffd76a;font-size:.65rem;font-weight:700;padding:2px 0;border-top:1px solid #ffd76a;border-bottom:1px solid #ffd76a}
.msg{min-height:0;margin:0;color:#ffe9a8;font-family:system-ui,sans-serif;font-size:.9rem}.msg.show{min-height:1.4em;padding:4px 8px;margin:0 0 6px;background:#2b2210;border:1px solid #ffd76a;border-radius:6px}
#hand .card{touch-action:none;user-select:none;-webkit-user-select:none}
.ghost{position:fixed;left:0;top:0;z-index:50;pointer-events:none;box-shadow:0 18px 30px #000c;opacity:.95}
.dragging{opacity:.3}
.lane.drop{border-color:#7dffb0;box-shadow:0 0 0 3px #7dffb0aa}.lane.drop::before{content:"Drop here ▼";color:#7dffb0;font:600 .75rem system-ui;text-align:center}
.lane.dropbad{border-color:#ff7d7d;box-shadow:0 0 0 3px #ff7d7d88}.lane.dropbad::before{content:"✕ Can't play here";color:#ff9d9d;font:600 .75rem system-ui;text-align:center}
.card .pow{bottom:2px;right:2px;border-radius:3px}
.card .nm{position:absolute;left:3px;right:3px;bottom:20px;font-size:.62rem;line-height:1.1;text-shadow:0 1px 2px #000}
.card .glyph{position:absolute;top:2px;right:3px;font-size:.75rem;text-shadow:0 0 3px #000}
/* deck frames: shape first, colour second */
.fq{clip-path:polygon(0 0,88% 0,100% 8%,100% 100%,12% 100%,0 92%);box-shadow:inset 0 0 0 2px var(--q)}
.fq::after,.fv::after,.fr::after{content:"";position:absolute;inset:0;pointer-events:none}
.fq::after{border:2px solid var(--q);clip-path:inherit}
.fv{border-radius:14px}.fv::after{border-radius:14px;box-shadow:inset 0 0 10px 3px #3b1a6ecc;border:2px solid var(--v)}
.fr{clip-path:polygon(10% 0,90% 0,100% 10%,100% 45%,94% 50%,100% 55%,100% 90%,90% 100%,10% 100%,0 90%,0 55%,6% 50%,0 45%,0 10%)}.fr::after{border:2px solid var(--r);clip-path:inherit}
.fd{border-radius:6px;outline:1px dashed #fff8;outline-offset:-3px}
.back{border-radius:6px;background:repeating-linear-gradient(45deg,#16161b 0 6px,#0d0d11 6px 12px);box-shadow:inset 0 0 0 2px #9da0ad,inset 0 0 0 5px #222}
.back::before{content:"";position:absolute;inset:24% 22%;border:2px solid #c9cbd6;transform:rotate(45deg);background:radial-gradient(#3b3d48,#111)}
.hidden-own{filter:none}.hidden-own::before{content:"face-down";position:absolute;z-index:2;top:40%;left:0;right:0;text-align:center;font-size:.55rem;background:#000c;color:#ddd;letter-spacing:.05em}
.blind img{filter:grayscale(1) brightness(1.6) contrast(.6)}.blind .pow{background:#fff;color:#000}
.fizz img{filter:grayscale(.85) brightness(.7)}.fizz .glyph::after{content:" ⊠"}
.dream img{opacity:.75}
.slot{aspect-ratio:5/7;border:1px dashed #33333f;border-radius:6px}
.mid{display:grid;grid-template-columns:1fr 240px;gap:8px;max-width:1100px;margin:0 auto;padding:0 8px 8px}
.handwrap{background:#0b0b10;border:1px solid #262633;border-radius:10px;padding:8px}
#hand{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:6px}
#hand .card[aria-pressed=true]{outline:3px solid #ffd76a;outline-offset:2px;transform:translateY(-6px)}
.card.cant{opacity:.5}
.side-panel{background:#0b0b10;border:1px solid #262633;border-radius:10px;padding:8px;font-size:.85rem}
.spell{display:flex;flex-direction:column;gap:6px}
.spell .sbox{border:1px solid #6d6f80;border-radius:8px;padding:6px;background:linear-gradient(#1a1924,#0d0d12)}
.spell .sbox.used{opacity:.55}
.insp{min-height:4.5em;color:var(--dim);margin-top:6px}
.log{max-height:150px;overflow:auto;font-size:.78rem;color:var(--dim);margin-top:6px;border-top:1px solid #262633;padding-top:4px}
.end{max-width:640px;margin:20px auto;text-align:center;padding:16px;background:#0d0d12;border:1px solid #444;border-radius:12px}
.card{transition:transform .2s}
@keyframes flip{0%{transform:perspective(500px) rotateY(180deg);filter:brightness(.3)}55%{transform:perspective(500px) rotateY(80deg) scale(1.08)}100%{transform:none;filter:none}}
.flipin{animation:flip .5s cubic-bezier(.2,.7,.3,1) both}
.thud{animation:thud .32s cubic-bezier(.3,1.6,.5,1)}@keyframes thud{0%{transform:translateY(-14px) scale(1.18);box-shadow:0 20px 20px #000}100%{transform:none}}
.quake{animation:quake .25s .12s}@keyframes quake{25%{transform:translateY(2px)}60%{transform:translateY(-1px)}}
.fxghost{position:fixed;z-index:40;pointer-events:none;margin:0}
.dissolve{animation:dissolve .85s ease-in forwards}@keyframes dissolve{0%{filter:none}40%{filter:brightness(1.6) saturate(0) blur(0);opacity:1}100%{filter:brightness(.2) saturate(0) blur(6px);opacity:0;transform:scale(.85) translateY(-8px)}}
.shatter{animation:shat .7s ease-in forwards}@keyframes shat{0%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}30%{transform:rotate(3deg) scale(1.05);filter:brightness(1.8)}100%{transform:rotate(-12deg) translateY(30px) scale(.7);opacity:0;clip-path:polygon(10% 5%,60% 0,95% 40%,70% 100%,20% 85%,0 45%)}}
.tot.bump{display:inline-block;animation:bump .55s}@keyframes bump{30%{transform:scale(1.35);color:#ffd76a}}
.notch.crack{animation:crack 1s forwards}@keyframes crack{0%{background:#ff3048;box-shadow:0 0 10px #ff3048}40%{transform:skewX(-12deg) rotate(8deg) scale(1.3)}100%{}}
.judge.rise{animation:rise .8s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(16px);filter:brightness(2)}100%{}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:700px){
 .score{flex-wrap:wrap;font-size:.75rem}.score .lead{order:3;width:100%;text-align:center;margin-top:2px}
 .mid{grid-template-columns:1fr}.board{gap:4px;padding:4px}.lane{padding:3px}
 .side{grid-template-columns:repeat(2,1fr);min-height:0}
 .loc{min-height:96px}.loc .perk{font-size:.66rem}.loc .nm{font-size:.8rem}
 .card .nm{display:none}.card .cost,.card .pow{font-size:.7rem}
 #hand{grid-template-columns:repeat(5,1fr)}
}

.fs{border:1px solid #333;border-radius:8px;margin-top:12px;text-align:left}.fs label{display:block;margin:4px 0}
.eclipse{display:flex;align-items:center;gap:14px;width:100%;margin:6px 0 14px;padding:10px 14px;border:1px solid #6b3a8a;background:radial-gradient(ellipse at 20% 50%,#2a0a14 0,#0e0d13 60%)}
.eclipse .disc{flex:0 0 72px;height:72px;border-radius:50%;overflow:hidden;position:relative;box-shadow:0 0 0 2px #e0384a,0 0 18px 4px #7a3bd0aa}
.eclipse .disc img{width:100%;height:100%;object-fit:cover;filter:brightness(.25)}
.eclipse .disc::after{content:"";position:absolute;inset:8px;border-radius:50%;background:#000;box-shadow:0 0 12px 4px #a77bffaa inset}
.judge{position:absolute;right:0;top:0;bottom:0;width:30%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 35%);mask-image:linear-gradient(90deg,transparent,#000 35%)}
.judge img{position:static!important;width:100%;height:100%;object-fit:cover;filter:brightness(.85) contrast(1.15) saturate(1.1)!important}
.judge.veiled img{filter:brightness(.35) grayscale(.6) blur(2px)!important}
.loc .perk b{color:#ffe9a8}
.gbadge{position:absolute;top:22px;right:2px;font-size:.8rem;background:#000c;border:1px solid #ccc;border-radius:3px;padding:0 2px;line-height:1.2}

#zoom{position:fixed;inset:0;z-index:60;background:#000b;display:flex;align-items:center;justify-content:center;padding:12px;animation:zfade .18s}
.zcard{position:relative;display:flex;gap:16px;max-width:640px;width:100%;max-height:96vh;overflow:auto;background:linear-gradient(#17161f,#0b0b10);border:1px solid #6d6f80;border-radius:14px;padding:14px;box-shadow:0 30px 60px #000;animation:zpop .22s cubic-bezier(.2,1.3,.4,1)}
.zart{position:relative;flex:0 0 230px;aspect-ratio:5/7;overflow:hidden;background:#000}.zart img{width:100%;height:100%;object-fit:cover;filter:saturate(1.15) contrast(1.05)}
.zart.back{background:repeating-linear-gradient(45deg,#16161b 0 8px,#0d0d11 8px 16px);box-shadow:inset 0 0 0 3px #9da0ad;border-radius:10px}
.judgeart{border-radius:10px}.judgeart.veiled img{filter:brightness(.35) grayscale(.6) blur(3px)}
.zcost,.zpow{position:absolute;font:700 1.5rem system-ui;text-align:center}
.zcost{top:8px;left:8px;width:2.2em;height:2.2em;line-height:2em;border-radius:50%;background:radial-gradient(#3b3220,#120e05);border:3px solid #ffd76a;color:#ffe9a8}
.zpow{bottom:8px;right:8px;background:#f1f1f4;color:#000;border:2px solid #000;border-radius:6px;padding:0 10px}
.zcost i,.zpow i{display:block;font:600 .6rem system-ui;font-style:normal;line-height:1;margin-top:-4px}
.zbody{flex:1;min-width:0;font-size:1rem}.zbody h2{margin:.1em 2em .2em 0;font-weight:normal;font-size:1.5rem}
.zdeck{color:var(--dim);margin:0 0 8px}.zplate{background:#050507;border:1px solid #8a8c99;border-radius:8px;padding:10px 12px;margin:8px 0}.ztext{font:500 1.05rem/1.45 system-ui,sans-serif;color:#fff;margin:0}.zflavor{font-style:italic;color:#d9d6e8;margin:8px 0 0;font-size:.95rem}
.linkbtn{background:none;border:none;padding:0;text-align:left;color:inherit}.zrule{color:#e5e3ef;font-size:.9rem;border-left:2px solid #ffd76a;padding-left:8px}
.zhint{color:#ffe9a8;margin-bottom:4px}.zplay{display:flex;flex-wrap:wrap;gap:6px}
.zclose{position:absolute;top:8px;right:8px}
@keyframes zfade{from{opacity:0}}@keyframes zpop{from{transform:scale(.85);opacity:0}}
.logbox summary{cursor:pointer;color:var(--dim);margin-top:6px}
@media (max-width:700px){.zcard{flex-direction:column;align-items:center}.zart{flex:none;width:62%}.zbody{width:100%}}
/* kOS art fixes v2 */
.score{display:flex;width:100%;clear:both;margin-top:4px;padding-top:3px;border-top:1px solid #ffffff33;font-size:1.8rem;line-height:1.1;align-items:center}
.score .lead{font-size:.8rem}
.need{top:auto;bottom:0;padding:0 0 1px;font-size:.55rem;line-height:1.2;border-bottom:none;z-index:1}
.card .cost,.card .pow{font-size:1rem}.card .cost{font-size:1.06rem}.card .pow{font-size:1.12rem}
.card:has(.need) .pow{bottom:13px}.card:has(.need) .nm{bottom:12px}
.zcost,.zpow{font-size:1.875rem}
@media (max-width:700px){.score{font-size:1.5rem}.score .lead{font-size:.7rem}.card .cost,.card .pow{font-size:.875rem}}
#hand .handempty{grid-column:1/-1;width:100%;text-align:center;white-space:nowrap;margin:8px 0}
.card .nm{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;font-size:.56rem;line-height:1.05;bottom:24px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.card:has(.need) .nm{bottom:36px}
.card .nm{display:block;-webkit-line-clamp:unset;bottom:30px;left:2px;right:2px;text-align:center}
.card:has(.need) .nm{bottom:40px}
.score{flex-wrap:wrap;font-size:1.6rem}.score>span{white-space:nowrap}.score .lead{order:3;width:100%;text-align:center;margin-top:2px}
@media (max-width:700px){.score{font-size:1.5rem}.score>span{white-space:normal}}
.ldhold{visibility:hidden;opacity:0}
.ldin{animation:ldin .25s ease-out}
@keyframes ldin{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion: reduce){.ldin{animation:none}}
/* ---- Leaders ---- */
.arena{display:grid;grid-template-columns:auto 1fr;gap:6px;max-width:1240px;margin:0 auto;align-items:stretch}
.arena .board{margin:0;max-width:none}
.lcol{display:flex;flex-direction:column;justify-content:space-between;gap:10px;padding:8px 0 8px 8px}
.lslot{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px}
.lwho{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#bbb}
.leader{position:relative;display:block;width:132px;aspect-ratio:5/7.5;border:none;padding:0;background:#000;color:#fff;overflow:hidden;cursor:pointer;
 clip-path:polygon(0 12%,12% 0,25% 9%,37.5% 0,50% 9%,62.5% 0,75% 9%,88% 0,100% 12%,100% 100%,0 100%);box-shadow:inset 0 0 0 3px #ffd76a}
.leader img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.leader .shade{position:absolute;inset:0;background:linear-gradient(transparent 55%,#000d)}
.leader .nm{position:absolute;left:4px;right:4px;bottom:6px;font-size:.75rem;font-weight:700;text-align:center;text-shadow:0 1px 2px #000}
.leader .lcrown{position:absolute;left:0;right:0;top:0;height:14%;background:linear-gradient(#ffd76a,#b8860b);opacity:.85;
 clip-path:polygon(0 85%,12% 0,25% 64%,37.5% 0,50% 64%,62.5% 0,75% 64%,88% 0,100% 85%,100% 100%,0 100%)}
.leader.lback{background:repeating-linear-gradient(45deg,#16161b 0 6px,#0d0d11 6px 12px);box-shadow:inset 0 0 0 3px #9da0ad}
.leader.lback::after{content:'♛';position:absolute;inset:0;display:grid;place-items:center;font-size:2rem;color:#9da0ad}
.leader .lpeek{position:absolute;left:3px;right:3px;bottom:6px;font-size:.62rem;color:#ccc;text-align:center;z-index:1}
.leader:focus-visible{outline:3px solid #ffd76a;outline-offset:3px}
.lpicks{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:12px 0}
.lpick{display:flex;flex-direction:column;align-items:center;gap:6px;width:220px;padding:10px;background:#111;border:1px solid #444;border-radius:8px;color:#fff;cursor:pointer;text-align:center}
.lpick:hover,.lpick:focus-visible{border-color:#ffd76a;outline:none}
.lpick .leader{width:150px;pointer-events:none}
.zart.lzart{clip-path:polygon(0 8%,12% 0,25% 6%,37.5% 0,50% 6%,62.5% 0,75% 6%,88% 0,100% 8%,100% 100%,0 100%)}
/* ---- Emotes ---- */
.emotes{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}
.emotes .btn{font-size:.8rem;padding:4px 8px}
.bubble{position:absolute;top:18px;left:50%;transform:translateX(-50%);z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;
 pointer-events:none;color:#000;font-weight:800;font-size:.75rem;animation:bpop .25s ease-out}
.bubble .be{font-size:1.3rem;line-height:1}
.b-sad{width:84px;height:84px;background:#9ec9ff;border-radius:50% 50% 50% 0;transform:translateX(-50%) rotate(-45deg)}
.b-sad>*{transform:rotate(45deg)}
.b-hell{width:104px;height:104px;background:#ffd23f;clip-path:polygon(50% 0,61% 30%,93% 15%,73% 42%,100% 55%,70% 63%,82% 95%,54% 74%,35% 100%,32% 70%,0 75%,24% 50%,4% 22%,36% 32%)}
.b-gotya{min-width:96px;padding:8px 10px;background:#ff5fd2;border-radius:14px 14px 14px 2px;box-shadow:3px 3px 0 #000}
.b-gotya::after{content:'';position:absolute;left:-10px;bottom:4px;border:7px solid transparent;border-right:12px solid #ff5fd2}
@keyframes bpop{from{opacity:0;scale:.6}to{opacity:1;scale:1}}
@media (prefers-reduced-motion: reduce){.bubble{animation:none}}
@media (max-width:700px){.arena{grid-template-columns:1fr}.lcol{flex-direction:row;justify-content:center;padding:4px;gap:24px}
 .lslot{flex-direction:row;align-items:center;gap:6px}.leader{width:64px}.leader .nm{font-size:.55rem}.bubble{top:-4px;left:110%;transform:none;scale:.8}.b-sad{transform:rotate(-45deg)}}
@media (min-width:701px){.bubble{top:36px;left:calc(100% - 26px);transform:none}.b-sad{transform:rotate(-45deg)}}
.lcol{position:relative;z-index:30}.bubble{opacity:1;filter:drop-shadow(0 2px 4px #000)}
/* v3.1: bubbles float beside (desktop) / below (mobile) the Leader slot, never over it or its label */
.bubble{scale:1}
@media (min-width:701px){.bubble{top:28px;left:calc(100% + 8px)}}
@media (max-width:700px){.lslot{flex-direction:column}.bubble{top:calc(100% + 4px);left:50%;transform:translateX(-50%);scale:.75;transform-origin:top center}
 .b-sad{transform:translateX(-50%) rotate(-45deg)}}
/* v3.1: hand card names never overlap cost/power/need badges */
#hand .card .nm{top:2.3em;bottom:auto;left:3px;right:3px;max-height:calc(100% - 2.3em - 2.6em);overflow:hidden;font-size:.6rem;line-height:1.05;overflow-wrap:anywhere;hyphens:auto;display:block;text-align:center}
#hand .card:has(.need) .nm{max-height:calc(100% - 2.3em - 3.6em)}
@media (max-width:700px){#hand .card .nm{font-size:.52rem}}
#hand .card .nm{top:2.2rem;max-height:calc(100% - 2.2rem - 1.9rem)}
#hand .card:has(.need) .nm{max-height:calc(100% - 2.2rem - 2.7rem)}
@media (max-width:700px){
 #hand .card .nm{top:2.1rem;bottom:2px;right:1.9rem;left:2px;max-height:none;display:flex;align-items:flex-end;justify-content:center;font-size:.5rem;line-height:1}
 #hand .card:has(.need) .nm{bottom:1rem;right:1.9rem;max-height:none}}
@media (max-width:700px){
 #hand .card .nm{top:2.05rem;bottom:1.45rem;right:1px;left:1px;font-size:.5rem;letter-spacing:-.02em;overflow-wrap:normal;word-break:normal;hyphens:auto;-webkit-hyphens:auto;align-items:center}
 #hand .card:has(.need) .nm{bottom:2.3rem;right:1px}}
@media (max-width:700px){#hand .card .nm{bottom:1.75rem;top:1.95rem}#hand .card:has(.need) .nm{bottom:2.6rem}}
@media (max-width:360px){#hand .card .nm{font-size:.44rem;top:1.85rem}}
@media (max-width:359px){#hand .card .nm{display:none}} /* too small to fit; name stays in aria-label + tap-to-zoom */

/* rm1x-winshare-3c84 */
.ws-share{margin-left:8px;border-color:#b98cff;background:linear-gradient(#2a0a4a,#12051f);color:#f4eeff}
.ws-share:hover{box-shadow:inset 0 0 16px #b98cff55}
.ws-share:focus-visible{outline:3px solid #ffd76a;outline-offset:2px}
.ws-note{margin-top:6px}
