/* A single viewport is the stage. Archives and dialogs scroll inside their frames. */
html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{overscroll-behavior:none}button{touch-action:manipulation}#app{isolation:isolate}.boot{height:100dvh}.modal-backdrop{padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.modal{overscroll-behavior:contain;max-height:92dvh}.viewport-fullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important}
.station-shell{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;display:block;background:#152536;color:#f3edda;overflow:hidden}.station-scenery{position:absolute;inset:0;z-index:-3;background:linear-gradient(90deg,#142c39df 0%,#19303bb8 39%,#22253a30 70%,#101d36a6 100%),url('/assets/world.webp') center/cover}.station-scenery:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 62% 32%,transparent 10%,#0c182d44 75%),linear-gradient(0deg,#0b1d2cec,transparent 44%,#1a273a66);box-shadow:inset 0 0 180px #07102188}.station-shell:before{content:"";position:absolute;inset:12px;border:1px solid #cfbc7d3b;pointer-events:none;z-index:1}.station-header{position:absolute;inset:max(22px,env(safe-area-inset-top)) max(38px,env(safe-area-inset-right)) auto max(38px,env(safe-area-inset-left));height:57px;display:flex;align-items:center;justify-content:space-between;z-index:5}.station-brand{display:flex;align-items:center;gap:16px;text-align:left;padding:0;background:transparent;color:#f4eddb}.station-sigil{font:40px serif;width:49px;height:49px;border:1px solid #d8c18a77;display:grid;place-items:center;box-shadow:0 0 22px #ccba8122;transform:rotate(-12deg)}.station-brand strong{font:26px 'SimSun',serif;letter-spacing:6px;display:block;text-shadow:0 2px 8px #0008}.station-brand small{display:block;font-size:7px;letter-spacing:4px;color:#c8bea7;margin-top:8px}.station-header-actions{display:flex;align-items:center;gap:12px}.station-account,.station-icon,.station-avatar{min-height:44px;color:#e8ddc3;background:#142b3b77;border:1px solid #cbbb8250;backdrop-filter:blur(7px);border-radius:3px}.station-account{padding:11px 17px;font-size:11px;letter-spacing:1px}.station-icon{font-size:24px;width:44px}.station-avatar{width:44px;border-radius:50%;font:17px serif}.station-character{position:absolute;right:-3%;bottom:0;width:65%;height:95%;z-index:-1;pointer-events:none}.station-character img{width:100%;height:100%;object-fit:cover;object-position:center 24%;mask-image:linear-gradient(90deg,transparent,#000 28%,#000 83%,transparent),linear-gradient(0deg,transparent,#000 24%);mask-composite:intersect;-webkit-mask-image:linear-gradient(90deg,transparent,#000 28%,#000 83%,transparent)}.station-character:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#102232f5 2%,transparent 42%)}.station-character>span{position:absolute;right:16%;bottom:18%;font-size:11px;letter-spacing:4px;color:#dfd1b1;writing-mode:vertical-rl;text-shadow:0 0 12px #000}.contract-desk{position:absolute;left:8.5%;top:23%;width:min(560px,43%);z-index:2}.desk-kicker{font-size:9px;letter-spacing:3px;color:#d0bb85;display:flex;align-items:center;gap:12px}.desk-kicker>span{width:34px;height:1px;background:#cdb67c}.contract-desk h1{font:clamp(27px,3.2vw,49px)/1.55 'SimSun',serif;letter-spacing:5px;margin-top:22px;color:#fbf3dd;text-shadow:0 3px 15px #091c33}.contract-desk>p{font-size:12px;line-height:2.1;color:#b9c7c5;margin:18px 0 25px;letter-spacing:1px}.departure-button{position:relative;display:flex;align-items:center;gap:20px;width:min(390px,100%);height:83px;padding:12px 23px;background:linear-gradient(110deg,#ebdfb9,#c7ad6c);color:#253849;border:1px solid #f4e9cb;border-radius:2px;box-shadow:0 5px 0 #7d6b4c,0 12px 28px #07172966,inset 0 0 0 5px #ddcc9c,inset 0 0 0 6px #9c895a66;text-align:left;transition:filter .2s,transform .2s}.departure-button:hover{filter:brightness(1.08);transform:translateY(-2px)}.departure-seal{font:41px serif;line-height:1}.departure-button strong{font:22px serif;letter-spacing:3px}.departure-button small{display:block;font-size:8px;letter-spacing:2px;margin-top:7px;color:#5e6b6e}.departure-button b{font-size:26px;font-weight:400;margin-left:auto}.desk-secondary{display:grid;grid-template-columns:1fr 1fr;gap:13px;max-width:480px;margin-top:24px}.desk-secondary>button{position:relative;display:grid;grid-template-columns:27px 1fr;align-items:center;text-align:left;background:#193642cb;color:#e7d9b7;border:1px solid #b6a37455;padding:15px 12px;box-shadow:inset 0 0 18px #6e8a8a13;min-height:70px;border-radius:2px}.desk-secondary>button>span{grid-row:span 2;font-size:23px;color:#9fbab1}.desk-secondary strong{font:14px serif;letter-spacing:2px}.desk-secondary small{font-size:8px;margin-top:7px;color:#9db1b2}.desk-secondary b{position:absolute;right:8px;top:12px;font-size:11px;font-weight:400}.desk-archive{display:flex;gap:0;margin-top:22px;max-width:490px}.desk-archive button{color:#c2c7b7;background:transparent;font-size:11px;padding:9px 17px;border-right:1px solid #b6a37444;white-space:nowrap;min-height:44px}.desk-archive button:first-child{padding-left:0}.desk-archive button:last-child{border:0}.desk-archive span{font:10px serif;color:#cbb987;margin-left:5px}.station-platform{position:absolute;bottom:45px;left:6%;right:6%;display:flex;gap:30px;align-items:center;border-top:1px solid #cdb67c40;padding-top:19px;color:#b9c3b7;z-index:3}.platform-marker{display:flex;align-items:center;gap:14px}.platform-marker>span{font:37px serif;color:#c5af76;border:1px solid #c5af7644;padding:2px 9px}.platform-marker strong{font:16px serif;letter-spacing:4px}.platform-marker small{display:block;font:6px system-ui;letter-spacing:3px;color:#8ba19f;margin-top:9px}.platform-profile{display:flex;gap:10px;align-items:center;background:transparent;color:#e0d8c2;text-align:left;border-left:1px solid #b6a37444;padding-left:28px}.platform-profile strong{font-size:11px;font-weight:400}.platform-profile small{display:block;font-size:8px;color:#8fa7a5;margin-top:7px}.station-platform>p{font:12px/1.8 serif;letter-spacing:2px;color:#8fa7a5;margin-left:auto}.platform-status{font-size:9px;color:#a9baac;letter-spacing:1px}.platform-status i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#8cc0a0;margin-right:8px;box-shadow:0 0 9px #a3c7a3}.station-version{position:absolute;bottom:17px;left:0;right:0;text-align:center;font-size:7px;letter-spacing:3px;color:#8ba19f;pointer-events:none}.station-window{position:absolute;top:103px;bottom:89px;left:max(5%,env(safe-area-inset-left));right:max(5%,env(safe-area-inset-right));margin:auto;max-width:1370px;background:#ece6d8f5;color:#273254;border:1px solid #d4be86;border-radius:5px;box-shadow:0 25px 95px #07101c88,inset 0 0 0 6px #c9b98844;overflow:hidden;backdrop-filter:blur(15px)}.station-window:before{content:"";position:absolute;inset:8px;border:1px solid #ae9c7266;pointer-events:none;z-index:2}.station-window-frame{position:absolute;inset:18px 8px 18px 18px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b6a37466 transparent;padding:12px 26px 20px 16px}.station-window .page{padding:0;animation:arrive .25s}.station-window .section-heading{margin-bottom:20px}.station-window .hero-select{max-width:900px;margin-inline:auto;gap:25px}.station-window .hero-choice{height:clamp(200px,29vh,330px)}.station-window .panel{background:#fffaf27d;border-color:#cfc4aa;box-shadow:0 4px 16px #27325408}.station-window .configuration{margin-bottom:0}.station-nav{position:absolute;bottom:39px;left:5%;right:5%;display:flex;align-items:center;justify-content:center;gap:5px;z-index:4}.station-nav button{background:#122a3a88;border:1px solid transparent;color:#c8ccbb;padding:12px 20px;min-height:44px;font-size:11px;border-radius:3px;letter-spacing:1px}.station-nav button.active{border-color:#bda469;background:#2c4750b8;color:#edd8a6}.station-nav button:hover{color:#fff0c9;background:#36535ca1}
.arena-fullscreen.battle-shell{position:fixed;inset:0;height:100dvh;width:100%;padding:0;min-height:0;overflow:hidden;background:#10272e;color:#f0e8d0}.arena-fullscreen:before{background:linear-gradient(#0f2636a6,#1e303b70),url('/assets/world.webp') center/cover!important;filter:saturate(.6);box-shadow:inset 0 0 160px #061820}.arena-fullscreen.dream:before{background:linear-gradient(#241d3ac9,#28243cb3),url('/assets/world.webp') center/cover!important}.arena-fullscreen .battle-header{position:absolute;top:env(safe-area-inset-top,0px);height:47px;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));padding:0;border:0;z-index:35;pointer-events:none}.battle-brand,.battle-header-tools{pointer-events:auto}.arena-fullscreen .battle-brand{gap:10px}.arena-fullscreen .battle-brand h1{font:15px serif;letter-spacing:4px}.arena-fullscreen .battle-brand small{font-size:7px;letter-spacing:2px;color:#94aaad}.arena-fullscreen .icon-btn{min-width:44px;width:44px;height:44px;min-height:44px;border:1px solid #b8a47744;background:#142f3f9c;border-radius:4px;color:#d7c8a4;font-size:22px}.battle-header-tools{display:flex;align-items:center;gap:10px;font-size:10px;color:#aebcb6}.turn-counter{letter-spacing:1px;margin-right:6px}.battle-scene{--unit-w:clamp(48px,min(9vw,13.8dvh),120px);--unit-h:calc(var(--unit-w)*1.25);--hero-w:clamp(57px,11.4dvh,113px);--hero-h:calc(var(--hero-w)*1.12);--hand-peek:clamp(42px,7.8dvh,87px);position:absolute;left:0;right:0;top:max(44px,env(safe-area-inset-top));bottom:env(safe-area-inset-bottom,0px);overflow:hidden;isolation:isolate;touch-action:manipulation}.table-material{position:absolute;inset:10px 2.5% 2%;z-index:-2;border-radius:49% 49% 40% 40%/20% 20% 25% 25%;background:radial-gradient(ellipse at center,#6a8e8538 0%,#3c575845 50%,#1b343aba 72%,#142934d9 91%),repeating-linear-gradient(5deg,#b6b09205 0,#b6b09205 1px,transparent 2px,transparent 10px);border:1px solid #b2a37959;box-shadow:inset 0 0 0 9px #18303fba,inset 0 0 0 10px #baa67e33,inset 0 0 70px #0b1b2f88,0 0 0 2px #0c243055,0 15px 65px #0715269c}.dream .table-material{background:radial-gradient(ellipse at center,#8771a12f 0%,#4c49606b 50%,#242c44d1 82%),repeating-linear-gradient(-8deg,#afa1d609 0,#afa1d609 1px,transparent 2px,transparent 13px)}.table-inlay{position:absolute;inset:8% 10%;border:1px solid #d6c18c25;border-radius:50%;transform:rotate(-2deg);box-shadow:0 0 0 20px #d6c18c04}.table-inlay:before,.table-inlay:after{content:"";position:absolute;inset:9%;border:1px solid #d6c18c15;transform:rotate(45deg);border-radius:22%}.table-inlay:after{transform:rotate(-45deg)}.table-meridian{position:absolute;left:8%;right:8%;top:44%;height:1px;background:linear-gradient(90deg,transparent,#cdbb8644 18%,#cdbb8699 45%,#cdbb8699 55%,#cdbb8644 82%,transparent);box-shadow:0 1px #0c243b}.arena-fullscreen .board-row{position:absolute;left:50%;width:auto;max-width:80%;padding:0;min-height:0;height:var(--unit-h);transform:translate(-50%,-50%);display:flex;gap:clamp(7px,1.1vw,19px);align-items:center;justify-content:center;background:transparent;z-index:6}.arena-fullscreen .board-row.enemy-row{top:28.5%}.arena-fullscreen .board-row.own-row{top:61%}.arena-fullscreen .board-row>div{flex:none}.arena-fullscreen .board-slot{height:var(--unit-h);width:var(--unit-w);max-width:none;border:1px solid #d5c18c20;border-radius:40% 40% 18% 18%;background:radial-gradient(ellipse,#b2a78005,transparent);color:#c1b48415;font:22px serif;box-shadow:inset 0 3px 7px #081f3026}.arena-fullscreen .board-slot span{opacity:.6}.arena-fullscreen .minion{height:var(--unit-h);width:var(--unit-w);flex:none;border-radius:42% 42% 15% 15%;border:2px solid #baa879;box-shadow:0 8px 4px #07152566,0 13px 19px #07182766,inset 0 0 0 2px #1b2f3a}.arena-fullscreen .minion img,.arena-fullscreen .minion:after{border-radius:40% 40% 13% 13%}.arena-fullscreen .minion img{filter:brightness(.95);object-position:50% 35%}.arena-fullscreen .minion:after{background:linear-gradient(transparent 35%,#15233388 62%,#102232ee 100%)}.arena-fullscreen .minion-name{bottom:25px;font-size:clamp(8px,.85vw,12px);text-shadow:0 2px 3px #000;letter-spacing:1px}.arena-fullscreen .minion-stats{bottom:-9px;left:-8px;right:-8px}.arena-fullscreen .minion-stats b{width:clamp(24px,3.7dvh,38px);height:clamp(24px,3.7dvh,38px);font-size:clamp(18px,2.9dvh,27px);border-width:2px;background:radial-gradient(circle at 35% 25%,#8f7948,#3f4338 72%);box-shadow:0 2px 4px #0008}.arena-fullscreen .minion-stats b.hp{background:radial-gradient(circle at 35% 25%,#b16c68,#623747 72%)}.arena-fullscreen .minion-tags{top:14%;right:-6px}.arena-fullscreen .minion-tags span{font-size:clamp(6px,.65vw,9px);padding:3px;border:1px solid #ae9c72;border-radius:3px;background:#193545ed}.arena-fullscreen .minion-detail{position:absolute;top:-15px;left:-13px;width:44px;height:44px;min-width:44px;min-height:44px;background:transparent;border:0;font-size:0;z-index:8}.arena-fullscreen .minion-detail:after{content:"i";position:absolute;inset:11px;border:1px solid #b8aa85;border-radius:50%;background:#273d4c;color:#e4d3a7;display:grid;place-items:center;font:11px serif}.arena-fullscreen .minion.has-shield:before{inset:-8px;border-radius:43% 43% 19% 19%;border:2px solid #f0d99eaa;box-shadow:0 0 16px #f3dfa744,inset 0 0 10px #f3dfa733}.arena-fullscreen .minion.can-attack{outline:1px solid #a4d7b8;box-shadow:0 0 0 3px #92cba355,0 0 21px #86b89a55,0 10px 15px #07182766}.arena-fullscreen .minion.legal-target,.arena-fullscreen .hero-token.legal-target{outline:2px dashed #f0df9e;filter:brightness(1.14);box-shadow:0 0 20px #d5c88b66}.arena-fullscreen .minion.selected{outline:3px solid #dfc98e;transform:translateY(-5px)}.hero-station{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;z-index:8;width:calc(var(--hero-w) + 70px)}.hero-station.enemy-hero{top:1.5%}.hero-station.own-hero{bottom:calc(var(--hand-peek) + 28px)}.hero-caption{font-size:11px;letter-spacing:2px;color:#e1d5b7;white-space:nowrap;margin-bottom:4px;text-shadow:0 2px 5px #051a2b}.hero-caption small{font-size:8px;letter-spacing:1px;color:#99b6b3;margin-left:5px}.arena-fullscreen .hero-token{position:relative;width:var(--hero-w);height:var(--hero-h);padding:0;border:0;border-radius:43% 43% 22% 22%;display:block;background:#29404a;box-shadow:0 7px 22px #06172c99;overflow:visible}.hero-token img{width:100%;height:100%;border-radius:41% 41% 20% 20%;object-position:50% 25%}.hero-frame{position:absolute;inset:-3px;border:3px solid #c7b380;border-radius:45% 45% 24% 24%;box-shadow:inset 0 0 0 2px #243b48,0 0 0 1px #3e554e,0 0 18px #adbb9344;pointer-events:none}.hero-frame:after{content:"◇";position:absolute;left:50%;top:-13px;transform:translateX(-50%);font:22px serif;color:#d6c087;text-shadow:0 2px #273d4b}.hero-health{position:absolute;bottom:-9px;right:-17px;width:clamp(32px,5.3dvh,49px);height:clamp(32px,5.3dvh,49px);background:radial-gradient(circle at 30% 20%,#b67875,#6b3c4a);border:2px solid #d2ae84;border-radius:48% 48% 42% 42%;font:clamp(20px,3.4dvh,31px)/1 serif;color:#ffe7d5;display:flex;align-items:center;justify-content:center;flex-direction:column;text-shadow:0 2px 3px #3b192c;box-shadow:0 4px 8px #0005}.hero-health small,.hero-armor small{font-size:7px;font-family:system-ui;letter-spacing:1px;margin-top:2px}.hero-armor{position:absolute;bottom:-3px;left:-19px;width:33px;height:35px;clip-path:polygon(50% 0,100% 19%,92% 75%,50% 100%,8% 75%,0 19%);background:#719391;color:#edf8e5;font:21px serif;display:grid;place-content:center;border:1px solid #adc3a9}.hero-armor small{display:block;font-size:6px}.arena-fullscreen .opponent-hand{position:absolute;left:50%;top:-30px;transform:translateX(-50%);display:flex;gap:4px;margin:0;z-index:2;max-width:40%;flex-wrap:nowrap}.arena-fullscreen .card-back{width:32px;height:43px;flex:none;border:1px solid #d6bd80aa;background:repeating-linear-gradient(45deg,#3d5460,#3d5460 4px,#253e51 4px,#253e51 8px);box-shadow:0 5px 6px #0005;transform:rotate(calc((var(--fan-index,0) - 3)*2deg))}.contract-mana{position:absolute;z-index:10;display:flex;align-items:center;gap:10px;left:calc(50% + var(--hero-w)*.8);color:#b8cebf}.contract-mana.enemy-mana{top:7.5%}.contract-mana.own-mana{bottom:calc(var(--hand-peek) + 52px)}.crystal-rack{display:flex;gap:3px;align-items:center;filter:drop-shadow(0 3px 3px #001b2c99)}.contract-crystal{display:block;width:clamp(13px,1.6vw,23px);height:clamp(22px,3.8dvh,34px)}.contract-crystal svg{width:100%;height:100%;overflow:visible}.crystal-body{fill:#70c3bd;stroke:#badcc5;stroke-width:1;filter:drop-shadow(0 0 3px #8cdfb777)}.contract-crystal:nth-child(even) .crystal-body{fill:#7cbbb4}.contract-crystal:nth-child(3n) .crystal-body{fill:#a7ccac}.crystal-facet{fill:none;stroke:#d0edc788;stroke-width:.65}.contract-crystal.spent .crystal-body{fill:#294652;stroke:#6b8b87;filter:none}.contract-crystal.spent .crystal-facet{stroke:#5b7a7c}.contract-crystal.locked{opacity:.3}.contract-crystal.locked .crystal-body{fill:#102c3b;stroke:#567170;filter:none}.contract-crystal.locked .crystal-facet{stroke:#3e5c65}.mana-number{font-size:10px;white-space:nowrap}.mana-number b{font:23px serif;color:#b8d9b5}.mana-number small{font-size:8px;margin-left:3px}.table-deck,.table-grave{position:absolute;z-index:9;padding:0;display:flex;flex-direction:column;align-items:center;gap:8px;color:#c8c9af;background:transparent;font-size:9px;min-height:44px;min-width:44px}.table-deck{right:5%}.table-grave{left:5%}.table-deck.enemy-zone,.table-grave.enemy-zone{top:24.5%}.table-deck.own-zone,.table-grave.own-zone{top:57.5%}.deck-stack{width:clamp(29px,4.1vw,63px);height:clamp(43px,7.8dvh,85px);border:2px solid #b9a272;border-radius:5px;color:#bba875;background:repeating-linear-gradient(45deg,#2d4d58,#2d4d58 4px,#294451 4px,#294451 8px);font:37px serif;display:grid;place-items:center;transform:rotate(8deg);box-shadow:4px 3px 0 #ded1a37a,6px 5px 0 #142a36,8px 7px 0 #d2c5a06b,11px 10px 13px #05182988}.grave-ring{width:clamp(35px,4.4vw,70px);height:clamp(35px,4.4vw,70px);border:1px solid #998f6b77;border-radius:50%;font:31px serif;color:#b4ac8b77;display:grid;place-items:center;background:radial-gradient(circle,#1e354555,#0e253a99);box-shadow:inset 0 3px 12px #071b2b,0 0 0 4px #a69a6e12}.table-deck b,.table-grave b{font:12px serif;margin-left:4px;color:#e0d0a3}.world-axis{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;z-index:5;pointer-events:none}.world-seal{width:clamp(68px,10dvh,112px);height:clamp(68px,10dvh,112px);border:1px solid #ceb78077;border-radius:50%;background:radial-gradient(circle,#203d45e6,#182e3a);color:#ddc68a;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;box-shadow:0 0 0 6px #c6b57613,0 0 0 7px #bba66f2e,0 7px 30px #061b2e66,inset 0 0 16px #cbb8800c;pointer-events:auto}.dream .world-seal{background:radial-gradient(circle,#514568,#242b45);color:#ddc9e6;border-color:#b7a4cf77}.world-seal>span{font:clamp(23px,3.5dvh,39px)/1 serif}.world-seal strong{font:clamp(13px,1.8dvh,20px) serif;letter-spacing:5px;margin-left:5px}.world-seal small{font-size:6px;letter-spacing:2px;color:#b3c0ae}.world-axis .turn-indicator{font-size:10px;letter-spacing:3px;color:#c8d8c5;margin:12px 0 0;padding:4px 10px;background:#132c3b88;white-space:nowrap}.shift-control,.end-turn-control{position:absolute;top:44%;transform:translateY(-50%);z-index:12;min-height:49px;min-width:75px;border:1px solid #c0ab7355;background:linear-gradient(135deg,#254a54,#152e40);color:#d5d6b6;box-shadow:inset 0 0 0 3px #a08d5e11,0 5px 13px #05192966}.shift-control{left:6.5%;border-radius:50% 50% 13px 13px;padding:9px 15px}.shift-control>span{font:22px serif;display:block;color:#d8c78f}.shift-control strong{font:12px serif;letter-spacing:3px;display:block}.shift-control small{font-size:8px;display:block;margin-top:5px;letter-spacing:1px}.end-turn-control{right:4.5%;border-radius:4px 14px 14px 4px;display:flex;align-items:center;gap:12px;padding:15px 17px;font-size:12px;letter-spacing:2px;background:linear-gradient(135deg,#b4a46c,#d5bc7d);border-color:#eed9a3;color:#263d44;box-shadow:0 4px 0 #665d42,0 7px 20px #031b2d99,inset 0 0 0 4px #e8d59a66}.end-turn-control b{font-size:20px;font-weight:400}.end-turn-control:disabled{background:linear-gradient(135deg,#3b5054,#263f4d);color:#7f9697;opacity:.8;border-color:#75867a44;box-shadow:inset 0 0 0 3px #a08d5e11,0 4px 12px #05192966}.hero-power-control{position:absolute;bottom:calc(var(--hand-peek) + 58px);left:calc(50% - var(--hero-w)*1.55);transform:translateX(-50%);width:clamp(55px,8dvh,78px);height:clamp(55px,8dvh,78px);border:1px solid #cbb77d88;border-radius:50%;background:radial-gradient(circle,#436469,#193442);color:#dfd2a7;display:grid;place-content:center;gap:3px;box-shadow:0 0 0 4px #cbb77d15,0 7px 14px #071c2d88}.hero-power-control>span{font:24px serif;color:#b2d2bd}.hero-power-control strong{font:11px serif;letter-spacing:3px;margin-left:3px}.hero-power-control small{font-size:8px}.action-review-slot{position:absolute;left:7%;top:5%;width:min(195px,18vw);z-index:17;pointer-events:none}.action-review-slot .dm-action-recap{position:relative!important;inset:auto!important;width:100%!important;max-width:none!important}.table-hint{position:absolute;left:50%;bottom:calc(var(--hand-peek) + 8px);transform:translateX(-50%);z-index:11;font-size:9px;letter-spacing:2px;color:#96b3af;white-space:nowrap;pointer-events:none}.selection-ribbon{position:absolute;left:50%;bottom:calc(var(--hand-peek) + 9px);transform:translateX(-50%);z-index:25;display:flex;align-items:center;gap:12px;width:min(620px,74%);min-height:63px;padding:8px 13px;background:linear-gradient(110deg,#e9dfc3f5,#ceccafed);border:1px solid #e3cb8f;border-radius:5px;color:#273e49;box-shadow:0 8px 30px #07182988}.selection-ribbon>div{min-width:0;flex:1}.selection-ribbon strong{font:14px serif;letter-spacing:1px}.selection-ribbon p{font-size:10px;line-height:1.6;color:#5e706d;margin-top:4px}.selection-mark{font:25px serif;color:#8f8b56}.selection-cancel,.selection-detail{min-width:44px;height:44px;background:#314c4d14;border:1px solid #647d6c44;color:#355257;border-radius:50%;font-size:21px}.selection-detail{font:17px serif}.selection-ribbon .btn{white-space:nowrap;font-size:11px;min-height:44px;padding:10px 14px}.hand-orbit{position:absolute;bottom:0;left:50%;transform:translateX(-50%);z-index:20;width:min(1020px,80%);height:var(--hand-peek);pointer-events:none}.hand-toggle{position:absolute;left:50%;bottom:var(--hand-peek);transform:translateX(-50%);height:44px;min-width:146px;padding:8px 19px;background:linear-gradient(#21434e,#142f40);border:1px solid #b6a57977;border-radius:20px 20px 5px 5px;box-shadow:0 -3px 22px #0b253555;color:#ddcca5;font-size:10px;letter-spacing:2px;z-index:50;pointer-events:auto}.arena-fullscreen .hand{position:absolute;inset:auto 0 0;display:block;overflow:visible;min-height:0;height:var(--hand-peek);padding:0;pointer-events:none}.fan-card{position:absolute;bottom:calc(-1 * clamp(118px,18dvh,179px));left:50%;width:clamp(110px,13.4dvh,174px);height:clamp(169px,25dvh,257px);transform:translateX(calc(-50% + var(--fan-offset)*clamp(34px,4.7vw,65px))) translateY(calc(var(--fan-offset)*var(--fan-offset)*3px)) rotate(calc(var(--fan-offset)*5deg));transform-origin:50% 140%;transition:transform .3s,bottom .3s,filter .2s;pointer-events:auto;z-index:calc(20 + var(--fan-index))}.arena-fullscreen .hand .card{width:100%;max-width:none;min-width:0;height:100%;padding:5px;background:linear-gradient(#ede2c4,#cfc7aa);border:2px solid #ad9666;box-shadow:0 6px 16px #081b2a99;border-radius:10px;color:#27384b;overflow:hidden;transform:none}.arena-fullscreen .hand .card:hover{transform:none}.arena-fullscreen .hand .card-art{aspect-ratio:auto;height:43%;border-radius:5px 5px 0 0;object-position:50% 30%}.arena-fullscreen .hand .card-body{padding:6px 6px 4px}.arena-fullscreen .hand .card-title{font:clamp(11px,1.55dvh,16px) serif;letter-spacing:1px;white-space:nowrap}.arena-fullscreen .hand .card-class{font-size:7px;color:#7f784d;margin-top:4px}.arena-fullscreen .hand .card-text{font-size:clamp(9px,1.25dvh,12px);line-height:1.65;min-height:0;margin-top:6px;color:#4d5f62}.arena-fullscreen .hand .card-cost{width:28px;height:33px;left:8px;top:8px;font:22px serif;background:#28515b;filter:drop-shadow(0 2px 2px #001a2b66)}.arena-fullscreen .hand .card-stats{margin-top:5px;padding-top:4px}.arena-fullscreen .hand .card-stats strong{font-size:19px}.arena-fullscreen .hand .card-stats .affinity{font-size:7px}.arena-fullscreen .hand .card-spell{font-size:8px;padding-top:5px}.arena-fullscreen .hand .card.playable:after{border:1px solid #a6c9a8;inset:0;border-radius:8px;box-shadow:inset 0 0 8px #b6dbb155}.hand-orbit.expanded{height:clamp(220px,35dvh,335px)}.hand-orbit.expanded .hand-toggle{bottom:calc(clamp(169px,25dvh,257px) + 21px)}.hand-orbit.expanded .fan-card{bottom:14px;transform:translateX(calc(-50% + var(--fan-offset)*clamp(53px,8vw,126px))) translateY(calc(var(--fan-offset)*var(--fan-offset)*2px)) rotate(calc(var(--fan-offset)*2deg))}.hand-orbit.expanded .fan-card:hover,.hand-orbit.expanded .fan-card:focus-within{z-index:45;filter:brightness(1.08)}.hand-orbit.tucked .card-body{visibility:hidden}.hand-orbit.tucked .hand .card-art{height:74%}.hand-orbit.tucked .card-cost{display:none}.hand-orbit.expanded:before{content:"";position:fixed;left:-50vw;right:-50vw;bottom:0;height:100%;background:linear-gradient(transparent,#0d2737e6 75%);z-index:-1;pointer-events:none}.hand-detail{position:absolute;right:2px;top:30%;width:44px;height:44px;border:0;background:transparent;color:#f1e3b9;font:0 serif;z-index:5;display:grid;place-items:center}.hand-detail:after{content:"i";font:15px serif;border:1px solid #d5c08c;background:#263f4d;width:24px;height:24px;border-radius:50%;display:grid;place-items:center}.empty-hand{color:#8caaa7;text-align:center;font:11px serif;padding:12px}.table-objective{position:absolute;top:3px;left:18%;right:18%;z-index:32;background:#172f3bd9;border:1px solid #b7a57166;border-radius:4px;padding:9px 15px;display:flex;align-items:center;gap:12px;font-size:10px;min-height:40px;box-shadow:0 4px 17px #061b2c55}.table-objective b{font:12px serif;white-space:nowrap;color:#d6c48c}.table-objective>span{font-size:10px;line-height:1.7;color:#a8c0b5}.table-objective .btn{margin-left:auto;min-height:34px;font-size:10px;padding:7px 12px;white-space:nowrap}.objective-help{width:30px;height:30px;min-width:30px;border:1px solid #d7c59155;background:none;color:#dbca9b;border-radius:50%;margin-left:auto}.table-connection{position:absolute;top:47px;left:50%;transform:translateX(-50%);z-index:40;background:#8b5e45e8;color:#fae7c9;padding:9px 16px;font-size:10px;border:1px solid #d3ab73;border-radius:4px;white-space:nowrap}.sandbox-label{position:absolute;left:50%;top:0;transform:translateX(-50%);font-size:8px;letter-spacing:2px;color:#b4c5aa;z-index:30;white-space:nowrap}.arena-fullscreen .replay-bar{position:absolute;left:50%;top:0;transform:translateX(-50%);margin:0;padding:4px 7px;background:#183445ed;border-color:#c4ad7555;z-index:35;gap:9px}.arena-fullscreen .replay-bar .btn{height:34px;min-height:34px;padding:5px 11px}.arena-fullscreen .replay-bar span{font-size:10px;white-space:nowrap}.mulligan-overlay{height:100dvh;overflow:hidden}.mulligan-cards{max-height:65dvh;align-items:center}.mulligan-cards .card{max-height:54dvh;overflow:auto}.privacy-screen{height:100dvh;overflow:hidden}.resolving .hand-toggle{opacity:.6}.resolving .minion,.resolving .hero-token{cursor:wait}
@media(min-width:1700px){.contract-desk{top:24%}.desk-secondary{margin-top:30px}.desk-archive{margin-top:27px}.station-platform{bottom:58px}.station-version{bottom:25px}.station-character{right:-2%;width:62%}.hero-station.enemy-hero{top:2%}.hero-station.own-hero{bottom:calc(var(--hand-peek) + 45px)}}
@media(max-width:1050px){.contract-desk{left:7%;width:47%;top:23%}.contract-desk h1{font-size:33px;letter-spacing:3px}.contract-desk>p{font-size:11px}.desk-secondary{gap:10px}.desk-secondary strong{font-size:12px;letter-spacing:1px}.desk-secondary small{font-size:7px}.desk-archive button{padding-inline:10px;font-size:10px}.station-platform{left:5%;right:5%;gap:20px}.station-platform>p{display:none}.platform-status{margin-left:auto}.station-header{left:25px;right:25px}.station-window{left:3%;right:3%}.station-window-frame{padding:10px 16px 15px 10px}.station-nav button{padding-inline:15px}.action-review-slot{left:4%;width:170px;top:2%}.mana-number{font-size:8px}.mana-number b{font-size:19px}.contract-mana{gap:6px}.contract-crystal{width:16px}.arena-fullscreen .minion-name{letter-spacing:0}}
@media(max-height:650px) and (min-width:700px){.station-header{top:max(12px,env(safe-area-inset-top));height:45px}.station-brand strong{font-size:20px}.station-brand small{font-size:6px;letter-spacing:3px}.station-sigil{font-size:29px;width:39px;height:39px}.contract-desk{top:20%;left:7%;width:46%}.desk-kicker{font-size:7px;letter-spacing:2px}.contract-desk h1{font-size:clamp(23px,3.3vw,32px);line-height:1.45;margin-top:10px;letter-spacing:3px}.contract-desk>p{font-size:9px;line-height:1.8;margin:9px 0 13px}.departure-button{height:58px;max-width:350px;gap:12px;padding:9px 18px}.departure-button strong{font-size:17px}.departure-button small{font-size:6px;margin-top:5px}.departure-seal{font-size:29px}.departure-button b{font-size:21px}.desk-secondary{margin-top:13px;gap:11px;max-width:420px}.desk-secondary>button{min-height:50px;padding:10px;grid-template-columns:24px 1fr}.desk-secondary>button>span{font-size:20px}.desk-secondary strong{font-size:11px}.desk-secondary small{font-size:7px;margin-top:4px}.desk-archive{margin-top:9px}.desk-archive button{min-height:34px;padding-block:7px;font-size:9px}.station-platform{bottom:29px;padding-top:10px;gap:20px}.platform-marker>span{font-size:23px}.platform-marker strong{font-size:12px}.platform-marker small{font-size:5px;margin-top:5px}.platform-profile{padding-left:18px}.platform-profile .avatar{width:28px;height:28px}.platform-profile strong{font-size:9px}.platform-profile small{font-size:6px;margin-top:4px}.platform-status{font-size:7px}.station-version{bottom:10px;font-size:6px}.station-character{height:100%;width:62%;right:-4%}.station-character>span{font-size:9px;bottom:21%;right:13%}.station-window{top:70px;bottom:68px}.station-nav{bottom:20px}.station-nav button{font-size:10px;padding:9px 13px;min-height:44px}.station-overlay .station-version{display:none}.station-window-frame{inset:13px 7px 13px 13px}.station-window .hero-select{max-width:720px}.station-window .hero-choice{height:200px}.station-window .section-heading h2{font-size:22px}.station-window .section-heading p{font-size:10px}.station-window .form-grid{grid-template-columns:repeat(3,1fr)}.station-window .configuration{padding:20px}.battle-scene{--hero-w:55px;--hero-h:61px;--unit-w:clamp(46px,13.8dvh,78px);--hand-peek:40px;top:35px}.arena-fullscreen .battle-header{height:35px;left:8px;right:8px}.arena-fullscreen .battle-brand h1{font-size:12px;letter-spacing:2px}.arena-fullscreen .battle-brand small{font-size:6px;letter-spacing:1px}.arena-fullscreen .icon-btn{width:44px;height:35px;min-height:35px;font-size:18px}.battle-header-tools{gap:5px;font-size:8px}.turn-counter{font-size:8px}.hero-caption{font-size:8px;letter-spacing:1px;margin-bottom:2px}.hero-caption small{font-size:6px;margin-left:2px}.hero-station.enemy-hero{top:0}.hero-station.own-hero{bottom:calc(var(--hand-peek) + 12px)}.hero-health{width:31px;height:31px;font-size:20px;right:-13px;bottom:-4px}.hero-health small{font-size:5px}.hero-frame{border-width:2px}.hero-frame:after{top:-10px;font-size:17px}.contract-mana.enemy-mana{top:4%}.contract-mana.own-mana{bottom:calc(var(--hand-peek) + 24px)}.contract-mana{left:calc(50% + 67px);gap:5px}.contract-crystal{width:12px;height:22px}.crystal-rack{gap:2px}.mana-number b{font-size:17px}.mana-number{font-size:7px}.mana-number small{font-size:6px}.hero-power-control{bottom:calc(var(--hand-peek) + 22px);left:calc(50% - 92px);width:54px;height:54px}.hero-power-control>span{font-size:20px}.hero-power-control strong{font-size:9px}.hero-power-control small{font-size:7px}.world-seal{width:56px;height:56px;min-height:44px;gap:2px}.world-seal>span{font-size:20px}.world-seal strong{font-size:11px;letter-spacing:3px}.world-seal small{font-size:5px}.world-axis .turn-indicator{margin-top:8px;font-size:8px;letter-spacing:1px;padding:2px 7px}.shift-control{min-height:46px;left:7%;padding:6px 12px;min-width:66px}.shift-control>span{font-size:17px}.shift-control strong{font-size:11px}.shift-control small{font-size:7px;margin-top:2px}.end-turn-control{min-height:44px;padding:10px 13px;font-size:11px;gap:6px;right:4%}.end-turn-control b{font-size:15px}.table-deck{right:4.5%}.table-grave{left:4.5%}.deck-stack{width:29px;height:42px;font-size:26px;border-width:1px}.grave-ring{width:34px;height:34px;font-size:25px}.table-deck,.table-grave{font-size:7px;gap:5px}.table-deck b,.table-grave b{font-size:10px}.arena-fullscreen .minion-name{font-size:7px;bottom:20px}.arena-fullscreen .minion-stats b{width:22px;height:22px;font-size:16px;border-width:1px}.arena-fullscreen .minion-stats{bottom:-5px;left:-5px;right:-5px}.arena-fullscreen .minion-tags span{font-size:6px;padding:2px}.arena-fullscreen .minion-detail:after{inset:13px;font-size:9px}.arena-fullscreen .opponent-hand{top:-20px}.arena-fullscreen .card-back{width:21px;height:29px}.action-review-slot{top:0;left:8%;width:148px}.action-review-slot .dm-action-recap{font-size:8px!important}.table-objective{top:0;left:23%;right:22%;padding:5px 9px;min-height:31px;gap:8px}.table-objective b{font-size:9px}.table-objective>span{font-size:8px;line-height:1.5}.table-objective .btn{min-height:30px;padding:6px 8px;font-size:9px}.objective-help{width:27px;height:27px;min-width:27px}.fan-card{width:112px;height:174px;bottom:-135px}.hand-toggle{min-width:130px;height:44px;font-size:9px;bottom:35px}.hand-orbit.expanded{height:198px}.hand-orbit.expanded .hand-toggle{bottom:184px}.hand-orbit.expanded .fan-card{bottom:8px;transform:translateX(calc(-50% + var(--fan-offset)*clamp(58px,8.8vw,100px))) translateY(calc(var(--fan-offset)*var(--fan-offset)*1px)) rotate(calc(var(--fan-offset)*1.3deg))}.arena-fullscreen .hand .card-title{font-size:11px}.arena-fullscreen .hand .card-text{font-size:9px;line-height:1.5;margin-top:4px}.arena-fullscreen .hand .card-class{font-size:6px}.arena-fullscreen .hand .card-body{padding:5px}.arena-fullscreen .hand .card-cost{width:22px;height:27px;font-size:17px;top:6px;left:6px}.arena-fullscreen .hand .card-stats strong{font-size:14px}.arena-fullscreen .hand .card-stats .affinity{font-size:6px}.arena-fullscreen .hand .card-spell{font-size:6px}.table-hint{font-size:8px;letter-spacing:1px;bottom:calc(var(--hand-peek) + 3px)}.selection-ribbon{bottom:calc(var(--hand-peek) + 3px);min-height:47px;padding:4px 9px;gap:8px;max-width:520px}.selection-ribbon strong{font-size:12px}.selection-ribbon p{font-size:9px;margin-top:2px}.selection-ribbon .btn{padding:7px 10px}.selection-mark{font-size:20px}.selection-cancel,.selection-detail{min-width:36px;width:36px;height:36px;font-size:17px}.table-connection{top:31px;font-size:8px;padding:6px 11px}.arena-fullscreen .replay-bar .btn{min-height:30px;height:30px;font-size:9px}.arena-fullscreen .replay-bar{padding:3px 5px;gap:6px}}
@media(max-width:600px) and (min-height:651px){.station-header{top:max(20px,env(safe-area-inset-top));left:22px;right:22px;height:49px}.station-brand{gap:10px}.station-brand strong{font-size:21px;letter-spacing:4px}.station-brand small{font-size:5px;letter-spacing:2px}.station-sigil{width:37px;height:37px;font-size:30px}.station-account{font-size:8px;padding:9px;min-height:38px;max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.station-header-actions{gap:7px}.station-avatar{display:none}.station-icon{width:38px;min-height:38px;font-size:21px}.station-character{width:120%;height:72%;right:-42%;bottom:13%;opacity:.6}.station-character img{object-position:43% 20%;mask-image:linear-gradient(90deg,transparent,#000 25%,#000 86%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 25%,#000 86%,transparent)}.station-character>span{right:20%;bottom:23%;font-size:9px}.station-scenery{background:linear-gradient(90deg,#122e3bf0,#152f3c9c 65%,#1e243c44),url('/assets/world.webp') center/cover}.contract-desk{top:24%;left:8%;width:83%}.desk-kicker{font-size:7px;letter-spacing:2px}.contract-desk h1{font-size:29px;line-height:1.65;letter-spacing:3px;margin-top:18px}.contract-desk>p{font-size:10px;line-height:2;margin:17px 0 23px}.departure-button{height:76px;width:100%;max-width:350px;padding:12px 20px;gap:15px}.departure-button strong{font-size:19px;letter-spacing:2px}.departure-button small{font-size:7px}.departure-seal{font-size:36px}.desk-secondary{gap:11px;margin-top:21px}.desk-secondary>button{grid-template-columns:21px 1fr;padding:14px 10px;min-height:68px}.desk-secondary strong{font-size:12px;letter-spacing:1px}.desk-secondary small{font-size:7px}.desk-secondary>button>span{font-size:20px}.desk-archive{margin-top:17px;flex-wrap:wrap;gap:3px}.desk-archive button{font-size:10px;padding:9px 11px;min-height:44px}.desk-archive button:first-child{padding-left:0}.station-platform{left:8%;right:8%;bottom:40px;gap:14px;flex-wrap:wrap;padding-top:17px}.platform-marker{gap:9px}.platform-marker>span{font-size:28px;padding:2px 7px}.platform-marker strong{font-size:12px;letter-spacing:2px}.platform-marker small{font-size:5px;letter-spacing:2px;margin-top:5px}.platform-profile{padding-left:14px}.platform-profile .avatar{width:29px;height:29px}.platform-profile strong{font-size:9px}.platform-profile small{font-size:6px;margin-top:4px}.platform-status{font-size:7px;margin-left:0}.station-version{font-size:6px;letter-spacing:1.6px;bottom:17px}.station-window{top:92px;left:14px;right:14px;bottom:108px}.station-window-frame{inset:14px 5px 14px 10px;padding:5px 13px 15px 6px}.station-window .section-heading{align-items:start;gap:10px;flex-wrap:wrap}.station-window .section-heading h2{font-size:23px}.station-window .section-heading p{font-size:10px;line-height:1.8}.station-window .hero-select{gap:12px}.station-window .hero-choice{height:230px}.station-window .hero-label h3{font-size:24px}.station-window .hero-label p{font-size:9px}.station-window .configuration{padding:16px}.station-nav{bottom:34px;left:12px;right:12px;flex-wrap:wrap;gap:2px}.station-nav button{font-size:9px;padding:8px 10px;min-height:32px}.station-overlay .station-version{display:none}.battle-scene{--unit-w:clamp(46px,12.8vw,68px);--hero-w:74px;--hero-h:84px;--hand-peek:63px;top:max(51px,env(safe-area-inset-top))}.arena-fullscreen .battle-header{height:49px;left:8px;right:8px}.arena-fullscreen .battle-brand h1{font-size:12px;letter-spacing:2px}.arena-fullscreen .battle-brand small{font-size:6px;letter-spacing:1px}.battle-header-tools{gap:5px}.turn-counter{font-size:8px;letter-spacing:0;margin-right:0}.arena-fullscreen .icon-btn{width:38px;min-width:38px;height:44px;min-height:44px;font-size:19px}.arena-fullscreen .battle-brand{gap:5px}.hero-station.enemy-hero{top:3%}.hero-station.own-hero{bottom:calc(var(--hand-peek) + 57px)}.hero-caption{font-size:9px;letter-spacing:1px}.hero-caption small{display:none}.hero-health{width:38px;height:38px;font-size:25px;right:-15px}.hero-health small{font-size:6px}.contract-mana{left:50%;transform:translateX(-50%);gap:8px}.contract-mana.enemy-mana{top:18.8%}.contract-mana.own-mana{bottom:calc(var(--hand-peek) + 18px)}.contract-crystal{width:17px;height:28px}.crystal-rack{gap:3px}.mana-number b{font-size:21px}.mana-number{font-size:8px}.mana-number small{font-size:7px}.arena-fullscreen .board-row{max-width:84%;gap:9px}.arena-fullscreen .board-row.enemy-row{top:32%}.arena-fullscreen .board-row.own-row{top:61%}.arena-fullscreen .minion-name{font-size:7px;bottom:19px;letter-spacing:0}.arena-fullscreen .minion-stats{bottom:-6px;left:-5px;right:-5px}.arena-fullscreen .minion-stats b{width:23px;height:23px;font-size:17px;border-width:1px}.arena-fullscreen .minion-tags{top:5%;right:-6px}.arena-fullscreen .minion-tags span{font-size:6px;padding:2px}.arena-fullscreen .minion-detail:after{inset:13px;font-size:10px}.arena-fullscreen .board-slot{font-size:15px}.table-meridian{top:46%}.world-axis{top:46%}.world-seal{width:71px;height:71px}.world-seal>span{font-size:24px}.world-seal strong{font-size:13px;letter-spacing:4px}.world-seal small{font-size:6px}.world-axis .turn-indicator{font-size:9px;letter-spacing:2px;margin-top:12px}.shift-control{top:46%;left:4.5%;min-width:66px;min-height:66px;padding:8px 10px}.shift-control strong{font-size:11px;letter-spacing:2px}.shift-control>span{font-size:21px}.shift-control small{font-size:7px}.end-turn-control{top:46%;right:3.5%;font-size:10px;letter-spacing:1px;padding:13px 11px;min-height:48px;gap:5px}.end-turn-control b{font-size:13px}.hero-power-control{bottom:calc(var(--hand-peek) + 70px);left:calc(50% - 105px);width:58px;height:58px}.hero-power-control>span{font-size:21px}.hero-power-control strong{font-size:10px}.hero-power-control small{font-size:7px}.table-deck{right:1.7%}.table-grave{left:1.7%}.table-deck.enemy-zone,.table-grave.enemy-zone{top:26%}.table-deck.own-zone,.table-grave.own-zone{top:65%}.deck-stack{width:24px;height:37px;font-size:22px;border-width:1px;box-shadow:2px 2px 0 #ded1a37a,4px 3px 0 #142a36,5px 4px 0 #d2c5a06b,7px 6px 10px #05182988}.grave-ring{width:29px;height:29px;font-size:20px}.table-deck,.table-grave{font-size:7px;min-width:32px;gap:6px}.table-deck b,.table-grave b{display:block;margin:3px 0 0;font-size:11px}.arena-fullscreen .opponent-hand{top:-18px}.arena-fullscreen .card-back{width:21px;height:31px}.action-review-slot{left:13px;top:2%;width:112px;max-height:140px}.action-review-slot .dm-action-recap{padding:7px!important;font-size:8px!important;max-height:145px;overflow:hidden}.action-review-slot .dm-action-recap img{max-height:54px!important;max-width:52px!important}.action-review-slot .dm-action-recap p{font-size:8px!important;line-height:1.5!important}.action-review-slot .dm-action-recap h3,.action-review-slot .dm-action-recap strong{font-size:10px!important}.hand-orbit{width:94%}.fan-card{width:119px;height:194px;bottom:-147px;transform:translateX(calc(-50% + var(--fan-offset)*32px)) translateY(calc(var(--fan-offset)*var(--fan-offset)*2px)) rotate(calc(var(--fan-offset)*5deg))}.hand-toggle{height:44px;bottom:47px;font-size:10px;min-width:142px}.hand-orbit.expanded{height:278px}.hand-orbit.expanded .hand-toggle{bottom:228px}.hand-orbit.expanded .hand{width:100%;height:231px;overflow-x:auto;overflow-y:visible;display:flex;gap:10px;align-items:flex-start;padding:10px 16px 15px;pointer-events:auto;scroll-snap-type:x proximity}.hand-orbit.expanded .fan-card{position:relative;left:auto;bottom:auto;transform:none!important;width:141px;height:219px;flex:0 0 141px;scroll-snap-align:center;z-index:20}.arena-fullscreen .hand .card-title{font-size:12px}.arena-fullscreen .hand .card-text{font-size:10px;line-height:1.6}.arena-fullscreen .hand .card-class{font-size:7px}.arena-fullscreen .hand .card-cost{font-size:19px;width:25px;height:30px}.arena-fullscreen .hand .card-stats strong{font-size:17px}.arena-fullscreen .hand .card-stats .affinity{font-size:7px}.selection-ribbon{bottom:calc(var(--hand-peek) + 5px);width:94%;gap:7px;padding:7px 9px;min-height:65px}.selection-ribbon strong{font-size:12px}.selection-ribbon p{font-size:9px;line-height:1.5}.selection-mark{font-size:22px}.selection-detail,.selection-cancel{min-width:36px;width:36px;height:44px;border-radius:4px}.selection-ribbon .btn{min-height:44px;max-width:87px;padding:8px;font-size:10px;letter-spacing:0}.table-hint{bottom:calc(var(--hand-peek) + 2px);font-size:8px;letter-spacing:1px}.table-objective{top:22%;left:10%;right:10%;padding:5px 8px;min-height:34px;gap:7px}.table-objective b{font-size:9px;max-width:95px;white-space:normal;line-height:1.5}.table-objective>span{font-size:8px;line-height:1.5;max-height:37px;overflow:hidden}.table-objective .btn{min-height:34px;padding:6px 8px;font-size:9px;letter-spacing:0}.objective-help{width:28px;height:28px;min-width:28px}.table-connection{top:0;max-width:90%;white-space:normal;font-size:9px;text-align:center}.arena-fullscreen .replay-bar{top:21.5%;gap:5px;padding:4px}.arena-fullscreen .replay-bar .btn{min-height:34px;height:34px;font-size:9px;padding:5px 10px}.sandbox-label{top:21.5%;font-size:6px;letter-spacing:0}.opponent-hand:has(.sandbox-hand){max-width:90%;width:90%;overflow:auto;top:-17px}.sandbox-hand{font-size:7px;min-height:26px;flex-shrink:0}.mulligan-cards{padding-block:15px;max-height:62dvh;gap:12px}.mulligan-cards .card{width:140px;max-height:57dvh}.mulligan-overlay h2{font-size:25px}.mulligan-overlay>p{font-size:10px}.mulligan-overlay{padding-bottom:max(20px,env(safe-area-inset-bottom))}}
@media(max-width:700px) and (max-height:650px){.station-header{left:18px;right:18px;top:12px}.station-brand strong{font-size:18px;letter-spacing:3px}.station-brand small{font-size:5px;letter-spacing:2px}.station-sigil{width:33px;height:33px;font-size:25px}.station-header-actions{gap:6px}.station-account{font-size:8px;padding:8px;min-height:36px}.station-icon{width:36px;min-height:36px;font-size:20px}.station-avatar{display:none}.contract-desk{top:23%;left:7%;width:64%}.desk-kicker{font-size:6px;letter-spacing:1px}.contract-desk h1{font-size:23px;margin-top:8px;letter-spacing:2px}.contract-desk>p{font-size:8px;line-height:1.7;margin:8px 0 12px}.departure-button{height:54px;max-width:320px;padding:9px 15px;gap:12px}.departure-button strong{font-size:16px;letter-spacing:2px}.departure-button small{font-size:6px;margin-top:4px}.departure-seal{font-size:28px}.desk-secondary{margin-top:13px;max-width:360px;gap:8px}.desk-secondary>button{min-height:46px;padding:8px;grid-template-columns:21px 1fr}.desk-secondary strong{font-size:10px;letter-spacing:1px}.desk-secondary small{display:none}.desk-archive{margin-top:8px}.desk-archive button{font-size:8px;padding:8px;min-height:34px}.station-platform{display:none}.station-version{font-size:6px;bottom:14px}.station-character{width:83%;right:-25%;height:100%;opacity:.65}.station-character>span{display:none}.station-window{top:73px;bottom:74px;left:12px;right:12px}.station-nav{bottom:20px;gap:2px;flex-wrap:wrap}.station-nav button{padding:8px 9px;font-size:9px;min-height:32px}.station-overlay .station-version{display:none}}
@media(pointer:coarse){.station-nav button,.station-header button,.desk-archive button,.desk-secondary>button,.objective-help,.table-objective .btn{min-height:44px}.station-icon{min-width:44px}.arena-fullscreen .icon-btn{min-width:44px;min-height:44px}.selection-cancel,.selection-detail{min-width:44px;min-height:44px}.table-deck,.table-grave{min-width:44px;min-height:44px}.hand-detail{width:44px;height:44px}.hand-orbit.expanded .fan-card:hover{filter:none}.arena-fullscreen .hero-token{min-width:44px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.fan-card,.departure-button{transition:none}.station-window .page{animation:none}}

/* Keep the contract objective beside the hero, never across her portrait. */
@media(min-width:1051px) and (min-height:651px){.contract-desk{top:20%}}
.table-objective{left:auto;right:5%;top:4%;width:min(300px,26%)}.table-objective>span{min-width:0}
@media(max-height:650px) and (min-width:700px){.table-objective{left:auto;right:4%;top:0;width:28%}}
@media(max-height:450px) and (min-width:700px){.contract-desk>p{display:none}.contract-desk h1{font-size:23px;line-height:1.4;margin-top:10px;margin-bottom:13px}.station-platform{display:none}.desk-archive{margin-top:8px}.station-character{opacity:.8}}
@media(max-width:600px) and (min-height:651px){.table-objective{left:10%;right:10%;top:22%;width:auto}}
.inspection-sigil{font:58px serif;color:var(--gold);text-align:center;margin:18px}.deck-inspection{text-align:center}.deck-inspection h3{font-size:21px;margin:18px 0}.deck-inspection p{line-height:2}.graveyard-cards{grid-template-columns:repeat(3,1fr)}
@media(max-width:550px){.graveyard-cards{grid-template-columns:repeat(2,1fr)}}

/* The tucked-hand tab sits beside the lower hero rather than across her health gem. */
@media(min-width:700px){.hand-orbit.tucked .hand-toggle{left:calc(50% + 180px)}}
@media(min-width:700px) and (max-height:450px){
 .arena-fullscreen .board-row.enemy-row{top:30%}.arena-fullscreen .board-row.own-row{top:54%}
 .world-axis{left:20%}.hero-station.own-hero{bottom:calc(var(--hand-peek) + 7px)}
 .contract-mana.own-mana{left:calc(50% - 290px);bottom:calc(var(--hand-peek) + 5px)}
}

/* Expanded contracts stay below the friendly lane; folding control uses the table edge. */
@media(min-width:700px){.hand-orbit.expanded .hand-toggle{left:calc(50% + min(480px,38vw))}}
@media(min-width:700px) and (max-height:450px){
 .hand-orbit.expanded{height:132px}.hand-orbit.expanded .fan-card{height:112px;bottom:6px}
 .hand-orbit.expanded .hand-toggle{left:calc(50% + min(300px,35vw));bottom:120px}
 .hand-orbit.expanded .hand .card-art{height:45%}.hand-orbit.expanded .hand .card-class,.hand-orbit.expanded .hand .card-text{display:none}
 .hand-orbit.expanded .hand .card-body{padding:5px}.hand-orbit.expanded .hand .card-stats{margin-top:5px}
 .hand-orbit.expanded .hand-detail{top:0;right:0}
}
