/* Game shell: persistent HUD, character stage, expedition dock, tactile board. */
:root{--bg:#090b18;--panel:#151829;--gold:#e6c58b;--muted:#9da3b6;--text:#f7f2e7;--green:#9cdbd1;--line:#d1c4f01b}
body{background:radial-gradient(ellipse at 45% 0,#2b233e,#101222 50%,#080b17);padding-bottom:102px;min-height:100dvh}
.glyph{width:26px;height:26px;flex-shrink:0;filter:drop-shadow(0 2px 5px #0007)}
.topbar{height:78px;padding:0 32px;gap:16px;border:0;background:linear-gradient(#090c1de8,#090c1d80,transparent);z-index:20}
.brand{min-width:240px}.brand-mark{color:#f6dab1}.brand small{color:#ccbdac}.brand>span:last-child{font-size:20px}.summoner-hud{display:flex;align-items:center;gap:12px;margin-right:auto;font-size:12px;color:#eee3cc}.summoner-hud small{display:block;font-size:9px;color:#9897ab}.hud-crest{display:grid;place-items:center;width:37px;height:42px;background:linear-gradient(#4b3b55,#1b1b32);border:1px solid #dbbf824d;clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%)}
.wallet{background:linear-gradient(90deg,#242236bd,#121626df);border:1px solid #dfc18c50;border-radius:20px;padding:6px 17px;box-shadow:inset 0 1px #fff1}.wallet .gem{color:#c5a0ff;text-shadow:0 0 14px #af85ff}.wallet b{font-weight:700}.icon-button{width:34px;height:34px;background:#101526af;border-color:#d3c3a638}.topbar .icon-button+.icon-button{margin-left:0}
.topbar nav{position:fixed;left:50%;bottom:17px;transform:translateX(-50%);width:min(700px,calc(100% - 48px));height:72px;display:flex;gap:2px;border:1px solid #dbc29854;background:linear-gradient(180deg,#252337ed,#101625f5);box-shadow:0 8px 45px #0008,inset 0 1px #fff2;backdrop-filter:blur(20px);padding:5px;z-index:30;clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px),0 12px)}
.nav-item{display:flex;align-items:center;justify-content:center;gap:13px;flex:1;color:#c1b6bf;padding:0 10px;border-right:1px solid #c4a76d20}.nav-item:last-child{border:0}.nav-item.active{background:linear-gradient(0deg,#bd955235,#c6ae6210);color:#ffe4ab;box-shadow:inset 0 -2px #d5b478}.nav-item.active:after{height:1px;top:0;bottom:auto;left:22%;right:22%;background:#ebcb95}.nav-item>.glyph{width:28px;height:28px}.nav-copy{display:block;text-align:left!important;padding:0!important;color:inherit!important}.nav-copy strong{font-size:14px;font-weight:600;display:block}.nav-copy small{font-size:8px;letter-spacing:1.4px;color:#b4a99a;display:block}.nav-item em{font:11px var(--serif);color:#c8b99c;font-style:normal;align-self:center;margin-left:2px}
.game-lobby{height:calc(100dvh - 78px);min-height:660px;position:relative;isolation:isolate;overflow:hidden;margin-top:-78px;padding-top:78px;height:100dvh}
body[data-page=lobby]{padding-bottom:0}
.scene-backdrop{position:absolute;inset:-30px;z-index:-5;background:var(--scene) center 35%/cover;filter:blur(20px) saturate(.7);opacity:.46}
.scene-portrait{position:absolute;inset:0 21% 0 7%;z-index:-3;mask-image:linear-gradient(90deg,transparent,#000 15%,#000 80%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 15%,#000 80%,transparent)}
.scene-portrait>.art{object-fit:cover;object-position:50% 20%;width:100%;height:100%;animation:scene-arrive .7s ease-out}
.scene-light{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#090e22d9,transparent 35%,transparent 55%,#0b1023df 83%),linear-gradient(0deg,#080d1fee,transparent 40%,transparent 85%,#080d1f99)}
.lobby-chapter{position:absolute;top:116px;left:40px;width:240px;text-shadow:0 2px 14px #000a}.lobby-chapter .eyebrow{font-size:8px;letter-spacing:3px}.lobby-chapter h1{font-size:28px;font-weight:500;margin:8px 0}.lobby-chapter p{font-size:10px;color:#c4bec8}.chapter-progress{width:155px;height:2px;background:#e8d6ac30;margin:20px 0 5px}.chapter-progress>span{display:block;height:100%;background:var(--gold)}.lobby-chapter>small{font-size:8px;color:#c1ac90;letter-spacing:1px}
.lobby-shortcuts{position:absolute;top:290px;left:40px;display:flex;flex-direction:column;gap:24px}.lobby-shortcuts>button{width:74px;padding:10px 0;border:1px solid #dfc49d45;background:linear-gradient(#33334b80,#101427aa);box-shadow:0 5px 20px #0003;transform:skewY(-3deg);transition:background .2s,transform .2s}.lobby-shortcuts>button:hover{transform:translateY(-3px);background:#4f3a58aa}.lobby-shortcuts .glyph{width:30px;height:30px;margin:auto;color:#f1d09f}.lobby-shortcuts strong{display:block;font-size:10px;font-weight:500;margin:4px 0}.lobby-shortcuts small{font-size:7px;color:#bdac9a}
.character-dialog{position:absolute;bottom:165px;left:12%;width:min(510px,46%);padding:17px 22px 12px;border-left:2px solid #edd09e9c;background:linear-gradient(90deg,#0b102bc9,#161a2c77,transparent);text-shadow:0 2px 10px #000a}.dialog-name{display:flex;gap:12px;align-items:center}.dialog-name h2{font-size:28px;font-weight:600}.dialog-name>span:last-child{font-size:10px;color:#d4c1a3}.dialog-name .rarity{font-size:24px}.character-dialog p{margin-top:7px;font-size:13px;color:#eee0cf}.character-dialog .text-button{font-size:9px;margin-top:4px;padding:6px 0;color:#e3c89e}.scene-selector{position:absolute;left:calc(12% + 20px);bottom:111px;display:flex;gap:10px}.scene-selector .avatar{width:38px;height:38px;border-radius:4px;transform:rotate(-4deg);border-color:#dbbe8866}.scene-selector .avatar.active{border-color:#ffe0a0;box-shadow:0 0 14px #e0b56555;transform:translateY(-4px)}
.expedition-dock{position:absolute;right:38px;top:110px;width:305px;bottom:112px;display:flex;flex-direction:column;justify-content:center;gap:13px}.expedition-label{display:flex;justify-content:space-between;font-size:8px;letter-spacing:2px;color:#b6a7a9}.expedition-label b{color:#f2d5a6;font:14px var(--serif)}.expedition-card{position:relative;text-align:center;padding:95px 22px 20px;border:1px solid #e6c99470;background:linear-gradient(140deg,#302738ee,#141a2ce8);box-shadow:0 12px 45px #0007,inset 0 0 0 4px #12182a,inset 0 0 0 5px #d3b3882d;overflow:hidden;clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px)}
.expedition-art{position:absolute;inset:0 0 auto;height:175px;opacity:.6;mask-image:linear-gradient(#000,transparent);-webkit-mask-image:linear-gradient(#000,transparent)}.expedition-art img{object-position:50% 22%;filter:saturate(.6)}.expedition-seal{position:relative;margin:-65px auto 16px;width:60px;height:60px;border:1px solid #e9c59075;display:grid;place-items:center;background:#121a2db0;transform:rotate(45deg);box-shadow:0 0 25px #deb78522}.expedition-seal .glyph{transform:rotate(-45deg);color:#f5d8a6;width:32px;height:32px}.expedition-card>.eyebrow,.expedition-card>h2,.expedition-card>.stars{position:relative}.expedition-card h2{font-size:23px;font-weight:500;margin:6px -10px 3px}.expedition-card .eyebrow{font-size:8px;letter-spacing:2px}.stage-select{justify-content:center;margin:13px 0 11px;gap:8px}.stage-select button{min-width:46px;font-size:12px;background:#090e213b;border-color:#8c80a83b;color:#c3bacb}.stage-select button.active{border-color:#e9c591;color:#ffe4b3;background:#bc955c29}.expedition-reward{display:flex;justify-content:space-between;font-size:10px;border-top:1px solid #d8c3982c;padding:10px 0;color:#beb2b6}.expedition-reward b{color:#e4c49a;font-weight:500}
.battle-launch{width:100%;display:flex;align-items:center;gap:13px;padding:12px 15px;background:linear-gradient(120deg,#fae1a3,#c89852);color:#3a2719;border:1px solid #fff1b8;box-shadow:inset 0 0 0 3px #ac772938,0 0 30px #d7a95a25;text-align:left;position:relative;overflow:hidden;transition:filter .2s,transform .2s}.battle-launch:hover{filter:brightness(1.15);transform:translateY(-2px)}.battle-launch:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#fff5 48%,transparent 64%);transform:translateX(-120%);animation:launch-shine 6s ease-in-out infinite;pointer-events:none}.battle-launch strong{font-size:23px;font-weight:800;line-height:1.3;letter-spacing:1px}.battle-launch small{display:block;font-size:8px;letter-spacing:0;font-weight:500;margin-top:4px;color:#604727}.battle-launch>b{margin-left:auto;font-size:29px;font-weight:400}.battle-launch .glyph{width:29px;height:29px}
.expedition-dock .summon-banner{margin:0;border-color:#cbb0ee75;background:linear-gradient(115deg,#533a6aeb,#292444e8);padding:12px 15px;border-radius:0;box-shadow:inset 0 0 0 3px #12172955,0 7px 20px #0003}.summon-banner small{color:#c9afd7}.summon-banner strong{font-size:18px;font-weight:600;color:#fff0ec}.summon-banner em{color:#d0bdc4;font-size:9px}.summon-banner .summon-symbol{color:#e7c6ff;filter:drop-shadow(0 0 10px #d6a3fa)}.summon-banner>b{color:#e4bddb}
.squad-dock{width:100%;padding:10px 12px;background:#11172bc2;border:1px solid #aaa5c735;text-align:left}.squad-dock>span{display:flex;justify-content:space-between;font-size:9px;color:#d3c5b8}.squad-dock b{font:12px var(--serif);color:#edcba0}.squad-dock>div{display:flex;gap:8px;margin:8px 0 4px}.squad-dock .avatar{width:36px;height:36px;border-radius:2px;padding:0}.squad-dock>small{display:block;text-align:right;font-size:8px;color:#b4a0b8}
.ambient-dust{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.ambient-dust i{position:absolute;left:calc(var(--i) * 8% + 3%);top:calc(mod(var(--i) * 17,85) * 1%);width:3px;height:3px;background:#fde5ad;border-radius:50%;box-shadow:0 0 9px #ffcf86;opacity:0;animation:dust-drift calc(8s + var(--i) * .4s) ease-in-out infinite;animation-delay:calc(var(--i) * -.7s)}
@keyframes dust-drift{0%,100%{opacity:0;transform:translate(0,40px)}40%{opacity:.6}80%{opacity:.1;transform:translate(25px,-90px)}}@keyframes launch-shine{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}@keyframes scene-arrive{from{opacity:.4;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
/* Collection as a card album. */
.collection-page{max-width:1450px;padding-top:18px}.page-heading{margin-bottom:20px;border-bottom:1px solid #dfc29d28;padding-bottom:18px}.page-heading h1{font-size:32px;font-weight:600;text-shadow:0 0 24px #d6b58133}.page-heading .eyebrow{letter-spacing:4px}.deck-builder{background:linear-gradient(120deg,#342a4199,#1a203b99);border:1px solid #d6bd8b50;box-shadow:inset 0 0 0 4px #11152866;border-radius:0}.deck-slot{border:1px solid #e4bf84a6;box-shadow:0 3px 12px #0009;transform:rotate(-2deg)}.deck-slot:nth-child(even){transform:rotate(2deg)}.portrait-card{border:2px solid #a1906677;border-radius:7px;box-shadow:0 6px 14px #0009,inset 0 0 0 3px #161323;aspect-ratio:2/3.1;isolation:isolate}.portrait-card:after{content:'';position:absolute;inset:5px;border:1px solid #ead6b550;pointer-events:none;clip-path:polygon(0 0,22% 0,22% 1%,1% 1%,1% 18%,0 18%,0 82%,1% 82%,1% 99%,22% 99%,22% 100%,0 100%,100% 100%,78% 100%,78% 99%,99% 99%,99% 82%,100% 82%,100% 18%,99% 18%,99% 1%,78% 1%,78% 0,100% 0,100% 100%,0 100%)}.portrait-card.selected{border-color:#f2d190;box-shadow:0 0 12px #dba65025,0 8px 16px #0008}.portrait-card.locked img{filter:saturate(.85);opacity:.87}.portrait-card>.art{object-fit:cover;object-position:center 20%}.card-shade{background:linear-gradient(0deg,#0d1025 0%,#171a3199 23%,transparent 53%)}.card-top{inset:9px 9px auto}.card-top .rarity{color:#ffe3a9;text-shadow:0 0 10px #ddb063}.power-chip{border-radius:0 0 40% 40%;background:linear-gradient(#554460,#211e35);border-color:#eed6a6;color:#fff0c8;font-weight:700;box-shadow:0 2px 7px #0008}.card-bottom strong{font-weight:600;font-size:18px}.card-bottom small{color:#c1b6bc}.card-bottom .role{font-size:9px}.collection-toolbar{margin-top:20px}.filters button{border-radius:0;min-width:65px}.filters button.active{border-color:#dbbe88;background:#a9894533}.button.primary{background:linear-gradient(120deg,#f6daa0,#c59655);color:#392718;border-radius:1px;box-shadow:inset 0 0 0 3px #94683120,0 4px 18px #0004;border-color:#f5ddb0}.button.secondary{border-radius:1px;background:#3c304c88;border-color:#d4b9dc55;color:#e1c7ec}
/* Arena: an illuminated tabletop, framed territories, a held fan of cards. */
.battle-page{position:relative;isolation:isolate;padding-top:12px}.battle-atmosphere{position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 60% 45%,#3a29434f,transparent 60%),repeating-conic-gradient(from 45deg at 60% 50%,#b9966410 0deg 1deg,transparent 1deg 45deg)}.battle-heading{border-bottom:1px solid #d5b98936;padding-bottom:12px;margin-bottom:14px}.battle-heading h1{font-size:20px;font-weight:600}.round-track{gap:9px;padding:4px 16px;background:#1b1d32a8;border:1px solid #c9bca32d;clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%,0 50%)}.round-track span{border-radius:2px;background:#090e1e;border-color:#bdae8133}.round-track span.current{background:#e4c493;color:#35271f;box-shadow:0 0 18px #f0bd6655;font-weight:700}.round-track span.complete{border-color:#a8cba777}.battle-layout{grid-template-columns:235px minmax(0,1fr);gap:24px}.commander-panel{min-height:640px;border:1px solid #d5ba865e;background:#111629;box-shadow:inset 0 0 0 5px #ecd5a319,0 12px 30px #0005}.commander-panel>.art{object-fit:cover;object-position:var(--face-x,50%) 10%}.commander-shade{background:linear-gradient(0deg,#101326 2%,#12182afa 31%,transparent 72%)}.commander-copy h2{color:#fae9ce;font-weight:600}.commander-copy .skill-box{border-color:#dbbd7861}.skill-box p{color:#c6c4d0}.commander-quote{color:#b1a2b4}.arena-top{margin-bottom:8px}.territory-summary{padding:2px 25px;background:linear-gradient(90deg,transparent,#dbb87616,transparent)}.territory-summary>span{font-weight:700;font-size:30px}.enemy-text{color:#ef9da5}.ally-text{color:#a7e3de}.board-side{font:8px var(--serif);letter-spacing:3px;color:#bb7e95;text-align:center;margin-bottom:6px}.board-side span{font:8px var(--font);letter-spacing:0;margin-left:8px;color:#9c7c92}.lanes{gap:14px;padding:12px;background:linear-gradient(120deg,#30253966,#141a2ed9);border:1px solid #8f7c9944;box-shadow:inset 0 0 50px #0004,0 5px 20px #0004;position:relative}.lane{padding:10px 8px 8px;border:1px solid #b9a48b61;border-radius:2px;background:linear-gradient(#5f334531,#111a32a1,#34615f26);box-shadow:inset 0 0 0 3px #0002}.lane.winning{background:linear-gradient(#40273955,#15373690);border-color:#99d8cb88}.lane.losing{border-color:#c27b8c88;background:linear-gradient(#6c2e4455,#18192c)}.lane.targeted{border-color:#ffe0a0;box-shadow:inset 0 0 20px #dfc08433,0 0 20px #e4c27e33}.lane-title{padding-bottom:8px;margin-bottom:8px;border-color:#ddc49133;justify-content:center}.lane-title h3{color:#edddc6}.lane-title>span{color:#f3d49c}.lane-title small{margin-left:0}.battle-slot{height:115px;border-color:#bbae974d;background:#080d20}.battle-slot.empty{border-style:solid;background:radial-gradient(ellipse,#63517112,#090e2388);box-shadow:inset 0 0 13px #0008}.battle-slot.empty span{font-size:32px;color:#b8a27a33}.battle-slot.empty.enemy span{color:#ae879534}.battle-slot.occupied{border-color:#dfc492;box-shadow:0 3px 10px #0009}.slot-shade{background:linear-gradient(0deg,#090c22f5,transparent 65%)}.slot-power{color:#ffdda4;background:#14172dc9;border-radius:50%;min-width:25px;line-height:1.1;text-align:center;bottom:5px}.lane-score{border-top:1px solid #dbba7733;border-bottom:1px solid #dbba7733;margin:6px 0;background:#070b1b66;min-height:37px}.lane-score>b{font-size:25px}.lane-score span{color:#b4a6b9}.lane-target{border-color:#a6a4c25c;color:#cac0d4;background:#3231495e}.lane-target.selected{background:#dec49124;border-color:#f4d79f;color:#ffe0a1}.turn-bar{margin:13px 0 8px;padding:8px 12px;background:#101729b3;border-left:2px solid #e3c48c}.turn-bar p{color:#dbd5de}.turn-badge{font-size:13px}.hand-label{display:flex;gap:10px;align-items:center;margin:11px 0 9px;padding-left:10px}.hand-label span{font:10px var(--serif);color:#dfc291;letter-spacing:2px}.hand-label b{font-size:8px;font-weight:400;color:#aa9db0}.hand{gap:8px;padding:5px 12px 0;perspective:1000px}.hand-card{height:140px;border:2px solid #c7ab816e;border-radius:6px;box-shadow:0 8px 16px #0009;transform:translateY(var(--lift,0px)) rotate(var(--tilt,0deg));transform-origin:50% 100%}.hand-card:nth-child(1){--tilt:-6deg;--lift:7px}.hand-card:nth-child(2){--tilt:-3deg;--lift:2px}.hand-card:nth-child(5){--tilt:3deg;--lift:2px}.hand-card:nth-child(6){--tilt:6deg;--lift:7px}.hand-card.selected,.hand-card:hover:not(:disabled){transform:translateY(-14px) rotate(0);border-color:#ffdd8e;box-shadow:0 0 20px #e7ba5a50;z-index:2}.hand-info strong{font-size:11px}.hand-info small{color:#c5b4c5}.hand-gradient{background:linear-gradient(0deg,#101124 4%,#19132b99 30%,transparent 66%)}.battle-log{margin-top:19px;padding-left:12px;color:#afa0b5}.confirm-turn{min-width:150px}.modal{background:linear-gradient(130deg,#2b2338,#12192a);border-color:#e4c59388;border-radius:2px;box-shadow:0 25px 100px #000b,inset 0 0 0 4px #d9c08a18}.detail-art{background:#0e1325}.detail-art-shade{background:linear-gradient(90deg,transparent 75%,#1b1b30aa),linear-gradient(0deg,#191a2d88,transparent 35%)}.detail-copy h2{font-weight:600;color:#fce7c7}.lore{color:#b0a7b9}.detail-skill p{color:#d0c5d2}.detail-skill{border-color:#cbb18b55}.help-steps p,.help-note{color:#b2a8ba}.result-modal h2{color:#ffe1a3}.result-emblem{filter:drop-shadow(0 0 22px #e1ba6c88)}.result-scores>div{background:#211e34;border-color:#b9a1bd55}.result-scores>div.won{background:#c0a26825;border-color:#efd28f}.new-contract{padding:18px;background:linear-gradient(90deg,transparent,#15152bc9,transparent);text-shadow:0 0 14px #ffd88a}.modal-backdrop:has(.new-contract){background:radial-gradient(ellipse,#95649e55,#060a17ee)}#toast{bottom:110px;background:#29253ded;border-color:#dfbd8c}
@media(min-width:1600px){.scene-portrait{inset:0 23% 0 14%}.expedition-dock{right:6%;width:340px}.lobby-chapter,.lobby-shortcuts{left:5%}.character-dialog{left:17%}.scene-selector{left:calc(17% + 20px)}}
@media(max-width:1100px){.topbar{padding:0 22px}.summoner-hud{display:none}.brand{margin-right:auto}.expedition-dock{right:24px;width:280px}.lobby-chapter{left:24px;width:205px}.lobby-chapter h1{font-size:24px}.lobby-shortcuts{left:24px}.character-dialog{left:10%;width:49%}.scene-selector{left:calc(10% + 20px)}.scene-portrait{left:0;right:18%}.battle-layout{grid-template-columns:190px minmax(0,1fr);gap:14px}.lanes{gap:8px;padding:9px}.battle-slot{height:105px}.hand-card{height:130px}.commander-copy{left:15px;right:15px}.commander-copy h2{font-size:25px}.card-bottom strong{font-size:16px}}
@media(max-width:780px){body{padding-bottom:90px}.topbar{height:66px;padding:0 16px;gap:10px}.brand{min-width:auto}.brand>span:last-child{font-size:16px}.brand-mark{font-size:30px}.topbar nav{height:65px;bottom:9px;width:calc(100% - 20px);padding:4px;left:50%;right:auto;border:1px solid #dbc29854}.nav-item{gap:8px;padding:0 6px}.nav-copy strong{font-size:11px}.nav-copy small{font-size:6px;letter-spacing:1px}.nav-item>.glyph{width:23px;height:23px}.nav-item em{display:none}.nav-item.active:after{top:0}.wallet{padding:5px 10px}.topbar .icon-button{width:27px;height:27px}.game-lobby{height:auto;min-height:1040px;margin-top:-66px;padding-top:66px;padding-bottom:95px}.scene-portrait{inset:0 0 auto;height:720px;mask-image:linear-gradient(0deg,transparent,#000 20%,#000);-webkit-mask-image:linear-gradient(0deg,transparent,#000 20%,#000)}.scene-portrait>.art{object-position:50% 15%}.scene-light{background:linear-gradient(0deg,#0a1026 0%,#0a1026 34%,transparent 67%,#080d1f77),linear-gradient(90deg,#11162766,transparent 60%)}.scene-backdrop{opacity:.3}.lobby-chapter{top:88px;left:20px;width:210px}.lobby-chapter h1{font-size:23px;margin:5px 0}.lobby-chapter .eyebrow{font-size:7px}.lobby-chapter p{font-size:9px}.chapter-progress,.lobby-chapter>small{display:none}.lobby-shortcuts{top:210px;left:18px;gap:14px}.lobby-shortcuts>button{width:58px;padding:8px 0}.lobby-shortcuts .glyph{width:25px;height:25px}.lobby-shortcuts strong{font-size:9px}.lobby-shortcuts small{font-size:6px}.character-dialog{top:430px;bottom:auto;left:20px;width:calc(100% - 40px);padding:12px 15px}.dialog-name h2{font-size:25px}.dialog-name>span:last-child{font-size:9px}.character-dialog p{font-size:11px}.scene-selector{left:auto;right:20px;bottom:auto;top:372px;gap:7px}.scene-selector .avatar{width:33px;height:33px}.expedition-dock{position:relative;top:auto;right:auto;bottom:auto;width:auto;margin:510px 18px 0;gap:12px;display:grid;grid-template-columns:1fr 1fr}.expedition-label{grid-column:1/-1;margin-bottom:-6px}.expedition-card{grid-column:1/-1;padding:18px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:0 10px}.expedition-art{height:100%;inset:0 0 0 auto;width:50%;mask-image:linear-gradient(90deg,transparent,#000);-webkit-mask-image:linear-gradient(90deg,transparent,#000);opacity:.28}.expedition-seal{display:none}.expedition-card>.eyebrow{grid-column:1;align-self:end}.expedition-card h2{font-size:21px;margin:4px 0;grid-column:1}.expedition-card>.stars{grid-column:1;font-size:10px}.expedition-card .stage-select{grid-column:2;grid-row:1/4;display:flex;flex-direction:column;margin:0;gap:4px;position:relative}.stage-select button{padding:1px 9px;min-width:40px;font-size:11px}.expedition-reward{grid-column:1/-1;margin-top:10px;position:relative;padding:8px 0}.battle-launch{grid-column:1/-1;justify-content:center;padding:11px 14px}.battle-launch strong{font-size:22px}.battle-launch>b{margin-left:auto}.battle-launch>span{margin-right:auto}.battle-launch small{font-size:9px}.expedition-dock .summon-banner{grid-column:1/-1;padding:12px 18px}.summon-banner small{font-size:7px}.summon-banner strong{font-size:18px}.summon-banner em{font-size:9px}.squad-dock{grid-column:1/-1}.squad-dock>div{justify-content:space-between}.squad-dock .avatar{width:40px;height:40px}.squad-dock>small{display:none}.collection-page{padding:12px 16px 25px}.page-heading{padding-bottom:12px;margin-bottom:16px}.page-heading h1{font-size:26px}.page-heading p{font-size:9px}.deck-builder{padding:12px}.deck-slot{height:72px}.collection-toolbar{margin:18px 0 15px}.collection-grid{gap:14px 10px}.card-bottom strong{font-size:12px}.card-bottom small{font-size:7px}.card-bottom .role{font-size:7px}.portrait-card{border-width:1px}.card-top{inset:6px}.card-top .rarity{font-size:14px}.portrait-card:after{inset:3px}.filters button{min-width:0}.battle-page{padding:8px 10px 20px}.battle-heading{gap:8px;margin-bottom:9px;padding-bottom:10px}.battle-heading h1{font-size:15px}.round-track{padding:5px 10px;gap:5px}.round-track span{width:18px;height:20px;font-size:10px}.battle-layout{grid-template-columns:1fr;gap:16px}.commander-panel{min-height:111px;max-height:111px;order:2}.commander-panel>.art{width:90px;height:100%;object-fit:cover;object-position:var(--face-x,50%) var(--face-y,20%)}.commander-shade{background:linear-gradient(90deg,transparent 45px,#12182a 99px)}.commander-copy{margin:11px 12px 11px 102px;left:auto;right:auto;position:relative}.commander-copy h2{font-size:15px}.skill-box p{font-size:10px}.arena-top{margin-bottom:5px}.territory-summary{padding:0 8px;gap:10px}.territory-summary>span{font-size:25px}.board-side{font-size:7px;margin-bottom:6px}.board-side span{font-size:7px}.lanes{padding:6px;gap:5px}.lane{padding:7px 4px 5px}.lane-title{gap:4px}.lane-title h3{font-size:9px}.lane-title>span{font-size:12px}.lane-title small{display:none}.battle-slot{height:85px}.battle-slot.empty span{font-size:24px}.slot-power{font-size:18px;bottom:18px;right:1px;min-width:19px}.slot-name{font-size:7px}.lane-score{min-height:32px;margin:5px 0;padding:2px}.lane-score>b{font-size:20px}.lane-score span{font-size:7px}.lane-target{font-size:8px;min-height:27px}.turn-bar{padding:7px 8px;margin:10px 0 5px;gap:8px}.turn-bar p{font-size:9px}.turn-badge{font-size:10px}.confirm-turn{min-width:99px;padding:0 9px;font-size:10px;gap:7px}.hand-label{margin:8px 0 5px;padding-left:4px}.hand-label span{font-size:8px}.hand-label b{font-size:7px}.hand{padding:7px 5px 0;gap:4px}.hand-card{height:103px;border-width:1px}.hand-info strong{font-size:8px}.hand-info small{font-size:6px}.hand-card .power-chip{width:16px;height:19px;font-size:13px;top:3px;left:2px}.hand-role{font-size:10px;right:3px;top:4px}.battle-log{padding-left:2px;margin-top:17px;font-size:7px}.detail-art-shade{background:linear-gradient(0deg,#211e32,transparent 40%)}.detail-copy h2{font-size:28px}#toast{bottom:91px}}
@media(max-height:740px) and (min-width:781px){.game-lobby{min-height:640px}.expedition-dock{top:88px;bottom:96px;gap:8px}.expedition-card{padding-top:85px;padding-bottom:15px}.expedition-seal{margin-bottom:10px;width:48px;height:48px}.expedition-card h2{font-size:21px}.squad-dock{display:none}.character-dialog{bottom:155px}.scene-selector{bottom:105px}.lobby-chapter{top:98px}.lobby-shortcuts{top:250px}}
@media(prefers-reduced-motion:reduce){.ambient-dust{display:none}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:781px){
 body[data-page=battle] .battle-page{height:max(555px,calc(100dvh - 170px));display:flex;flex-direction:column;padding-top:0;padding-bottom:0}
 .battle-heading{flex-shrink:0;margin-bottom:10px;padding-bottom:8px}
 .battle-layout{flex:1;min-height:0}
 .commander-panel{min-height:0;height:100%}
 .arena{display:grid;grid-template-rows:38px 12px minmax(210px,1fr) 44px 14px 110px 18px;gap:6px;min-height:0}
 .arena-top,.board-side,.turn-bar,.hand-label,.hand,.battle-log{margin:0}
 .arena-top{min-height:0}.board-side{line-height:12px}
 .lanes{min-height:0;padding:8px}.lane{min-height:0;padding:6px;display:grid;grid-template-rows:23px minmax(40px,1fr) 29px minmax(40px,1fr) 25px;gap:5px}
 .lane-title{margin:0;padding:0 0 3px}.enemy-slots,.player-slots{min-height:0}.battle-slot{height:100%}
 .lane-score{min-height:0;margin:0;padding:0 4px}.lane-score>b{font-size:22px}.lane-target{min-height:0;height:25px;margin:0;padding:2px}
 .turn-bar{padding:3px 10px}.confirm-turn{height:35px}.hand-label{align-self:center}.hand{padding-top:3px;padding-bottom:7px}.hand-card{height:100%}.hand-info{bottom:6px}.battle-log{font-size:8px;padding-top:2px}
 .commander-quote{margin-top:12px}.commander-copy{bottom:18px}.commander-copy h2{font-size:25px}.skill-box{padding-top:10px;margin-top:8px}
}
@media(min-width:781px){body[data-page=battle]{padding-bottom:92px}}
@media(max-width:780px){.character-dialog{top:370px}.scene-selector{top:315px}.expedition-dock{margin-top:450px}.scene-portrait{height:660px}.lobby-shortcuts{top:185px}.lobby-chapter h1{font-size:20px}.lobby-chapter p{font-size:8px}.lobby-chapter{width:180px}}

/* Quiet game HUD: one label per action, character art carries the lobby. */
.topbar .wallet{margin-left:auto}.topbar .brand{min-width:0}.topbar nav{width:min(550px,calc(100% - 48px));height:62px}.nav-copy strong{font-size:13px}.nav-item{gap:10px}.nav-item>.glyph{width:24px;height:24px}
.character-dialog{width:auto;min-width:185px;padding:9px 16px;bottom:169px;background:linear-gradient(90deg,#0b102bb0,transparent);border-left:1px solid #edd09e70}.dialog-name{gap:14px}.dialog-name h2{font-size:32px}.character-dialog .text-button{font-size:27px;padding:0 8px;margin:0;color:#dfc89e;line-height:1}
.expedition-card{padding-top:73px}.expedition-seal{width:44px;height:44px;margin:-50px auto 19px}.expedition-seal .glyph{width:26px;height:26px}.expedition-card h2{margin:0 -10px 5px}.expedition-reward{justify-content:flex-end;border:0;padding:2px 0 12px}.battle-launch{justify-content:center}.battle-launch>span{margin-right:auto}.battle-launch>b{margin-left:auto}.squad-dock>div{margin-bottom:0}.summon-banner strong{line-height:1.4}.expedition-dock{gap:12px}
.page-heading{align-items:center}.page-heading h1{font-size:30px}.deck-builder h3{margin:0}.card-bottom strong{font-size:20px}.card-bottom .role{margin-bottom:3px}.battle-heading{align-items:center}.commander-copy{bottom:24px}.skill-box{margin-top:15px}.hand{margin-top:14px}.battle-log:empty{display:none}.character-story{margin:16px 0}.character-story summary{color:#bfb0c6;font-size:11px;cursor:pointer;width:fit-content}.character-story .lore{margin-top:10px}.result-modal h2{margin-bottom:20px}
@media(max-width:780px){.topbar{gap:9px}.topbar nav{height:60px;width:calc(100% - 20px)}.nav-copy strong{font-size:11px}.character-dialog{top:391px;bottom:auto;left:20px;min-width:155px;width:auto;padding:8px 13px}.dialog-name h2{font-size:27px}.character-dialog .text-button{font-size:24px}.expedition-card{padding:18px}.expedition-card h2{font-size:21px;margin:0;grid-row:1/3;align-self:center}.expedition-card>.stars{grid-row:3}.expedition-card .stage-select{grid-row:1/4}.expedition-reward{padding:6px 0;margin-top:8px}.page-heading h1{font-size:25px}.card-bottom strong{font-size:14px}.commander-copy{bottom:auto}.skill-box{margin-top:5px}.hand{margin-top:11px}.expedition-dock{margin-top:438px}}
@media(min-width:781px){.arena{grid-template-rows:38px minmax(210px,1fr) 44px 110px 18px;grid-template-areas:"opponent" "board" "turn" "hand" "log"}.arena-top{grid-area:opponent}.lanes{grid-area:board}.turn-bar{grid-area:turn}.hand{grid-area:hand;margin:0}.battle-log{grid-area:log}}
