:root{color-scheme:dark;--card-w:min(calc(9 * var(--game-vw)),calc(12 * var(--game-vh)));--card-h:min(calc(12.75 * var(--game-vw)),calc(17 * var(--game-vh)));--black:#090909;--red:#a92923;--blue:#263b9c;font-family:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#070707;color:#fff}
button,input{font:inherit}
button{color:inherit}
.hidden{display:none!important}
.online-screen .online-toggle{flex-direction:row;align-items:center;gap:10px}.online-screen .online-toggle input{width:20px;height:20px;accent-color:#e8c252}#online-private-settings{margin-top:18px}
.online-screen{background:radial-gradient(at 50% 45%,#b32a20,#641610);padding:24px 4%;overflow-y:auto;font-size:16px}.online-screen header{display:flex;align-items:center;justify-content:space-between;gap:12px}.online-screen h1{margin:0;font-size:32px;text-shadow:2px 2px #210704}.online-intro{margin:12px 0}.online-screen fieldset{margin:0;padding:16px;border:2px solid #171717;background:#3475bddd}.online-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}.online-screen label{display:flex;flex-direction:column;gap:5px;font-weight:bold;font-size:14px}.online-screen input,.online-screen select{width:100%;min-width:0;padding:8px;font:inherit;background:#24272a;color:#fff;border:1px solid #aaa;border-radius:3px}.online-screen button{padding:8px 12px;border:2px solid #171717;border-radius:6px;background:linear-gradient(#ddd,#777);color:#111;font-size:14px;font-weight:bold;cursor:pointer}.online-screen button:disabled{opacity:.5;cursor:default}.online-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.online-note{font-size:13px;line-height:1.45;color:#f0e7df}.online-join-label{margin-top:12px}#online-status{padding:12px;background:#1a1111;border:1px solid #7b625b;line-height:1.4}#online-share{display:flex;align-items:end;gap:8px}#online-share label{flex:1}#online-rules{line-height:1.5}#online-clock{position:absolute;right:12%;top:50%;transform:translateY(-50%);font-size:min(calc(1.4 * var(--game-vw)),calc(1.8 * var(--game-vh)));color:#ffe18c;pointer-events:none}.online-screen :focus-visible{outline:2px solid #ffdf75;outline-offset:2px}.online-screen fieldset:disabled{display:none}
@media(max-width:520px){.online-screen{padding:16px}.online-settings{grid-template-columns:1fr}.online-screen h1{font-size:25px}.online-actions button{flex:1 1 100%}}
.stunned-overlay{position:absolute;left:7%;right:7%;top:16%;height:52%;z-index:15;display:grid;place-items:center;overflow:hidden;pointer-events:none;transition:opacity .12s}.stunned-overlay img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.card.stunned:after{display:none}.card.stunned .card-art{filter:brightness(.8) saturate(.75) sepia(.16)}.card.stunned:hover .stunned-overlay,.card.stunned:focus-visible .stunned-overlay{opacity:0}.stat{overflow:hidden;text-overflow:ellipsis}
.duelist input:disabled{color:#aaa;cursor:not-allowed;opacity:1;-webkit-text-fill-color:#aaa}
.setup-options{position:absolute;left:50%;bottom:1.5%;transform:translateX(-50%)}.setup-options button{font-size:min(calc(1.5 * var(--game-vw)),calc(2 * var(--game-vh)));padding:3px 12px;white-space:nowrap}.ignore-limits input{accent-color:#e8c252;width:18px;height:18px}
.deck-builder .ignore-limits{font-size:min(calc(1.7 * var(--game-vw)),calc(2.3 * var(--game-vh)));display:flex;align-items:center;gap:7px}.ignore-limits small{font-size:.8em}.deck-builder{gap:2%!important}
.dense-health .monster-health{display:grid;grid-template-columns:repeat(10,1fr);height:12%;gap:1px}.dense-health .health-pip{min-width:0;max-width:none;width:100%;border:0;border-radius:0;box-shadow:none}
.card-creator{width:min(1200px,calc(100 * var(--game-vw)));height:calc(100 * var(--game-vh));aspect-ratio:auto;background:radial-gradient(at bottom left,#a8251a,#501311);padding:20px;display:flex;flex-direction:column;gap:16px;font-size:16px}.card-creator header{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-creator h1{font-size:28px;margin:0}.creator-body{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;min-height:0;overflow:auto}.creator-body aside{min-width:0;background:#252525;padding:14px;border:2px solid #111;align-self:start}.creator-body h2{font-size:19px;margin:0 0 12px}.creator-body aside>select{width:100%;min-height:120px}.creator-body p{line-height:1.4}.creator-body aside p{font-size:14px}.card-creator form{min-width:0}.card-creator fieldset{border:2px solid #5a5a5a;background:#252525;margin:0 0 14px;padding:14px;display:grid;gap:10px}.card-creator legend{font-size:18px;font-weight:bold;color:#ffe18c;background:#252525;padding:4px 8px}.card-creator label{display:flex;flex-direction:column;gap:5px;font-size:14px}.card-creator input,.card-creator textarea,.card-creator select{font:inherit;padding:7px;color:#f5f5f5;background:#131820;border:1px solid #8b8b8b;border-radius:3px;min-width:0;max-width:100%}.card-creator input:focus,.card-creator textarea:focus,.card-creator select:focus{outline:2px solid #f1cf62;outline-offset:1px}.card-creator small{font-size:13px;color:#ddd;line-height:1.4}.creator-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.creator-flags{display:grid;grid-template-columns:1fr 1fr;gap:10px}.creator-flags label{flex-direction:row;align-items:center}.creator-actions{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.card-creator button{border:2px solid #111;border-radius:4px;background:linear-gradient(#d5d5d5,#777);color:#111;padding:7px 10px;cursor:pointer;font-size:14px;font-weight:bold}.card-creator button:disabled{opacity:.5;cursor:default}.ability-add{display:flex;gap:8px}.ability-add select{flex:1}.ability-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 0;border-top:1px solid #666}.ability-row>strong,.ability-row>small{grid-column:1/-1}.ability-row>button{justify-self:start}.creator-preview-card{background:linear-gradient(#a5d6c6,#568d80);color:#101010;border:3px solid #141414;border-radius:7px;width:160px;margin:16px auto 8px;padding:5px;overflow:hidden}.creator-preview-card strong{display:block;overflow-wrap:anywhere}.creator-preview-card img{width:100%;height:150px;object-fit:cover;display:block;margin:5px 0}.creator-preview-card span,.creator-preview-card b{display:block;font-size:13px}.card-creator [data-status]{padding:8px;background:#111c;color:#ffe48d;overflow-wrap:anywhere}.card-creator [data-preview]>p{white-space:normal;overflow-wrap:anywhere}.custom-monster .card-name{font-size:min(calc(1 * var(--game-vw)),calc(1.33 * var(--game-vh)))}
@media(max-width:700px){.card-creator{padding:12px}.card-creator h1{font-size:21px}.creator-body{grid-template-columns:1fr}.creator-body aside{display:block}.creator-preview-card{width:140px}.creator-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.card-creator header button{max-width:120px}.creator-flags{grid-template-columns:1fr}}
.metal-button{border:2px solid #171717;border-radius:6px;background:linear-gradient(#ddd,#737373);color:#202020;font-weight:700;cursor:pointer;padding:6px 12px}
.tactical-info{position:absolute;left:5%;right:5%;top:16%;z-index:8;display:flex;justify-content:space-between;gap:2px;pointer-events:none;font-size:min(calc(.72 * var(--game-vw)),calc(.96 * var(--game-vh)));line-height:1.35}.tactical-info b,.tactical-info i{font-style:normal;background:#14212bed;color:var(--element-color);padding:1px 3px;border-radius:2px}.tactical-info i{margin-left:auto;color:#b6eaff}.card:hover .tactical-info,.card:focus-visible .tactical-info{opacity:0}.matchup-badge{position:absolute;bottom:18%;right:5%;padding:1px 3px;background:#101e2c;color:#ffea97;font-size:min(calc(1 * var(--game-vw)),calc(1.33 * var(--game-vh)));z-index:12;pointer-events:none}.battle-matchup{position:absolute;top:12%;left:2%;right:2%;text-align:center;font-size:min(calc(1.05 * var(--game-vw)),calc(1.4 * var(--game-vh)));color:#bfe9ff;line-height:1.2}.category-rules .hint{width:67%;text-align:center;white-space:normal}.actions{flex-wrap:wrap}
#app{width:100%;height:100%;display:grid;place-items:center;background:#070707}
.screen{position:relative;width:min(calc(100 * var(--game-vw)),calc(calc(100 * var(--game-vh)) * 4 / 3));height:min(calc(100 * var(--game-vh)),calc(75 * var(--game-vw)));aspect-ratio:4/3;overflow:hidden;box-shadow:0 0 70px #000}

/* Original title screen */
.title-screen{background:radial-gradient(circle at 72% 55%,#eb261b 0,#b31e17 45%,#65140f 100%);border:1px solid #35100c}
.title-screen:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0003,transparent 35%,transparent 78%,#0002);pointer-events:none}
.title-monster{position:absolute;left:-4%;bottom:-18%;width:69%;height:99%;object-fit:contain;filter:drop-shadow(4px 10px 7px #250702aa);transform-origin:38% 82%;animation:title-monster-idle 4.8s ease-in-out infinite}
.title-brand{position:absolute;right:7%;top:5%;display:flex;flex-direction:column;align-items:center;font:italic calc(9.4 * var(--game-vh))/.82 "Brush Script MT","Segoe Script",cursive;color:#050505;text-shadow:1px 2px #68110e44;z-index:2}
.title-brand strong{margin-top:calc(1.2 * var(--game-vh));font:700 calc(2.7 * var(--game-vh))/1 Arial,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:#f4d273;text-shadow:0 2px 2px #58120d,0 0 6px #ffb62788}
.title-menu{position:absolute;right:4.5%;bottom:6%;display:flex;flex-direction:column;align-items:flex-end;z-index:3}
.title-menu button{border:0;background:none;font-weight:700;font-size:calc(4.1 * var(--game-vh));line-height:1.35;color:#f3efed;cursor:pointer;text-shadow:1px 2px #5d1712;transition:color .12s,transform .12s}.title-menu button:hover,.title-menu button:focus-visible{color:#ffd85b;transform:translateX(-6px);outline:0}
.audio-toggle{position:absolute;left:2%;top:2%;z-index:4;border:1px solid #e4b74d88;border-radius:4px;padding:calc(.55 * var(--game-vh)) calc(1 * var(--game-vw));background:#190b09a8;color:#f4d991;font-weight:700;font-size:calc(1.5 * var(--game-vh));cursor:pointer}.audio-toggle:hover,.audio-toggle:focus-visible{background:#32110d;color:#fff3bc;outline:1px solid #ffd76d}
@keyframes title-monster-idle{0%,100%{transform:translateY(0) rotate(-.2deg) scale(1)}45%{transform:translateY(calc(-.7 * var(--game-vh))) rotate(.35deg) scale(1.006)}70%{transform:translateY(calc(-.25 * var(--game-vh))) rotate(.05deg) scale(1.002)}}
@media(prefers-reduced-motion:reduce){.title-monster{animation:none}}

/* Player setup */
.setup-screen{background:radial-gradient(circle at 50% 48%,#d12a20,#721811 74%);padding:3.2% 4%}
.setup-screen h1{font-size:calc(5 * var(--game-vh));line-height:1;margin:0 0 3%;text-shadow:2px 3px #3c0d0a}
.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:4%;height:80%}
.duelist{position:relative;border:2px solid #111;padding:5% 7% 4%;color:#070707;box-shadow:inset 0 0 18px #fff2}
.duelist-blue{background:#3374c7}.duelist-red{background:#c76d65}
.duelist label{display:block;font-weight:700;font-size:calc(2.1 * var(--game-vh))}.duelist input{display:block;width:100%;height:calc(7.5 * var(--game-vh));margin-top:calc(.5 * var(--game-vh));padding:0 12%;border:2px solid #151515;border-radius:2px;background:linear-gradient(90deg,#16191c,#3b3d3f,#16191c);color:#fff;text-align:center;font-size:calc(3.7 * var(--game-vh));font-weight:700;box-shadow:inset 0 0 12px #000}
.controller-switch{position:absolute;right:7.5%;top:9.8%;display:flex;flex-direction:column;width:calc(3.7 * var(--game-vh))}.controller-switch button{height:calc(3.5 * var(--game-vh));overflow:hidden;text-indent:-999px;border:1px solid #222;background:linear-gradient(#eee,#777);padding:0;cursor:pointer}.controller-switch button:first-child:after{content:"♟"}.controller-switch button:last-child:after{content:"●"}.controller-switch button:after{display:block;text-indent:0;color:#333;font-size:calc(2 * var(--game-vh))}.controller-switch button.active{background:linear-gradient(#55dc62,#178b36);box-shadow:0 0 5px #fff}
.avatar-picker{display:grid;grid-template-columns:10% 1fr 10%;align-items:center;gap:4%;height:54%;margin:7% 1% 4%}.avatar-arrow{border:0;background:transparent;color:#ff9c00;text-shadow:0 0 8px #ffef00;font-size:calc(5 * var(--game-vh));padding:0;cursor:pointer}.avatar-frame{height:100%;border:calc(1.3 * var(--game-vh)) solid #242424;background:linear-gradient(135deg,#232323,#484848,#191919);box-shadow:inset 0 0 12px #000,0 0 0 2px #111;display:grid;place-items:center}.avatar-frame img{width:88%;height:88%;object-fit:contain}
.strength-row{display:flex;justify-content:space-between;align-items:center;margin:0 2%;font-size:calc(2.15 * var(--game-vh))}.strength{display:block;width:75%;height:calc(2.2 * var(--game-vh));margin:2.5% auto 0;accent-color:#777}
.card-set-toggle{position:absolute;left:4%;bottom:1.8%;display:flex;align-items:center;gap:calc(.8 * var(--game-vh));font-size:calc(1.9 * var(--game-vh));font-weight:700;text-shadow:1px 1px #56100d;cursor:pointer}.card-set-toggle input{position:absolute;opacity:0}.card-set-toggle span{position:relative;width:calc(5.2 * var(--game-vh));height:calc(2.6 * var(--game-vh));border:2px solid #191919;border-radius:calc(2 * var(--game-vh));background:#3d3d3d;box-shadow:inset 0 1px 3px #000}.card-set-toggle span:after{content:"";position:absolute;left:calc(.2 * var(--game-vh));top:calc(.2 * var(--game-vh));width:calc(1.8 * var(--game-vh));height:calc(1.8 * var(--game-vh));border-radius:50%;background:#bbb;transition:left .15s,background .15s}.card-set-toggle input:checked+span{background:#2a6c36}.card-set-toggle input:checked+span:after{left:calc(2.6 * var(--game-vh));background:#f5d65c}.card-set-toggle input:focus-visible+span{outline:2px solid #fff;outline-offset:2px}
.ok-button{position:absolute;right:3.5%;bottom:1.5%;width:13%;height:5.5%;border:2px solid #111;border-radius:8px;background:linear-gradient(90deg,#777,#eee,#777);color:#111;font-size:calc(2.5 * var(--game-vh));font-weight:700;cursor:pointer}

/* Original 800x600 board proportions */
.game-screen{background:#050505;display:grid;grid-template-rows:48.5% 4.8% 46.7%;user-select:none;touch-action:none}
.player-half{position:relative;display:grid;grid-template-columns:15% 69% 16%;min-height:0;padding:.8%;gap:.7%;background:linear-gradient(90deg,#b44848,#d76a6b 50%,#b44d4f)}
.player-half-bottom{background:linear-gradient(90deg,#444bad,#5e65cb 50%,#4247a4)}
.player-rail{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;gap:1.2%;position:relative}.player-rail>strong{font-size:calc(2.6 * var(--game-vh));text-shadow:1px 2px #222;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-avatar{width:72%;height:35%;object-fit:contain;filter:drop-shadow(1px 2px 2px #0008)}
.player-health{position:relative;width:80%;height:4.5%;min-height:5px;background:#222;border:1px solid #333;box-shadow:0 0 2px #000}.player-health i{display:block;height:100%;width:100%;transition:width .3s;background:repeating-linear-gradient(90deg,#ffdc33 0 6px,#f18c00 7px 9px)}.player-health b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:calc(1.35 * var(--game-vh));color:#111;text-shadow:0 1px #fff8}
.play-area{min-height:0;display:grid;grid-template-rows:1fr 1fr;gap:5%;padding:0}.play-area>div{background:radial-gradient(circle at 50% 50%,#512d31,#24191d 72%);border:1px solid #672f32;box-shadow:inset 0 0 24px #0008}.player-half-bottom .play-area>div{background:radial-gradient(circle at 50% 50%,#242a75,#161b49 72%);border-color:#3b439b}
.hand,.field{display:flex;align-items:center;justify-content:center;gap:.5%;min-width:0;overflow:visible;padding:1%}
.side-slot{display:flex;align-items:center;justify-content:center}.pile{position:relative;display:grid;place-items:center;color:#fff}.pile.deck{width:65%;height:36%;margin-bottom:2%}.pile.deck img{width:100%;height:100%;object-fit:fill;filter:drop-shadow(2px 3px 2px #0009)}.pile.deck span{position:absolute;bottom:calc(-1.7 * var(--game-vh));right:0;background:#111;border-radius:50%;min-width:calc(2.8 * var(--game-vh));height:calc(2.8 * var(--game-vh));display:grid;place-items:center;font-size:calc(1.4 * var(--game-vh))}.pile.grave{width:68%;aspect-ratio:.72;border:2px solid #2a1717;background:linear-gradient(145deg,#222,#070707);box-shadow:inset 0 0 14px #000,2px 3px 3px #0007}.pile.grave>span{font-size:calc(3.5 * var(--game-vh));color:#aaa}.pile.grave>small{font-size:calc(1.25 * var(--game-vh));color:#777}
.divider{position:relative;background:linear-gradient(#222 0 18%,#050505 20% 75%,#333 77%);border-block:1px solid #111;box-shadow:0 0 6px #000;z-index:8}.divider:before{content:"";position:absolute;left:0;right:0;top:44%;height:12%;background:linear-gradient(90deg,#888,#e6e6e6 50%,#888)}
.menu-button{position:absolute;left:0;top:18%;height:64%;width:6.7%;border:1px solid #222;border-radius:0 12px 12px 0;background:linear-gradient(#555,#181818);font-size:calc(1.25 * var(--game-vh));color:#ddd;cursor:pointer}.turn-label{position:absolute;left:8%;top:50%;transform:translateY(-50%);font-size:calc(1.35 * var(--game-vh));color:#fff9;text-transform:uppercase}.end-turn{position:absolute;right:1%;top:50%;transform:translateY(-50%);width:calc(7.2 * var(--game-vh));height:calc(7.2 * var(--game-vh));border-radius:50%;border:calc(.7 * var(--game-vh)) solid #303030;background:radial-gradient(circle,#312b27 40%,#171717 42%);box-shadow:0 0 0 2px #000,0 2px 8px #000;cursor:pointer;display:grid;place-items:center}.end-turn span{font-size:calc(5.5 * var(--game-vh));line-height:1;color:#ff9b00;text-shadow:0 0 6px #fff000}.end-turn:disabled{filter:grayscale(1);opacity:.55;cursor:default}
.barrier{position:absolute;left:47%;top:50%;transform:translate(-50%,-50%);height:calc(6 * var(--game-vh));min-width:calc(12 * var(--game-vh));border-radius:50%;display:grid;grid-template-columns:auto auto;place-content:center;gap:calc(.8 * var(--game-vh));border:calc(.5 * var(--game-vh)) solid #444;background:radial-gradient(circle,#493511,#111 70%);color:#ffd25c;box-shadow:0 0 11px #ff9c00}.barrier span{font-size:calc(1.35 * var(--game-vh));text-transform:uppercase}.barrier b{font-size:calc(2.4 * var(--game-vh))}
.opponent-target{position:absolute;left:1%;top:3%;width:13%;height:39%;border:0;background:transparent;z-index:5;cursor:crosshair}
.hint{position:absolute;left:50%;bottom:.4%;transform:translateX(-50%);z-index:7;background:#050505cc;border:1px solid #7776;border-radius:4px;padding:calc(.35 * var(--game-vh)) calc(1.2 * var(--game-vh));color:#ddd;font-size:calc(1.25 * var(--game-vh));pointer-events:none}.battle-log{position:absolute;right:1.5%;bottom:2%;width:14%;max-height:8%;overflow:hidden;text-align:right;font-size:calc(1.05 * var(--game-vh));color:#fff8;pointer-events:none}.battle-log p{margin:0}.battle-log p:first-child{color:#fff}

/* Cards */
.card{position:relative;isolation:isolate;contain:paint;width:var(--card-w);height:var(--card-h);flex:0 0 auto;padding:0;overflow:hidden;border:2px solid #171717;border-radius:5px;background:linear-gradient(#b8b8b8,#444b52);box-shadow:1px 2px 3px #0009;cursor:grab;color:#080808;text-align:left;transition:transform .1s,filter .1s,box-shadow .1s;touch-action:none}.card:hover,.card:focus-visible{transform:translateY(-4px) scale(1.04);z-index:10;outline:0}.card.selected{box-shadow:0 0 0 2px #ffdf34,0 0 14px #fff200;transform:translateY(-5px)}.card.monster{background:linear-gradient(#a5d6c6,#568d80)}.card.upgrade{background:linear-gradient(#e6ffbd,#a9d780)}.card.downgrade{background:linear-gradient(#ef8a57,#b74325)}.card.utility{background:linear-gradient(#fffbb7,#e3d86d)}.card.playable,.card.ready{border-color:#ffe05a;box-shadow:0 0 0 1px #fff2a0,0 0 9px #ffd900aa;filter:none}.card.ready{border-color:#8bff72;box-shadow:0 0 0 1px #d4ffca,0 0 10px #42ff6daa}.card.unavailable{filter:saturate(.55) brightness(.82);cursor:not-allowed}.card.exhausted{cursor:default;border-color:#3b3b3b;background:linear-gradient(#8a9290,#3c4946)}.card.exhausted:after{content:"USED";position:absolute;right:3px;top:3px;z-index:5;padding:2px 4px;border-radius:3px;background:#171717dd;color:#ddd;font-size:min(calc(.72 * var(--game-vw)),calc(.96 * var(--game-vh)));font-weight:700;letter-spacing:.08em}.card.summoning:after{content:"Summoning · " attr(data-summon);position:absolute;left:4px;right:4px;top:4px;z-index:5;padding:2px 3px;border-radius:3px;background:#235d45e8;color:#fff;text-align:center;font-size:min(calc(.76 * var(--game-vw)),calc(1.02 * var(--game-vh)));line-height:1.2;font-weight:700;text-shadow:1px 1px #111;white-space:nowrap}
.card-art{display:block;width:calc(100% - 6px);height:55%;margin:3px 3px 0;padding:2px;object-fit:contain;overflow:hidden;clip-path:inset(0 round 3px);background:linear-gradient(#d9d9d9,#8e9698 48%,#5f6667);border:1px solid #222;filter:brightness(1.38) saturate(1.28) contrast(1.08)}.card.exhausted .card-art{filter:brightness(.72) saturate(.35) contrast(1.05)}.card.summoning .card-art{filter:brightness(.92) saturate(.72)}.card-name{display:block;height:15%;padding:2px 3px 0;text-align:center;font-size:min(calc(1.25 * var(--game-vw)),calc(1.67 * var(--game-vh)));font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-text{display:block;height:25%;padding:1px 4px;text-align:center;font-size:min(calc(.94 * var(--game-vw)),calc(1.25 * var(--game-vh)));line-height:1.05;overflow:hidden}.stats{position:absolute;left:2px;right:2px;bottom:1px;display:flex;justify-content:space-between}.stat{font-style:normal;min-width:min(calc(2.4 * var(--game-vw)),calc(3.2 * var(--game-vh)));padding:1px;border-radius:5px;background:#222e;color:#fff;text-align:center;font-size:min(calc(1 * var(--game-vw)),calc(1.34 * var(--game-vh)))}.stat.attack:before{content:"⚔ "}.stat.defense:before{content:"◆ "}.stat.health:before{content:"● "}.effect-tags{position:absolute;top:2px;right:2px;display:flex;flex-direction:column}.effect-tags i{font-style:normal;font-size:min(calc(.75 * var(--game-vw)),calc(1 * var(--game-vh)));padding:1px 2px;background:#6b2f75;color:#fff}.card-back{width:var(--card-w);height:var(--card-h);flex:0 0 auto;border:2px solid #111;border-radius:5px;background:#9e2b16 url('assets/card-back.svg') center/100% 100% no-repeat;box-shadow:1px 2px 3px #0009}.hand .card,.hand .card-back{margin-left:calc(var(--card-w)*-.12)}.hand>:first-child{margin-left:0}.field .card{margin-inline:.4%}
.pile.grave:has(.grave-card){border:0;background:none;box-shadow:none}.grave-card,.grave-card:disabled{width:var(--card-w);height:var(--card-h);cursor:default;opacity:1;filter:none}.grave-card .card-name{font-size:min(calc(.96 * var(--game-vw)),calc(1.28 * var(--game-vh)))}.grave-card .card-text{font-size:min(calc(.68 * var(--game-vw)),calc(.9 * var(--game-vh)));line-height:1}.grave-card .stat{font-size:min(calc(.76 * var(--game-vw)),calc(1.02 * var(--game-vh)));min-width:min(calc(2 * var(--game-vw)),calc(2.66 * var(--game-vh)))}.pile.grave>.grave-card+span{position:absolute;right:calc(-.8 * var(--game-vh));bottom:calc(-.8 * var(--game-vh));min-width:calc(2.8 * var(--game-vh));height:calc(2.8 * var(--game-vh));border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-size:calc(1.3 * var(--game-vh))}

/* Reference-style monster information and feedback */
.card.monster .card-name{position:absolute;left:4%;right:4%;top:1%;height:15%;padding:0;text-align:left;font-size:min(calc(1.15 * var(--game-vw)),calc(1.53 * var(--game-vh)));line-height:1.35;z-index:4}
.card.monster .card-art{position:absolute;left:7%;right:7%;top:16%;width:86%;height:52%;margin:0;padding:0;object-fit:contain;border:1px solid #27383e;background:linear-gradient(#83acc3,#4d7287);clip-path:inset(0 round 1px)}
.card.monster .turn-badge{position:absolute;right:7%;top:55%;z-index:4;padding:1px 3px;background:#454545b8;color:#eee;font-size:min(calc(.85 * var(--game-vw)),calc(1.14 * var(--game-vh)));font-weight:700;line-height:1.2;text-shadow:1px 1px #222;white-space:nowrap}
.card.monster .monster-health{position:absolute;left:8%;right:8%;bottom:14%;z-index:4;height:8%;display:flex;align-items:center;gap:2px}
.health-pip{display:block;flex:1 1 0;height:100%;max-width:10px;border:1px solid #8d6000;border-radius:2px;background:#3a331d;box-shadow:inset 0 0 2px #000;transition:background .12s,filter .12s,transform .12s}
.health-pip.filled{background:linear-gradient(90deg,#ffb900,#fff43d 52%,#eaa800);box-shadow:inset 0 1px #fff685,0 0 3px #ffd000;filter:brightness(1.1)}
.card.monster .stats{bottom:1%;z-index:4}.card.monster .stat{min-width:39%;background:transparent;color:#171717;font-weight:700;text-shadow:0 1px #ffffff66}.card.monster .stat.attack:before{color:#8b4b14}.card.monster .stat.defense:before{color:#5d6870}
.card.monster .card-text{position:absolute;left:7%;right:7%;top:16%;width:86%;height:52%;z-index:6;display:grid;place-items:center;padding:5%;border:1px solid #c6ad18;background:#303337f2;color:#fff;text-align:center;font-size:min(calc(.92 * var(--game-vw)),calc(1.22 * var(--game-vh)));line-height:1.12;opacity:0;pointer-events:none;transition:opacity .12s}
.card.monster:hover .card-text,.card.monster:focus-visible .card-text{opacity:1}
.card.monster:hover .turn-badge,.card.monster:focus-visible .turn-badge{opacity:0}
.card.summoning:after{top:17%;left:7%;right:7%;font-size:min(calc(.68 * var(--game-vw)),calc(.91 * var(--game-vh)))}
.pile.grave:has(.grave-card){width:var(--card-w);height:var(--card-h);aspect-ratio:auto}.grave-card .card-name{font-size:min(calc(1.05 * var(--game-vw)),calc(1.4 * var(--game-vh)))}.grave-card .card-text{font-size:min(calc(.78 * var(--game-vw)),calc(1.04 * var(--game-vh)))}.grave-card .stat{font-size:min(calc(.9 * var(--game-vw)),calc(1.2 * var(--game-vh)))}
.discard-flight,.damage-ghost{position:fixed!important;z-index:140!important;margin:0!important;pointer-events:none!important;contain:paint}.damage-ghost{z-index:145!important;animation:monster-damage .58s ease-out forwards}.damage-number{position:fixed;z-index:150;transform:translate(-50%,-50%);pointer-events:none;color:#ffdf31;font-size:min(calc(3 * var(--game-vw)),calc(4 * var(--game-vh)));font-weight:900;text-shadow:0 2px 1px #7d0000,0 0 8px #ff3b00;animation:damage-number .65s ease-out forwards}
@keyframes monster-damage{0%{transform:translateX(0);filter:brightness(1)}12%{transform:translateX(-7px);filter:brightness(2.1) saturate(1.7)}25%{transform:translateX(7px)}38%{transform:translateX(-5px)}52%{transform:translateX(3px)}100%{transform:translateX(0);filter:brightness(1)}}
@keyframes damage-number{0%{opacity:0;transform:translate(-50%,-25%) scale(.7)}18%{opacity:1;transform:translate(-50%,-60%) scale(1.2)}100%{opacity:0;transform:translate(-50%,-150%) scale(.95)}}

/* Battle popup from the original game */
.battle-overlay{position:absolute;inset:0;z-index:30;background:#0008;display:grid;place-items:center}.battle-panel{position:relative;width:54%;height:43%;border:calc(1.1 * var(--game-vh)) solid #262626;background:linear-gradient(#343434,#131313);box-shadow:0 0 0 calc(.4 * var(--game-vh)) #777,0 0 30px #000;border-radius:calc(1 * var(--game-vh));display:grid;grid-template-columns:1fr .65fr .35fr .65fr 1fr;align-items:center;gap:2%}.battle-title{position:absolute;left:0;right:0;top:2%;text-align:center;font-size:calc(2.5 * var(--game-vh));font-weight:700}.battle-card{display:grid;place-items:center}.battle-card .card{cursor:default;transform:scale(1.35)}.battle-roll{text-align:center}.battle-roll small{display:block;color:#aaa;font-size:calc(1.3 * var(--game-vh))}.battle-roll b{display:block;font-size:calc(4.8 * var(--game-vh));color:#fff;text-shadow:0 0 6px #fff}.versus{font-size:calc(2.2 * var(--game-vh));font-weight:700;text-align:center}.battle-result{position:absolute;left:0;right:0;bottom:3%;text-align:center;color:#ffd65f;font-size:calc(1.8 * var(--game-vh));font-weight:700}.battle-panel.hit{animation:impact .18s 2}.battle-panel.hit .battle-result{color:#ff7b55}.battle-panel.block .battle-result{color:#8cc7ff}@keyframes impact{50%{transform:translateX(4px)}}
.drag-ghost{position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-55%) scale(1.08);filter:drop-shadow(5px 8px 8px #000b)}.drag-ghost .card{cursor:grabbing}.drag-target{box-shadow:inset 0 0 0 3px #ffdf36,0 0 18px #ffdb00!important}

/* Clear card states and original-style interaction feedback */
.card.selected{border-color:#ffd33d;box-shadow:1px 2px 3px #0009}.card.playable{border-color:#d8aa2e;box-shadow:1px 2px 3px #0009}.card.ready{border-color:#3d7044;box-shadow:1px 2px 3px #0009}
.card.summoning:after{display:none}.card.summoning .turn-badge{opacity:0}.summoning-overlay{position:absolute;left:7%;right:7%;top:16%;height:60%;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(90deg,#496b54e8,#719b75dc 48%,#496b54e8),linear-gradient(100deg,transparent 34%,#d9ffd044 49%,transparent 63%);border:1px solid #526956;color:#fff;text-align:center;text-shadow:1px 1px 1px #213528;overflow:hidden}.summoning-overlay:before{content:"";position:absolute;inset:-15% 24%;background:linear-gradient(90deg,transparent,#e7ffe15e,transparent);filter:blur(3px);animation:summon-beam 1.25s ease-in-out infinite alternate}.summoning-overlay small,.summoning-overlay b{position:relative;z-index:1}.summoning-overlay small{font-size:min(calc(.76 * var(--game-vw)),calc(1.02 * var(--game-vh)));font-weight:700}.summoning-overlay b{font-size:min(calc(2 * var(--game-vw)),calc(2.67 * var(--game-vh)));line-height:1.05}.card.summoning .card-art{filter:brightness(.68) saturate(.55)}
.grave-card,.grave-card:disabled{pointer-events:none}.grave-card:hover,.grave-card:focus-visible{transform:none;z-index:auto}.grave-card.monster:hover .card-text,.grave-card.monster:focus-visible .card-text{opacity:0}.grave-card.monster:hover .turn-badge,.grave-card.monster:focus-visible .turn-badge{opacity:1}
.drop-available{outline:2px dashed #e5bb48;outline-offset:-4px}.card.drop-available{outline-offset:1px}.drag-target{outline-style:solid;outline-color:#fff0a0;box-shadow:none!important}.field.drag-target{background-color:#ffffff10}.opponent-target.drop-available{border:2px dashed #e5bb48;background:#e5bb480d}.opponent-target.drag-target{border-style:solid;background:#e5bb4824}
.battle-card .card.battle-damaged{animation:battle-card-damage .52s ease-out}.battle-card .health-pip.lost{animation:health-pip-break .34s ease-out forwards}.battle-damage-number{position:absolute;left:50%;top:43%;z-index:12;color:#ffd72d;font-size:min(calc(2 * var(--game-vw)),calc(2.67 * var(--game-vh)));font-weight:900;text-shadow:0 2px #8b1308,0 0 5px #ff6b1a;animation:battle-damage-number .68s ease-out forwards}
@keyframes summon-beam{from{transform:translateX(-18%);opacity:.35}to{transform:translateX(18%);opacity:.9}}@keyframes battle-card-damage{0%{transform:scale(1.35);filter:brightness(1)}12%{transform:translateX(-7px) scale(1.35);filter:brightness(2) saturate(1.6)}28%{transform:translateX(7px) scale(1.35)}45%{transform:translateX(-4px) scale(1.35)}65%{transform:translateX(3px) scale(1.35)}100%{transform:translateX(0) scale(1.35);filter:brightness(1)}}@keyframes health-pip-break{0%{transform:scale(1);opacity:1}55%{transform:translateY(-5px) rotate(18deg) scale(1.35);background:#ff8a00;opacity:1}100%{transform:translateY(7px) rotate(45deg) scale(.25);opacity:.15}}@keyframes battle-damage-number{0%{opacity:0;transform:translate(-50%,0) scale(.6)}22%{opacity:1;transform:translate(-50%,-25%) scale(1.2)}100%{opacity:0;transform:translate(-50%,-110%) scale(.9)}}

.custom-deck-button,.deck-actions button{border:2px solid #171717;border-radius:6px;background:linear-gradient(#ddd,#737373);color:#202020;font-weight:700;cursor:pointer;padding:3px 12px}.custom-deck-button{display:block;margin:4px auto;font-size:min(calc(1.5 * var(--game-vw)),calc(2 * var(--game-vh)))}
.deck-builder{background:radial-gradient(at bottom left,#bd2014,#531411);padding:3% 4%;display:flex;flex-direction:column;gap:4%;color:white;z-index:10}.deck-builder h1{margin:0;font-size:min(calc(4 * var(--game-vw)),calc(5.3 * var(--game-vh)))}.deck-catalog{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;padding:18px;background:linear-gradient(90deg,#777,#aaa,#666);border:3px solid #171717;align-content:start}.deck-choice{position:relative;min-width:0;padding:4px;background:linear-gradient(100deg,#888,#444);border:1px solid #555;display:flex;flex-direction:column;align-items:center}.deck-choice .card{width:100%;height:auto;aspect-ratio:7/10;pointer-events:auto;cursor:help;flex:none;transform:none;margin:0}.deck-choice .card:hover,.deck-choice .card:focus-visible{transform:translateY(-4px) scale(1.28);z-index:40;box-shadow:0 5px 12px #000c}.deck-choice:has(.card:hover),.deck-choice:has(.card:focus-visible){z-index:40}.deck-value{font-size:min(calc(.95 * var(--game-vw)),calc(1.27 * var(--game-vh)));color:#111;font-weight:bold;margin:4px 0}.deck-quantity{display:flex;width:100%;align-items:center;justify-content:space-between}.deck-quantity button{border:0;background:none;color:#ffb500;text-shadow:0 0 2px #f30;font-size:min(calc(2 * var(--game-vw)),calc(2.67 * var(--game-vh)));cursor:pointer;padding:0}.deck-quantity output{background:#eee;color:#111;text-align:center;min-width:25%;font-weight:bold;font-size:min(calc(1.5 * var(--game-vw)),calc(2 * var(--game-vh)))}.deck-builder button:disabled{opacity:.4;cursor:default}.deck-builder footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.deck-summary{font-size:min(calc(1.8 * var(--game-vw)),calc(2.4 * var(--game-vh)));font-weight:700}.deck-actions{display:flex;gap:6px}.deck-actions button{font-size:min(calc(2 * var(--game-vw)),calc(2.67 * var(--game-vh)));padding:4px 10px}
/* Dialogs */
dialog{width:min(520px,calc(100% - 24px));color:#eee;background:linear-gradient(#3b3b3b,#161616);border:8px solid #202020;border-radius:5px;padding:0;box-shadow:0 0 0 2px #777,0 20px 70px #000}dialog::backdrop{background:#000a}#modal-content{padding:24px}dialog h2{margin:0 0 12px;font-size:28px}dialog p,dialog li{font-size:15px;line-height:1.5;color:#ddd}dialog ol{padding-left:22px}.actions{display:flex;gap:8px;margin-top:18px}.actions button{flex:1;border:2px solid #111;border-radius:5px;background:linear-gradient(#eee,#777);color:#111;padding:9px;font-weight:700;cursor:pointer}.actions .primary{background:linear-gradient(#ffc75c,#b45c12)}
#toast{position:fixed;left:50%;top:4%;transform:translate(-50%,-10px);z-index:120;background:#222;border:2px solid #888;border-radius:5px;padding:8px 14px;font-weight:700;opacity:0;pointer-events:none;transition:.15s}#toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-aspect-ratio:3/4){.title-menu button{font-size:calc(3.3 * var(--game-vw))}.title-brand{font-size:calc(7 * var(--game-vw))}.setup-screen h1{font-size:calc(5 * var(--game-vw))}.duelist label,.strength-row{font-size:calc(2 * var(--game-vw))}.duelist input{font-size:calc(3.5 * var(--game-vw))}.screen{align-self:start;margin-top:calc(8 * var(--game-vh))}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Status shelf leaves the monster name and combat values unobstructed. */
.card.monster .card-art,.card.monster .card-text{height:52%}
.card.monster .card-art{object-fit:cover;border:0;background:none}
.card.monster.has-combiner .card-name{right:20%}
.combiner-symbol{position:absolute;right:5%;top:1%;height:14%;z-index:5;color:#ffe084;font-size:min(calc(1.3 * var(--game-vw)),calc(1.73 * var(--game-vh)));line-height:1;text-shadow:0 0 3px #ffba36;pointer-events:none}
.upgrade-decal{position:absolute;left:7%;top:16%;width:86%;height:52%;object-fit:fill;pointer-events:none;z-index:1;opacity:.65;clip-path:inset(0 round 3px)}
.card.monster:hover .upgrade-decal,.card.monster:focus-visible .upgrade-decal{opacity:0}
.grave-card.monster:hover .upgrade-decal,.grave-card.monster:focus-visible .upgrade-decal{opacity:.65}
.card.monster .effect-tags{top:69%;left:7%;right:7%;height:7%;display:flex;flex-direction:row;gap:2px;align-items:center;overflow:hidden;z-index:8}
.effect-tags i{display:inline-flex;align-items:center;justify-content:center;min-width:13%;height:100%;padding:0 2px;border-radius:2px;font-size:min(calc(.8 * var(--game-vw)),calc(1.06 * var(--game-vh)));line-height:1;white-space:nowrap}
.effect-tags i.beneficial{background:#294751;color:#d7f3ff}.effect-tags i.harmful{background:#4e3045;color:#ffe1ef}
.card.monster .turn-badge{top:55%}.summoning-overlay{height:52%}
.card.poisoned .health-pip.filled{background:linear-gradient(90deg,#348312,#b2f650 52%,#439d18);border-color:#327910;box-shadow:inset 0 1px #d1ff9a,0 0 2px #6caf29;filter:none}
.frozen-overlay{position:absolute;left:7%;right:7%;top:16%;height:52%;z-index:11;display:grid;place-items:center;overflow:hidden;transition:opacity .12s}.frozen-overlay img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.card.frozen .card-art{filter:brightness(1.05) saturate(.7) hue-rotate(155deg)}.card.frozen:hover .frozen-overlay,.card.frozen:focus-visible .frozen-overlay{opacity:0}
.death-slot{width:var(--card-w);height:var(--card-h);flex:0 0 auto;pointer-events:none;visibility:hidden}
/* Battle effects stay above all board effects, and empty health slots remain visible. */
.battle-overlay{position:fixed;z-index:300;inset:0}.battle-panel{width:min(calc(54 * var(--game-vw)),calc(72 * var(--game-vh)));height:min(calc(32 * var(--game-vw)),calc(43 * var(--game-vh)))}
.health-pip:not(.filled),.battle-card .health-pip.lost{background:#111;border-color:#242424;box-shadow:inset 0 1px 2px #000;animation:none;transform:none;opacity:1;filter:none}
.card-art,.card-name,.card-text,.summoning-overlay,.turn-badge,.monster-health,.stats,.effect-tags,.frozen-overlay,.stunned-overlay{pointer-events:none}
.divider{background:#090b13;border:0;box-shadow:none}.divider:before{display:none}
.barrier{left:0;right:0;top:0;transform:none;width:100%;height:100%;border:0;border-radius:0;background:transparent;box-shadow:none;pointer-events:none;display:block}
.barrier span,.barrier b{display:none}.barrier:before,.barrier:after{content:"";position:absolute;left:0;right:0;height:2px;background:repeating-linear-gradient(95deg,#217dff 0%,#6ee9ff 12%,#267cff 25%,#b8f7ff 27%,#267cff 32%);background-size:220% 100%;box-shadow:0 0 5px #26a1ff,0 0 10px #087dff;animation:barrier-electric 2.8s linear infinite}.barrier:before{top:8%}.barrier:after{bottom:8%;animation-direction:reverse}
@keyframes barrier-electric{0%{background-position:0 0;opacity:.8}50%{opacity:1}100%{background-position:220% 0;opacity:.8}}
.hand,.field{justify-content:safe center;overflow-x:auto;overflow-y:hidden;max-width:100%;gap:6px;padding:6px 8px;scrollbar-width:thin;scrollbar-color:#b1b7cc #131725;overscroll-behavior:contain;touch-action:pan-x}
.hand .card,.hand .card-back,.field .card{margin:0;flex-shrink:0}.hand:focus-visible,.field:focus-visible{outline:1px solid #b1b7cc;outline-offset:-2px}
.hand::-webkit-scrollbar,.field::-webkit-scrollbar{height:6px}.hand::-webkit-scrollbar-thumb,.field::-webkit-scrollbar-thumb{background:#b1b7cc;border-radius:4px}
.spell-flash{position:fixed;z-index:125;pointer-events:none;display:grid;place-items:center;color:#fff;font-weight:bold;font-size:min(calc(2 * var(--game-vw)),calc(2.7 * var(--game-vh)));text-shadow:0 2px 3px #000;border:2px solid #aad9ff;background:#5cbdff22;animation:spell-cast .65s ease-out forwards}.spell-flash.upgrade{border-color:#b8ee85;background:#8dff7a22}.spell-flash.downgrade{border-color:#ffad80;background:#ff673422}
@keyframes spell-cast{0%{opacity:0;transform:scale(.82)}25%{opacity:1}100%{opacity:0;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.barrier:before,.barrier:after{animation:none}}

/* Scale every game-relative size against the fitted 4:3 board, not the phone height. */
:root{--view-w:calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));--view-h:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));--game-width:min(var(--view-w),calc(var(--view-h) * 4 / 3));--game-height:min(var(--view-h),calc(var(--view-w) * .75));--game-vw:calc(var(--game-width) / 100);--game-vh:calc(var(--game-height) / 100)}
@supports(height:100dvh){:root{--view-h:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}html,body,#app{height:100dvh}}
#app{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}
.screen{width:var(--game-width);height:var(--game-height)}
.setup-main-menu{position:absolute;top:3%;right:4%;font-size:calc(2 * var(--game-vh));padding:calc(.6 * var(--game-vh)) calc(1.4 * var(--game-vw));z-index:2}
.online-chat{position:fixed;right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));z-index:290;font:16px Arial,sans-serif;max-width:calc(100vw - 20px)}
.online-chat button{min-height:40px;border:2px solid #151515;border-radius:6px;background:linear-gradient(#ddd,#777);color:#111;font-weight:bold;padding:6px 12px;cursor:pointer}
#chat-toggle{float:right}#chat-panel{clear:both;width:320px;max-width:calc(100vw - 20px);background:#251c1b;border:2px solid #aaa;border-radius:8px;box-shadow:0 3px 16px #0008;padding:10px;color:#fff}
#chat-panel header{display:flex;justify-content:space-between;align-items:center;gap:12px}#chat-messages{height:min(220px,30dvh);overflow-y:auto;overflow-wrap:anywhere;margin:8px 0;padding:8px;background:#111;line-height:1.4}#chat-messages p{margin:0 0 8px}#chat-messages strong{color:#ffda6d}#chat-form label{font-size:14px}#chat-form>div{display:flex;gap:6px;margin-top:5px}#chat-input{min-width:0;width:100%;font-size:16px;padding:8px;border:1px solid #aaa;border-radius:4px;background:#333;color:white}#chat-status{font-size:13px;margin:6px 0 0}#chat-panel{max-height:calc(100dvh - 70px);overflow:auto}
@media(max-width:700px){.online-screen,.card-creator{width:var(--view-w);height:var(--view-h);aspect-ratio:auto}.online-screen input,.online-screen select{font-size:16px}.online-chat{bottom:max(6px,env(safe-area-inset-bottom))}.title-menu button{line-height:1.5}}
@media(pointer:coarse){.hand,.field{touch-action:pan-x}.avatar-arrow,.ok-button,.custom-deck-button{touch-action:manipulation}}
@media(max-width:700px){.deck-builder{width:var(--view-w);height:var(--view-h);aspect-ratio:auto;gap:10px;padding:14px}.deck-builder h1{font-size:22px}.deck-catalog{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px;padding:8px}.deck-builder footer{flex-wrap:wrap}.deck-summary,.deck-actions button,.deck-value,.deck-quantity output{font-size:14px}.deck-actions{flex-wrap:wrap}.deck-actions button,.deck-quantity button{min-height:36px}.deck-quantity button{font-size:22px;min-width:32px}.deck-choice .card .card-name{font-size:13px}.deck-choice .card .card-text{font-size:12px}.deck-choice .card .stat,.deck-choice .card .turn-badge{font-size:12px}.deck-choice .card:hover{transform:none}}
@media(max-width:900px),(max-height:600px){.screen.online-screen{width:var(--view-w);height:var(--view-h);max-height:var(--view-h);aspect-ratio:auto;align-self:stretch;margin-top:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:max(28px,env(safe-area-inset-bottom,0px))}.online-screen header{position:sticky;top:-16px;z-index:5;padding:8px 0;background:#721811f2}.online-screen fieldset{min-width:0}.online-screen #online-status{margin-bottom:18px}}
.battle-card.emo-reaction{position:relative;isolation:isolate}
.emo-heart{position:absolute;left:50%;top:45%;z-index:2;pointer-events:none;color:#100c16;font-size:calc(3.5 * var(--game-vh));text-shadow:0 0 2px #d7a4ef;animation:emo-heart-flight 1.1s ease-out both;animation-delay:var(--heart-delay)}
@keyframes emo-heart-flight{0%{opacity:0;transform:translate(-50%,0) scale(.4)}20%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--heart-x)),-85px) rotate(15deg) scale(1.1)}}
.combiner-symbol.wilted-flower{filter:grayscale(1) brightness(.32);text-shadow:0 0 2px #b993ca;transform:scale(.65);transform-origin:top right}
