html,body{height:100%;width:100%;overflow:hidden;overscroll-behavior:none;background:#294f56}body{touch-action:none}#scene{position:fixed;inset:0;width:100%;height:100%;image-rendering:pixelated;outline:none;cursor:crosshair}#hud{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));left:max(16px,env(safe-area-inset-left));display:flex;justify-content:space-between;align-items:start;pointer-events:none;gap:8px;z-index:3}#saveState{font:9px var(--mono);background:#152b33b8;padding:9px 12px;color:#d1e9dc;border:1px solid #acc9a329;max-width:230px;line-height:1.7}.hud-actions{display:flex;gap:7px;pointer-events:auto}.hud-actions button{background:#183640c9;border:1px solid #d6deb950;box-shadow:2px 3px 0 #112c3b66;min-height:42px;min-width:42px;padding:9px 12px;font:12px var(--mono);backdrop-filter:blur(5px);color:#fff3cd}.hud-actions button:hover{background:#42676b}#startScreen{position:fixed;inset:0;background:linear-gradient(transparent 40%,#102c3d85);display:flex;align-items:end;justify-content:center;padding-bottom:12vh;z-index:4;pointer-events:none}.start-actions{pointer-events:auto;text-align:center;padding:22px;background:#15343cdb;border:1px solid #b0c9b666;box-shadow:6px 6px 0 #162b38b0;backdrop-filter:blur(4px)}.start-actions .primary{min-width:250px;font-size:13px;justify-content:center}.start-actions small{font:9px var(--mono);color:#a6c0bc}.start-actions .guest{border:none;margin:10px 0}#controls{position:fixed;inset:0;pointer-events:none;z-index:2}#joystick{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:max(25px,env(safe-area-inset-left));width:116px;height:116px;border-radius:50%;border:2px solid #f1ead341;background:#a8c9bf17;pointer-events:auto;touch-action:none;user-select:none;display:none;backdrop-filter:blur(1px)}#stick{position:absolute;left:33px;top:33px;width:46px;height:46px;border-radius:50%;background:#dfecd443;border:1px solid #fff6d763;box-shadow:0 2px 12px #153c3150;pointer-events:none}#joystick i{position:absolute;inset:0;display:grid;place-items:center;font:45px monospace;color:#dae9df25;pointer-events:none}#interact{position:absolute;right:max(25px,env(safe-area-inset-right));bottom:max(35px,env(safe-area-inset-bottom));pointer-events:auto;padding:15px 18px;border:1px solid #f5e0a29c;background:#254a47ce;box-shadow:3px 3px 0 #162d359c;font:11px var(--mono);color:#fff4cf;min-height:55px;max-width:230px;display:flex;align-items:center;gap:14px}#interact:disabled{opacity:.5;cursor:default}#interact b{border:1px solid #c2d9b376;padding:6px}#helpHint{position:absolute;bottom:20px;left:24px;font:9px var(--mono);background:#152d36aa;padding:10px 12px;color:#d4e5d9;max-width:55%;line-height:1.8}#speech{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);width:min(530px,calc(100% - 32px));background:#17343df5;border:2px solid #e0cc8f;box-shadow:5px 5px 0 #13242b90;padding:20px 24px;z-index:6;pointer-events:auto}#speaker{font:12px var(--mono);color:#f1cd7c}#speech p{font-size:15px;line-height:1.8;margin:12px 0;color:#e9efda}#speechNext{display:block;margin-left:auto;border:0;background:none;color:#efc879;font:11px var(--mono);min-height:32px}.sr-only{position:fixed;left:-10000px}.sr-only:focus-within{left:16px;top:70px;z-index:20;display:grid;gap:6px;background:#18363e;padding:14px}.sr-only button{background:#355551;border:1px solid #a9bd90;color:#fff;padding:8px}dialog{touch-action:pan-y;z-index:10}#toast{bottom:104px;pointer-events:none;text-align:center;min-width:240px;line-height:1.7}.loading{background:#102d38b8}.loading p{font-size:11px}.auth-note{line-height:1.7}@media(pointer:coarse){#joystick{display:block}#helpHint{display:none}#interact{bottom:max(44px,env(safe-area-inset-bottom));max-width:180px;padding:12px}#interact b{display:none}#speech{bottom:180px}}@media(max-width:600px){#hud{top:10px;right:10px;left:10px}.hud-actions{gap:5px}.hud-actions button{font-size:11px;padding:8px;min-width:38px;min-height:40px}#saveState{font-size:7px;max-width:130px;padding:7px}.hud-actions button span{display:none}#helpHint{bottom:90px;left:12px;font-size:8px}#interact{right:18px}#speech p{font-size:13px}.start-actions{padding:20px}}@media(max-height:500px){#speech{bottom:80px;max-width:480px;padding:12px 20px}#speech p{margin:6px 0;font-size:12px}#joystick{width:90px;height:90px;bottom:16px}#stick{left:22px;top:22px}#interact{bottom:22px}.start-actions{padding:12px}.start-actions .primary{padding:12px}#startScreen{padding-bottom:8vh}}

#gamePicker{width:min(500px,calc(100% - 32px))}.game-choice{display:block;width:100%;padding:22px 20px 0;background:linear-gradient(145deg,#354e52,#233439);border:2px solid #8f9b78;box-shadow:4px 4px 0 #101e26;text-align:left;transition:transform .15s,border-color .15s}.game-choice:hover{border-color:var(--amber);transform:translateY(-3px)}.game-choice img{display:block;width:100%;max-width:360px;height:auto;margin:4px auto 22px;object-fit:contain}.game-choice-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #7a8e704d;padding:16px 0;font:8px var(--mono);color:#d2d9bd}.game-choice-bottom strong{display:block;font:700 20px var(--sans);color:#fff3ce;margin-top:5px}.choice-arrow{font-size:25px;color:var(--amber)}.picker-note{text-align:center;font-size:10px!important;margin:22px 0 5px}.queue-logo{display:block;width:100%;max-width:300px;height:auto;margin:28px auto 24px}@media(max-height:550px){#gamePicker{padding:20px 26px}#gamePicker h2{margin:8px 0}.game-choice{padding:10px 16px 0}.game-choice img{max-width:220px;margin:0 auto 10px}.game-choice-bottom{padding:8px 0}.picker-note{margin:12px 0 0}}

#nearbyPrompt{position:fixed;z-index:4;transform:translate(-50%,-100%);background:#fff0cceF;color:#21474c;border:2px solid #758e70;box-shadow:2px 3px 0 #1c323e60;padding:9px 13px;font:10px var(--mono);max-width:230px;min-height:38px;touch-action:manipulation}#nearbyPrompt:after{content:'';position:absolute;left:50%;bottom:-7px;border-top:7px solid #fff0cc;border-left:6px solid transparent;border-right:6px solid transparent}#speechChoices{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}#speechChoices button{background:#315e62;border:1px solid #8ca989;color:#fff2c7;font:11px var(--mono);padding:11px;min-height:42px}#speechChoices button:hover{background:#4f7772}#respawn{position:fixed;inset:0;background:#000;z-index:200;display:grid;place-items:center;padding:35px;opacity:0;transition:opacity .7s;pointer-events:auto}#respawn.visible{opacity:1}#respawn>div{max-width:580px;text-align:center}#respawn p{font:20px/1.9 var(--sans);color:#f4e9cb}#respawn small{font:11px/1.8 var(--mono);color:#aabeb9}#weatherStatus{color:#edcc85}#weatherDialog small{font-size:10px;color:#a4c3bd}#weatherDialog .primary{width:100%;justify-content:center}.hud-actions button#weatherButton{font-size:11px}#scene{filter:brightness(1.12) saturate(1.08)}@media(max-width:600px){#nearbyPrompt{font-size:9px;max-width:180px;padding:8px}#respawn p{font-size:17px}#saveState{max-width:95px}#speechChoices button{font-size:10px;padding:8px}.hud-actions button{min-width:34px;padding:7px}#speech{max-height:50dvh;overflow:auto}}
.masters-dialog{width:min(1180px,calc(100% - 24px));max-height:92dvh;overflow:auto;padding:28px;background:#142f3b;color:#f5edcf}.masters-dialog h2{margin:10px 0}.masters-dialog p{font-size:13px;line-height:1.6}.masters-dialog button,.masters-dialog select{padding:10px;background:#305c62;color:#fff2d0;border:1px solid #a7ba97;min-height:42px}.masters-dialog button:disabled{opacity:.4}.masters-dialog input{background:#213f4b;color:#fff;padding:12px;width:100%;border:1px solid #81998d}.deck-toolbar,.deck-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.deck-toolbar label{flex:1;min-width:140px}.deck-toolbar select{display:block;width:100%}.deck-layout{display:grid;grid-template-columns:2fr 1fr;gap:24px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px;margin:14px 0}.tcg-card{background:#244652;border:1px solid #6e968f;padding:10px;display:flex;flex-direction:column;gap:7px;box-shadow:3px 3px #0a202b}.tcg-card img{width:100%;height:170px;object-fit:contain}.card-art{height:80px;display:grid;place-items:center;background:repeating-linear-gradient(135deg,#355a68,#355a68 8px,#305260 8px,#305260 16px);color:#e8ca86;font-size:40px}.tcg-card strong{font-size:13px}.tcg-card small,.tcg-card span{font-size:10px;color:#b6d9d0}.tcg-card p{font-size:11px;flex:1;margin:0}.tcg-card button{font-size:11px}.deck-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px;border-bottom:1px solid #41616b;font-size:12px}.play-field{padding:16px;border:1px solid #4e7777;background:#1c4149}.play-field h3{font-size:14px}.field-cards{display:flex;gap:10px;flex-wrap:wrap}.field-card{width:160px;background:#315962;border:1px solid #c2b27e;padding:10px;font-size:12px}.field-card button{font-size:10px;margin:4px 0;width:100%}.battle-line{text-align:center;padding:14px;color:#e3c488}.demo-note{color:#a7c5c3}#matchStatus,#deckStatus{padding:12px;background:#0f2632;color:#ffe2a3}#matchLog{font-size:12px;line-height:1.8}.masters-dialog a{color:#edd49c}@media(max-width:650px){.deck-layout{grid-template-columns:1fr}.masters-dialog{padding:20px 14px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tcg-card img{height:140px}.field-card{width:130px}.masters-dialog h2{font-size:24px}}
#cardViewer{width:min(620px,calc(100% - 24px))}.card-detail{text-align:center}.card-detail img{max-width:100%;max-height:65dvh;object-fit:contain}.tcg-card img{cursor:zoom-in}#effectBanner{font-size:12px;padding:12px;background:#274a54;color:#fff2ce;min-height:40px}.deck-actions{position:sticky;bottom:-28px;background:#142f3bf5;padding:12px 0;z-index:1}

.bandai-catalog{width:min(1120px,94vw)}
.bandai-filters{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.bandai-filters input{flex:2;min-width:200px}.bandai-filters select{flex:1;min-width:140px;max-width:100%}
.bandai-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.bandai-card{display:flex;flex-direction:column;gap:8px;text-align:left;min-width:0;padding:10px!important}.bandai-card strong{font-size:13px}.bandai-art{width:100%;aspect-ratio:5/7;display:grid;place-items:center;background:#172a30;border-radius:6px;overflow:hidden}.bandai-art img{width:100%;height:100%;object-fit:contain;image-rendering:auto}.bandai-art p{padding:12px;font-size:12px}.bandai-pages{display:flex;align-items:center;justify-content:center;gap:15px;flex-wrap:wrap;margin-top:20px}.bandai-detail{max-width:620px}.bandai-detail .bandai-art{max-width:340px;margin:auto}.bandai-detail a,.bandai-art a{color:#f5d18b}.bandai-detail button:not(.close){display:block;margin-top:15px}
@media(max-width:540px){.bandai-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bandai-filters{display:grid;grid-template-columns:1fr 1fr}.bandai-filters input{grid-column:1/-1;min-width:0}.bandai-filters select{min-width:0}.bandai-catalog{padding:18px!important}.bandai-card{padding:6px!important}}

.relief-cover{position:fixed;inset:0;z-index:220;display:grid;place-items:center;background:#0c1920;color:#fff0c5;font:24px var(--sans);opacity:0;transition:opacity .5s}.relief-cover.on{opacity:1}

#saveState,#helpHint,#startScreen small{display:none!important}#hud{justify-content:flex-end}.setting-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:20px 0}.setting-row input[type=range]{flex:1;min-width:130px}.setting-row input[type=checkbox]{width:24px;height:24px}#settingsDialog{max-width:600px}#settingsDialog p{line-height:1.7}#settings{font-size:22px}
.workshop{width:min(1320px,96vw);max-width:none!important;padding:28px!important}.workshop-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.workshop-toolbar input{flex:1;min-width:160px}.workshop-toolbar select{max-width:240px}.workshop-status{color:#f4d294}.builder-note{font-size:12px!important;line-height:1.5}.workshop-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:24px}.workshop-tabs{display:flex;gap:7px;flex-wrap:wrap}.workshop-tabs .selected{background:#d8bc7a;color:#1a3540}.workshop-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.workshop-filters input{grid-column:1/-1}.workshop-filters select{width:100%;min-width:0;font-size:12px}.workshop-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.workshop-results article{display:flex;flex-direction:column;gap:6px;background:#203d48;padding:8px;border:1px solid #597580}.workshop-results strong{font-size:12px;min-height:28px}.workshop-results small,.workshop-results span{font-size:10px}.workshop-art{padding:0!important;width:100%;border:0!important;background:#172f39!important}.workshop img{width:100%;aspect-ratio:5/7;object-fit:contain;image-rendering:auto}.workshop-pager{display:flex;justify-content:center;align-items:center;gap:12px;margin:14px}.workshop-deck{background:#1a333d;padding:16px;border:1px solid #66848b;align-self:start}.workshop-deck details{border-top:1px solid #4a6972;padding:12px 0}.workshop-deck summary{cursor:pointer;color:#f4d294;font-weight:700}.workshop-deck p{font-size:12px!important;line-height:1.6}.workshop-deck small{font-size:11px;line-height:1.5;color:#b4c8cb}.workshop-row{display:flex;gap:5px;margin:4px 0}.workshop-row button:first-child{flex:1;text-align:left;font-size:11px;padding:7px;min-width:0;overflow-wrap:anywhere}.workshop-row button:last-child{min-width:36px}.leader-pair{display:flex;gap:10px;max-width:300px;margin:auto}.leader-pair button{width:50%;padding:3px}.leader-pair img{display:block}.workshop-deck select{max-width:100%;margin:5px 0;display:block}.workshop-deck input[type=color]{width:60px;height:40px;padding:2px}.deck-validation{color:#f3d893}.dice-preview{font-size:36px;letter-spacing:4px}.workshop-view{width:min(900px,94vw)}.workshop-view>img{display:block;width:min(340px,80vw);margin:auto;image-rendering:auto}.workshop-view a{color:#f3d893}.deck-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.deck-mini-grid button{padding:4px}.deck-mini-grid img{width:100%;image-rendering:auto}.deck-mini-grid small{display:block;font-size:10px}
@media(max-width:780px){.workshop{padding:18px!important}.workshop-layout{grid-template-columns:1fr}.workshop-deck{order:-1}.workshop-deck details:not([open]){padding:8px 0}.workshop-filters{grid-template-columns:1fr 1fr}.workshop-results{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.workshop-results article{padding:4px}.workshop-results button{font-size:10px;padding:7px}.workshop-toolbar select{max-width:100%}.workshop-toolbar button{font-size:11px;padding:8px}.leader-pair{max-width:220px}.workshop-view{padding:20px!important}}

.energy-preview{padding:12px;margin:8px 0;color:#fff;border:1px solid #aec3c8;text-align:center;border-radius:5px}

.dialog-settings{position:absolute;top:8px;right:66px;z-index:2;font-size:21px!important;padding:8px 12px!important}.music-controls{border-block:1px solid #5d7d85;padding:16px 0;margin:20px 0}.music-controls>select{display:block;width:100%;margin:10px 0}.music-buttons{display:flex;gap:12px}.music-buttons button{flex:1}

.test-decks,.practice-board{width:min(1150px,95vw);max-width:none!important}.test-deck-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:20px 0}.test-deck-list article{padding:12px;background:#233f4b;border:1px solid #65838e}.test-deck-list img{width:100%;aspect-ratio:5/7;object-fit:contain;image-rendering:auto}.test-deck-list h3{font-size:15px}.test-deck-list p{font-size:12px}.test-deck-list button,.test-deck-list a{display:block;margin-top:10px}.test-decks a,.practice-board a{color:#f0d49b}.practice-warning{background:#443e30;color:#f7e5b5;padding:15px;font-size:13px!important;line-height:1.6}.test-decks>select{max-width:100%;margin:12px 8px 12px 0}.practice-hand{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.practice-hand article{display:flex;flex-direction:column;gap:5px}.practice-hand img,.practice-field-cards img{display:block;width:100%;height:auto;aspect-ratio:5/7;object-fit:contain;image-rendering:auto}.practice-hand strong{font-size:12px}.practice-hand button,.practice-field-cards button{font-size:11px;padding:7px}.practice-field-cards{display:flex;overflow-x:auto;gap:10px}.practice-field-cards article{flex:0 0 110px;display:flex;flex-direction:column;gap:5px}.practice-hand a{font-size:11px}

.playlist-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.playlist-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;padding:10px!important;background:#203b46!important;border:1px solid #607d80!important;text-align:center}.playlist-tile img{display:block;width:100%;height:58px;object-fit:contain;image-rendering:auto}.playlist-tile>span:not(.playlist-symbol){font:600 12px var(--sans);line-height:1.3}.playlist-tile small{font:11px var(--sans);color:#b9ced0}.playlist-tile[aria-pressed=true]{border:2px solid #f0ce7f!important;background:#35545b!important;box-shadow:0 0 0 1px #f0ce7f}.playlist-tile:focus-visible{outline:3px solid #fff0ba;outline-offset:2px}.playlist-symbol{height:58px;font:40px var(--sans);color:#f0ce7f}@media(max-width:450px){.playlist-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

.start-logo{position:absolute;top:max(5vh,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(520px,88vw);height:42dvh;object-fit:contain;image-rendering:pixelated;pointer-events:none;filter:drop-shadow(0 5px 10px #07161cb0)}.loading-logo{width:min(460px,84vw);max-height:48dvh;object-fit:contain;image-rendering:pixelated}@media(max-height:500px){.start-logo{top:3vh;height:43dvh;width:min(340px,55vw)}#startScreen{padding-bottom:4vh}.start-actions{padding:10px 18px}.start-actions .guest{margin:4px 0}}
.social-dialog{width:min(640px,94vw)}.social-dialog>button,.social-dialog>input{margin:8px 6px 8px 0}.social-dialog label{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0}.social-dialog input[type=checkbox]{width:22px;height:22px}.social-dialog input[type=color]{width:55px;height:38px;padding:2px}.social-dialog input:not([type]){min-width:0}.wardrobe-grid{display:grid;grid-template-columns:160px 1fr;gap:20px;align-items:center}.avatar-preview{width:160px;height:170px;image-rendering:pixelated;background:#254653;border:1px solid #84a0a4}.wardrobe-fields select{width:100%}.friend-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-top:1px solid #54767b;padding:14px 0}.friend-row>strong,.friend-row>span{flex:1 0 45%}.friend-row button{font-size:12px}.friend-row small{color:#b7d7c9}@media(max-width:460px){.wardrobe-grid{grid-template-columns:1fr}.avatar-preview{justify-self:center}.social-dialog label{flex-wrap:wrap}}
.deck-library-dialog{width:min(940px,94vw)}.saved-deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin-top:20px}.saved-deck-grid article{min-width:0;background:#203f4a;border:1px solid #587b7e;padding:12px;display:flex;flex-direction:column;gap:8px}.saved-deck-grid img{width:100%;height:155px;object-fit:contain;image-rendering:auto}.saved-deck-grid h3{margin:0;font-size:16px;overflow-wrap:anywhere}.saved-deck-grid p{margin:0;font-size:12px}.saved-deck-grid button{font-size:12px}.saved-deck-placeholder{height:155px;display:grid;place-items:center;font-size:54px;color:#d9be7b;background:#19333e}.deck-creator{width:min(500px,94vw)}.deck-creator>input,.deck-creator>select{width:100%;margin:14px 0}.deck-creator>label{display:block}.deck-creator>button:not(.close):not(.dialog-settings){width:100%}

#friendsButton{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:4px}#friendsButton svg{flex-shrink:0;image-rendering:pixelated}#friendsButton .friend-badge:not([hidden]){display:inline-block;font-size:11px;color:#ffe392}.profile-onboarding{max-width:470px}.profile-onboarding::backdrop{background:rgba(5,12,23,.87)}.profile-onboarding form{display:grid;gap:14px}.profile-onboarding label{display:grid;gap:8px}.profile-onboarding input:not([type=checkbox]){width:100%;box-sizing:border-box}.profile-onboarding .name-confirmation{display:flex;align-items:center;gap:10px}.profile-onboarding .name-confirmation input{width:20px;height:20px;flex-shrink:0}.profile-onboarding>button{margin-top:16px}

/* Masters table: the same named areas on both sides, independent of private data. */
#mastersBoard{width:min(1440px,98vw);max-width:none;padding:22px;background:#0d192b}#mastersBoard .demo-note{font-size:11px;max-width:900px}#mastersBoard #matchStatus{position:sticky;top:-22px;z-index:4;border:1px solid #9779bc;background:#211e39f5}#mastersBoard #effectBanner{background:#233345;border-left:3px solid #edc074;min-height:0}#mastersBoard #matchActions{position:sticky;top:44px;bottom:auto;z-index:3;margin:8px 0;background:#142034f5;font-size:12px;padding:8px;max-height:30vh;overflow:auto}#mastersBoard #matchActions button{font-size:11px;padding:7px;min-height:36px}.table-panorama{overflow-x:auto;padding-bottom:8px}.play-field{border:0;background:transparent;padding:4px}.play-field h3{margin:8px;color:#e9d49e}.masters-mat{min-width:740px;display:grid;grid-template-columns:60px 120px 1fr 1fr 1.7fr 120px;grid-template-areas:'zenergy zdeck leader unison battle battle' 'zenergy life combo combo combo deck' 'zenergy life energy energy energy drop' 'warp warp removed removed removed removed';gap:8px;padding:14px;border:2px solid #8f6fad;border-radius:14px;background:radial-gradient(ellipse at 75% 20%,#523565a8,transparent 60%),radial-gradient(ellipse at 20% 80%,#254e67aa,transparent 70%),#171d34;box-shadow:inset 0 0 40px #080e22}.mat-zone{border:1px solid #9c8caf80;border-radius:4px;min-height:105px;padding:9px;min-width:0;position:relative;display:flex;flex-wrap:wrap;align-content:flex-start;gap:8px;background:#111b2a45}.mat-zone h4{font-size:11px;letter-spacing:1px;text-transform:uppercase;margin:0 0 5px;width:100%;color:#e8daf7}.mat-zone small{font-size:10px;line-height:1.5;color:#b9c5d9}.mat-zone button{font-size:10px;padding:5px;min-height:30px;width:100%;overflow-wrap:anywhere}.zone-zenergy{grid-area:zenergy}.zone-zenergy h4{writing-mode:vertical-rl;max-height:100px}.zone-zdeck{grid-area:zdeck}.zone-leader{grid-area:leader}.zone-unison{grid-area:unison}.zone-battle{grid-area:battle}.zone-life{grid-area:life}.zone-combo{grid-area:combo}.zone-deck{grid-area:deck}.zone-energy{grid-area:energy}.zone-drop{grid-area:drop}.zone-warp{grid-area:warp;min-height:65px}.zone-removed{grid-area:removed;min-height:65px}.pile-count{font-size:24px;color:#edd4a3;width:100%}.mat-card{width:92px;display:flex;flex-direction:column;gap:5px}.mat-card-face{width:70px;height:98px;box-sizing:border-box;margin:14px 11px;background:linear-gradient(135deg,#446878,#192a42);border:2px solid #dcc28d;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;text-align:center;cursor:zoom-in;box-shadow:3px 3px #08101c;transition:transform .25s}.mat-card-face img{width:100%;height:100%;object-fit:cover}.mat-card-face strong{font-size:8px;padding:3px;background:#101c32e8;position:absolute;bottom:0;left:0;right:0}.mat-card-face span{font-size:27px;color:#ebd1a2}.mat-card-face.is-rest{transform:rotate(90deg)}.mat-card-face.is-hidden{background:repeating-linear-gradient(45deg,#18253e,#18253e 5px,#354159 5px,#354159 7px)}.mat-card-face.is-hidden span{font-size:11px}.zone-energy>small{width:100%}#enemyField .masters-mat{filter:saturate(.7)}#zoneViewer::backdrop,#cardViewer::backdrop{background:transparent;backdrop-filter:none}#zoneViewer{width:min(900px,95vw)}#mastersBoard .battle-line{padding:5px;font-size:10px}@media(max-width:650px){#mastersBoard{padding:12px 8px;max-height:98dvh;width:99vw}#mastersBoard #matchStatus{top:-12px;font-size:11px}#mastersBoard #matchActions{top:52px}.masters-mat{gap:5px;padding:8px}.table-panorama::before{content:'↔ Desliza para recorrer el tablero';display:block;font-size:10px;color:#b2c4d4;margin:8px 0}}@media(prefers-reduced-motion:reduce){.mat-card-face{transition:none}}
#mastersBoard .mat-zone{min-height:78px;padding:7px;gap:5px}#mastersBoard .mat-zone h4{font-size:10px;margin-bottom:3px}#mastersBoard .mat-card{width:78px}#mastersBoard .mat-card-face{width:50px;height:70px;margin:10px 13px}#mastersBoard .mat-card-face strong{font-size:6px}#mastersBoard .mat-card-face span{font-size:19px}#mastersBoard .is-hidden span{font-size:8px}#mastersBoard .zone-warp,#mastersBoard .zone-removed{min-height:45px;align-items:center}#mastersBoard .zone-warp .pile-count,#mastersBoard .zone-removed .pile-count{width:auto;font-size:17px}#mastersBoard .zone-warp button,#mastersBoard .zone-removed button{width:auto;margin-left:auto}#mastersBoard .pile-count{font-size:19px}#mastersBoard .mat-zone button{padding:4px;font-size:9px;min-height:28px}#mastersBoard .masters-mat{grid-template-columns:56px 100px 1fr 1fr 1.7fr 100px}

/* Explicit icon paint avoids native white button backgrounds and missing font glyphs. */
dialog button.ui-icon-button,#hud button.ui-icon-button{appearance:none;-webkit-appearance:none;display:inline-grid;place-items:center;flex:none;width:42px;height:42px;min-width:42px;min-height:42px;padding:0!important;margin:0;line-height:1;border:1px solid #78928d;border-radius:0;background:#294b56;background-image:none;color:#f4dfad;-webkit-text-fill-color:currentColor;box-shadow:2px 2px 0 #0b1d28;opacity:1;cursor:pointer}
dialog button.ui-icon-button:hover,#hud button.ui-icon-button:hover{background:#3b6268;color:#fff0ca;border-color:#d7bf88}
dialog button.ui-icon-button:active,#hud button.ui-icon-button:active{background:#203d48;color:#ffe2a3;box-shadow:inset 1px 1px 0 #122b35}
dialog button.ui-icon-button:focus-visible,#hud button.ui-icon-button:focus-visible{background:#294b56;color:#fff0ca;outline:2px solid #edbf6c;outline-offset:3px}
button.ui-icon-button svg{display:block;width:22px;height:22px;pointer-events:none;overflow:visible;flex-shrink:0}
dialog button.ui-icon-button:disabled,#hud button.ui-icon-button:disabled{background:#294b56;color:#91a5a5;opacity:.6;cursor:default}
dialog button.close.ui-icon-button{z-index:4;top:10px;right:12px}
dialog button.dialog-settings.ui-icon-button{z-index:4;top:10px;right:64px;margin:0;display:inline-grid}

.deck-import textarea{display:block;width:100%;box-sizing:border-box;min-height:220px;background:#102c37;color:#f4dfad;border:1px solid #78928d;padding:12px;font:14px monospace;resize:vertical}.deck-import input{width:100%;box-sizing:border-box}.counter-options label{display:block;margin:10px 0}.practice-field-cards article:has(small) img{max-height:150px;object-fit:contain}.test-decks>select{display:block;width:100%;margin:8px 0}.test-decks>label{display:block;margin:10px 0}

.practice-board>h2,.test-decks>h2,.deck-import>h2,.counter-options>h2{padding-right:100px;overflow-wrap:anywhere}.test-decks>label:has(input[type=checkbox]){display:flex;align-items:center;gap:10px}.test-decks input[type=checkbox],.counter-options input[type=checkbox]{width:18px;min-width:18px;height:18px;display:inline-block;margin:0 8px 0 0}

/* Authentication: pixel frame and native accessible email form. */
#authDialog{background:#17323d;border:2px solid #8aab9e;box-shadow:6px 6px 0 #081b25;padding:28px;max-width:460px}
#authDialog h2{padding-right:58px;font-family:var(--mono);font-size:25px;line-height:1.3;letter-spacing:-1px}
#authDialog input{background:#102630;border:2px solid #567c80;box-shadow:inset 2px 2px 0 #071d27;font-family:var(--mono);font-size:14px;min-height:46px}
#authDialog .auth-tabs button{font-family:var(--mono);border:2px solid #52797e;background:#203f49;min-height:44px}
#authDialog .auth-tabs .selected{background:#315a60;border-color:#edbf6c;color:#ffe1a3;box-shadow:inset 0 -3px #a77c44}
#authDialog .auth-tabs{gap:8px;border:0;margin:18px 0}
.auth-method,.auth-label{display:flex;align-items:center;gap:10px}.auth-method{font:700 12px var(--mono);color:#f4dfad;margin:16px 0}.auth-label{font:12px var(--mono)}
.auth-method img,.auth-label img,#showPassword img{image-rendering:pixelated;flex:none}
#authDialog #showPassword{display:grid;place-items:center;top:4px;right:4px;height:38px;width:38px;background:#203f49;border:1px solid #567c80}
#authDialog .primary{min-height:48px;justify-content:center;border:2px solid #ffdc94;border-radius:0}
#authDialog #forgot{min-height:36px;font-family:var(--mono);margin:6px 0 12px auto}
#authDialog .socials{display:block}#authDialog #google{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;background:#131314;color:#e3e3e3;border:1px solid #8e918f;border-radius:0;box-shadow:3px 3px 0 #081b25;font:500 14px Arial,sans-serif;padding:10px 12px}
#authDialog #google:hover{background:#252628}#authDialog #google:active{box-shadow:none;transform:translate(1px,1px)}.google-icon{display:grid;place-items:center;background:white;padding:2px;width:24px;height:24px}.google-icon img{display:block}
@media(max-width:480px){#authDialog{padding:22px 18px}#authDialog h2{font-size:22px}#authDialog input{font-size:16px}}
/* Masters practice: a physical playmat, facing an opponent, with private piles. */
#practiceBoard{box-sizing:border-box;width:100vw!important;max-width:none!important;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:12px 22px;background:radial-gradient(ellipse at 50% 45%,#243e58,transparent 70%),#080f1c;overflow:auto;--card-h:clamp(42px,7.8vh,76px);--card-w:calc(var(--card-h)*.714)}
#practiceBoard>h2{font-size:17px;margin:0 0 6px;padding-right:100px;letter-spacing:1px}#practiceBoard>.practice-warning{font-size:10px!important;padding:3px 0;margin:0;background:none;color:#acb8c7;line-height:1.3}
#practiceBoard>.duel-status{font-size:12px;padding:6px 10px;margin:6px 0;border-left:3px solid #f2cc7a;background:#182c40;color:#ffe1a2}
#practiceBoard .duel-actions{margin:4px 0;gap:6px;align-items:center;min-height:32px}#practiceBoard .duel-actions button{padding:5px 12px;min-height:30px;font-size:11px;background:#255566;border-color:#6daea7}#practiceBoard .duel-actions button:first-child{margin-left:auto;order:10;background:#32283b;border-color:#716278}#practiceBoard .duel-actions p{margin:0}
.duel-table{max-width:1340px;margin:auto}.duel-side{position:relative}.duel-player{display:flex;align-items:center;gap:12px;font:11px system-ui;color:#b9cddd;padding:4px 8px}.duel-player strong{color:#8ce6dc;letter-spacing:2px}.duel-player span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.duel-player b{margin-left:auto;color:#f6dfaa;white-space:nowrap}
.duel-mat{display:grid;grid-template-columns:.5fr 1fr 1fr 1fr 2.7fr 1fr;grid-template-rows:calc(var(--card-h) + 28px) calc(var(--card-h)*.58 + 18px) calc(var(--card-h)*.7 + 18px);grid-template-areas:'zenergy zdeck leader unison battle battle' 'zenergy life combo combo combo deck' 'zenergy life energy energy energy drop';gap:5px;padding:8px;border:1px solid #518b9c;border-radius:10px;background:radial-gradient(ellipse at 80% 20%,#1f728533,transparent 55%),linear-gradient(135deg,#183647,#101c30);box-shadow:inset 0 0 35px #07101baa,0 5px 18px #0004}
.duel-zone{min-width:0;position:relative;border:1px solid #6896a366;border-radius:4px;background:#10203366;display:flex;gap:3px;align-items:center;justify-content:center;padding:17px 5px 3px;overflow:auto}.duel-zone h4{position:absolute;top:3px;left:6px;margin:0;font:600 9px system-ui;letter-spacing:1px;color:#bbd6df;white-space:nowrap}.dz-zenergy{grid-area:zenergy;flex-direction:column}.dz-zdeck{grid-area:zdeck}.dz-leader{grid-area:leader;border-color:#e4bb6dbb;box-shadow:inset 0 0 18px #d3a65015}.dz-unison{grid-area:unison}.dz-battle{grid-area:battle}.dz-life{grid-area:life;flex-direction:column}.dz-combo{grid-area:combo}.dz-deck{grid-area:deck}.dz-energy{grid-area:energy}.dz-drop{grid-area:drop}.zone-emblem{font-size:35px;color:#64778d66}.duel-zone small{font:9px system-ui;color:#d4e9e9}.dz-leader>small{position:absolute;bottom:2px;right:3px;background:#102033dc;padding:2px}
#practiceBoard .duel-face{display:block;flex:0 0 auto;width:var(--card-w);height:var(--card-h);min-height:0;padding:0;border:1px solid #e1c991;border-radius:3px;background:#101a2a;cursor:zoom-in;box-shadow:1px 3px 5px #0009;transition:transform .15s;overflow:hidden}#practiceBoard .duel-face img{display:block;width:100%;height:100%;object-fit:contain;aspect-ratio:auto;image-rendering:auto}#practiceBoard .duel-face.rested{transform:rotate(90deg)}#practiceBoard .duel-face:focus-visible{outline:3px solid #83f7dc;outline-offset:2px}.duel-card-row{display:flex;gap:10px;align-items:center;width:100%;height:100%;overflow:auto}.duel-card-row article{display:flex;align-items:center;gap:4px;flex:0 0 auto}.dz-energy .duel-face,.dz-combo .duel-face{--card-h:clamp(26px,4vh,40px);--card-w:calc(var(--card-h)*.714)}
#practiceBoard .duel-zone button:not(.duel-face):not(.duel-pile){font:9px system-ui;padding:3px;min-height:26px;max-width:90px}.duel-back{width:var(--card-w);height:var(--card-h);box-sizing:border-box;flex-shrink:0;border:2px solid #c4a761;border-radius:3px;background:radial-gradient(circle at 50% 38%,#fcb82e 0 13%,#c45613 15%,transparent 18%),repeating-linear-gradient(45deg,#172234,#172234 5px,#202f46 5px,#202f46 7px);display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:2px 2px #030810,4px 4px #677080}
.duel-back>span{font-size:16px;color:#8e3319}.duel-back>small{font:5px system-ui;color:#edd7a1;margin-top:8px}.duel-pile{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0!important;padding:0!important;background:none!important;border:0!important}.duel-pile .duel-back,.duel-pile>img{max-height:100%;width:auto;height:var(--card-h);aspect-ratio:5/7;object-fit:contain}.duel-pile .duel-back{width:var(--card-w)}.duel-count{position:absolute;bottom:0;right:2px;min-width:21px;background:#07101fea;border:1px solid #c9ad74;border-radius:10px;padding:1px 5px;color:#ffe3a7;font:700 12px system-ui}.empty-pile{color:#5d718c}.inspectable{cursor:pointer}.inspectable:hover{filter:brightness(1.3)}
.duel-lives{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;max-height:100%;overflow:hidden}.duel-lives .duel-back{width:clamp(13px,1.8vw,23px);height:clamp(19px,3vh,30px);border-width:1px;box-shadow:none}.duel-lives .duel-back>*{display:none}.life-total{position:absolute;bottom:2px;right:4px;color:#fbd89b;font:700 14px system-ui}.duel-outside{display:flex;justify-content:flex-end;gap:7px;padding:2px}#practiceBoard .duel-outside button{font:9px system-ui;min-height:18px;padding:1px 7px;background:#142638;border-color:#355366;color:#aebfcf}
.enemy-side .duel-mat{grid-template-areas:'drop energy energy energy life zenergy' 'deck combo combo combo life zenergy' 'battle battle unison leader zdeck zenergy';grid-template-columns:1fr 2.7fr 1fr 1fr 1fr .5fr;grid-template-rows:calc(var(--card-h)*.7 + 18px) calc(var(--card-h)*.58 + 18px) calc(var(--card-h) + 28px);border-color:#836688;background:radial-gradient(ellipse at 30% 80%,#71384e44,transparent 60%),#1d2033}.enemy-side .duel-player strong{color:#e3a7b1}.enemy-side .duel-zone{border-color:#927b9366}.enemy-side .dz-leader{border-color:#e4bb6dbb}.duel-divider{text-align:center;font:700 9px system-ui;letter-spacing:4px;color:#c8b17d;margin:0 0 3px}
#practiceBoard>.duel-hand-title{font:600 11px system-ui;margin:5px 0;color:#e5d5ac}#practiceBoard .practice-hand{display:flex;gap:8px;overflow-x:auto;padding:3px 4px 8px;max-width:1340px;margin:auto}#practiceBoard .practice-hand article{flex:0 0 85px;position:relative;border-radius:5px;padding:4px;background:#183347;border:1px solid #406375}#practiceBoard .practice-hand .duel-face{--card-h:94px;--card-w:67px;margin:auto}#practiceBoard .practice-hand strong{font:10px system-ui;max-height:24px;overflow:hidden}#practiceBoard .practice-hand small{font:9px system-ui;color:#a9c5d0}#practiceBoard .practice-hand button:not(.duel-face){font:10px system-ui;min-height:28px;padding:3px;background:#2b635c;border-color:#70ab93}#practiceBoard>details{font:11px system-ui;margin-top:8px;color:#a8b8c9}
.duel-inspector{width:min(900px,95vw)}.duel-inspector::backdrop{background:#020b1666}.inspection-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px}.inspection-cards article{max-width:340px;margin:auto}.inspection-cards img{width:100%;max-height:65vh;object-fit:contain;image-rendering:auto}.inspection-cards h3{font:14px system-ui}
@media(max-width:650px){#practiceBoard{padding:8px 6px;--card-h:48px;--card-w:34px}#practiceBoard>h2{font-size:13px}.duel-mat{gap:3px;padding:4px;grid-template-columns:.55fr 1fr 1fr .8fr 1.7fr .9fr}.enemy-side .duel-mat{grid-template-columns:.9fr 1.7fr .8fr 1fr 1fr .55fr}.duel-zone{padding:15px 2px 2px}.duel-zone h4{font-size:7px;letter-spacing:0;left:2px}.duel-player{gap:5px;font-size:9px}.duel-player span{max-width:140px}.duel-lives{gap:2px}.duel-lives .duel-back{height:20px;width:14px}.duel-count{font-size:10px}.duel-zone small{font-size:7px}#practiceBoard .duel-actions{gap:4px}#practiceBoard .duel-actions button{font-size:10px;padding:4px 7px}.duel-card-row{gap:4px}#practiceBoard .practice-hand .duel-face{--card-h:83px;--card-w:59px}#practiceBoard .practice-hand article{flex-basis:72px}.duel-outside{padding:1px}}
@media(prefers-reduced-motion:reduce){#practiceBoard .duel-face{transition:none}}
#practiceBoard{--card-h:clamp(34px,6vh,64px)}#practiceBoard .duel-player{height:auto;min-height:22px;box-sizing:border-box;position:static;border:0;background:none;box-shadow:none}#practiceBoard .duel-actions{padding:3px 0;min-height:30px}#practiceBoard .duel-mat{grid-template-rows:calc(var(--card-h) + 22px) calc(var(--card-h)*.4 + 14px) calc(var(--card-h)*.5 + 14px)}#practiceBoard .enemy-side .duel-mat{grid-template-rows:calc(var(--card-h)*.5 + 14px) calc(var(--card-h)*.4 + 14px) calc(var(--card-h) + 22px)}#practiceBoard .duel-pile .duel-back{height:100%;max-height:var(--card-h);width:auto;aspect-ratio:5/7;box-shadow:1px 1px #030810,2px 2px #677080}#practiceBoard .duel-pile .duel-back small{font-size:4px;margin-top:2px}.duel-lives .duel-back{height:clamp(12px,2vh,20px);width:clamp(9px,1.4vw,15px)}
#practiceBoard .duel-zone{box-sizing:border-box;overflow:hidden}#practiceBoard .duel-pile{box-sizing:border-box;min-width:0;overflow:hidden}#practiceBoard .duel-pile .duel-back{min-height:0;overflow:hidden;flex-shrink:1}#practiceBoard .dz-deck .duel-back>*,#practiceBoard .dz-drop .duel-back>*{display:none}#practiceBoard .duel-lives{height:100%;grid-template-rows:repeat(4,minmax(0,1fr));min-height:0;gap:2px}#practiceBoard .duel-lives .duel-back{height:100%;min-height:0;width:15px}#practiceBoard .duel-card-row{min-height:0;box-sizing:border-box;scrollbar-width:thin}#practiceBoard .zone-emblem{font-size:24px;line-height:1}#practiceBoard .dz-energy .duel-face,#practiceBoard .dz-combo .duel-face{height:100%;max-height:32px;width:auto;aspect-ratio:5/7}#practiceBoard .duel-zone .duel-card-row:empty::after{content:'◇';color:#6a849144;margin:auto;font:20px system-ui}
#practiceBoard .duel-card-row{overflow-y:hidden;scrollbar-color:#507585 #102033}#practiceBoard .practice-hand{scrollbar-width:thin;scrollbar-color:#507585 #102033}#practiceBoard .dz-deck .duel-back{height:calc(var(--card-h)*.4);width:calc(var(--card-w)*.4);flex-shrink:0}#practiceBoard>.practice-warning{padding-right:48px}#practiceBoard .dz-zenergy h4{font-size:6px;letter-spacing:0}

/* Explicit theme for the solo action, including browser default button states. */
#gamePicker #soloMatch{display:block;width:100%;margin:12px 0;padding:14px 16px;min-height:44px;background:#243f49;color:#fff0ca;border:2px solid #91a58b;border-radius:0;box-shadow:3px 3px 0 #101820;font:700 11px var(--mono);line-height:1.6;text-align:center;appearance:none;opacity:1}
#gamePicker #soloMatch:hover{background:#315461;border-color:#edbf6c;color:#fff7df}
#gamePicker #soloMatch:focus-visible{outline:2px solid #edbf6c;outline-offset:3px;background:#315461}
#gamePicker #soloMatch:active{background:#1b333d;box-shadow:1px 1px 0 #101820;transform:translate(2px,2px)}
/* Touch interaction and readable battle windows. */
.duel-viewport{min-width:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#507585 #102033}.wide-table .duel-table{min-width:820px}.duel-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0}.duel-tools label{display:flex;align-items:center;gap:5px;font:10px var(--sans);color:#bbced8}.duel-tools input{width:16px!important;height:16px;padding:0!important;accent-color:#d6b76d}#practiceBoard .duel-tools button{font:10px var(--sans);min-height:30px;padding:5px 10px;background:#243c4d;border-color:#507585}.duel-event{border:1px solid #8d784855;border-left:3px solid #e5bb6b;color:#f2dcae;background:#102136;font:11px var(--sans);padding:6px 10px;margin:3px 0;line-height:1.35;animation:duel-notice .25s ease-out}.card-inspect-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.duel-inspector .inspection-cards{max-height:72dvh;overflow:auto}.duel-inspector .inspection-cards img{max-height:65dvh}.duel-inspector>button:not(.close):not(.dialog-settings){margin-top:10px}.gesture-card{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.gesture-card img{pointer-events:none;user-select:none;-webkit-user-drag:none}.drag-card-ghost{position:fixed!important;width:75px!important;height:105px!important;min-height:0!important;transform:translate(-50%,-65%) rotate(-5deg);pointer-events:none!important;z-index:2000;opacity:.9;padding:0!important;background:#102136;border:2px solid #ffdb85!important;box-shadow:0 0 20px #ffe39266}.drag-card-ghost img{width:100%;height:100%;object-fit:contain}.drop-hover{outline:3px solid #7ce1cb!important;outline-offset:-3px;background-color:#336a6966!important}.attack-target{outline:2px solid #f1c66e;outline-offset:-2px;animation:target-glow 1.4s ease-in-out infinite}.attack-arrow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:visible}.attack-arrow>path{stroke:#ffd16f;stroke-width:3;fill:none;stroke-dasharray:10 5;filter:drop-shadow(0 0 4px #e98339);animation:attack-flow .5s linear infinite}.is-card-dragging{cursor:grabbing}#practiceBoard .duel-face{transition:transform .24s,box-shadow .2s}#practiceBoard .duel-card-row article{animation:card-arrive .22s ease-out}.track-picker{display:grid;gap:8px;font:12px var(--sans);margin:12px 0}.track-picker select{width:100%;max-width:100%;background:#243f49!important;color:#fff0ca!important;min-height:44px}.track-picker option{background:#192d3c;color:#fff0ca}
@keyframes attack-flow{to{stroke-dashoffset:-15}}@keyframes target-glow{50%{box-shadow:inset 0 0 12px #f1c66e66}}@keyframes card-arrive{from{opacity:.45;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes duel-notice{from{opacity:.3;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:1100px){#practiceBoard{padding:6px 8px}#practiceBoard>.practice-warning{font-size:9px!important}#practiceBoard .duel-event{font-size:10px}#practiceBoard .duel-tools{margin:2px 0}.duel-table{width:100%;max-width:none}#practiceBoard .duel-status{margin:3px 0;padding:5px 8px}#practiceBoard .duel-actions{margin:2px 0}.duel-inspector{width:calc(100vw - 12px);max-height:98dvh;padding:16px}.duel-inspector .inspection-cards{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}.duel-inspector .inspection-cards img{max-height:64dvh}}
@media(max-width:1100px) and (orientation:landscape){#practiceBoard{display:none;--card-h:clamp(28px,8vh,45px)}#practiceBoard[open]{display:grid;grid-template-columns:minmax(0,1fr) 145px;grid-template-rows:auto auto auto auto auto minmax(0,1fr) auto;gap:2px 8px;align-content:start}#practiceBoard>h2,#practiceBoard>.practice-warning,#practiceBoard>.duel-status,#practiceBoard>.duel-actions,#practiceBoard>.duel-tools,#practiceBoard>.duel-event{grid-column:1}#practiceBoard>.practice-warning{display:none}#practiceBoard>.duel-viewport{grid-column:1;grid-row:7;max-height:none}#practiceBoard>.duel-hand-title{grid-column:2;grid-row:2;margin:0}#practiceBoard>.practice-hand{grid-column:2;grid-row:3 / 8;flex-wrap:wrap;align-content:start;overflow-y:auto;margin:0;max-height:calc(100dvh - 60px);padding:0;gap:4px}#practiceBoard .practice-hand article{flex:0 0 calc(50% - 2px);padding:3px;min-width:0}#practiceBoard .practice-hand .duel-face{--card-h:66px;--card-w:47px}#practiceBoard .practice-hand strong{font-size:8px;max-height:18px}#practiceBoard .practice-hand small{font-size:8px}#practiceBoard .duel-player{min-height:18px;padding:1px 5px;font-size:9px}#practiceBoard .duel-mat{padding:4px;gap:3px;grid-template-rows:calc(var(--card-h) + 18px) 25px 28px}#practiceBoard .enemy-side .duel-mat{grid-template-rows:28px 25px calc(var(--card-h) + 18px)}#practiceBoard .duel-outside button{font-size:8px;min-height:15px}#practiceBoard>.duel-tools button{min-height:25px;padding:3px 6px}#practiceBoard>.duel-tools label{font-size:9px}#practiceBoard>.duel-event{font-size:9px;padding:4px 6px}#practiceBoard>details{grid-column:1 / 3}#practiceBoard .duel-divider{font-size:7px;margin:0}#practiceBoard>.close{top:4px;right:5px}#practiceBoard>.dialog-settings{top:4px;right:49px}}
@media(max-width:650px) and (orientation:portrait){#practiceBoard{padding:6px 4px;--card-h:40px}#practiceBoard .duel-event{font-size:9px;padding:4px 7px}#practiceBoard .duel-player{font-size:8px;min-height:18px;padding:2px 4px}#practiceBoard .practice-hand .duel-face{--card-h:76px;--card-w:54px}#practiceBoard .practice-hand article{flex-basis:68px}#practiceBoard .duel-mat{gap:2px;padding:3px}#practiceBoard .duel-outside{padding:1px}#practiceBoard .duel-tools{gap:4px}#practiceBoard .duel-tools button{font-size:9px;min-height:28px;padding:4px 6px}#practiceBoard .duel-tools label{font-size:9px}#practiceBoard .duel-event:empty{display:none}}
@media(prefers-reduced-motion:reduce){.attack-arrow>path,.attack-target,#practiceBoard .duel-card-row article,.duel-event{animation:none!important}#practiceBoard .duel-face{transition:none}}
@media(max-width:1100px) and (orientation:landscape){#practiceBoard[open]{grid-template-rows:28px 26px 30px 20px minmax(0,1fr);gap:1px 8px;align-content:stretch;--card-h:clamp(28px,6vh,46px);--card-w:calc(var(--card-h)*.714)}#practiceBoard>h2{grid-row:1;margin:0;font-size:12px}#practiceBoard>.duel-tools{grid-row:1;align-self:center;margin:0 0 0 140px}#practiceBoard>.duel-status{grid-row:2;margin:0;font-size:10px;align-self:center}#practiceBoard>.duel-actions{grid-row:3;margin:0;padding:0;min-height:0}#practiceBoard>.duel-actions button{font-size:9px;min-height:25px;padding:3px 6px}#practiceBoard>.duel-event{grid-row:4;margin:0;font-size:8px;padding:3px;overflow:auto}#practiceBoard>.duel-viewport{grid-row:5;min-height:0}#practiceBoard>.practice-hand{grid-row:2 / 6}#practiceBoard>.duel-hand-title{grid-row:1}#practiceBoard .duel-mat{grid-template-rows:calc(var(--card-h) + 16px) calc(var(--card-h)*.4 + 7px) calc(var(--card-h)*.5 + 6px);gap:2px;padding:3px}#practiceBoard .enemy-side .duel-mat{grid-template-rows:calc(var(--card-h)*.5 + 6px) calc(var(--card-h)*.4 + 7px) calc(var(--card-h) + 16px)}#practiceBoard .duel-zone{padding:10px 3px 1px}#practiceBoard .duel-zone h4{font-size:6px;top:1px}#practiceBoard .duel-player{min-height:14px;font-size:8px}#practiceBoard .duel-outside{padding:0;height:14px}#practiceBoard .duel-outside button{min-height:13px;font-size:7px}#practiceBoard>details{grid-column:1 / 3;grid-row:6}#practiceBoard .duel-lives{gap:1px}#practiceBoard .duel-count{font-size:9px;padding:0 3px;min-width:16px}#practiceBoard .dz-energy>small{font-size:6px}#practiceBoard .duel-zone .duel-card-row:empty::after{font-size:10px}}
/* Manual tabletop: large inspection controls and horizontal playmat on phones. */
#practiceBoard.manual-board .duel-tools{flex-wrap:wrap}
#practiceBoard.manual-board .duel-zone>button{font-size:10px;padding:4px;min-height:30px;max-width:100%;color:#ffe9b2;background:#25233e;border:1px solid #8c734b}
#practiceBoard.manual-board .duel-card-row{min-height:20px}
#practiceBoard.manual-board .duel-outside{display:flex;gap:6px}
#practiceBoard.manual-board .duel-outside button{font-size:10px;padding:2px 6px}
.manual-inspector>img{display:block;max-width:min(75vw,330px);max-height:52dvh;object-fit:contain;margin:12px auto}
.manual-inspector .card-inspect-actions{display:flex;flex-wrap:wrap;gap:8px}
.manual-inspector button,.manual-inspector select{min-height:44px;color:#fff0c9;background:#29243e;border:1px solid #998053}
.manual-inspector .inspection-cards img{width:100%;max-height:260px;object-fit:contain}
@media(max-width:650px) and (orientation:portrait){
 #practiceBoard.manual-board .duel-table{min-width:0;width:100%}
 #practiceBoard.manual-board .duel-viewport{overflow:auto;max-width:100%;min-height:340px}
 #practiceBoard.manual-board .practice-hand{min-height:75px}
 #practiceBoard.manual-board .duel-tools button,#practiceBoard.manual-board .practice-actions button{min-height:38px}
 #practiceBoard.manual-board .duel-event{white-space:normal;min-height:30px}
}

#practiceBoard.manual-board .duel-zone>.duel-back{height:22px;width:17px;font-size:4px;display:inline-flex;vertical-align:middle;margin-right:2px}
/* Size the manual table from the actual viewport, including browser chrome. */
#practiceBoard.manual-board[open]{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:24px auto 24px auto auto minmax(240px,1fr) 20px 104px;grid-template-areas:'title' 'tools' 'status' 'actions' 'event' 'table' 'handtitle' 'hand';gap:4px;align-content:stretch;overflow:hidden;padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));width:100%;height:100dvh;max-height:100dvh;--card-h:clamp(34px,7dvh,90px);--card-w:calc(var(--card-h)*.714)}
#practiceBoard.manual-board>h2{grid-area:title;margin:0;font-size:16px}
#practiceBoard.manual-board>.duel-tools{grid-area:tools;margin:0;padding-right:100px;gap:6px}
#practiceBoard.manual-board>[role=status]{grid-area:status;margin:0;font:12px system-ui;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;align-self:center}
#practiceBoard.manual-board>.practice-actions{grid-area:actions;display:flex;flex-wrap:wrap;gap:4px}
#practiceBoard.manual-board>.practice-actions button{font:12px system-ui;padding:5px 10px;min-height:32px}
#practiceBoard.manual-board>.duel-event{grid-area:event;margin:0;min-height:0;max-height:36px;overflow:auto}
#practiceBoard.manual-board>.duel-viewport{grid-area:table;min-height:0;max-height:none;overflow:auto;container-type:size}
#practiceBoard.manual-board .duel-table{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:6px;width:100%;max-width:none;height:100%;margin:0}
#practiceBoard.manual-board .duel-side{display:grid;grid-template-rows:18px minmax(0,1fr) 22px;min-height:0;margin:0}
#practiceBoard.manual-board .duel-player{min-height:0;font-size:10px;height:18px;padding:0 4px;overflow:hidden}
#practiceBoard.manual-board .duel-mat{min-height:0;grid-template-rows:1.3fr .8fr 1fr;padding:4px;gap:3px}
#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-rows:1fr .8fr 1.3fr}
#practiceBoard.manual-board .duel-zone{padding:14px 3px 2px;min-width:0;min-height:0}
#practiceBoard.manual-board .duel-zone h4{font:9px system-ui;top:2px;letter-spacing:0}
#practiceBoard.manual-board .duel-face{height:min(var(--card-h),100%);max-height:100%;width:auto;aspect-ratio:5/7}
#practiceBoard.manual-board .duel-card-row{min-height:0;height:100%;gap:5px}
#practiceBoard.manual-board .dz-energy .duel-face,#practiceBoard.manual-board .dz-combo .duel-face{max-height:100%;height:100%;width:auto}
#practiceBoard.manual-board .duel-zone>button:not(.duel-face){min-height:20px;font:10px system-ui;padding:2px;max-width:100%}
#practiceBoard.manual-board .duel-outside{height:22px;padding:1px;overflow:hidden}
#practiceBoard.manual-board .duel-outside button{min-height:20px;font:9px system-ui}
#practiceBoard.manual-board>.practice-hand-title{grid-area:handtitle;font:12px system-ui;margin:0}
#practiceBoard.manual-board>.practice-hand{grid-area:hand;display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:8px;width:100%;max-width:none;min-height:0;height:100%;margin:0;padding:2px;box-sizing:border-box;overflow:auto}
#practiceBoard.manual-board .practice-hand .duel-face{flex:0 0 auto;height:94px;width:67px;margin:0}
@media(min-width:1101px){
 #practiceBoard.manual-board[open]{grid-template-columns:200px minmax(0,1fr);grid-template-rows:34px 24px 34px 26px minmax(240px,1fr) 20px clamp(104px,14dvh,155px);grid-template-areas:'title tools' 'status status' 'actions actions' 'event event' 'table table' 'handtitle handtitle' 'hand hand';padding:10px 16px;--card-h:clamp(48px,9dvh,120px)}
 #practiceBoard.manual-board .practice-hand .duel-face{height:clamp(94px,13dvh,145px);width:auto}
 #practiceBoard.manual-board .duel-tools{align-items:start}
}
@media(max-width:650px) and (orientation:portrait){
 #practiceBoard.manual-board[open]{grid-template-rows:22px 34px 20px 34px 28px minmax(220px,1fr) 18px 82px;gap:3px;--card-h:54px}
 #practiceBoard.manual-board .duel-tools{padding-right:0}
 #practiceBoard.manual-board .duel-tools button{min-height:32px}
 #practiceBoard.manual-board .practice-actions{flex-wrap:nowrap}
 #practiceBoard.manual-board .practice-actions button{font-size:10px;padding:3px 5px;min-height:32px}
 #practiceBoard.manual-board .duel-zone h4{font-size:7px}
 #practiceBoard.manual-board .duel-zone{padding-top:11px}
 #practiceBoard.manual-board .duel-zone>button:not(.duel-face){font-size:8px;min-height:20px}
 #practiceBoard.manual-board .practice-hand .duel-face{height:76px;width:54px}
 #practiceBoard.manual-board>[role=status]{font-size:10px}
}
@media(max-width:1100px) and (orientation:landscape){
 #practiceBoard.manual-board[open]{grid-template-columns:minmax(0,1fr) 126px;grid-template-rows:28px 20px 30px 22px minmax(180px,1fr);grid-template-areas:'tools handtitle' 'status hand' 'actions hand' 'event hand' 'table hand';gap:2px 6px;padding:4px;overflow:auto;--card-h:42px}
 #practiceBoard.manual-board>h2{display:none}
 #practiceBoard.manual-board>.duel-tools{padding-right:0}
 #practiceBoard.manual-board>.practice-hand-title{font-size:9px;padding-right:65px;overflow:hidden}
 #practiceBoard.manual-board>.practice-hand{flex-wrap:wrap;align-content:start;gap:4px}
 #practiceBoard.manual-board .practice-hand .duel-face{height:76px;width:54px}
 #practiceBoard.manual-board>.dialog-settings,#practiceBoard.manual-board>.close{width:28px;height:28px;min-height:28px;top:2px}
 #practiceBoard.manual-board>.dialog-settings{right:34px}
 #practiceBoard.manual-board .duel-side{grid-template-rows:12px minmax(0,1fr) 17px}
 #practiceBoard.manual-board .duel-player{height:12px;font-size:8px}
 #practiceBoard.manual-board .duel-outside{height:17px}
 #practiceBoard.manual-board .duel-outside button{min-height:15px;font-size:8px}
 #practiceBoard.manual-board .duel-zone{padding:9px 2px 1px}
 #practiceBoard.manual-board .duel-zone h4{font-size:6px;top:0}
 #practiceBoard.manual-board .duel-zone>button:not(.duel-face){min-height:14px;font-size:8px;padding:0}
 #practiceBoard.manual-board .duel-zone>.duel-back{display:none}
}
@media(min-width:1101px){#practiceBoard.manual-board>h2{padding-right:0;white-space:nowrap}}
/* Manual cards advertise dragging rather than magnification. */
#practiceBoard.manual-board .duel-face{cursor:grab}
#practiceBoard.manual-board .duel-face:active,
#practiceBoard.manual-board.is-card-dragging,
#practiceBoard.manual-board.is-card-dragging *{cursor:grabbing!important}
#practiceBoard.manual-board>.practice-hand-title{display:flex;align-items:center;gap:10px;min-width:0}
#practiceBoard.manual-board>.practice-hand-title button{font:10px system-ui;min-height:20px;padding:1px 6px;background:#254753;color:#ffe3a4;border:1px solid #7d9e94}
.manual-drag-hint{font-size:10px;color:#a8c5cc}
@media(max-width:650px){.manual-drag-hint{display:none}#practiceBoard.manual-board>.practice-hand-title{font-size:10px;gap:4px}}
@media(max-width:1100px) and (orientation:landscape){#practiceBoard.manual-board>.practice-hand-title{padding-right:0;flex-wrap:wrap;height:auto;overflow:visible;align-self:start;z-index:2;background:#101d2c}#practiceBoard.manual-board>.practice-hand-title>span{max-width:55px;font-size:8px}.manual-drag-hint{display:none}#practiceBoard.manual-board>.practice-hand-title button{font-size:8px;max-width:120px}#practiceBoard.manual-board>.practice-hand{padding-top:20px}}
.settings-category{border:1px solid #5e7981;background:#172d3c;margin:12px 0;padding:12px;touch-action:pan-y}.settings-category summary{cursor:pointer;color:#f3d291;font-weight:700;padding:6px}.settings-category p{font-size:13px;line-height:1.6}.settings-category button{background:#355955;color:#ffedc1;padding:10px;border:1px solid #8caaa0}.settings-category input[type=checkbox]{accent-color:#cbb370}
.hide-joystick #joystick{display:none!important}#joystick{opacity:.55;position:fixed;touch-action:none}#joystick:active{opacity:.85}
#rotateNotice{position:fixed;top:80px;left:12px;right:12px;z-index:9;background:#152d3ff2;border:1px solid #e1c489;color:#ffedbe;display:flex;gap:15px;align-items:center;padding:14px;box-shadow:4px 4px #07121c;font:12px system-ui;pointer-events:auto}#rotateNotice button{background:none;color:inherit;border:0;font-size:24px;padding:6px}.rotate-phone{flex-shrink:0;width:25px;height:42px;border:3px solid #e5c88b;border-radius:5px;display:grid;place-items:center;animation:rotate-device 2.6s ease-in-out infinite}@keyframes rotate-device{0%,20%{transform:rotate(0)}60%,90%{transform:rotate(90deg)}100%{transform:rotate(0)}}@media(prefers-reduced-motion:reduce){.rotate-phone{animation:none;transform:rotate(90deg)}}
#hud #save,#hud #account{display:none!important}
#joystick #stick{width:40%;height:40%;left:30%;top:30%}
#interact{position:fixed;justify-content:center;min-width:0;max-width:none;min-height:0;padding:8px;gap:6px}
#settingsDialog{font-size:16px;line-height:1.6}
#settingsDialog h2{font-size:26px}
#settingsDialog .settings-category summary{font-size:20px;min-height:44px}
#settingsDialog .settings-category p,#settingsDialog .setting-row,#settingsDialog button,#settingsDialog select{font-size:16px}
#settingsDialog .control-slider{display:grid;grid-template-columns:1fr auto;gap:8px;margin:18px 0}
#settingsDialog .control-slider input{grid-column:1;min-width:0;width:100%;min-height:32px}
#settingsDialog .control-slider output{grid-column:2;min-width:55px}
#settingsDialog .settings-save-exit,#settingsDialog #fullscreen{min-height:48px;padding:10px 16px;background:#355955;border:1px solid #c8af78;color:#fff1c9;margin:12px 0}
/* Table clarity, safe areas, turn emphasis and visible piles. */
#practiceBoard.manual-board[open]{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));--card-h:clamp(58px,10dvh,130px)}
#practiceBoard.manual-board>.close{right:max(14px,env(safe-area-inset-right))}
#practiceBoard.manual-board>.dialog-settings{right:calc(max(14px,env(safe-area-inset-right)) + 48px)}
#practiceBoard.manual-board .duel-mat{grid-template-columns:.55fr .85fr .65fr .65fr 2.8fr 1.25fr;grid-template-areas:'zenergy zdeck leader unison battle deck' 'zenergy life combo combo combo deck' 'zenergy life energy energy energy drop';grid-template-rows:1.3fr 1fr 1fr}
#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-columns:1.25fr 2.8fr .65fr .65fr .85fr .55fr;grid-template-areas:'drop energy energy energy life zenergy' 'deck combo combo combo life zenergy' 'deck battle unison leader zdeck zenergy';grid-template-rows:1fr 1fr 1.3fr}
#practiceBoard.manual-board .turn-active .duel-mat{border:2px solid #f8d37a;background-color:#416b69;box-shadow:inset 0 0 32px #f8d37a22,0 0 9px #f8d37a77}
#practiceBoard.manual-board .turn-active .duel-player{color:#ffe18a;font-weight:800}
#practiceBoard.manual-board .duel-card-row{flex-wrap:wrap;align-content:start;overflow:auto;touch-action:pan-y;gap:5px}
#practiceBoard.manual-board .duel-card-row .duel-face{height:var(--card-h);max-height:none;width:calc(var(--card-h)*.714);flex-shrink:0}
#practiceBoard.manual-board>.practice-hand{display:grid;grid-template-columns:repeat(auto-fill,minmax(65px,1fr));grid-auto-rows:100px;align-content:start;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;scrollbar-width:auto;gap:5px;padding-right:10px}
#practiceBoard.manual-board .practice-hand .duel-face{height:96px;width:68px;max-height:none;margin:auto}
#practiceBoard.manual-board .manual-pile{position:relative!important;width:100%;height:100%;max-width:none!important;min-height:0!important;border:0;background:none;padding:0!important;cursor:pointer}
.pile-card{position:absolute;top:calc(var(--i)*3px);left:calc(50% - 22px + var(--i)*2px);width:40px;height:56px;border:1px solid #e3c57e;border-radius:3px;background:radial-gradient(circle,#e9ad32 8%,#193447 13%,#172334 60%);display:grid;place-items:center;font:5px system-ui;color:#f6d59b;overflow:hidden;box-shadow:1px 1px 2px #0009}.pile-card img{width:100%;height:100%;object-fit:contain}
#practiceBoard.manual-board .duel-event{font-size:10px;max-height:24px;padding:2px 6px}
#practiceBoard.manual-board .practice-hand-title{padding-left:6px}
.card-zoom{overflow:auto;max-height:65dvh;width:min(80vw,480px);margin:12px auto;touch-action:pan-x pan-y;overscroll-behavior:contain}.card-zoom img{display:block;width:100%;height:auto;touch-action:none}
.dice-result{font-size:22px!important;color:#ffe09a;text-align:center;animation:dice-roll .7s ease-out}@keyframes dice-roll{0%{transform:rotate(-8deg) scale(.7);opacity:.3}50%{transform:rotate(6deg) scale(1.05)}100%{transform:none;opacity:1}}
.view-consent,.quick-chat-message{position:absolute;z-index:20;left:15%;right:15%;top:35%;padding:15px;background:#173748f5;border:2px solid #f0cb7b;box-shadow:0 8px 24px #0008;color:#fff0c3}.view-consent button,.quick-chat-message button{padding:8px;background:#355653;color:#fff0c3;border:1px solid #c4b37f}.table-chat textarea{display:block;width:100%;height:100px;background:#132538;color:#fff0ce;margin:12px 0;padding:12px}.table-chat details{max-height:40dvh;overflow:auto}.table-chat button{min-height:44px;margin:4px;padding:8px;background:#294e57;color:#fff0ce}
@media(max-width:1100px) and (orientation:landscape){
 #practiceBoard.manual-board[open]{padding-left:max(40px,env(safe-area-inset-left));padding-right:max(40px,env(safe-area-inset-right));grid-template-columns:minmax(0,1fr) 136px;--card-h:56px}
 #practiceBoard.manual-board>.close{right:max(42px,env(safe-area-inset-right))}
 #practiceBoard.manual-board>.dialog-settings{right:calc(max(42px,env(safe-area-inset-right)) + 32px)}
 #practiceBoard.manual-board>.practice-hand-title{padding-top:30px;background:none}
 #practiceBoard.manual-board>.practice-hand{padding-top:46px;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:82px;gap:4px}
 #practiceBoard.manual-board .practice-hand .duel-face{height:78px;width:55px}
 #practiceBoard.manual-board .practice-actions button{font-size:9px;min-height:26px;padding:3px 5px}
 .pile-card{width:25px;height:35px;left:calc(50% - 15px + var(--i)*1px);top:calc(var(--i)*2px);font-size:4px}
 #practiceBoard.manual-board .duel-zone{overflow:auto;scrollbar-width:thin}
}
@media(prefers-reduced-motion:reduce){.dice-result{animation:none}}
#practiceBoard.manual-board .duel-zone>button.manual-pile{background:none!important;border:0!important;box-shadow:none;display:block}
#practiceBoard.manual-board .manual-pile .pile-card{height:calc(100% - 22px);max-height:70px;width:auto;aspect-ratio:5/7;left:calc(40% + var(--i)*2px)}
#practiceBoard.manual-board .dz-zdeck .manual-pile .pile-card{height:calc(100% - 9px)}
#practiceBoard.manual-board .dz-leader>.duel-face{height:100%;max-height:none;width:auto;margin:auto}
#practiceBoard.manual-board .duel-zone:has(>.duel-card-row){overflow:auto}
#practiceBoard.manual-board .dz-energy:has(>button){position:relative}
#practiceBoard.manual-board .dz-energy>button{position:absolute;right:3px;bottom:2px;z-index:2}
.dice-faces{font-size:48px;letter-spacing:8px;text-align:center;color:#ffdc83;animation:dice-roll .8s ease-out}
@media(max-width:1100px) and (orientation:landscape){#practiceBoard.manual-board .manual-pile .pile-card{height:calc(100% - 15px)}#practiceBoard.manual-board .dz-zdeck .manual-pile .pile-card{height:calc(100% - 7px)}}
body:not(.in-game) #friendsButton{display:none!important}
#hud #save{display:none!important}
.privacy-link{display:block;margin:18px auto 0;background:none;border:0;border-bottom:1px solid #cbb57e;color:#eedba4;padding:6px;font-size:14px}
#privacyDialog{width:min(680px,calc(100vw - 24px));max-height:88dvh;overflow:auto;padding:28px;touch-action:pan-y}
#privacyDialog h2{padding-right:70px;font-size:24px}
#privacyDialog p,#privacyDialog li{font:15px/1.7 var(--sans)}
#privacyDialog h3{font-size:18px;color:#f1d198;margin-top:24px}
#settingsDialog .settings-category li{font-size:15px;line-height:1.7;margin:7px 0}
@media(max-width:700px) and (orientation:portrait){#startScreen{padding-bottom:max(23dvh,env(safe-area-inset-bottom))}.start-actions{padding:14px 18px}}
@media(max-width:1100px) and (orientation:landscape){#startScreen{padding-bottom:max(13dvh,env(safe-area-inset-bottom))}}
.dice-tray{display:flex;justify-content:center;gap:32px;flex-wrap:wrap;padding:16px}.dice-group{display:flex;align-items:center;gap:20px}.die-stage{width:44px;height:44px;perspective:400px;margin:10px}.die-cube{width:44px;height:44px;position:relative;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry))}.die-face{position:absolute;inset:0;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:4px;padding:7px;border:1px solid #b49150;border-radius:7px;background:linear-gradient(135deg,#fff7dc,#d8b878);box-shadow:inset 0 0 7px #fff8;backface-visibility:hidden}.die-face .pip{border-radius:50%;background:#202937;box-shadow:inset 1px 1px 2px #000}.die-1{transform:translateZ(22px)}.die-2{transform:rotateY(90deg) translateZ(22px)}.die-3{transform:rotateX(90deg) translateZ(22px)}.die-4{transform:rotateX(-90deg) translateZ(22px)}.die-5{transform:rotateY(-90deg) translateZ(22px)}.die-6{transform:rotateY(180deg) translateZ(22px)}.die-cube.rolling{animation:tumble-dice 1s cubic-bezier(.16,.8,.3,1)}@keyframes tumble-dice{0%{transform:translateY(-40px) rotateX(calc(var(--rx) + 720deg)) rotateY(calc(var(--ry) + 540deg))}55%{transform:translateY(8px) rotateX(calc(var(--rx) + 180deg)) rotateY(calc(var(--ry) + 90deg))}80%{transform:translateY(-6px) rotateX(var(--rx)) rotateY(var(--ry))}100%{transform:rotateX(var(--rx)) rotateY(var(--ry))}}.energy-choices{display:flex;gap:12px;flex-wrap:wrap}.energy-choices label{display:flex;flex-direction:column;width:100px;font-size:11px}.energy-choices img{width:80px;height:112px;object-fit:contain}.top-deck-picker .inspection-cards article{width:130px}.top-deck-picker img{width:100%;height:170px;object-fit:contain}@media(prefers-reduced-motion:reduce){.die-cube.rolling{animation:none}}
.waiting-room{margin-top:20px;border-top:1px solid #426778;padding-top:8px}.waiting-player{display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid #426778}.waiting-player>span{grid-column:2;font:12px system-ui;color:#bcd4da}.waiting-player>button{grid-column:3;grid-row:1/3}.pixel-flag{width:27px;height:18px;image-rendering:pixelated}.waiting-room>small{display:block;margin:10px 0;color:#a7bfca;font-size:11px}
#joystick,#stick{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#stick{pointer-events:none}
#settingsDialog .settings-save-exit{display:block;width:100%;margin:6px 0 14px}#controlEditor{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;border:0;padding:0;box-sizing:border-box;background:#091827d9;color:#f5e5bc;overflow:hidden}#controlEditor header{position:absolute;top:0;left:0;right:0;padding:12px 18px;background:#172e40e8;z-index:2}#controlEditor h2{font-size:18px;margin:0}#controlEditor p{font-size:12px;margin:4px 0}#controlEditor button{touch-action:none}#controlEditor header button{font-size:12px;padding:8px;margin-right:8px}.control-editor-stage{position:absolute;inset:0;background-image:linear-gradient(#8ab6c514 1px,transparent 1px),linear-gradient(90deg,#8ab6c514 1px,transparent 1px);background-size:24px 24px}.control-editor-stage button{position:absolute;display:grid;place-items:center;padding:0;box-sizing:border-box;user-select:none}.preview-joystick{border-radius:50%;border:2px solid #b6d7dbaa;background:#a6d2dd33}.preview-joystick span{width:40%;height:40%;border-radius:50%;background:#dbeddfaa}.preview-action{border:2px solid #cfbf89;background:#305b60;color:#fff1b9}.control-editor-stage .selected{outline:3px dashed #ffd270;outline-offset:5px}#controlEditor aside{position:absolute;top:130px;left:50%;transform:translateX(-50%);z-index:3;background:#132c42;padding:12px;border:1px solid #d5bd7e;max-width:80vw;width:260px;font:13px system-ui}#controlEditor aside input{display:block;width:100%;touch-action:pan-x}
@media(max-width:700px),(max-height:500px){#settingsDialog{font-size:13px;line-height:1.4;padding:16px;max-height:96dvh}#settingsDialog h2{font-size:19px;margin:2px 0 8px}#settingsDialog h3{font-size:15px}#settingsDialog .settings-category summary{font-size:15px;min-height:40px}#settingsDialog .settings-category p,#settingsDialog .setting-row,#settingsDialog button,#settingsDialog select{font-size:13px}#settingsDialog .settings-category li{font-size:12px}#settingsDialog .settings-save-exit{min-height:42px}#controlEditor header{padding:8px 12px}#controlEditor h2{font-size:16px}#controlEditor aside{top:110px}}
#friendsButton .friend-badge:not([hidden]){position:absolute;right:-7px;top:-9px;min-width:20px;height:22px;padding:0 5px;box-sizing:border-box;display:grid;place-items:center;background:#e54248;color:#fff;font:bold 12px monospace;clip-path:polygon(4px 0,calc(100% - 4px) 0,calc(100% - 4px) 3px,100% 3px,100% calc(100% - 6px),calc(100% - 4px) calc(100% - 6px),calc(100% - 4px) calc(100% - 3px),9px calc(100% - 3px),5px 100%,5px calc(100% - 3px),0 calc(100% - 3px),0 3px,4px 3px)}[data-presence=active]{color:#6aeb91!important;font-weight:700}[data-presence=away]{color:#f4ce63!important;font-weight:700}[data-presence=offline]{color:#93a3b4}.friend-row{border-left:3px solid #3a6875;padding:10px}.friend-row:has([data-presence=active]){border-left-color:#55d785}.friend-row:has([data-presence=away]){border-left-color:#e4be55}
#controlEditor header{display:block;height:auto;max-width:none;margin:0;box-sizing:border-box}#controlEditor header button{background:#31595f;color:#fff1c9;border:1px solid #b9aa77;min-height:36px}#controlEditor header [data-save]{background:#e8c779;color:#172c3a;font-weight:700}@media(max-width:700px){dialog h2,.masters-dialog h2{font-size:20px;line-height:1.2}dialog h3,.masters-dialog h3{font-size:16px}}
.challenge-dialog{width:min(880px,96vw);max-height:94dvh}.challenge-dialog h2{font-size:24px}.challenge-vs{font:bold 64px monospace;color:#f2cc7a;text-align:center;margin:18px;animation:challenge-intro .5s ease-out;text-shadow:4px 4px #8a3445}.challenge-decks{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:16px 0}.challenge-deck{display:flex;flex-direction:column;gap:8px;padding:12px!important;background:#173448!important;border:2px solid #52788a!important;text-align:center}.challenge-deck[aria-pressed=true]{border-color:#f2cc7a!important;background:#295364!important}.challenge-leaders{display:flex;gap:8px;width:100%}.challenge-leaders figure{margin:0;flex:1;min-width:0}.challenge-leaders img{display:block;width:100%;aspect-ratio:5/7;object-fit:contain;border-radius:5px;image-rendering:auto}.challenge-leaders figcaption{font:10px system-ui;color:#bcd4dd;margin-top:5px}.challenge-dialog>button{margin:6px;padding:12px}.lobby-registration{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}@keyframes challenge-intro{from{opacity:0;transform:scale(1.5) rotate(-6deg)}to{opacity:1;transform:none}}@media(max-width:600px){.challenge-dialog h2{font-size:19px}.challenge-decks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.challenge-deck{padding:6px!important}.challenge-deck strong{font-size:12px}}@media(prefers-reduced-motion:reduce){.challenge-vs{animation:none}}
#practiceBoard.dice-setup{width:min(820px,96vw)!important;height:auto;max-height:94dvh;margin:auto;border:1px solid #a58b59;border-radius:10px;padding:28px}#practiceBoard.dice-setup h2{font-size:26px;text-align:center;margin:15px 0}#practiceBoard.dice-setup .dice-tray{min-height:150px;align-items:center}#practiceBoard.dice-setup .duel-actions{position:static;justify-content:center}#practiceBoard.dice-setup .duel-tools,#practiceBoard.dice-setup .practice-warning{display:none}

.lobby-registration{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.lobby-registration>button{min-width:150px;padding:20px;font-size:17px}.lobby-registration .resume-match{flex-basis:100%}.challenge-leaders figure{max-width:190px;margin:10px auto}.challenge-leaders figure img{width:100%;max-height:260px;object-fit:contain}.challenge-deck>strong{display:block;font-size:16px;margin:8px}.dice-group{flex-wrap:wrap;justify-content:center}.dice-group>small{flex-basis:100%;text-align:center}.die-stage{filter:drop-shadow(0 12px 7px #0006)}.dice-group:nth-child(2) .die-face{background:linear-gradient(135deg,#dcf8ff,#7caac5)}.dice-group .die-stage:nth-child(3) .rolling{animation-delay:80ms}.dice-setup:has(.rolling) .duel-actions{animation:reveal-dice-controls 1.15s step-end}.dice-setup:has(.rolling) .duel-event{animation:reveal-dice-controls 1.15s step-end}@keyframes reveal-dice-controls{from{visibility:hidden}to{visibility:visible}}@media(prefers-reduced-motion:reduce){.dice-setup:has(.rolling) .duel-actions,.dice-setup:has(.rolling) .duel-event{animation:none}}

.manual-inspector:has(.rolling)>p,.manual-inspector:has(.rolling)>button:not(:first-child){animation:reveal-dice-controls 1.15s step-end}@media(prefers-reduced-motion:reduce){.manual-inspector:has(.rolling)>p,.manual-inspector:has(.rolling)>button{animation:none}}

/* Explicit theme for lobby controls: no browser-default white buttons. */
#queueDialog .lobby-registration button,#queueDialog .waiting-player button,#queueDialog select,.challenge-dialog>button,.manual-inspector>button{background:#315e62;color:#fff2c7;border:1px solid #8ca989;box-shadow:2px 3px 0 #142e36;padding:12px 16px;min-height:44px;font:12px var(--mono);cursor:pointer}#queueDialog .lobby-registration button:hover,#queueDialog .waiting-player button:hover,.challenge-dialog>button:hover,.manual-inspector>button:hover{background:#4f7772}#queueDialog button:focus-visible,.challenge-dialog>button:focus-visible,.manual-inspector>button:focus-visible{outline:2px solid #f2cc7a;outline-offset:3px}#queueDialog button:disabled,.challenge-dialog>button:disabled,.manual-inspector>button:disabled{opacity:.55;cursor:wait}dialog.initial-dice>.dialog-settings{display:none!important}.initial-dice:has(.rolling)>button{animation:reveal-dice-controls 1.15s step-end}@media(prefers-reduced-motion:reduce){.initial-dice:has(.rolling)>button{animation:none}}
/* Card inspector: artwork left, controls right; one settings control on the board. */
.manual-inspector.card-detail-view{width:min(980px,97vw);max-height:96dvh;padding:24px}.manual-inspector .inspector-close{float:right;margin:0 0 10px 12px}.card-view-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(190px,1fr);gap:22px;clear:both;align-items:start}.card-view-layout>.card-inspect-actions{display:flex;flex-direction:column;max-height:75dvh;overflow:auto;margin:0;gap:10px}.card-view-layout .card-zoom{width:100%;max-height:70dvh;margin:0}.card-view-layout .card-zoom img{touch-action:pan-x pan-y}.card-view-layout .card-inspect-actions button,.card-view-layout select{width:100%;white-space:normal}.card-view-layout details{border:1px solid #667f87;padding:12px;background:#183844}.card-view-layout summary{cursor:pointer;color:#ffe1a1;font-weight:bold}.card-view-layout details button{margin-top:8px}dialog.card-detail-view>.dialog-settings{display:none!important}.battle-controls{border:1px solid #b19658;background:#132b39;padding:10px 14px;margin:8px 0;border-radius:7px}.battle-controls:empty{display:none}.battle-controls h3{margin:0 0 8px;color:#ffe1a1}.battle-controls p{font:13px/1.45 var(--sans)}.battle-controls button{background:#315e62;color:#fff2c7;border:1px solid #8ca989;margin:4px;padding:10px;min-height:42px}.consulting-notice{color:#ffd476}.turn-overlay{position:fixed;inset:35% 5% auto;z-index:30;padding:35px 20px;text-align:center;font:bold clamp(18px,4vw,34px) var(--sans);color:#fff0bb;background:#173d48f0;border:2px solid #dab867;box-shadow:0 10px 60px #0008;pointer-events:none;animation:turn-flash 2.6s both}.effect-notice{position:fixed;right:3%;top:7%;z-index:31;background:#142c3ff5;border:2px solid #d9b46c;padding:16px;max-width:min(360px,90vw);max-height:86dvh;overflow:auto;box-shadow:0 8px 35px #000b}.effect-notice img{display:block;width:100%;max-height:52dvh;object-fit:contain}.effect-notice p{font:15px var(--sans);color:#ffe3a8}.effect-notice button{float:right;background:#315e62;color:#fff0c7;padding:10px}.chat-history{max-height:40dvh;overflow:auto;background:#112d38;padding:12px;overflow-wrap:anywhere}.table-chat textarea{width:100%;min-height:90px}.unison-markers{position:absolute;right:2px;bottom:2px;min-width:24px;padding:3px 6px;border-radius:4px;background:#142334ee;color:#ffe38f!important;border:1px solid #ffdc7c;font:bold 18px var(--sans)!important;z-index:2}#practiceBoard .duel-face{position:relative}#practiceBoard .duel-face.recent-card{outline:3px solid #89ffe0;box-shadow:0 0 18px #76fce0;animation:recent-card 2s ease-out}.top-deck-picker select{background:#234552;color:#fff0be;border:1px solid #a08d61;max-width:100%;min-height:42px}.top-deck-picker button{background:#315e62;color:#fff2c7;border:1px solid #8ca989;padding:10px;margin:4px}.top-deck-picker img{object-fit:contain}@keyframes recent-card{from{filter:brightness(1.7)}to{filter:brightness(1)}}@keyframes turn-flash{0%{opacity:0;transform:scale(.95)}15%,75%{opacity:1;transform:none}100%{opacity:0}}@media(max-width:600px){.manual-inspector.card-detail-view{padding:12px}.card-view-layout{grid-template-columns:minmax(0,1.25fr) minmax(140px,1fr);gap:10px}.card-view-layout .card-inspect-actions button{font-size:11px;padding:9px}.card-view-layout .card-zoom{max-height:65dvh}.effect-notice{max-width:68vw}}@media(prefers-reduced-motion:reduce){.turn-overlay,.recent-card{animation:none}}

#practiceBoard .duel-face.rested .unison-markers{transform:rotate(-90deg)}

/* Curved attack trail; cleared by the authoritative battle resolution. */
.manual-attack-arrow>path{stroke-linecap:round;stroke-linejoin:round;fill:none}
.manual-attack-arrow>.attack-aura{stroke:#ff9845;stroke-width:12;opacity:.22;stroke-dasharray:none;animation:none;filter:blur(3px)}
.manual-attack-arrow>.attack-core{stroke:#ffe9a1;stroke-width:3;stroke-dasharray:none;animation:none;filter:drop-shadow(0 0 3px #ff9d40)}
.manual-attack-arrow>.attack-spark{stroke:#fff;stroke-width:2;stroke-dasharray:5 24;animation:attack-spark-flow .8s linear infinite;filter:none}
@keyframes attack-spark-flow{to{stroke-dashoffset:-58}}
.battle-end-overlay{position:fixed;left:50%;top:42%;transform:translate(-50%,-50%);z-index:20;pointer-events:none;padding:20px 28px;border:2px solid #e8cd88;background:linear-gradient(135deg,#172f42f5,#274d51f5);color:#fff1c6;box-shadow:0 0 35px #e8bd5840;font:700 clamp(16px,3vw,26px) var(--sans);text-align:center;animation:battle-end-in .3s ease-out}
@keyframes battle-end-in{from{opacity:0;transform:translate(-50%,-50%) scale(.88)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(prefers-reduced-motion:reduce){.manual-attack-arrow>path,.battle-end-overlay{animation:none!important}}
/* Compact manual table: controls stay with their zones; the hand has its own rail. */
#practiceBoard.manual-board[open]{display:grid;grid-template-columns:minmax(0,1fr) clamp(126px,15vw,210px);grid-template-rows:36px auto auto minmax(380px,1fr);grid-template-areas:'tools tools' 'status handtitle' 'event hand' 'table hand';gap:4px 10px;padding:8px max(8px,env(safe-area-inset-right)) 8px max(8px,env(safe-area-inset-left));overflow:auto;--card-h:100px}
#practiceBoard.manual-board>h2{display:none}
#practiceBoard.manual-board>.duel-tools{grid-area:tools;margin:0;padding:0 152px 0 0;align-items:center}
#practiceBoard.manual-board>.close{position:absolute;top:8px;right:10px;width:92px;height:32px;min-height:32px;padding:4px 8px;font:12px var(--sans);line-height:20px;display:flex;align-items:center;justify-content:center}
#practiceBoard.manual-board>.dialog-settings{top:8px;right:110px;width:32px;height:32px;min-height:32px}
#practiceBoard.manual-board>[role=status]{grid-area:status;margin:0;padding:2px 140px 2px 4px;font:11px var(--sans)}
#practiceBoard.manual-board>.practice-actions{position:absolute;top:47px;right:calc(clamp(126px,15vw,210px) + 20px);margin:0}
#practiceBoard.manual-board .practice-actions button{padding:3px 7px;min-height:24px;font:10px var(--sans)}
#practiceBoard.manual-board>.duel-event{grid-area:event;max-height:32px;overflow:auto;margin:0;font:10px var(--sans)}
#practiceBoard.manual-board>.duel-viewport{grid-area:table;min-height:0;height:100%;max-height:none}
#practiceBoard.manual-board>.battle-controls:not(:empty),#practiceBoard.manual-board>.view-consent{grid-column:1/-1;grid-row:auto;margin:3px 0}
#practiceBoard.manual-board:has(>.battle-controls:not(:empty)),#practiceBoard.manual-board:has(>.view-consent){grid-template-rows:36px auto auto minmax(380px,1fr) auto}
#practiceBoard.manual-board .duel-side{grid-template-rows:26px minmax(0,1fr) 21px}
#practiceBoard.manual-board .duel-player{height:26px;justify-content:space-between;font:11px var(--sans)}
#practiceBoard.manual-board .duel-player button{font:10px var(--sans);padding:2px 8px;min-height:23px;background:#244553;color:#ffe7af;border:1px solid #6d929a}
#practiceBoard.manual-board .duel-mat{grid-template-columns:56px 72px 78px 78px minmax(100px,1fr) 60px;grid-template-areas:'zenergy zdeck leader unison battle deck' 'zenergy life combo combo combo drop' 'zenergy life energy energy energy drop';grid-template-rows:1.2fr .8fr 1fr}
#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-columns:60px minmax(100px,1fr) 78px 78px 72px 56px;grid-template-areas:'drop energy energy energy life zenergy' 'drop combo combo combo life zenergy' 'deck battle unison leader zdeck zenergy';grid-template-rows:1fr .8fr 1.2fr}
#practiceBoard.manual-board .duel-zone{overflow:hidden!important;padding:19px 4px 4px}
#practiceBoard.manual-board .duel-zone h4{top:3px;left:4px;font:9px var(--sans)}
.zone-count{position:absolute;top:1px;right:3px;min-width:18px;text-align:center;border:1px solid #d3bb7c;border-radius:5px;background:#0b1b2eee;color:#ffe6a6;font:700 12px/16px var(--sans);z-index:3}
#practiceBoard.manual-board .dz-life h4{font-weight:700}
#practiceBoard.manual-board .dz-life .zone-count{font-size:15px;min-width:23px}
#practiceBoard.manual-board .manual-pile .pile-card{top:calc(50% + var(--i)*2px);left:calc(50% + var(--i)*2px);transform:translate(-50%,-50%);height:min(76px,90%);max-height:none;width:auto;max-width:90%;aspect-ratio:5/7}
#practiceBoard.manual-board .dz-zdeck .manual-pile .pile-card{height:min(76px,90%)}
#practiceBoard.manual-board .dz-drop .manual-pile .pile-card{height:min(90px,90%)}
#practiceBoard.manual-board .manual-pile.life-pairs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(15px,1fr);gap:3px;align-items:center;justify-items:center;overflow:auto}
#practiceBoard.manual-board .life-pairs .pile-card{position:static;transform:none;max-height:36px;height:100%;max-width:100%;width:auto;aspect-ratio:5/7;font-size:3px}
#practiceBoard.manual-board .duel-card-row{container-type:size;display:flex;flex-wrap:nowrap;align-items:center;align-content:center;gap:6px;overflow:auto;touch-action:pan-x;padding:0 4px}
#practiceBoard.manual-board .duel-card-row .duel-face{height:min(94cqh,clamp(46px,calc(135cqw / var(--count)),110px));width:auto;aspect-ratio:5/7;max-height:none;flex:0 0 auto;margin:0}
#practiceBoard.manual-board .duel-card-row .stacked-card{margin-left:-26px;align-self:center;box-shadow:-4px 0 9px #000b;transform:translateY(5px)}
#practiceBoard.manual-board .duel-card-row .stacked-card.rested{transform:translateY(5px) rotate(90deg)}
#practiceBoard.manual-board .duel-face[data-facing="180"]{transform:rotate(180deg)}
#practiceBoard.manual-board .duel-face.rested[data-facing="180"]{transform:rotate(270deg)}
#practiceBoard.manual-board .enemy-side .pile-card>img,#practiceBoard.manual-board .enemy-side .pile-card>span{transform:rotate(180deg)}
#practiceBoard.manual-board>.practice-hand-title{grid-area:handtitle;display:flex;flex-wrap:wrap;align-items:center;gap:3px;padding:0;margin:0;font:11px var(--sans);overflow:visible;min-height:28px}
#practiceBoard.manual-board>.practice-hand-title>span:first-child{width:100%;overflow-wrap:anywhere}
#practiceBoard.manual-board .practice-hand-title button{font:10px var(--sans);padding:2px 5px;min-height:24px}
#practiceBoard.manual-board .manual-drag-hint{display:none}
#practiceBoard.manual-board>.practice-hand{grid-area:hand;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:108px;gap:5px;padding:4px 2px;margin:0;align-content:start;max-height:none;overflow:auto}
#practiceBoard.manual-board .practice-hand .duel-face{height:104px;width:auto;max-width:100%;margin:auto;aspect-ratio:5/7}
@media(max-width:850px){#practiceBoard.manual-board .duel-mat{grid-template-columns:38px 52px 52px 52px minmax(80px,1fr) 44px}#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-columns:44px minmax(80px,1fr) 52px 52px 52px 38px}#practiceBoard.manual-board .duel-zone h4{font-size:7px}#practiceBoard.manual-board .zone-count{font-size:10px;min-width:14px}#practiceBoard.manual-board .duel-zone{padding:18px 2px 2px}}
@media(max-width:650px) and (orientation:portrait){#practiceBoard.manual-board[open]{grid-template-columns:minmax(0,1fr);grid-template-rows:36px auto auto minmax(460px,1fr) auto 112px;grid-template-areas:'tools' 'status' 'event' 'table' 'handtitle' 'hand'}#practiceBoard.manual-board>.practice-actions{right:12px}#practiceBoard.manual-board>.practice-hand{grid-template-columns:repeat(auto-fill,minmax(68px,1fr))}#practiceBoard.manual-board>.practice-hand-title>span:first-child{width:auto}#practiceBoard.manual-board .duel-mat{grid-template-columns:32px 44px 44px 44px minmax(60px,1fr) 38px}#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-columns:38px minmax(60px,1fr) 44px 44px 44px 32px}}
.manual-attack-arrow>.attack-aura{stroke:#ffb74d;stroke-width:9;opacity:.26}.manual-attack-arrow>.attack-core{stroke:#fff1b8;stroke-width:2.5}.manual-attack-arrow>.attack-spark{stroke-dasharray:2 30;stroke-width:3}
#practiceBoard.manual-board>.practice-hand-title>span:first-child{max-width:none;flex-basis:100%;font-size:11px}
#practiceBoard.manual-board .duel-zone h4{max-width:calc(100% - 25px);overflow:hidden;text-overflow:ellipsis}
#practiceBoard.manual-board .dz-leader h4{max-width:100%}
#practiceBoard.manual-board .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-rows:1.3fr .38fr 1.2fr}
#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-rows:1.2fr .38fr 1.3fr}
#practiceBoard.manual-board>.practice-actions{grid-area:auto}
/* One header line gives the playmats the space previously used by turn controls. */
#practiceBoard.manual-board[open],#practiceBoard.manual-board:has(>.battle-controls:not(:empty)),#practiceBoard.manual-board:has(>.view-consent){grid-template-rows:auto auto minmax(380px,1fr);grid-template-areas:'tools tools' 'event handtitle' 'table hand'}
#practiceBoard.manual-board>.duel-tools{min-height:34px;gap:6px;flex-wrap:wrap}
#practiceBoard.manual-board .table-turn-status{order:10;margin:0 0 0 auto;max-width:260px;overflow:hidden;text-overflow:ellipsis;font:600 11px/1.4 var(--sans);color:#ffe3a4}
#practiceBoard.manual-board .duel-tools>.practice-actions{order:11;position:static;display:flex;margin:0;gap:4px;flex-wrap:nowrap;grid-area:auto}
#practiceBoard.manual-board .duel-tools>.practice-actions button{min-height:28px;padding:4px 8px}
#practiceBoard.manual-board>.duel-event:empty{display:none}
#practiceBoard.manual-board:has(>.duel-event:empty)>.duel-viewport{grid-row:2/4}
@media(max-width:650px) and (orientation:portrait){#practiceBoard.manual-board[open],#practiceBoard.manual-board:has(>.battle-controls:not(:empty)),#practiceBoard.manual-board:has(>.view-consent){grid-template-rows:auto auto minmax(460px,1fr) auto 112px;grid-template-areas:'tools' 'event' 'table' 'handtitle' 'hand'}#practiceBoard.manual-board:has(>.duel-event:empty)>.duel-viewport{grid-row:3}#practiceBoard.manual-board .table-turn-status{margin-left:0}#practiceBoard.manual-board>.duel-tools{padding-right:146px}}
#practiceBoard.manual-board[data-active-session="true"]>.dialog-settings{right:10px;top:8px;width:34px;height:34px;min-height:34px}
#practiceBoard.manual-board[data-active-session="true"]>.duel-tools{padding-right:48px}
/* Softer controls throughout the game; card faces keep their physical shape. */
body button:not(.duel-face):not(.manual-pile):not(.duel-pile):not(.gesture-card):not(.drag-card-ghost){border-radius:12px!important;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,filter .16s ease}
body button:not(.duel-face):not(.manual-pile):not(.duel-pile):not(.gesture-card):not(:disabled):hover{filter:brightness(1.12);box-shadow:0 3px 10px #06162440}
body button:not(.duel-face):not(.manual-pile):not(.duel-pile):not(.gesture-card):not(:disabled):active{filter:brightness(.94);box-shadow:inset 0 2px 5px #06162455}
body button:focus-visible{outline:2px solid #f5d58d;outline-offset:3px}
#practiceBoard.manual-board .duel-player{justify-content:flex-start;gap:10px}
#practiceBoard.manual-board .duel-player .request-hand{display:inline-flex;align-items:center;gap:5px;border:1px solid #789c9c55;border-radius:20px!important;background:#24455370;color:#d6e9e5;font:10px var(--sans);padding:3px 8px;min-height:28px;box-shadow:none;white-space:nowrap}
#practiceBoard.manual-board .duel-player .request-hand:hover{background:#365f67;border-color:#9ec7be;color:#fff1cd}
#practiceBoard.manual-board .duel-player .request-hand span{max-width:none;overflow:visible}
.cards-icon,.cards-icon svg{display:block;flex-shrink:0;width:18px;height:18px}
@media(prefers-reduced-motion:reduce){body button{transition:none!important}}
/* Shared history and compact, unframed settings. */
#practiceBoard.manual-board>.dialog-settings,#practiceBoard.manual-board>.dialog-settings:hover,#practiceBoard.manual-board>.dialog-settings:active{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;color:#f4dfac}
#practiceBoard.manual-board .duel-tools>.request-hand{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:3px 8px;font:10px var(--sans);border:1px solid #789c9c55;background:#24455370;color:#d6e9e5;border-radius:20px!important;white-space:nowrap}
#practiceBoard.manual-board .duel-side{grid-template-rows:28px minmax(0,1fr)}
#practiceBoard.manual-board .duel-player{padding-left:0;gap:8px}
#practiceBoard.manual-board .duel-player .opposite-removed{margin-left:auto;font-size:9px;min-height:22px;padding:2px 8px;opacity:.85}
#practiceBoard.manual-board .table-turn-status{margin-right:12px}
#practiceBoard.manual-board>.practice-hand-title{row-gap:9px;padding-bottom:5px}
.play-history-dialog{width:min(760px,94vw);max-height:90dvh;overflow:auto}
.play-history-dialog[open]{display:flex;flex-direction:column;gap:10px}
.play-history-dialog h2{order:0;margin:0}
.play-history-list{order:1;max-height:52dvh;min-height:90px;overflow:auto;margin:0;padding:12px 12px 12px 36px;background:#102a38;border:1px solid #537783;border-radius:10px;scrollbar-width:thin}
.play-history-list li{font:13px/1.6 var(--sans);padding:7px 3px;color:#e0eadf;border-bottom:1px solid #789c9c33;overflow-wrap:anywhere}
.play-history-dialog>p{order:2;font:12px/1.4 var(--sans);margin:0;color:#c0d5d2}
.play-history-dialog textarea{order:3;min-height:64px;width:100%;box-sizing:border-box;background:#183844;color:#fff1cd;border:1px solid #6b9195;border-radius:8px;padding:10px;font:13px var(--sans)}
.play-history-dialog>button{order:4;align-self:flex-end;background:#315e62;color:#fff2c7;border:1px solid #8ca989;padding:8px 14px}
#practiceBoard.manual-board>.dialog-settings:focus-visible{outline:none;filter:drop-shadow(0 0 5px #ffdf8d)}
/* Visible viewport, keyboard recovery and safe touch scrolling on installed iOS apps. */
:root{--app-height:100dvh;--app-width:100vw;--viewport-top:0px;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
html,body{touch-action:auto}
#scene,#joystick,.control-editor-stage [data-control]{touch-action:none}
dialog{touch-action:auto;max-height:calc(var(--app-height) - 24px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
#controls{height:var(--app-height);bottom:auto}
#hud{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));left:max(10px,env(safe-area-inset-left))}
.hud-actions{flex-wrap:wrap;justify-content:flex-end;max-width:100%}
#settingsDialog,#authDialog{position:fixed;top:calc(var(--viewport-top) + max(8px,env(safe-area-inset-top)));bottom:auto;left:0;right:0;margin:0 auto;width:min(600px,calc(var(--app-width) - 24px));max-height:calc(var(--app-height) - max(8px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)));overflow:auto;touch-action:auto}
#settingsDialog>.close{position:sticky;top:0;float:right;z-index:5;background:#17343d}
#settingsDialog h2{padding-right:40px}
#settingsDialog button,#settingsDialog summary{touch-action:manipulation;min-height:44px}
#settingsDialog .reset-controls{display:block;width:100%;margin:8px 0 14px;padding:10px;background:#244c58;border:1px solid #81aaa5;color:#fff1cd}
#controlEditor{height:var(--app-height);max-height:var(--app-height);width:var(--app-width);top:var(--viewport-top);bottom:auto;touch-action:auto}
#controlEditor header{padding-top:max(8px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));max-height:130px;overflow:auto;touch-action:pan-y}
#controlEditor header button{touch-action:manipulation;min-height:44px}
#controlEditor .control-editor-stage{top:130px;bottom:90px;left:env(safe-area-inset-left);right:env(safe-area-inset-right)}
#controlEditor aside{top:auto;bottom:max(6px,env(safe-area-inset-bottom));padding:8px 12px;max-height:84px;overflow:auto}
#controlEditor aside input{min-height:32px;touch-action:auto}
@media(pointer:coarse){dialog input,dialog textarea,dialog select,#settingsDialog select{font-size:16px!important}#authDialog input{font-size:16px!important}#settingsDialog .setting-row{gap:8px;margin:12px 0}#settingsDialog .setting-row input[type=range]{width:100%;min-width:0;min-height:36px;touch-action:auto}}
@media(max-height:500px){#controlEditor header{max-height:100px}#controlEditor .control-editor-stage{top:100px;bottom:78px}#controlEditor header p{display:none}#controlEditor h2{font-size:14px}#controlEditor aside{max-height:72px}#settingsDialog{padding:12px}}
#practiceBoard.manual-board[open]{height:var(--app-height);max-height:var(--app-height)}
#soundWelcome{position:fixed;left:50%;top:calc(max(12px,env(safe-area-inset-top)) + 54px);transform:translateX(-50%);z-index:8;max-width:calc(100vw - 24px);min-height:44px;padding:10px 16px;background:#234b55;color:#fff0bd;border:1px solid #d9bf7d;font:600 13px var(--sans);box-shadow:0 4px 18px #06182466}
body:has(dialog[open]) #soundWelcome{display:none}
.room-opponents{display:grid;gap:10px;width:100%;max-height:45vh;overflow-y:auto}.room-opponents .friend-row{padding:12px;border:1px solid #53766c;border-radius:14px;background:#183d3e}.room-opponents small{color:#c7d9bc}.deck-loan{margin-top:16px;padding:12px;border:1px solid #53766c;border-radius:14px;background:#183d3e;display:grid;gap:10px}.deck-loan select{max-width:100%;min-height:44px;border-radius:10px;background:#21494a;color:#ffebbe;border:1px solid #789b82;padding:8px}
/* Keep the play areas stable when the first action or a combo adds content. */
#practiceBoard.manual-board>.duel-event,#practiceBoard.manual-board>.duel-event:empty{display:block;box-sizing:border-box;height:26px;min-height:26px;max-height:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#practiceBoard.manual-board>.duel-event:empty{visibility:hidden}
#practiceBoard.manual-board:has(>.duel-event:empty)>.duel-viewport,#practiceBoard.manual-board>.duel-viewport{grid-row:3;min-width:0}
#practiceBoard.manual-board .duel-mat,#practiceBoard.manual-board .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-rows:minmax(0,1.3fr) minmax(0,.38fr) minmax(0,1.2fr);min-width:0;min-height:0}
#practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:60px 78px 78px minmax(100px,1fr) 72px 56px;grid-template-areas:'drop energy energy energy life zenergy' 'drop combo combo combo life zenergy' 'deck leader unison battle zdeck zenergy';grid-template-rows:minmax(0,1.2fr) minmax(0,.38fr) minmax(0,1.3fr)}
#practiceBoard.manual-board .dz-energy .duel-card-row{justify-content:safe center}
#practiceBoard.manual-board .dz-battle .duel-card-row{justify-content:flex-start;flex-direction:row}
@media(max-width:850px){#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-columns:44px 52px 52px minmax(80px,1fr) 52px 38px}}
@media(max-width:650px) and (orientation:portrait){#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-columns:38px 44px 44px minmax(60px,1fr) 44px 32px}}
/* Gameplay history lives in its dialog, never in a resizing board row. */
#practiceBoard.manual-board>.duel-event:empty{display:none}
#practiceBoard.manual-board>.duel-event:not(:empty){position:fixed;z-index:9;top:48px;left:12px;right:12px;grid-area:auto;pointer-events:none}
#practiceBoard.manual-board>.duel-viewport,#practiceBoard.manual-board:has(>.duel-event:empty)>.duel-viewport{grid-row:2/4}
@media(max-width:650px) and (orientation:portrait){#practiceBoard.manual-board>.duel-viewport,#practiceBoard.manual-board:has(>.duel-event:empty)>.duel-viewport{grid-row:3}}
.hand-effect-dialog{width:min(850px,95vw);max-height:90dvh;overflow:auto}.hand-effect-dialog>button{margin:6px}.hand-discard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,125px));gap:12px;margin:14px 0}.hand-discard-grid button{display:flex;flex-direction:column;align-items:center;gap:6px;background:#22444e;color:#ffebbd;border:2px solid #668b91;border-radius:12px;padding:8px}.hand-discard-grid button[aria-pressed=true]{border-color:#ffdc86;background:#41636b;box-shadow:0 0 0 2px #ffdc8655}.hand-discard-grid img,.hand-card-back{width:100%;aspect-ratio:5/7;object-fit:contain}.hand-card-back{display:grid;place-items:center;background:repeating-linear-gradient(45deg,#14273a,#14273a 7px,#284752 7px,#284752 14px);font:700 12px var(--sans)}

/* Keep the table gear centered independently of text-button padding and sizing. */
#practiceBoard.manual-board>.dialog-settings{box-sizing:border-box;min-width:0;padding:0!important;margin:0;display:grid;place-items:center;line-height:1}
#practiceBoard.manual-board>.dialog-settings>svg{display:block;width:22px;height:22px;margin:0;align-self:center;justify-self:center}

/* Z resources share a compact column; leader/Unison shift left to free Battle. */
#practiceBoard.manual-board .duel-mat,#practiceBoard.manual-board .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:72px 78px 78px minmax(100px,1fr) 60px;grid-template-rows:minmax(0,.65fr) minmax(0,.65fr) minmax(0,.38fr) minmax(0,1.2fr);grid-template-areas:'zenergy leader unison battle deck' 'zdeck leader unison battle deck' 'life life combo combo drop' 'life life energy energy drop'}
#practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:60px minmax(100px,1fr) 78px 78px 72px;grid-template-rows:minmax(0,1.2fr) minmax(0,.38fr) minmax(0,.65fr) minmax(0,.65fr);grid-template-areas:'drop energy energy life life' 'drop combo combo life life' 'deck battle unison leader zdeck' 'deck battle unison leader zenergy'}
#practiceBoard.manual-board .dz-zenergy h4{writing-mode:horizontal-tb;max-width:none;text-overflow:clip;white-space:nowrap;font-size:9px}
#practiceBoard.manual-board .dz-zenergy .zone-count{top:17px;font-size:10px;line-height:13px;min-width:14px}
#practiceBoard.manual-board .dz-zenergy .duel-card-row{padding-right:17px;gap:2px}
#practiceBoard.manual-board .dz-zenergy .duel-face{height:min(94cqh,65px)}
#practiceBoard.manual-board .dz-zenergy .duel-face+.duel-face{margin-left:-24px}
#practiceBoard.manual-board .life-pairs .pile-card{max-height:48px}
#practiceBoard.manual-board .dz-combo{overflow:visible!important;z-index:5}
#practiceBoard.manual-board .dz-combo .duel-card-row{container-type:normal;overflow:visible;justify-content:center;gap:0}
#practiceBoard.manual-board .dz-combo .duel-face{height:clamp(58px,12vh,88px);max-width:none;position:relative}
#practiceBoard.manual-board .dz-combo .duel-face+.duel-face{margin-left:-32px}
#practiceBoard.manual-board .dz-combo .duel-face:hover,#practiceBoard.manual-board .dz-combo .duel-face:focus-visible{z-index:6}
.energy-picker{max-height:90dvh;overflow:auto}.energy-picker select{background:#244553;color:#ffe7af;border:1px solid #8ba8a1;border-radius:8px;padding:8px;min-width:70px}.energy-reference{font-size:12px;line-height:1.5}.energy-choices label:has(input:checked){outline:2px solid #f2d28c;background:#365964}.energy-choices label:has(input:disabled){opacity:.5}
@media(max-width:850px){#practiceBoard.manual-board .duel-mat,#practiceBoard.manual-board .duel-mat:not(:has(.dz-combo .duel-face)),#practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:62px 56px 56px minmax(70px,1fr) 44px}}
@media(max-width:650px) and (orientation:portrait){#practiceBoard.manual-board .duel-mat,#practiceBoard.manual-board .duel-mat:not(:has(.dz-combo .duel-face)),#practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:58px 44px 44px minmax(60px,1fr) 38px}#practiceBoard.manual-board .dz-combo .duel-face{height:62px}}

#practiceBoard.manual-board .manual-pile.life-pairs{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px 3px}

/* Public discard piles share the former Drop space; turn labels sit behind cards. */
#practiceBoard.manual-board[open]{grid-template-columns:minmax(0,1fr) clamp(126px,14vw,194px);column-gap:6px}
#practiceBoard.manual-board .duel-side{display:block;position:relative;min-height:0}
#practiceBoard.manual-board .duel-mat{position:relative;height:100%;box-sizing:border-box;isolation:isolate}
#practiceBoard.manual-board .duel-discard{grid-area:drop;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:3px;min-height:0;min-width:0}
#practiceBoard.manual-board .duel-discard>.duel-zone{grid-area:auto;min-height:0;min-width:0;padding:26px 3px 3px}
#practiceBoard.manual-board .duel-discard h4{max-width:100%;font-size:7px;white-space:nowrap;text-overflow:clip}
#practiceBoard.manual-board .duel-discard .zone-count{top:12px;font-size:10px;line-height:12px;min-width:14px}
#practiceBoard.manual-board .duel-discard .manual-pile .pile-card{height:min(62px,92%);max-width:95%}
#practiceBoard.manual-board .field-turn-label{position:absolute;bottom:9px;left:50%;transform:translateX(-50%);width:72%;text-align:center;pointer-events:none;user-select:none;z-index:1;color:#a5c1c51f;font:800 clamp(12px,1.6vw,22px)/1.15 var(--sans);letter-spacing:1px;overflow-wrap:anywhere}
#practiceBoard.manual-board .turn-active .field-turn-label{color:#ffe19c70;text-shadow:0 0 12px #ffd67c55}
#practiceBoard.manual-board .enemy-side.turn-active .field-turn-label{color:#9defff80;text-shadow:0 0 12px #6de6ff66}
#practiceBoard.manual-board .enemy-side.turn-active .duel-mat{border-color:#9defff;box-shadow:inset 0 0 32px #75dfff22,0 0 10px #75dfff66}
#practiceBoard.manual-board .duel-card-row,#practiceBoard.manual-board .manual-pile,#practiceBoard.manual-board .dz-leader>.duel-face{position:relative;z-index:2}
#practiceBoard.manual-board .hand-turn-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
#practiceBoard.manual-board .hand-turn-controls>.request-hand{order:0;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
#practiceBoard.manual-board .hand-turn-controls>.practice-actions{order:1;display:flex;margin:0;gap:4px}
#practiceBoard.manual-board .hand-turn-controls>.table-turn-status{order:2;margin:0;font-size:10px;max-width:240px}
#practiceBoard.manual-board .hand-turn-controls>.practice-actions button{min-height:28px;padding:4px 8px}
@media(max-width:650px) and (orientation:portrait){#practiceBoard.manual-board[open]{grid-template-columns:minmax(0,1fr)}#practiceBoard.manual-board .field-turn-label{font-size:12px;bottom:5px}#practiceBoard.manual-board .duel-discard h4{font-size:6px;left:2px}#practiceBoard.manual-board .duel-discard>.duel-zone{padding-left:2px;padding-right:2px}}

#practiceBoard.manual-board .duel-mat{padding-bottom:25px}
#practiceBoard.manual-board .field-turn-label{bottom:5px;font-size:clamp(12px,1.4vw,18px)}

#practiceBoard.manual-board>.turn-overlay[role=status]{grid-area:auto;align-self:auto;padding:28px 20px;min-height:100px;box-sizing:border-box;display:grid;place-items:center;font:800 clamp(24px,4vw,40px)/1.2 var(--sans);white-space:normal;overflow:visible;text-overflow:clip;text-align:center;border-radius:12px}

/* Opponent sits across the table: reverse zone columns at every breakpoint. */
@media(max-width:850px){#practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:44px minmax(70px,1fr) 56px 56px 62px}}
@media(max-width:650px) and (orientation:portrait){#practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:38px minmax(60px,1fr) 44px 44px 58px}}
#practiceBoard.manual-board .enemy-side .dz-battle .duel-card-row{flex-direction:row-reverse;justify-content:flex-start}
#practiceBoard.manual-board .enemy-side .dz-battle .stacked-card{margin-left:0;margin-right:-26px}

/* Content-sized toolbar rows prevent a wrapped mobile toolbar covering the mat. */
#practiceBoard.manual-board[open]{box-sizing:border-box;grid-template-columns:minmax(0,1fr) 112px!important;grid-template-rows:max-content max-content max-content minmax(380px,1fr)!important;grid-template-areas:'tools tools' 'event handtitle' 'prompts hand' 'table hand'!important;gap:6px;padding: max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important}
#practiceBoard.manual-board>.duel-tools{position:relative;display:flex;flex-wrap:wrap;min-width:0;height:auto;min-height:44px;align-self:start;padding:0 58px 0 0!important;margin:0!important;gap:6px}
#practiceBoard.manual-board .duel-tools button,#practiceBoard.manual-board .practice-hand-title button{min-height:44px!important;min-width:44px;padding:7px 9px;font-size:11px;line-height:1.25;white-space:normal}
#practiceBoard.manual-board .hand-turn-controls{flex-wrap:wrap;gap:6px;max-width:100%}
#practiceBoard.manual-board .hand-turn-controls>.table-turn-status{max-width:100%;white-space:normal;overflow-wrap:anywhere}
#practiceBoard.manual-board>.dialog-settings,#practiceBoard.manual-board[data-active-session=true]>.dialog-settings{top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));width:44px;height:44px;min-height:44px;z-index:8}
#practiceBoard.manual-board>.duel-viewport,#practiceBoard.manual-board:has(>.duel-event:empty)>.duel-viewport{grid-area:table!important;min-width:0}
#practiceBoard.manual-board>.table-prompts{grid-area:prompts;min-width:0}.table-prompts:has(>.battle-controls:empty):not(:has(>.view-consent)){display:none}
#practiceBoard.manual-board .table-prompts>.battle-controls{margin:0;padding:8px;border-radius:12px}.table-prompts .battle-controls h3{font-size:14px;margin:0}.table-prompts .battle-controls p{margin:5px 0;font-size:12px}.table-prompts button{min-height:44px}.table-prompts select{max-width:100%;min-height:44px;background:#244553;color:#ffe7af;border-radius:10px}
#practiceBoard.manual-board>.practice-hand-title{min-width:0;align-self:start;margin:0;gap:6px;flex-wrap:wrap}
#practiceBoard.manual-board>.practice-hand{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;align-content:start;padding:18px 6px 12px;box-sizing:border-box}
#practiceBoard.manual-board>.practice-hand .duel-face{height:64px!important;max-width:100%;width:auto;aspect-ratio:5/7;transform-origin:center;transition:scale .16s ease,filter .16s ease;scale:1}
#practiceBoard.manual-board>.practice-hand .duel-face:is(:focus-visible,:active){scale:1.38;z-index:12;filter:brightness(1.12);box-shadow:0 3px 14px #000b}
@media(hover:hover){#practiceBoard.manual-board>.practice-hand .duel-face:has(+ .duel-face:hover),#practiceBoard.manual-board>.practice-hand .duel-face:hover+.duel-face{scale:1.1;z-index:11}}
@media(max-width:650px) and (orientation:portrait){#practiceBoard.manual-board[open]{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:max-content max-content max-content minmax(460px,1fr) max-content 100px!important;grid-template-areas:'tools' 'event' 'prompts' 'table' 'handtitle' 'hand'!important}#practiceBoard.manual-board>.practice-hand{display:flex;flex-wrap:nowrap;align-items:center;gap:5px;padding:15px 8px 10px;height:100px;overflow:auto}#practiceBoard.manual-board>.practice-hand .duel-face{flex:0 0 auto;height:64px!important;max-width:none}#practiceBoard.manual-board .hand-turn-controls{width:100%}#practiceBoard.manual-board>.practice-hand-title>span:first-child{width:100%;font-size:11px}}
@media(prefers-reduced-motion:reduce){#practiceBoard.manual-board>.practice-hand .duel-face{transition:none}}

@media(hover:hover){#practiceBoard.manual-board>.practice-hand .duel-face:hover{scale:1.38;z-index:12;filter:brightness(1.12);box-shadow:0 3px 14px #000b}}


/* Full-width table with a bottom hand dock on tablet, desktop and mobile. */
#practiceBoard.manual-board[open]{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:max-content max-content max-content minmax(280px,1fr) max-content 98px!important;grid-template-areas:'tools' 'event' 'prompts' 'table' 'handtitle' 'hand'!important;align-content:stretch;gap:4px;height:100dvh;max-height:100dvh}
#practiceBoard.manual-board>.duel-viewport{min-height:280px;height:100%;overflow:auto}
#practiceBoard.manual-board .duel-table{min-height:280px;height:100%;grid-template-rows:minmax(0,1fr) minmax(0,1fr)}
#practiceBoard.manual-board>.practice-hand-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:32px;padding:0;margin:0}
#practiceBoard.manual-board>.practice-hand-title>span:first-child{width:auto;flex:1;font-size:11px}
#practiceBoard.manual-board>.practice-hand-title button{min-height:32px!important;height:32px;padding:4px 9px}
#practiceBoard.manual-board>.practice-hand{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:6px;padding:16px 12px 10px;height:98px;max-height:98px;overflow:auto;width:100%}
#practiceBoard.manual-board>.practice-hand .duel-face{height:64px!important;flex:0 0 auto;max-width:none;transform-origin:center center}
#practiceBoard.manual-board .duel-mat{min-height:0}
@media(pointer:coarse){#practiceBoard.manual-board>.practice-hand-title button{min-height:44px!important;height:44px}}

/* Explicit areas prevent legacy landscape rules creating a right-hand column. */
#practiceBoard.manual-board[open]{width:100vw!important;max-width:100vw!important;margin:0!important;inset:0;box-sizing:border-box}
#practiceBoard.manual-board>.practice-hand-title{grid-area:handtitle!important;padding:0!important}
#practiceBoard.manual-board>.practice-hand{grid-area:hand!important;min-width:0;margin:0!important;touch-action:pan-x;justify-content:center;align-content:center;padding:16px 12px 10px!important}
#practiceBoard.manual-board>.practice-hand .duel-face{margin:0!important;width:46px!important;min-width:46px;flex:0 0 46px}
#practiceBoard.manual-board>.practice-hand-title>span:first-child{flex-basis:auto!important}
.manual-inspector .card-view-layout{grid-template-columns:minmax(0,1fr) minmax(130px,.8fr);gap:14px}
.manual-inspector .card-view-layout>div:first-child{min-width:0}
.manual-inspector .card-zoom{height: min(62dvh,560px);max-height:62dvh!important;overflow:auto}
.manual-inspector .card-zoom img{width:100%;height:100%;max-height:100%;object-fit:contain;object-position:top center}
.manual-inspector .card-inspect-actions button,.manual-inspector .card-inspect-actions summary{border-radius:999px;min-height:44px;padding:10px 14px}
.manual-inspector .card-inspect-actions details{border-radius:22px;padding:8px}
@media(max-width:600px){.manual-inspector.card-detail-view{width:calc(100vw - 20px);box-sizing:border-box}.manual-inspector .card-view-layout{gap:8px;grid-template-columns:minmax(0,1fr) minmax(124px,.85fr)}.manual-inspector h2{font-size:16px}.manual-inspector .card-inspect-actions{max-height:65dvh}}
.manual-inspector .card-view-layout .card-inspect-actions{min-width:0;overflow-x:hidden}
.manual-inspector .card-view-layout .card-inspect-actions button,.manual-inspector .card-view-layout .card-inspect-actions summary{border-radius:999px!important;box-sizing:border-box;max-width:100%}
#practiceBoard.manual-board>.practice-hand{justify-content:safe center}

.manual-inspector .card-view-layout .card-zoom{height:auto;max-height:62dvh!important}.manual-inspector .card-view-layout .card-zoom img{height:auto;max-height:62dvh;object-fit:contain}
body dialog.manual-inspector.card-detail-view .card-view-layout .card-inspect-actions button:not(.duel-face):not(.manual-pile){border-radius:999px!important}

/* Mobile actions open over the field instead of reserving toolbar rows. */
#practiceBoard.manual-board .table-mobile-menu,#practiceBoard.manual-board .table-mobile-menu>.table-menu-items{display:contents}
#practiceBoard.manual-board .table-mobile-menu>summary{display:none}
@media(max-width:700px),(max-height:500px) and (pointer:coarse){
 #practiceBoard.manual-board .table-mobile-menu{display:block;position:relative;flex:0 0 auto;z-index:25;margin:0;padding:0;border:0;background:none}
 #practiceBoard.manual-board .table-mobile-menu>summary{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;padding:8px 13px;border:1px solid #507585;border-radius:18px;color:#fff0c7;background:#243c4d;font:12px var(--sans);cursor:pointer;list-style:none}
 #practiceBoard.manual-board .table-mobile-menu>summary::-webkit-details-marker{display:none}
 #practiceBoard.manual-board .table-mobile-menu>.table-menu-items{display:none}
 #practiceBoard.manual-board .table-mobile-menu[open]>.table-menu-items{display:flex;flex-direction:column;position:absolute;top:calc(100% + 6px);left:0;width:min(260px,calc(100vw - 40px));max-height:65dvh;overflow:auto;padding:10px;gap:7px;box-sizing:border-box;border:1px solid #7b929b;border-radius:18px;background:#142b3b;box-shadow:0 12px 30px #0009}
 #practiceBoard.manual-board .table-menu-items button{width:100%;text-align:left;min-height:44px!important;flex:none}
 #practiceBoard.manual-board>.duel-tools{align-items:center;gap:6px}
 #practiceBoard.manual-board .hand-turn-controls{width:auto;flex:1;min-width:0;display:flex;gap:4px}
 #practiceBoard.manual-board .hand-turn-controls .table-turn-status{font-size:9px;flex:1;min-width:65px;order:2;margin:0}
 #practiceBoard.manual-board .hand-turn-controls .practice-actions{margin:0}
}
@media(min-width:701px) and (min-height:501px), (min-width:701px) and (pointer:fine){#practiceBoard.manual-board .table-mobile-menu::details-content{display:contents;content-visibility:visible}}

#queueDialog .lobby-registration [hidden]{display:none!important}
#queueDialog .resume-match{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin:8px 0}
.match-search-badge{position:fixed;z-index:35;top:max(14px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);max-width:calc(100vw - 100px);min-height:44px;padding:10px 18px;background:#173b49;color:#ffe5a6;border:1px solid #bda16b;border-radius:24px;font:12px var(--sans);box-shadow:0 5px 18px #0007}
.match-search-badge[hidden]{display:none!important}.match-search-badge::after{content:' …';animation:search-pulse 1.2s ease-in-out infinite}@keyframes search-pulse{50%{opacity:.2}}@media(prefers-reduced-motion:reduce){.match-search-badge::after{animation:none}}

/* Action branches retain the battlefield behind them; reading is explicit. */
dialog.manual-inspector.card-action-fan{position:fixed;inset:auto 12px max(12px,env(safe-area-inset-bottom)) auto;margin:0;width:min(380px,calc(100vw - 24px));max-height:65dvh;box-sizing:border-box;padding:14px;border-radius:24px;background:#142c3cf5;box-shadow:0 8px 30px #0008}
dialog.manual-inspector.card-action-fan::backdrop{background:#0002;backdrop-filter:none}
.card-action-fan h2{font-size:14px;margin:4px 0 10px}.card-action-fan .card-view-layout{display:block;clear:both}.card-action-fan .card-inspect-actions{max-height:48dvh!important;display:flex;gap:7px;overflow:auto}.card-action-fan .card-inspect-actions>button{animation:fan-arrive .15s ease-out}.card-action-fan details{border-radius:18px}.card-action-fan .inspector-close{min-height:44px}
@keyframes fan-arrive{from{transform:translateY(10px);opacity:.4}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.card-action-fan .card-inspect-actions>button{animation:none}}
#practiceBoard.manual-board .hand-dock-toggle{min-height:44px!important}
@media(max-width:700px),(max-height:500px) and (pointer:coarse){
 #practiceBoard.manual-board[open]{grid-template-rows:max-content max-content max-content minmax(0,1fr) 44px!important;grid-template-areas:'tools' 'event' 'prompts' 'table' 'handtitle'!important;overflow:hidden;padding-left:max(5px,env(safe-area-inset-left))!important;padding-right:max(5px,env(safe-area-inset-right))!important}
 #practiceBoard.manual-board>.duel-viewport{min-height:0;overflow:hidden}
 #practiceBoard.manual-board .duel-table{min-height:0;min-width:0;width:100%;height:100%}
 #practiceBoard.manual-board>.practice-hand-title{z-index:10;flex-wrap:nowrap;background:#132c3b;border-radius:18px;padding:0 6px!important;min-height:44px}
 #practiceBoard.manual-board>.practice-hand{display:none;position:absolute;grid-area:auto!important;bottom:calc(60px + env(safe-area-inset-bottom));left:5px;right:5px;width:auto;height:106px;max-height:106px;z-index:12;border:1px solid #7f998f;border-radius:20px;background:#142d3cf5;box-shadow:0 -5px 24px #0008}
 #practiceBoard.manual-board.hand-dock-open>.practice-hand{display:flex}
 #practiceBoard.manual-board .manual-drag-hint{display:none}
 #practiceBoard.manual-board .practice-hand-title>span:first-child{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
}

body dialog.manual-inspector.card-action-fan .card-view-layout .card-inspect-actions button:not(.duel-face):not(.manual-pile){border-radius:999px!important}.card-action-fan .card-inspect-actions details{padding:7px}.card-action-fan .card-inspect-actions summary{min-height:44px;box-sizing:border-box;padding:10px;cursor:pointer}
@media(min-width:701px) and (min-height:501px),(min-width:701px) and (pointer:fine){#practiceBoard.manual-board .hand-dock-toggle{display:none}}

/* Mobile playfield uses all rows; the hand is a small floating dock, never a band. */
@media(max-width:700px),(max-height:550px){
 #practiceBoard.manual-board[open]{grid-template-rows:max-content max-content max-content minmax(0,1fr)!important;grid-template-areas:'tools' 'event' 'prompts' 'table'!important;padding:4px!important;gap:3px}
 #practiceBoard.manual-board>.duel-tools{padding-left:max(0px,env(safe-area-inset-left))!important;padding-right:max(52px,env(safe-area-inset-right))!important}
 #practiceBoard.manual-board>.practice-hand-title{position:absolute;grid-area:auto!important;right:max(8px,env(safe-area-inset-right));bottom:max(5px,env(safe-area-inset-bottom));width:44px;height:44px;min-height:44px;margin:0!important;padding:0!important;background:none;z-index:18;overflow:visible}
 #practiceBoard.manual-board>.practice-hand-title>span,#practiceBoard.manual-board>.practice-hand-title>button:not(.hand-dock-toggle){display:none}
 #practiceBoard.manual-board .hand-dock-toggle{display:grid!important;place-items:center;width:44px;height:44px;padding:0!important;font-size:28px!important;border-radius:50%!important;background:#244553e0;border:1px solid #a5b7a1;box-shadow:0 2px 8px #0006}
 #practiceBoard.manual-board>.practice-hand{display:none;position:absolute;grid-area:auto!important;left:50%;right:auto;bottom:max(8px,env(safe-area-inset-bottom));transform:translateX(-50%);width:max-content;max-width:calc(100% - 116px);height:78px;max-height:78px;min-height:0;padding:15px 8px 4px!important;margin:0!important;gap:5px;overflow-x:auto;overflow-y:hidden;z-index:17;border:0;background:transparent;box-shadow:none;border-radius:12px;justify-content:safe center}
 #practiceBoard.manual-board.hand-dock-open>.practice-hand{display:flex}
 #practiceBoard.manual-board>.practice-hand .duel-face{height:48px!important;width:34px!important;min-width:34px;flex-basis:34px;transform-origin:center bottom;scale:var(--dock-scale,1);transition:scale .12s ease-out;box-shadow:0 2px 5px #0008}
 #practiceBoard.manual-board>.practice-hand .duel-face:is(:active,:focus-visible){scale:1.55}
 #practiceBoard.manual-board .duel-mat{padding:3px 3px 15px;gap:2px}
 #practiceBoard.manual-board .field-turn-label{bottom:1px;font-size:10px;line-height:12px}
 #practiceBoard.manual-board .duel-zone{padding:14px 2px 2px;min-height:0}
 #practiceBoard.manual-board .duel-zone h4{font-size:8px;top:1px;left:2px;line-height:11px}
 #practiceBoard.manual-board .zone-count,#practiceBoard.manual-board .dz-life .zone-count{font-size:10px;line-height:12px;min-width:14px;top:0;right:1px}
 #practiceBoard.manual-board .duel-discard>.duel-zone{padding:14px 2px 1px}
 #practiceBoard.manual-board .duel-discard .zone-count,#practiceBoard.manual-board .dz-zenergy .zone-count{top:0;right:1px;font-size:9px;line-height:11px}
 #practiceBoard.manual-board .duel-discard h4{max-width:calc(100% - 14px);font-size:6px}
 #practiceBoard.manual-board .manual-pile.life-pairs{grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:2px;overflow:hidden}
 #practiceBoard.manual-board .life-pairs .pile-card{height:100%;max-height:100%;width:auto;min-height:0;max-width:100%}
}
@media(orientation:landscape) and (max-height:550px){
 #practiceBoard.manual-board .duel-mat,#practiceBoard.manual-board .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:42px 50px 48px minmax(0,1fr) 38px;grid-template-rows:minmax(0,.6fr) minmax(0,.6fr) 16px minmax(0,1fr)}
 #practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:38px minmax(0,1fr) 48px 50px 42px;grid-template-rows:minmax(0,1fr) 16px minmax(0,.6fr) minmax(0,.6fr)}
 #practiceBoard.manual-board .dz-combo{padding:2px!important}
 #practiceBoard.manual-board .dz-combo h4{font-size:7px}
 #practiceBoard.manual-board .dz-combo .duel-face{height:46px}
 #practiceBoard.manual-board .dz-leader>.duel-face{height:100%;max-height:100%;width:auto}
 #practiceBoard.manual-board .duel-card-row{height:100%;min-height:0;padding:0 2px;gap:3px}
 #practiceBoard.manual-board .duel-card-row .duel-face{height:min(94cqh,76px);width:auto;max-height:100%}
 #practiceBoard.manual-board .duel-tools button{min-height:36px!important;font-size:10px;padding:5px 9px}
 #practiceBoard.manual-board .table-turn-status{font-size:9px}
 #practiceBoard.manual-board .dz-energy>button{position:absolute;right:17px;top:0;padding:0 3px;min-height:14px;font-size:8px}
}
@media(max-width:700px),(max-height:550px){
 #practiceBoard.manual-board>.practice-hand{height:92px;max-height:92px;padding-top:29px!important}
 #practiceBoard.manual-board .manual-pile.life-pairs{container-type:size}
 #practiceBoard.manual-board .life-pairs .pile-card{height:min(44px,calc((100cqh - 2px)/2),calc((100cqw - 6px)*.35));width:auto;aspect-ratio:5/7;max-height:none}
}

.field-auto-badge{position:absolute;bottom:0;left:0;right:0;background:#143f46e8;color:#ffe4a0;font:700 8px/12px var(--sans);text-align:center;pointer-events:none;border-radius:4px}

/* Larger, separated hand targets; the dock keeps its existing footprint. */
#practiceBoard.manual-board>.practice-hand{gap:16px;padding:18px 10px 4px!important}
#practiceBoard.manual-board>.practice-hand .duel-face{height:76px!important;width:54px!important;min-width:54px;flex:0 0 54px;transform-origin:center bottom;scale:var(--dock-scale,1)}
#practiceBoard.manual-board>.practice-hand .duel-face:is(:hover,:focus-visible,:active){scale:1.25}
@media(max-width:700px),(max-height:550px){
 #practiceBoard.manual-board>.practice-hand{gap:14px;padding:24px 8px 4px!important}
 #practiceBoard.manual-board>.practice-hand .duel-face{height:64px!important;width:46px!important;min-width:46px;flex:0 0 46px}
}

/* The second player's marker occupies a real card slot, outside the energy count. */
#practiceBoard.manual-board .energy-marker-card{height:min(94cqh,76px);min-height:20px;width:auto;aspect-ratio:5/7;flex:0 0 auto;box-sizing:border-box;padding:2px;border:2px solid #e4c879;border-radius:5px;background:radial-gradient(ellipse,#397c77,#142e42);color:#ffe99d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;box-shadow:0 0 8px #f5d47355}
#practiceBoard.manual-board .energy-marker-card>span{font-size:clamp(12px,3vh,24px);line-height:1}.energy-marker-card small{font:700 5px/1.2 sans-serif;letter-spacing:.3px}
#practiceBoard.manual-board .enemy-side .energy-marker-card{transform:rotate(180deg)}
#practiceBoard.manual-board .duel-mat,#practiceBoard.manual-board .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:72px 78px 78px minmax(100px,1fr) 76px}
#practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:76px minmax(100px,1fr) 78px 78px 72px}
@media(max-width:850px){#practiceBoard.manual-board .duel-mat,#practiceBoard.manual-board .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:62px 56px 56px minmax(70px,1fr) 60px}#practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:60px minmax(70px,1fr) 56px 56px 62px}}
@media(max-width:650px) and (orientation:portrait){#practiceBoard.manual-board .duel-mat,#practiceBoard.manual-board .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:58px 44px 44px minmax(60px,1fr) 50px}#practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:50px minmax(60px,1fr) 44px 44px 58px}}
@media(orientation:landscape) and (max-height:550px){#practiceBoard.manual-board .duel-mat,#practiceBoard.manual-board .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:42px 50px 48px minmax(0,1fr) 52px}#practiceBoard.manual-board .enemy-side .duel-mat,#practiceBoard.manual-board .enemy-side .duel-mat:not(:has(.dz-combo .duel-face)){grid-template-columns:52px minmax(0,1fr) 48px 50px 42px}}

#gamePicker #waitForFriend{display:block;width:100%;margin:12px 0;padding:14px 16px;min-height:44px;background:#315e62;color:#fff2c7;border:1px solid #8ca989;font:12px var(--mono);cursor:pointer}#gamePicker #waitForFriend:hover{background:#4f7772}#gamePicker #waitForFriend:focus-visible{outline:2px solid #f2cc7a;outline-offset:3px}

/* Keep the hand visible and protect all board edges from display cutouts. */
#practiceBoard.manual-board .manual-pile{border:0!important;box-shadow:none!important;background:transparent!important;border-radius:0!important}
.quantity-choices{display:flex;flex-wrap:wrap;gap:10px;padding:12px 0}.quantity-choices button{min-width:48px;min-height:48px;background:#315e62;color:#fff2c7;border:1px solid #8ca989;font-size:18px}
#practiceBoard.manual-board .table-prompts>.battle-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px}
#practiceBoard.manual-board .battle-controls h3{font-size:12px}.battle-controls>p,.battle-controls>small{margin:0!important;font-size:11px!important}.battle-controls .combat-power{display:flex;flex-wrap:wrap;align-items:center;gap:10px;flex:1 1 auto}.battle-controls>details{width:100%}
@media(max-width:700px),(max-height:550px){
 #practiceBoard.manual-board[open]{padding:max(6px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important;grid-template-rows:max-content max-content max-content minmax(300px,1fr) 92px!important;grid-template-areas:'tools' 'event' 'prompts' 'table' 'hand'!important;overflow-y:auto!important;overflow-x:hidden!important;align-content:stretch}
 #practiceBoard.manual-board>.duel-tools{padding-left:0!important;padding-right:44px!important}
 #practiceBoard.manual-board>.dialog-settings{right:max(8px,env(safe-area-inset-right))!important;top:max(6px,env(safe-area-inset-top))!important}
 #practiceBoard.manual-board>.duel-viewport{height:100%;min-height:300px;overflow:visible!important}
 #practiceBoard.manual-board .duel-table{height:100%;min-height:300px}
 #practiceBoard.manual-board>.practice-hand-title{display:none!important}
 #practiceBoard.manual-board>.practice-hand{display:flex!important;position:sticky;grid-area:hand!important;left:auto;right:auto;bottom:0;transform:none;width:100%;max-width:100%;height:92px;max-height:92px;box-sizing:border-box;background:linear-gradient(transparent,#102536 28%);z-index:17}
 #practiceBoard.manual-board>.table-prompts{max-height:100px;overflow-y:auto;overscroll-behavior:contain}
 #practiceBoard.manual-board .table-prompts button{min-height:36px;font-size:11px;padding:6px 10px}
}
@media(max-width:700px),(max-height:550px){
 #practiceBoard.manual-board>.practice-hand{position:relative;bottom:auto;background:transparent}
 #practiceBoard.manual-board .table-mobile-menu{display:block;position:relative;flex:none;z-index:22}
 #practiceBoard.manual-board .table-mobile-menu>summary{display:flex;align-items:center;min-height:36px;padding:0 12px;list-style:none;border:1px solid #7296a1;border-radius:14px;background:#244553;color:#fff0ca;cursor:pointer;font-size:11px}
 #practiceBoard.manual-board .table-mobile-menu::details-content{display:contents;content-visibility:visible}
 #practiceBoard.manual-board .table-mobile-menu>.table-menu-items{display:none}
 #practiceBoard.manual-board .table-mobile-menu[open]>.table-menu-items{display:flex;position:absolute;top:calc(100% + 4px);left:0;flex-direction:column;gap:6px;width:220px;max-height:65dvh;overflow:auto;padding:10px;background:#142b3b;border:1px solid #7b929b;border-radius:16px;box-shadow:0 10px 22px #0008}
 #practiceBoard.manual-board .table-menu-items button{width:100%;min-height:44px!important}
}
@media(orientation:landscape) and (max-height:550px){
 #practiceBoard.manual-board[open]{grid-template-rows:max-content max-content max-content minmax(250px,1fr) 82px!important}
 #practiceBoard.manual-board>.duel-viewport,#practiceBoard.manual-board .duel-table{min-height:250px}
 #practiceBoard.manual-board>.practice-hand{height:82px;max-height:82px;padding-top:14px!important}
}

/* Explicit effect choices retain the platform theme and a visible selection. */
.battle-controls .effect-choice[aria-pressed=true]{border-color:#ffdc86;background:#41636b;box-shadow:0 0 0 2px #ffdc8655}
.battle-controls .effect-choice:disabled{opacity:.55}

/* Stable, wide playmats. Card counts never change field height or card size.
   The viewport scrolls; the hand is an independent overlay, not a grid row. */
#practiceBoard.manual-board[open]{--mat-height:252px;--field-card:80px;display:grid;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:max-content max-content max-content minmax(0,1fr)!important;grid-template-areas:'tools' 'event' 'prompts' 'table'!important;width:100%!important;max-width:100%!important;height:100dvh;max-height:100dvh;padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))!important;overflow:hidden!important;gap:4px}
#practiceBoard.manual-board>.duel-viewport{height:100%!important;min-height:0!important;min-width:0;overflow:auto!important;overscroll-behavior:contain;touch-action:pan-x pan-y;padding-bottom:104px;box-sizing:border-box}
#practiceBoard.manual-board .duel-table{width:100%!important;min-width:760px!important;height:auto!important;min-height:0!important;display:grid;grid-template-rows:repeat(2,var(--mat-height))!important;gap:8px;padding:0!important}
#practiceBoard.manual-board .duel-side{height:var(--mat-height);min-height:0;min-width:0}
#practiceBoard.manual-board .duel-side .duel-mat{height:100%!important;min-height:0!important;grid-template-columns:84px 84px 84px minmax(0,1fr) clamp(128px,14vw,190px)!important;grid-template-rows:52px 52px 24px 92px!important;grid-template-areas:'zenergy leader unison battle deck' 'zdeck leader unison battle deck' 'life life combo combo drop' 'life life energy energy drop'!important;gap:3px!important;padding:4px 4px 17px!important}
#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-columns:clamp(128px,14vw,190px) minmax(0,1fr) 84px 84px 84px!important;grid-template-rows:92px 24px 52px 52px!important;grid-template-areas:'deck energy energy life life' 'deck combo combo life life' 'drop battle unison leader zdeck' 'drop battle unison leader zenergy'!important}
#practiceBoard.manual-board .duel-zone{min-width:0;min-height:0;padding:18px 4px 3px!important;box-sizing:border-box;overflow:visible}
#practiceBoard.manual-board .duel-zone h4{font-size:10px!important;line-height:13px;top:2px;left:4px;max-width:calc(100% - 24px)}
#practiceBoard.manual-board .zone-count,#practiceBoard.manual-board .dz-life .zone-count{font-size:12px!important;line-height:15px;top:1px;right:2px;min-width:18px}
#practiceBoard.manual-board .duel-card-row{container-type:normal!important;display:flex!important;flex-wrap:nowrap!important;justify-content:flex-start!important;align-items:center;gap:10px!important;height:100%!important;min-height:0;padding:2px 8px!important;box-sizing:border-box;overflow:auto!important;touch-action:pan-x;scrollbar-width:thin}
#practiceBoard.manual-board .duel-card-row .duel-face{height:var(--field-card)!important;width:calc(var(--field-card)*.714)!important;min-width:calc(var(--field-card)*.714)!important;max-width:none!important;max-height:none!important;flex:0 0 auto!important;margin:0!important}
#practiceBoard.manual-board .dz-energy{--field-card:64px}
#practiceBoard.manual-board .dz-energy .duel-card-row{justify-content:safe center!important}
#practiceBoard.manual-board .dz-zenergy{--field-card:29px}
#practiceBoard.manual-board .dz-zenergy .duel-card-row{gap:4px!important;padding:0!important}
#practiceBoard.manual-board .dz-combo{padding:0 3px!important;z-index:4}
#practiceBoard.manual-board .dz-combo .duel-card-row{overflow:visible!important;justify-content:center!important;gap:4px!important;pointer-events:none}
#practiceBoard.manual-board .dz-combo .duel-face{height:58px!important;width:41px!important;min-width:41px!important;pointer-events:auto}
#practiceBoard.manual-board .dz-leader>.duel-face{height:80px!important;width:57px!important;max-height:none!important;margin:auto}
#practiceBoard.manual-board .energy-marker-card{height:64px!important;min-height:64px;width:46px;flex-shrink:0}
#practiceBoard.manual-board .manual-pile{height:100%;min-height:0!important}
#practiceBoard.manual-board .manual-pile .pile-card{max-height:100%;height:64px;width:46px}
#practiceBoard.manual-board .manual-pile.life-pairs{container-type:normal;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;overflow:hidden}
#practiceBoard.manual-board .life-pairs .pile-card{height:40px!important;width:28px!important;max-height:100%!important;justify-self:center}
#practiceBoard.manual-board .dz-zdeck .pile-card{height:27px;width:19px}
#practiceBoard.manual-board .duel-discard{min-height:0;gap:3px}
#practiceBoard.manual-board .duel-discard>.duel-zone{padding-top:18px!important}
#practiceBoard.manual-board .duel-discard .pile-card{height:36px;width:26px}
#practiceBoard.manual-board .field-turn-label{bottom:1px;font-size:11px!important;line-height:14px}
#practiceBoard.manual-board>.practice-hand-title{display:none!important}
#practiceBoard.manual-board>.practice-hand{display:flex!important;position:absolute!important;grid-area:auto!important;left:50%!important;right:auto!important;bottom:max(6px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;width:max-content!important;max-width:calc(100% - 32px)!important;height:116px!important;max-height:116px!important;min-height:0;box-sizing:border-box;padding:25px 12px 6px!important;gap:16px!important;overflow-x:auto!important;overflow-y:hidden!important;justify-content:safe center;align-items:flex-end;background:linear-gradient(transparent,#102536c9);border:0;box-shadow:none;z-index:19;touch-action:pan-x;scrollbar-width:thin}
#practiceBoard.manual-board>.practice-hand .duel-face{height:80px!important;width:57px!important;min-width:57px!important;flex:0 0 57px!important;transform-origin:center bottom}
#practiceBoard.manual-board>.table-prompts{max-height:110px;overflow:auto}
@media(max-height:550px){
 #practiceBoard.manual-board[open]{--mat-height:224px;--field-card:68px}
 #practiceBoard.manual-board .duel-side .duel-mat{grid-template-rows:46px 46px 20px 76px!important}
 #practiceBoard.manual-board .enemy-side .duel-mat{grid-template-rows:76px 20px 46px 46px!important}
 #practiceBoard.manual-board .dz-energy{--field-card:50px}
 #practiceBoard.manual-board .dz-zenergy{--field-card:23px}
 #practiceBoard.manual-board .dz-leader>.duel-face{height:68px!important;width:49px!important}
 #practiceBoard.manual-board .energy-marker-card{height:50px!important;min-height:50px;width:36px}
 #practiceBoard.manual-board .life-pairs .pile-card{height:32px!important;width:23px!important}
 #practiceBoard.manual-board>.practice-hand{height:100px!important}
 #practiceBoard.manual-board>.practice-hand .duel-face{height:66px!important;width:47px!important;min-width:47px!important;flex-basis:47px!important}
}
#practiceBoard.manual-board .duel-card-row{overflow-y:hidden!important;padding:0 8px!important}
#practiceBoard.manual-board .duel-card-row::-webkit-scrollbar{height:4px;width:4px}
#practiceBoard.manual-board .duel-card-row::-webkit-scrollbar-thumb{background:#648995;border-radius:4px}
#practiceBoard.manual-board .table-prompts>.battle-controls{padding:3px 6px;gap:5px;align-items:center}
#practiceBoard.manual-board .battle-controls>details:not([open]){width:auto;flex:0 1 auto}
#practiceBoard.manual-board .battle-controls>details[open]{width:100%}
#practiceBoard.manual-board .battle-controls>button{margin:0;min-height:36px;padding:5px 9px}

/* Shared ability announcements: Auto is informational; Active Main has a resolution. */
.effect-notice.effect-auto{background:#103d6bf5;border-color:#62bcff;box-shadow:0 8px 35px #000b,0 0 20px #2196f344}
.effect-notice.effect-auto p{color:#bfe5ff}
.effect-notice.effect-auto button{background:#17548a;color:#e6f4ff;border:1px solid #62bcff}
.effect-notice.effect-main{background:#51420df5;border-color:#ffdc48;box-shadow:0 8px 35px #000b,0 0 20px #ffdc4844}
.effect-notice.effect-main p{color:#fff09b}
.effect-notice.effect-main button{background:#6b5716;color:#fff5bc;border:1px solid #ffdc48}
#practiceBoard.manual-board .duel-discard h4{max-width:calc(100% - 25px);font-size:10px!important}
.effect-notice{box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}
.effect-notice p{white-space:normal;overflow-wrap:anywhere}

/* Full-Deck tools and visible return from zone inspection. */
.manual-inspector.deck-options[open]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(580px,94vw);box-sizing:border-box}
.manual-inspector.deck-options>h2{grid-column:1/-1;margin:4px 0 10px}
.manual-inspector.deck-options>.inspector-close{grid-column:1/-1;justify-self:end}
.manual-inspector.deck-options>button:not(.inspector-close){min-height:64px;padding:12px;white-space:normal;margin:0}
#practiceBoard.manual-board>.practice-hand>.hand-return{position:sticky;left:0;flex:0 0 130px;align-self:center;white-space:normal;min-height:48px;z-index:30;background:#214a62;color:#fff4c9;border:2px solid #e0c477;border-radius:9px;padding:8px}

/* Room actions are the primary choices immediately below the logo. */
#queueDialog .lobby-registration>button:not(.background-search){flex:1 1 160px;min-height:72px;font:700 21px var(--sans);padding:20px}
#queueDialog #queueMessage:empty{display:none}
#queueDialog .lobby-registration{margin-top:8px}
.waiting-table{width:100%;border-collapse:collapse;text-align:left;font:14px var(--sans)}
.waiting-table th,.waiting-table td{padding:12px 6px;border-bottom:1px solid #426778;overflow-wrap:anywhere}
.waiting-table th{color:#edcf8c}.waiting-table td:first-child{max-width:160px}
#queueDialog .waiting-table button,#queueDialog .refresh-rooms{min-height:44px;padding:10px 14px;background:#315e62;color:#fff2c7;border:1px solid #8ca989;border-radius:8px;font:600 15px var(--sans)}
/* Keep consent outside the scrolling prompts and above the playmat and hand. */
#practiceBoard.manual-board>.view-consent{position:fixed;grid-area:auto;z-index:60;inset:auto;top:max(72px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 100px);overflow:auto;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:18px;border-radius:12px;pointer-events:auto}
#practiceBoard.manual-board>.view-consent>span{flex-basis:100%}
#practiceBoard.manual-board>.view-consent button{min-height:48px;padding:12px 16px;font-size:16px}

#queueDialog .resume-match{display:grid;gap:12px;width:100%}#queueDialog .resume-match button{min-height:56px;font:600 17px var(--sans);white-space:normal}

/* Initial hands stay in front of the playmat until both players confirm. */
.initial-hand-dialog{width:min(1420px,96vw);max-height:94dvh;padding:clamp(16px,3vw,36px);text-align:center;box-sizing:border-box}
.initial-hand-dialog::backdrop{background:#061421eb;backdrop-filter:blur(5px)}
.initial-hand-dialog h2{font:800 clamp(32px,5vw,64px)/1.1 var(--sans);color:#ffe5a6;margin:8px 0 24px}
.initial-hand-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(6px,1vw,16px)}
.initial-hand-cards figure{margin:0;min-width:0}.initial-hand-cards img{display:block;width:100%;max-height:58dvh;object-fit:contain;border-radius:8px}
.initial-hand-dialog p{font:16px/1.5 var(--sans)}
.initial-hand-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:20px}
.initial-hand-actions button,.initial-hand-dialog>button{min-height:52px;padding:14px 22px;background:#315e62;color:#fff2c7;border:1px solid #b4bd91;border-radius:10px;font:700 18px var(--sans)}
#practiceBoard.manual-board[data-initial-hand=true]>.practice-hand,#practiceBoard.manual-board[data-initial-hand=true]>.practice-hand-title{visibility:hidden}
@media(max-width:700px){.initial-hand-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.initial-hand-cards img{max-height:28dvh}.initial-hand-dialog h2{margin-bottom:14px}.initial-hand-actions{gap:10px;margin-top:10px}.initial-hand-actions button{flex:1 1 220px;font-size:16px}}

/* Both seats show Deck above Drop; removed cards use a compact viewer below. */
#practiceBoard.manual-board .duel-discard{grid-template-rows:minmax(0,1fr) 44px;gap:3px}
#practiceBoard.manual-board .duel-discard>.dz-drop{grid-area:auto;min-height:0}
#practiceBoard.manual-board .duel-discard .manual-pile .pile-card{height:min(64px,100%);width:auto;aspect-ratio:5/7;max-width:95%}
#practiceBoard.manual-board .duel-discard>.view-removed{display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;height:44px;width:100%;padding:4px;background:#1c3b4a;color:#f5e5b5;border:1px solid #648a91;border-radius:6px;font:600 11px/1.2 var(--sans);white-space:normal}
.view-removed .removed-eye{display:flex;flex-shrink:0}.view-removed .removed-count{min-width:18px;padding:2px 4px;background:#102936;border-radius:4px;font-size:12px}

#practiceBoard.manual-board .pending-unison{position:relative;flex:0 0 57px;width:57px;height:80px;margin:0;border:2px dashed #f2cc7a;border-radius:5px;box-sizing:border-box;opacity:.85}
.pending-unison img{display:block;width:100%;height:100%;object-fit:contain}.pending-unison figcaption{position:absolute;left:-2px;right:-2px;bottom:0;background:#102936ed;color:#ffe4a1;padding:3px 1px;font:700 9px/1.15 var(--sans);text-align:center}

#practiceBoard.manual-board>.auto-resolution{position:fixed;z-index:65;top:60px;right:12px;width:min(340px,calc(100vw - 24px));max-height:38dvh;overflow:auto;box-sizing:border-box;padding:14px;background:#103d6bf5;color:#e6f4ff;border:2px solid #62bcff;border-radius:12px;box-shadow:0 8px 24px #0008}#practiceBoard .auto-resolution p{font-size:13px;color:#d4ecff}.auto-resolution button{min-height:44px;padding:10px 16px;background:#17548a;color:#fff;border:1px solid #62bcff;border-radius:8px}

/* Persistent skill guidance and eligible effect targets. */
.resolution-heading{display:flex;align-items:flex-start;gap:10px}.resolution-heading>img{width:64px;height:90px;object-fit:contain;flex:none}.resolution-heading>div{min-width:0}.resolution-status{font-weight:700;color:#ffe18a!important}.resolution-next{display:block;margin:8px 0;line-height:1.4}.effect-choice{display:inline-flex;flex-direction:column;align-items:center;gap:6px;max-width:150px;vertical-align:top}.effect-choice img{width:94px;height:132px;object-fit:contain}.effect-choice[aria-pressed="true"]{outline:3px solid #ffcf55;background:#40512c}.effect-selection-count{font-weight:700}#practiceBoard .auto-resolution button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:600px){#practiceBoard.manual-board>.auto-resolution{top:48px;right:6px;width:min(290px,calc(100vw - 12px));max-height:30dvh;padding:9px}.resolution-heading>img{width:44px;height:62px}.effect-choice{max-width:115px}.effect-choice img{width:76px;height:106px}}

/* Icon-led deck menu and central, non-blocking combat prompts. */
.manual-inspector.deck-options>button.deck-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:112px;border-radius:16px;background:linear-gradient(145deg,#284f65,#152e40);border:1px solid #7398a8;box-shadow:0 5px 12px #0003;font-size:15px}.deck-action svg{width:38px;height:38px;color:#f4d58a}.deck-action:disabled{opacity:.4}.deck-action:hover:not(:disabled){background:#325e72;border-color:#ffe3a0}
#practiceBoard.manual-board>.table-prompts.combat-prompt{position:fixed;z-index:60;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,88vw);max-height:38dvh;overflow:auto;grid-area:auto;box-shadow:0 12px 45px #0008;border-radius:18px}
#practiceBoard.manual-board .combat-prompt>.battle-controls{justify-content:center;padding:14px;gap:9px;background:linear-gradient(145deg,#183a4af5,#0d202ff5);border:1px solid #b9cbd788;border-radius:18px;text-align:center}#practiceBoard.manual-board .combat-prompt .battle-controls>button{min-height:44px;border-radius:11px;padding:10px 14px}#practiceBoard .combat-prompt h3{width:100%;font-size:18px}.combat-prompt .battle-controls>p{font-size:13px!important}
#practiceBoard .duel-face.recent-card{outline:none;box-shadow:0 0 0 1px #b8e8e5,0 0 14px #8de0d33b;border-radius:7px;animation:card-soft-glow 1.4s ease-out}
#practiceBoard>.effect-notice.effect-banner{position:fixed;inset:auto;left:50%;top:38%;transform:translate(-50%,-50%);z-index:70;width:min(580px,90vw);max-width:none;padding:22px 18px;border:1px solid #b1d9e980;border-radius:18px;background:linear-gradient(110deg,#102435ee,#234b5bef,#102435ee);box-shadow:0 14px 48px #0007;text-align:center;pointer-events:none;animation:activation-banner 1.8s both;overflow:hidden}
.effect-banner strong{display:block;font:700 clamp(18px,3.3vw,30px)/1.2 var(--sans);letter-spacing:.08em;color:#f3e5bd}.effect-banner small{display:block;margin-top:8px;color:#d1e5ed;font:14px var(--sans)}
@keyframes activation-banner{0%{opacity:0;translate:0 8px}15%,72%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -5px}}@keyframes card-soft-glow{from{box-shadow:0 0 0 1px #e0fff1,0 0 22px #8de0d366}to{box-shadow:0 0 0 1px #b8e8e5,0 0 14px #8de0d33b}}
@media(prefers-reduced-motion:reduce){#practiceBoard>.effect-banner,#practiceBoard .duel-face.recent-card{animation:none}}
#practiceBoard.manual-board .combat-prompt>.battle-controls{color:#e5edf3;font-family:var(--sans,Arial,sans-serif)}.manual-inspector.deck-options{border:1px solid #a8c1cc;border-radius:20px;box-shadow:0 18px 60px #0009}.manual-inspector.deck-options .deck-action{font-family:var(--sans,Arial,sans-serif)}

/* Pixel social cards: compact labels, consistent icons and semantic colors. */
#socialDialog{width:min(680px,94vw);border:2px solid #77969f;border-radius:18px;background:linear-gradient(145deg,#182f43,#102334);color:#e5edf1;box-shadow:0 20px 70px #0008}#socialDialog h2{color:#ffe0a0}#socialDialog h3{color:#9edbce;font-size:15px;border-top:1px solid #7897a333;padding-top:16px}#socialDialog .friend-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px;margin:10px 0;border:1px solid #75929f55;border-radius:12px;background:#25405266}#socialDialog .friend-row>strong{flex:1 1 140px;font-size:16px}#socialDialog .friend-row>small{flex-basis:100%;font-size:12px}#socialDialog .friend-row>small:before{content:'';display:inline-block;width:7px;height:7px;background:#84939e;margin-right:7px;box-shadow:0 0 0 2px #ffffff11}#socialDialog [data-presence=active]:before{background:#6ee0b3!important}#socialDialog [data-presence=away]:before{background:#f1ca78!important}#socialDialog .social-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;margin:4px;border:1px solid #7296b1;border-radius:10px;background:#284963;color:#e0f3ff;transition:background .15s,transform .15s}#socialDialog .social-action svg{width:22px;height:22px;flex:none;shape-rendering:crispEdges}#socialDialog .social-action:hover{background:#39637f;transform:translateY(-1px)}#socialDialog .social-action:focus-visible{outline:3px solid #ffe0a0;outline-offset:2px}#socialDialog [data-tone=accept],#socialDialog [data-tone=invite]{background:#245449;border-color:#72c6aa;color:#ceffe7}#socialDialog [data-tone=danger]{background:#4b3343;border-color:#ad778c;color:#ffd6df}#socialDialog [data-tone=style]{background:#51415d;border-color:#ba95c9;color:#f6dcff}#socialDialog [data-tone=decks]{background:#554c32;border-color:#baa56d;color:#fff0b8}#friendSearch{min-height:44px;border:1px solid #7498a8;border-radius:10px;background:#0e2233;color:#f1f5e8;padding:10px;width:min(320px,65%);box-sizing:border-box}#socialDialog [role=status]{padding:10px;border-radius:8px;background:#83bfb31a;color:#b8e5dc}@media(max-width:480px){#socialDialog{padding:16px}.friend-row .social-action{flex:1;margin:0}#socialDialog .friend-row>strong{flex-basis:100%}}@media(prefers-reduced-motion:reduce){#socialDialog .social-action{transition:none;transform:none}}
.pixel-action-art{display:inline-block;flex:none;width:56px;height:56px;background-image:url('assets/ui/actions-dbs-v2.webp');background-size:400% 400%;background-position:var(--art-x) var(--art-y);image-rendering:pixelated;border-radius:8px;vertical-align:middle;pointer-events:none}.deck-action .pixel-action-art{width:76px;height:76px}.illustrated-action{display:inline-flex;align-items:center;justify-content:center;gap:8px}.illustrated-action .pixel-action-art{width:38px;height:38px}.effect-banner .pixel-action-art{width:80px;height:80px;margin-bottom:10px}#socialDialog .pixel-action-art{width:40px;height:40px}#socialDialog .social-action{padding:6px 12px}#practiceBoard .combat-prompt .illustrated-action{display:inline-flex}

/* Wider battle lane with less vertical footprint; scroll rather than shrink cards. */
#practiceBoard.manual-board[open]{--mat-height:224px;--field-card:72px}
#practiceBoard.manual-board .duel-table{min-width:800px!important;gap:6px}
#practiceBoard.manual-board .duel-side .duel-mat{grid-template-columns:64px 68px 68px minmax(260px,1fr) clamp(100px,10vw,140px)!important;grid-template-rows:48px 48px 22px 76px!important;padding:3px 3px 15px!important}
#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-columns:clamp(100px,10vw,140px) minmax(260px,1fr) 68px 68px 64px!important;grid-template-rows:76px 22px 48px 48px!important}
#practiceBoard.manual-board .dz-energy{--field-card:50px}#practiceBoard.manual-board .dz-leader>.duel-face{height:72px!important;width:51px!important}#practiceBoard.manual-board .life-pairs .pile-card{height:32px!important;width:23px!important}
#practiceBoard.manual-board .energy-marker-card{height:50px!important;min-height:50px;width:36px}#practiceBoard.manual-board .pending-unison{height:72px;width:51px;flex-basis:51px}
#practiceBoard.manual-board .zone-switch{flex:0 0 100px;align-self:center;min-height:44px;background:#28495d;color:#f6e7bf;border:1px solid #8aa9b4;border-radius:9px;padding:8px}
@media(max-width:600px){#practiceBoard.manual-board .duel-table{min-width:740px!important}#practiceBoard.manual-board .duel-side .duel-mat{grid-template-columns:60px 64px 64px minmax(240px,1fr) 100px!important}#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-columns:100px minmax(240px,1fr) 64px 64px 60px!important}}
/* User-controlled width and height; changes stay local to this device. */
#practiceBoard.manual-board[open]{--mat-height:300px;--table-width:90%}
#practiceBoard.manual-board .duel-table{width:var(--table-width)!important;margin:0 auto!important}
#practiceBoard.manual-board .duel-side .duel-mat{grid-template-rows:minmax(48px,1fr) minmax(48px,1fr) 22px minmax(76px,1.5fr)!important}
#practiceBoard.manual-board .enemy-side .duel-mat{grid-template-rows:minmax(76px,1.5fr) 22px minmax(48px,1fr) minmax(48px,1fr)!important}
.toolbar-pixel{display:inline-block;flex:none;width:36px;height:36px;background:url('assets/ui/toolbar-dbs.webp');background-size:300% 200%;background-position:var(--tool-x) var(--tool-y);image-rendering:pixelated;border-radius:7px;vertical-align:middle;margin-right:5px}
#practiceBoard .duel-tools button:has(.toolbar-pixel){display:inline-flex;align-items:center;min-height:44px;font-size:11px}
#practiceBoard .request-hand>.cards-icon{display:none}
.table-size-editor{position:fixed;inset:70px 12px auto auto;margin:0;width:min(350px,90vw);padding:18px;background:#153044f5;border:1px solid #9dc9d1;border-radius:14px}.table-size-editor::backdrop{background:transparent;backdrop-filter:none}.table-size-editor label{display:block;margin:16px 0;color:#f3e5bc}.table-size-editor input{display:block;width:100%;min-height:44px}.table-size-editor output{display:block;color:#a8e6d5}
#practiceBoard .duel-face.effect-target{outline:3px solid #ffbf6b!important;box-shadow:0 0 0 5px #e7763d55!important}#practiceBoard .duel-face.effect-target:after{content:'OBJETIVO';position:absolute;bottom:0;left:0;right:0;background:#382514e8;color:#ffe1a4;font:700 8px sans-serif;text-align:center;padding:3px 0}
dialog.manual-inspector.table-size-editor{box-sizing:border-box;min-width:0;overflow-x:hidden}dialog.manual-inspector.table-size-editor label{min-width:0;max-width:100%}dialog.manual-inspector.table-size-editor input[type=range]{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box;padding:0;margin:8px 0}#practiceBoard .duel-tools button:has(.toolbar-pixel){color:#f1e6c7}
dialog.manual-inspector.table-size-editor>.inspector-close{float:none;display:block;margin:0 0 8px auto;min-width:0;max-width:100%}dialog.manual-inspector.table-size-editor>h2{clear:both;font-size:20px;margin:8px 0;white-space:normal}

/* Keep the playmat clickable behind central announcements and skill status. */
#practiceBoard.manual-board>.table-prompts.combat-prompt{pointer-events:none}
#practiceBoard.manual-board .combat-prompt button,#practiceBoard.manual-board .combat-prompt select,#practiceBoard.manual-board .combat-prompt input,#practiceBoard.manual-board .combat-prompt summary{pointer-events:auto}
#practiceBoard.manual-board>.table-prompts.combat-prompt.manual-resolution-prompt{width:min(380px,80vw);max-height:24dvh}
#practiceBoard.manual-board .manual-resolution-prompt>.battle-controls{padding:8px 12px;gap:6px}
#practiceBoard.manual-board .manual-resolution-prompt .battle-controls>p{margin:0}

/* A visible finish action remains available throughout manual skill resolution. */
#practiceBoard.manual-board .battle-controls>button.finish-ability,#practiceBoard .auto-resolution button.finish-ability{background:#ffc83d;color:#211800;border:2px solid #fff2b2;box-shadow:0 0 0 3px #c96511,0 5px 18px #0008;font-weight:800;min-height:48px;padding:12px 20px}
#practiceBoard.manual-board .battle-controls>button.finish-ability:hover{background:#ffe082;transform:translateY(-1px)}
#practiceBoard .finish-ability:focus-visible{outline:3px solid white;outline-offset:5px}
.manual-inspector .marker-skill-choice{background:#243c66;color:#fff2c1;border:2px solid #efbd52;min-height:56px;font-weight:700;font-size:17px}
.manual-inspector .marker-skill-choice:disabled{opacity:.45}

/* Resolution lives above the opponent's mat, leaving the player's cards usable. */
#practiceBoard .enemy-side>.auto-resolution{position:relative;z-index:3;margin:0 auto 8px;padding:10px;width:min(640px,95%);box-sizing:border-box;background:#103d6bf5;color:#e6f4ff;border:2px solid #62bcff;border-radius:10px}
#practiceBoard .enemy-side>.auto-resolution .resolution-heading>img{width:40px;height:56px}
#practiceBoard .energy-marker-card{padding:0;overflow:hidden;border:0}#practiceBoard .energy-marker-card>img{width:100%;height:100%;object-fit:contain}
#practiceBoard .zone-inspection-tray{position:fixed;z-index:34;bottom:155px;left:5%;width:90%;max-height:180px;overflow:auto;background:#122c40f5;border:2px solid #66b4d8;border-radius:10px;padding:8px;box-sizing:border-box}
.inspection-zone-cards,.inspection-hand-cards{display:flex;gap:8px;overflow-x:auto;padding:8px}.inspection-zone-cards .duel-face{width:64px!important;height:90px!important;flex:0 0 64px!important}
.inspection-hand{border:2px dashed #73d5a2;padding:8px;margin:12px 0;background:#173d36}.inspection-hand img{width:65px;height:91px;object-fit:contain}.top-deck-picker .gesture-card{touch-action:none}.battle-target-label{font-weight:700;color:#ffe18a!important}
.top-deck-picker{width:min(1100px,94vw);max-height:94dvh;box-sizing:border-box;padding:16px;font-family:system-ui}
.top-deck-picker>.inspection-cards{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;max-height:44dvh;padding:6px;align-items:start}
.top-deck-picker>.inspection-cards article{flex:0 0 130px;width:130px;margin:0;text-align:center}
.top-deck-picker>.inspection-cards img{display:block;width:100%;height:min(25dvh,182px);object-fit:contain}
.top-deck-picker .inspection-hand{margin:8px 0;padding:6px}.top-deck-picker .inspection-hand h3{font-size:14px;margin:3px}.top-deck-picker .inspection-hand-cards{padding:4px}
.top-deck-picker>h2{margin:0 0 8px}.top-deck-picker>p{font-size:12px;margin:6px 0}.top-deck-picker .inspection-hand img{height:min(16dvh,110px);width:auto;min-width:60px}
@media(max-width:600px){.top-deck-picker{padding:10px}.top-deck-picker>.inspection-cards article{flex-basis:104px;width:104px}.top-deck-picker>.inspection-cards select{font-size:11px}.top-deck-picker button{padding:8px}}

#practiceBoard.manual-board .table-prompts.manual-resolution-prompt{display:none!important}
#practiceBoard .enemy-side>.auto-resolution{position:fixed;top:68px;right:18px;width:min(440px,calc(100vw - 36px));max-height:30dvh;overflow:auto;z-index:36;box-shadow:0 6px 22px #0008}
#practiceBoard .zone-inspection-tray{color:#e4f3ff}
/* Rival hand: illustrated control stays visible outside the mobile options menu. */
#practiceBoard.manual-board .duel-tools>.request-hand{order:-10;position:relative;isolation:isolate;display:flex;align-items:center;justify-content:flex-start;width:112px;min-width:112px;height:62px;min-height:62px;padding:2px 8px!important;background:linear-gradient(145deg,#173d58,#0b1d31);border:1px solid #d8b664;border-radius:14px!important;overflow:visible;box-shadow:inset 0 0 16px #55b5cf18}
#practiceBoard .request-hand .opponent-hand-art{display:block;width:57px;height:57px;object-fit:contain;filter:drop-shadow(0 2px 3px #0008);pointer-events:none}
.opponent-hand-fan{position:absolute;left:54px;top:10px;width:30px;height:28px;pointer-events:none}.opponent-hand-fan i{position:absolute;left:calc(var(--card-index)*2px);width:17px;height:24px;transform:rotate(var(--card-angle));transform-origin:50% 115%;border:1px solid #e9c371;border-radius:3px;background:linear-gradient(135deg,#245c86,#0d2949);box-shadow:0 1px 2px #0007}
#practiceBoard .request-hand .opponent-hand-count{position:absolute;right:5px;bottom:3px;min-width:28px;height:28px;border:1px solid #ffe4a3;border-radius:10px;background:#f0cb73;color:#152337;font:800 21px/28px system-ui;text-align:center;padding:0 3px;box-shadow:0 2px 5px #0008}
.hand-count-delta{position:absolute;right:8px;top:-5px;color:#a9ffdc;font:bold 17px system-ui;pointer-events:none;animation:hand-delta 1.5s both}.hand-lost .hand-count-delta{color:#ffd1a0}.hand-gained .opponent-hand-count,.hand-lost .opponent-hand-count{animation:hand-count-pop .55s ease-out}.hand-gained .opponent-hand-fan i{animation:hand-card-arrives .55s ease-out}.empty-hand .opponent-hand-art{opacity:.45;filter:grayscale(.7)}
#practiceBoard .enemy-side>.opponent-resolution-title{width:min(360px,calc(100vw - 36px));padding:10px 14px;max-height:none;pointer-events:none}.opponent-resolution-title strong,.opponent-resolution-title small{display:block}.opponent-resolution-title small{margin-top:4px;color:#c1d9e5}
#practiceBoard>.effect-notice.activity-banner{padding:14px 18px;animation:activity-banner 2.6s both}.activity-banner strong{font-size:clamp(14px,2.3vw,24px);letter-spacing:.03em}.activity-banner small{font-size:12px;line-height:1.35}
#practiceBoard>.effect-notice.awaken-banner{border:2px solid #ffdb79;background:linear-gradient(115deg,#172c49f5,#3e3671f5,#143a53f5);box-shadow:0 0 38px #eac26555,0 10px 48px #0009;animation:awaken-banner 3.2s both;overflow:hidden}.awaken-banner strong{font-size:clamp(28px,5vw,48px);color:#ffe5a0;text-shadow:0 2px 10px #c78b3266}.awaken-stage{display:block;color:#d5ecff;font:13px system-ui;margin-top:12px}
#practiceBoard .auto-resolution p{margin:4px 0}#practiceBoard .auto-resolution .resolution-next{margin:5px 0}#practiceBoard .auto-resolution .finish-ability{position:sticky;bottom:0}
@keyframes hand-count-pop{0%{transform:scale(1)}40%{transform:scale(1.25)}100%{transform:scale(1)}}@keyframes hand-card-arrives{from{translate:12px -12px;opacity:.2}to{translate:0 0;opacity:1}}@keyframes hand-delta{0%{opacity:0;translate:0 5px}20%,65%{opacity:1}100%{opacity:0;translate:0 -15px}}@keyframes activity-banner{0%{opacity:0;translate:0 8px}12%,80%{opacity:1;translate:0 0}100%{opacity:0}}@keyframes awaken-banner{0%{opacity:0;scale:.94}12%,82%{opacity:1;scale:1}100%{opacity:0;scale:1.02}}
@media(max-width:600px){#practiceBoard.manual-board .duel-tools>.request-hand{width:82px;min-width:82px;height:52px;min-height:52px}#practiceBoard .request-hand .opponent-hand-art{width:45px;height:45px}.opponent-hand-fan{left:36px;top:7px}#practiceBoard .request-hand .opponent-hand-count{font-size:18px;min-width:24px;height:25px;line-height:25px}}
@media(prefers-reduced-motion:reduce){.hand-gained .opponent-hand-count,.hand-lost .opponent-hand-count,.hand-gained .opponent-hand-fan i,.hand-count-delta,#practiceBoard>.effect-notice.awaken-banner,#practiceBoard>.effect-notice.activity-banner{animation:none}.hand-count-delta{display:none}}
#practiceBoard.manual-board>.effect-notice.effect-banner{white-space:normal;overflow-wrap:anywhere;box-sizing:border-box;font-family:system-ui}
#practiceBoard>.awaken-banner strong{font-family:system-ui;font-size:clamp(24px,4vw,40px);letter-spacing:.04em}

/* Illustrated profile atlas: six columns, neutral / speaking / hurt frames. */
.profile-portrait{display:inline-block;width:64px;height:64px;flex:none;border-radius:14px;background:#14283c var(--portrait-image,url('./assets/ui/profile-avatars-ai.png')) var(--portrait-x) var(--portrait-neutral)/var(--portrait-size,600% 600%);image-rendering:pixelated;box-shadow:0 0 0 2px #9dcbd947,0 5px 18px #0005}
.avatar-picker{border:1px solid #829da34d;border-radius:16px;margin:16px 0;padding:12px;min-width:0}.avatar-picker legend{font-weight:800;padding:0 8px}.avatar-picker-hint{font-size:12px;color:#9fb9c7;margin:0 0 12px}.avatar-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.avatar-choice{display:flex!important;flex-direction:column;align-items:center;gap:6px;padding:10px 5px!important;min-width:0;border:2px solid transparent!important;border-radius:12px!important;background:#14283c!important;color:#eef8ff!important;cursor:pointer}.avatar-choice span:not(.profile-portrait){font-size:11px;line-height:1.2}.avatar-choice small{font-size:10px;color:#9fb9c7}.avatar-choice[aria-pressed=true]{border-color:#ffd37c!important;background:#304454!important;box-shadow:0 0 0 1px #ffd37c}.avatar-choice:focus-visible{outline:3px solid #8ae6ff;outline-offset:2px}.avatar-choice:hover .profile-portrait{background-position:var(--portrait-x) var(--portrait-talk)}
.duel-cast{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-basis:100%;width:100%;padding:7px 12px;box-sizing:border-box;background:linear-gradient(90deg,#152d40,#121d2c,#30233c);border:1px solid #8ab1d338;border-radius:12px}.duel-persona{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.duel-persona:last-child{flex-direction:row-reverse;text-align:right}.duel-cast .profile-portrait{width:44px;height:44px;border-radius:10px}.persona-info{display:flex;flex-direction:column;min-width:0;gap:3px}.persona-name{color:#f4f8fc;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.persona-line{color:#a8c6d8;font-size:10px}.duel-versus{color:#ffd180;font-style:italic;font-size:19px}.duel-intro{margin:16px 0;padding:20px 12px;animation:portrait-enter .45s ease-out}.duel-intro .profile-portrait{width:80px;height:80px}.duel-intro .duel-persona{flex-direction:column;text-align:center}.duel-intro .persona-name{white-space:normal;overflow-wrap:anywhere}.duel-persona[data-emotion=talk] .profile-portrait{animation:portrait-talk .28s steps(1) infinite}.duel-persona[data-emotion=hurt] .profile-portrait{background-position:var(--portrait-x) var(--portrait-hurt);animation:portrait-hit .15s 4}.duel-persona[data-emotion=hurt] .persona-line{color:#ff9c99;font-weight:bold}
@keyframes portrait-talk{0%,100%{background-position:var(--portrait-x) var(--portrait-neutral)}50%{background-position:var(--portrait-x) var(--portrait-talk)}}@keyframes portrait-hit{0%,100%{transform:translateX(0)}30%{transform:translateX(-4px) rotate(-5deg)}70%{transform:translateX(4px) rotate(5deg)}}@keyframes portrait-enter{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@media(max-width:600px){.avatar-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.avatar-choice .profile-portrait{width:58px;height:58px}.duel-cast{padding:5px 7px;gap:7px}.duel-cast .profile-portrait{width:36px;height:36px}.duel-persona{gap:6px}.persona-name{font-size:11px}.persona-line{font-size:9px}.duel-intro .profile-portrait{width:72px;height:72px}}
@media(prefers-reduced-motion:reduce){.duel-intro,.duel-persona .profile-portrait{animation:none!important}.duel-persona[data-emotion=talk] .profile-portrait{background-position:var(--portrait-x) var(--portrait-talk)}}

.avatar-gallery{max-height:350px;overflow:auto;padding:3px;scrollbar-color:#82a9b9 #14283c}.avatar-choice[hidden]{display:none!important}.avatar-search{box-sizing:border-box;width:100%;margin-bottom:10px}.avatar-selected{font-size:12px;color:#ffd37c}
#updatesButton{position:relative;color:#ffe19c;display:inline-flex;align-items:center;justify-content:center}#updatesButton[data-unread=true]::after{content:'';position:absolute;right:4px;top:4px;width:6px;height:6px;background:#ff927e;border:2px solid #17323c}.updates-dialog{max-width:680px}.updates-list time{font-size:12px;color:#ffcf79;text-transform:uppercase;letter-spacing:.06em}.updates-list article{border-top:1px solid #7c9ba74d;padding:18px 0}.updates-list h3{font-size:19px;margin:10px 0}.updates-list ul{padding-left:20px}.updates-list li{font-size:13px;line-height:1.6;margin:12px 0;color:#cbdce2}.updates-list strong{color:#fff2cd}
.nimbus-arcade{max-width:760px;padding:22px!important;border:2px solid #dfac67;background:#112437}.nimbus-arcade h2{font-size:23px;margin:6px 0 14px;max-width:80%}.arcade-eyebrow{font-size:10px;letter-spacing:.14em;color:#f0c68c}.arcade-exit{float:right;margin-top:-45px;font-size:11px}.arcade-score{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:#d5ecec;font:bold 12px monospace;margin:14px 0}.arcade-screen{position:relative;border:3px solid #588c9e;border-radius:10px;overflow:hidden;background:#102a42}.arcade-screen canvas{display:block;width:100%;height:auto;image-rendering:pixelated;touch-action:none}.arcade-screen canvas:focus-visible{outline:3px solid #ffe184;outline-offset:-4px}.arcade-cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#091a2be8;text-align:center;padding:16px;gap:8px}.arcade-cover[hidden]{display:none}.arcade-cover h3{font-size:24px;color:#ffe2a0;margin:0}.arcade-cover p{max-width:350px;margin:4px 0}.arcade-start{background:#ebc77a!important;color:#172d3c!important;font-weight:bold}.arcade-controls{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.arcade-controls button{flex:1;font-size:12px;touch-action:manipulation}.arcade-help{min-height:36px;color:#c5e4ec}.arcade-footnote,.arcade-references{font-size:11px;color:#9bb5c3}.arcade-references a{display:block;margin:8px 0}.arcade-references summary{cursor:pointer}.arcade-exit:focus-visible,.arcade-controls button:focus-visible,.arcade-start:focus-visible{outline:3px solid #ffe184;outline-offset:3px}@media(max-width:600px){.nimbus-arcade{padding:12px!important;max-height:94dvh}.nimbus-arcade h2{max-width:none;font-size:18px}.arcade-exit{float:none;margin:0}.arcade-cover h3{font-size:17px}.arcade-cover p{font-size:11px}.arcade-cover{padding:8px;gap:3px}.arcade-score{font-size:10px}.arcade-controls button{font-size:10px;padding:6px}.arcade-help{font-size:11px!important}}
.nimbus-arcade{box-sizing:border-box;width:min(810px,calc(100% - 24px));max-height:94dvh}.updates-dialog{box-sizing:border-box}.nimbus-arcade .arcade-screen{max-width:100%}
.social-profile-header{display:flex;align-items:center;gap:14px;margin:18px 0 24px}.social-profile-header>strong{flex:1;min-width:0;overflow-wrap:anywhere;font-size:18px}.social-profile-header .social-action{margin-left:auto!important}.social-profile-header .profile-portrait{width:72px;height:72px}#friendSearchPanel{margin:20px 0;border:1px solid #7498a855;border-radius:12px;padding:12px;background:#1c384b}#friendSearchPanel summary{cursor:pointer;font-weight:bold;color:#d9f2ed;padding:5px}#friendSearchPanel .friend-search-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}#friendSearchPanel #friendSearch{flex:1;min-width:120px;width:auto}#friendSearchPanel [role=status]:empty{display:none}@media(max-width:480px){.social-profile-header{gap:9px}.social-profile-header .profile-portrait{width:54px;height:54px}.social-profile-header>strong{font-size:15px}.social-profile-header .social-action .pixel-action-art{width:26px!important;height:26px!important}}

.onboarding-appearance{display:grid;grid-template-columns:160px 1fr;gap:12px;align-items:center}.onboarding-appearance canvas{grid-row:span 2;height:190px}.onboarding-appearance select{width:100%}.onboarding-appearance input[type=color]{height:42px}.profile-onboarding{max-height:90dvh;overflow:auto}@media(max-width:420px){.onboarding-appearance{grid-template-columns:1fr}.onboarding-appearance canvas{justify-self:center}}

/* Fixed clothing choices for first-time profiles; native radio keyboard controls. */
.onboarding-appearance canvas{grid-row:span 3}.clothing-palette{min-width:0;margin:0;padding:8px 0;border:0}.clothing-palette legend{font-size:14px;font-weight:600;margin-bottom:7px}.clothing-swatches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.profile-onboarding .clothing-swatches label{position:relative;display:block;cursor:pointer}.profile-onboarding .clothing-swatches input[type=radio]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.clothing-swatches span{display:grid;place-items:center;height:32px;border-radius:7px;background:var(--swatch);border:2px solid rgba(255,255,255,.28);pointer-events:none}.clothing-swatches input:checked+span{border-color:#fff;box-shadow:0 0 0 2px #e5b655}.clothing-swatches input:checked+span:after{content:'✓';color:white;font-weight:900;text-shadow:0 1px 3px #000,1px 0 2px #000}.clothing-swatches input:focus-visible+span{outline:3px solid #8ce3ee;outline-offset:3px}@media(max-width:420px){.onboarding-appearance canvas{grid-row:auto}.clothing-swatches span{height:38px}}

#interact[hidden]{display:none!important}

.bug-report-dialog label{display:block;margin:12px 0}.bug-report-dialog textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:10px;font:inherit;resize:vertical}.bug-report-item{padding:12px 0;border-bottom:1px solid #819da0}.bug-report-item button,.bug-report-item select{margin:8px 8px 8px 0}

/* Keep the legacy fallback and intermediate sizing behind an opaque loading screen. */
#loading{background:#102d38;backdrop-filter:none}
.world-loading #scene,.world-loading #startScreen,.world-loading #hud,.world-loading #rotateNotice{visibility:hidden}
#scene{width:var(--app-width);height:var(--app-height);inset:0 auto auto 0}
#rotateNotice{top:max(80px,calc(env(safe-area-inset-top) + 60px))}
/* Keep combo controls above the drag path; every floating notice can be placed by the player. */
#practiceBoard.manual-board>.table-prompts.combat-prompt.combo-prompt{top:max(72px,16dvh);transform:translateX(-50%);width:min(560px,calc(100vw - 24px));max-height:38dvh}
#practiceBoard .combo-prompt .battle-controls{font-size:15px}
#practiceBoard .combo-prompt .battle-controls>p{font-size:15px!important}
#practiceBoard .combo-prompt .battle-controls button{font-size:15px;min-height:46px}
#practiceBoard .movable-overlay{box-sizing:border-box;max-width:calc(100vw - 16px);animation:none!important}
#practiceBoard .movable-overlay.overlay-positioned{position:fixed!important;inset:auto!important;left:var(--overlay-left)!important;top:var(--overlay-top)!important;transform:none!important;margin:0!important}
#practiceBoard .overlay-mover{display:flex;align-items:center;gap:8px;padding:4px 8px;background:#122e40f5;color:#dfedf4;border-radius:10px 10px 0 0;pointer-events:auto;font:12px/1.3 system-ui;letter-spacing:normal;text-align:left}
#practiceBoard .overlay-mover button{min-height:36px;min-width:36px;margin:0;border:1px solid #809ba9;border-radius:7px;background:#24495b;color:#fff;font:600 13px system-ui;padding:6px 10px;pointer-events:auto}
#practiceBoard .overlay-mover .overlay-drag-handle{cursor:grab;touch-action:none;user-select:none}
#practiceBoard [data-overlay-dragging] .overlay-drag-handle{cursor:grabbing}
#practiceBoard .overlay-mover span{flex:1;font-size:12px}
@media(pointer:coarse){#practiceBoard .overlay-mover button{min-height:44px;min-width:44px}#practiceBoard .combo-prompt .battle-controls small{font-size:12px}}
@media(max-height:500px){#practiceBoard.manual-board>.table-prompts.combat-prompt.combo-prompt{top:52px;max-height:46dvh}#practiceBoard .combo-prompt .battle-controls{padding:6px;gap:4px}}

.start-legal{position:absolute;bottom:max(8px,env(safe-area-inset-bottom));left:12px;right:12px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;padding:5px 10px;color:#fff5d9;background:#102c38df;font:12px/1.5 system-ui,sans-serif;pointer-events:auto;text-align:center}.start-legal button{background:none;border:0;text-decoration:underline;color:#f6d68c;min-height:32px;padding:4px 8px;font:inherit}.privacy-dialog{width:min(720px,calc(100vw - 24px));max-height:85dvh;overflow-y:auto;line-height:1.65}.privacy-dialog h3{margin-top:24px}.privacy-dialog a{color:#f6d68c;text-decoration:underline}.privacy-dialog p{overflow-wrap:anywhere}.danger-button{color:#ffe5df;background:#642d35;border:1px solid #d9978b;padding:12px;margin-top:12px;min-height:44px}.privacy-dialog form{display:grid;gap:12px}.privacy-dialog label{display:grid;gap:6px}.privacy-dialog input{min-width:0;width:100%;padding:10px}.privacy-dialog .deletion-status{color:#f6d68c}#deleteAccountDialog{z-index:30}@media(max-height:500px){.start-legal{font-size:10px;bottom:2px;padding:2px}#startScreen{padding-bottom:64px}}

/* Restore the previous large, central announcement instead of the compact blue title. */
#practiceBoard.manual-board .classic-announcement{position:fixed;inset:auto;left:50%;top:38%;transform:translate(-50%,-50%);z-index:70;width:min(580px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 100px);box-sizing:border-box;overflow:auto;margin:0;padding:22px 18px;border:2px solid #d9bf78;border-radius:18px;background:linear-gradient(110deg,#102435f5,#234b5bf5,#102435f5);box-shadow:0 14px 48px #0007,0 0 28px #eac26522;text-align:center;pointer-events:none;color:#f3e5bd;font-family:system-ui;white-space:normal;overflow-wrap:anywhere}
#practiceBoard.manual-board .classic-announcement.awaken-banner{border-color:#ffdb79;background:linear-gradient(115deg,#172c49f5,#3e3671f5,#143a53f5);box-shadow:0 0 38px #eac26555,0 10px 48px #0009}
#practiceBoard.manual-board .classic-announcement.effect-auto{border-color:#62bcff;background:linear-gradient(110deg,#102435f5,#174e79f5,#102435f5)}
#practiceBoard.manual-board .classic-announcement .announcement-title{display:block;font:700 clamp(26px,4vw,40px)/1.2 system-ui;letter-spacing:.04em;color:#ffe5a0;text-shadow:0 2px 10px #c78b3266}
#practiceBoard.manual-board .classic-announcement .announcement-subtitle{display:block;margin-top:10px;font:16px/1.4 system-ui;color:#d5ecff}
#practiceBoard.manual-board .classic-announcement .resolution-details{margin:12px 0;text-align:left;font:14px/1.5 system-ui;color:#e6f4ff}
#practiceBoard.manual-board .classic-announcement summary,#practiceBoard.manual-board .classic-announcement button{pointer-events:auto;cursor:pointer}
#practiceBoard.manual-board .classic-announcement summary{text-align:center;color:#c8e1ed;padding:6px}
#practiceBoard.manual-board .classic-announcement .resolution-heading{margin-top:10px}
#practiceBoard.manual-board .classic-announcement .overlay-mover{margin:-12px -8px 16px;background:transparent;padding:0;border-radius:0}
#practiceBoard.manual-board .classic-announcement .overlay-mover span{font:11px system-ui;color:#b5cad8}
#practiceBoard.manual-board .classic-announcement .overlay-reset{margin-left:auto}
@media(max-width:600px){#practiceBoard.manual-board .classic-announcement{padding:18px 14px}#practiceBoard.manual-board .classic-announcement .announcement-title{font-size:26px}#practiceBoard.manual-board .classic-announcement .announcement-subtitle{font-size:14px}}
@media(max-height:500px){#practiceBoard.manual-board .classic-announcement{top:42%;max-height:calc(100dvh - 72px);padding:14px}#practiceBoard.manual-board .classic-announcement .announcement-title{font-size:26px}}

#practiceBoard>.table-action-error{position:fixed;inset:auto 12px max(12px,env(safe-area-inset-bottom));z-index:95;width:fit-content;max-width:calc(100vw - 24px);margin:0 auto;padding:10px 16px;box-sizing:border-box;border:1px solid #efae89;border-radius:9px;background:#472d2df5;color:#fff3dc;font:14px/1.4 system-ui;pointer-events:none}.manual-inspector .table-action-error,.initial-hand-dialog .table-action-error,.hand-effect-dialog .table-action-error{color:#ffe0b6;white-space:normal;overflow-wrap:anywhere}
/* Narrow portrait screens need a separate row for turn actions, clear of Settings. */
@media(max-width:600px) and (orientation:portrait){
 #practiceBoard.manual-board>.duel-tools{padding-right:52px!important;box-sizing:border-box}
 #practiceBoard.manual-board .hand-turn-controls{flex:1 0 100%;width:100%;min-width:0}
 #practiceBoard.manual-board .hand-turn-controls>.practice-actions{width:100%;min-width:0;flex-wrap:wrap}
 #practiceBoard.manual-board .hand-turn-controls>.practice-actions button{flex:1 1 100px;min-width:0;white-space:normal;overflow-wrap:anywhere}
}

/* The 3D canvas keeps the existing game overlays and audio/settings controls. */
#scene{image-rendering:auto!important}
.world-bubble-3d{position:fixed;transform:translate(-50%,-100%);z-index:8;pointer-events:none;max-width:min(330px,80vw);padding:10px 15px;border-radius:16px;background:#fff3d7;color:#284336;box-shadow:0 3px 12px #102b3433;font:600 14px system-ui;text-align:center}
