/* Orbit Guardians: TD — illustrated command deck, 1.3.2 */
.game-brand{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 7px 5px #08142a88);pointer-events:none;user-select:none}
.game-logo{padding:0!important;transform:none!important;font-size:0!important;-webkit-text-stroke:0!important;text-shadow:none!important}
.start-screen>.game-logo{width:min(660px,56vw);height:min(440px,52vh);left:4%;top:12%;margin:0;position:absolute}
.base-camp>.base-logo{position:absolute;left:4%;top:13%;width:min(630px,40vw);height:min(420px,52vh);margin:0;z-index:2;pointer-events:none}
.hud-brand{position:absolute;left:50%;transform:translateX(-50%);top:0;width:138px;height:90px;pointer-events:none}.brand .game-brand{width:130px;height:80px}
.modal-brand{width:82px;height:50px;margin-left:auto;flex:none}.modal-head{gap:12px}.modal-head h2{min-width:0}.heroes-modal .modal-brand{display:none}
.game-shell{--top:90px;background:#132e48}
.game-shell .game-top{height:var(--top);gap:14px;padding:8px 18px;background:linear-gradient(180deg,#376282 0%,#234966 52%,#15334f 53%,#1c3e5c 100%);border-bottom:4px solid #10263d;box-shadow:inset 0 3px #74a9be,inset 0 -4px #3f728f,0 3px 0 #72c3ca;z-index:18}
.game-top .life-value,.game-top .cash-value{position:relative;border:3px solid #10263e;border-radius:16px 7px 16px 7px;background:linear-gradient(155deg,#31566f,#102d49 65%);box-shadow:inset 0 2px #9acee1,inset 0 -4px #081b31,0 3px #07192b;min-width:162px;padding:3px 15px 4px 3px;gap:3px;height:67px}
.game-top .life-value{border-bottom-color:#ad5773}.game-top .cash-value{border-bottom-color:#d99a42}
.game-top .hud-emblem{width:60px;height:60px;filter:drop-shadow(1px 3px 0 #06182d);transform:rotate(-5deg);overflow:visible}
.game-top .hud-number{min-width:55px;gap:0}.game-top .hud-number strong{font:950 30px/1.05 'Arial Black',Bahnschrift,sans-serif;color:#fff7dc;letter-spacing:-1px;text-shadow:2px 3px #081d34;-webkit-text-stroke:.4px #fff1cd}
.game-top .hud-number small{font:900 9px/1.4 Bahnschrift,Arial;color:#b6e3ee;letter-spacing:1.5px}.hud-charge{height:4px;width:46px;margin-top:3px;border-radius:5px;background:repeating-linear-gradient(90deg,#8eeadd 0 8px,#173950 8px 10px);box-shadow:0 1px #041a30}.life-value .hud-charge{background:repeating-linear-gradient(90deg,#ff9fb2 0 8px,#173950 8px 10px)}
.match-brand{height:75px;width:150px;margin:auto;flex-shrink:1;min-width:90px}.game-top .wave{margin:0;min-width:124px;height:67px;border:3px solid #10263e;border-radius:13px;background:linear-gradient(145deg,#506b9a,#273f6a);box-shadow:inset 0 2px #b2d9ee,inset 0 -4px #152c50,0 3px #091d33;padding:3px 10px;gap:7px;align-items:center}
.wave-orbit{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;border:3px solid #10273e;background:#e8ae55;box-shadow:inset 0 2px #fff2ae,0 0 0 2px #e0c67a;transform:rotate(-10deg);color:#fff6d2}.wave-orbit svg{width:25px;height:25px;filter:drop-shadow(1px 2px #784d42)}.wave-number{display:flex;flex-direction:column}.game-top .wave-number>small{font:900 9px Bahnschrift,Arial;letter-spacing:2px;color:#c9e8ef}.wave-number strong{font:950 27px 'Arial Black',Arial;color:#fff5cd;text-shadow:2px 2px #172746}.wave-number em{font:800 11px Bahnschrift,Arial;font-style:normal;color:#b6d4e9;text-shadow:none}
.game-shell .game-top button{background:linear-gradient(150deg,#64b8cf,#2f6d91 58%,#235273);border:3px solid #11283e;box-shadow:inset 0 2px #bdf8ed,inset 0 -3px #244467,0 3px #071c31;border-radius:12px 5px 12px 5px;min-height:46px;color:#f4ffff;text-shadow:1px 2px #164260;font-weight:950;transition:filter .12s,transform .12s}.game-top button:hover{filter:brightness(1.16)}.game-top button:active{transform:translateY(2px)}.game-top [data-action=xp-menu]{color:#fff5bf;background:linear-gradient(140deg,#8f74b8,#50477f);box-shadow:inset 0 2px #dbb6f4,inset 0 -3px #342e59,0 3px #071c31}.game-top .crew-toggle{color:#f2ffff}.game-top .square.small{width:46px;height:46px;flex-basis:46px;font-size:24px;padding:2px}
.game-shell .roster{background:linear-gradient(90deg,#18364f,#254d68 6%,#173c59 94%,#122e49);border-left:4px solid #10253c;box-shadow:inset 3px 0 #8ad1d2,-4px 0 #164a62;padding:10px 13px;gap:8px}.game-shell .roster-title{min-height:40px}.game-shell .roster-title h2{color:#fff1c8;text-shadow:2px 3px #071c35;font:950 24px 'Arial Black',Arial;letter-spacing:1px;transform:skew(-5deg)}.game-shell .roster-title>button{border:2px solid #0b253f;border-radius:9px;background:#467798;box-shadow:inset 0 2px #8bd5e5,0 2px #081c32;min-width:44px;font-size:15px}
.game-shell .crew-filter{display:block;z-index:2;flex:none}.class-switches{display:grid;grid-template-columns:1fr 1fr;gap:8px}.class-switches>button{display:flex;align-items:center;gap:7px;min-height:58px;padding:4px 6px;border:2px solid #102640;border-radius:14px 6px;background:linear-gradient(145deg,#386683,#183d5d);box-shadow:inset 0 2px #80b9cd,0 3px #0b2238;text-align:left;min-width:0}.class-switches>button>span:last-child{min-width:0}.class-switches small{display:block;color:#96d6e7;font:900 8px Bahnschrift,Arial;letter-spacing:1.4px}.class-switches b{display:block;font:900 12px Bahnschrift,Arial;color:#fff5d5;line-height:1.2;margin-top:3px}.class-switches .active{background:linear-gradient(140deg,#537b9e,#304b78);box-shadow:inset 0 2px #dbfbff,0 0 0 2px #97efdf,0 3px #0b2238}.class-switches>button:hover{filter:brightness(1.14)}
.class-medal{--class:#76eee7;display:grid;place-items:center;flex:none;width:40px;height:40px;position:relative;transform:rotate(-5deg);border:3px solid #0b253e;border-radius:12px 7px;background:linear-gradient(135deg,color-mix(in srgb,var(--class) 88%,white),var(--class) 48%,color-mix(in srgb,var(--class) 55%,#203954) 50%);box-shadow:inset 0 2px #ffffffac,inset 0 -3px #11294f77,0 3px #0c1b35}.class-medal:after{content:'';position:absolute;width:6px;height:2px;top:4px;right:4px;transform:rotate(45deg);background:#ffffe3;border-radius:50%}.class-medal .crew-symbol{width:25px;height:25px;color:#142f4b;filter:drop-shadow(0 1px #fff7c9);stroke-width:2.5}
.game-shell .availability-ribbon{width:100%;font:900 9px Bahnschrift,Arial;letter-spacing:1.3px;min-height:24px;padding:5px;margin-top:6px;border:0;border-radius:8px 8px 3px 3px;background:#102e49;box-shadow:inset 0 1px #41748e;color:#a9e7e3}.game-shell .availability-ribbon[aria-pressed=false]{color:#ffdb9b;background:#473c58}
.game-shell .crew-catalog{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;padding:4px 2px 8px;scrollbar-width:thin}.game-shell .crew-catalog.hidden{display:none}.game-shell .catalog-open #dock,.game-shell .catalog-open .wave-intel{display:none}.catalog-heading{display:flex;align-items:center;justify-content:space-between;padding:10px 4px 14px;gap:6px}.catalog-heading small{font:800 8px Bahnschrift,Arial;letter-spacing:1px;color:#96cadb}.catalog-heading h3{font:950 19px 'Arial Black',Arial;color:#fff0c1;text-shadow:2px 2px #0a2039;margin:4px 0 0}.catalog-heading .catalog-close{border:2px solid #12304a;border-radius:10px;background:#be6f5d;box-shadow:inset 0 2px #ffc5a2,0 3px #0a213c;font-size:22px;width:32px;height:32px;padding:0}
.class-medal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-content:start}.class-medal-grid>button{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:8px;padding:12px 3px 9px;min-height:118px;border:2px solid #0d2841;border-radius:17px 7px;background:linear-gradient(145deg,#335b7c,#1d3f60);box-shadow:inset 0 2px #739db7,0 4px #0b233a;color:#efffff}.class-medal-grid>button:hover{filter:brightness(1.15);transform:translateY(-2px)}.class-medal-grid>button.chosen{outline:2px solid #ffdc86;outline-offset:-2px;background:linear-gradient(140deg,#667f9c,#3d4e78)}.class-medal-grid>button.chosen:after{content:'✓';position:absolute;top:4px;right:7px;color:#fff8c3;font:900 15px Arial}.class-medal-grid .class-medal{width:51px;height:51px;border-radius:17px 9px}.class-medal-grid .class-medal .crew-symbol{width:33px;height:33px}.class-medal-grid strong{font:900 11px/1.2 Bahnschrift,Arial;overflow-wrap:anywhere;text-shadow:1px 2px #132c47;text-align:center}.class-medal-grid small{font:800 8px Bahnschrift,Arial;letter-spacing:1px;color:#adcbdc}.catalog-note{font:10px Bahnschrift,Arial;text-align:center;color:#b5d4e3;margin:13px 0}
.game-shell .wave-intel{background:#112f4c;border:2px solid #0e2841;border-radius:10px 4px;box-shadow:inset 0 1px #5288a0;min-height:32px}.game-shell .roster-group>h3{color:#e1f7ef;background:#173854;border-bottom:2px solid #3d6983;border-radius:6px;font-weight:900;letter-spacing:1px}.game-shell .illustrated-crew{border-width:2px;border-radius:13px 5px;box-shadow:inset 0 2px #ffffff33,0 3px #0c213b;background:#122b45}.game-shell .crew-card-footer{background:linear-gradient(135deg,#294d6b,#16314f)}.game-shell .crew-card-footer .unit-name{color:#fff4d5;text-shadow:1px 2px #0b223d}.game-shell .crew-card-meta{background:#102840}.game-shell .roster .hero-button{background:#1d405f;border:2px solid #527c9d;border-radius:12px 5px;height:77px;min-height:77px}.game-shell .roster .hero-button>.hero-art{height:67px}
.game-shell .match-tools{border-top:2px solid #5a8ba5}.game-shell .match-tools .left>button{background:linear-gradient(140deg,#426e8d,#224463);border:2px solid #10273f;border-radius:9px 5px;box-shadow:inset 0 2px #94d2dd,0 2px #0a2035;font-weight:900}.game-shell .match-tools #wave-button{border:3px solid #123244;border-radius:15px 7px;background:linear-gradient(145deg,#91dda9,#3c9d8c 50%,#237a78 52%);box-shadow:inset 0 3px #dbffd3,inset 0 -4px #206366,0 3px #0b2339;color:#f0ffe0;text-shadow:2px 2px #286064}.game-shell .battle{border:2px solid #102941;box-shadow:0 0 0 1px #6b9bab}.game-shell .arena{background:#122d46}.game-shell .battle-status{background:#153649e8;border:2px solid #7fc9bd;border-radius:12px 4px;font-weight:800;color:#eeffe5;box-shadow:0 2px #12314166}.game-shell .battle-status:empty{display:none}.game-shell .side-panel{background:linear-gradient(130deg,#315b78,#183452);border:3px solid #123149;border-radius:14px 5px;box-shadow:inset 0 2px #90d6df,4px 5px #0b263b99}
@media(max-width:1200px){.match-brand{width:115px;min-width:70px;height:60px}.game-top .life-value,.game-top .cash-value{min-width:140px}.game-top .hud-emblem{width:49px;height:52px}.game-top .hud-number strong{font-size:26px}.game-shell .game-top{gap:8px;padding:8px 10px}.game-top .wave{min-width:110px}.wave-orbit{width:30px;height:30px}.wave-orbit svg{width:22px;height:22px}}
@media(max-width:1000px){.game-shell{--top:70px}.match-brand{display:none}.game-shell .game-top{gap:6px;padding:5px 8px}.game-top .life-value,.game-top .cash-value{min-width:113px;height:55px;padding-right:8px}.game-top .hud-emblem{width:42px;height:45px}.game-top .hud-number strong{font-size:23px}.game-top .hud-number small{font-size:7px}.hud-charge{width:35px;height:3px;margin-top:2px}.game-top .wave{height:55px;margin-left:auto;min-width:98px;padding:3px 7px}.wave-number strong{font-size:23px}.game-top .wave-number>small{font-size:8px}.wave-number em{font-size:9px}.wave-orbit{width:26px;height:26px;border-width:2px}.wave-orbit svg{width:19px;height:19px}.game-shell .game-top button{min-height:40px;padding:6px;border-width:2px}.game-top .square.small{width:36px;height:38px;flex-basis:36px;min-height:38px;font-size:22px;padding:2px}.game-shell .roster{padding:7px 10px}.class-switches{gap:5px}.class-switches>button{min-height:52px;gap:4px;padding:4px}.class-switches .class-medal{width:31px;height:33px;border-width:2px;border-radius:10px 6px}.class-switches .crew-symbol{width:20px;height:20px}.class-switches b{font-size:10px}.class-switches small{font-size:7px}.class-medal-grid{gap:6px}.class-medal-grid>button{min-height:98px;padding-top:9px;gap:5px}.class-medal-grid .class-medal{width:40px;height:40px}.class-medal-grid .crew-symbol{width:26px!important;height:26px!important}.class-medal-grid strong{font-size:9px}.catalog-heading h3{font-size:16px}}
@media(max-height:550px) and (orientation:landscape){.game-shell{--top:53px}.game-shell .game-top{padding:3px 7px;gap:5px}.game-top .life-value,.game-top .cash-value{height:44px;min-width:100px;border-width:2px;border-radius:10px 5px;padding:0 6px 0 1px}.game-top .hud-emblem{height:37px;width:37px}.game-top .hud-number strong{font-size:22px}.game-top .hud-number small{font-size:6px}.hud-charge{display:none}.game-top .wave{height:44px;border-width:2px;min-width:91px;gap:5px}.game-top .wave-number>small{font-size:7px}.wave-number strong{font-size:21px}.game-top .wave-orbit{width:22px;height:22px}.game-top .wave-orbit svg{width:16px;height:16px}.game-shell .game-top button{min-height:36px;padding:3px 6px;font-size:10px}.game-top .square.small{height:34px;width:34px;flex-basis:34px;min-height:34px;font-size:20px}.game-shell .roster{padding:5px 7px;gap:4px}.game-shell .roster-title{min-height:24px}.game-shell .roster-title h2{font-size:18px}.game-shell .roster-title>button{min-height:23px;padding:2px}.class-switches>button{min-height:38px;padding:2px 4px}.class-switches .class-medal{height:27px;width:27px}.class-switches .class-medal svg{height:19px;width:19px}.class-switches b{font-size:9px;margin-top:1px}.class-switches small{font-size:6px}.game-shell .availability-ribbon{min-height:18px;height:18px;padding:3px;font-size:7px;margin-top:4px}.game-shell .roster .hero-button{height:55px;min-height:55px}.game-shell .roster .hero-button>.hero-art{height:48px}.catalog-heading{padding:4px}.catalog-heading small{display:none}.catalog-heading h3{font-size:13px}.catalog-heading .catalog-close{width:25px;height:25px;font-size:18px}.class-medal-grid>button{min-height:68px;padding:6px 2px;gap:3px;border-radius:10px 4px}.class-medal-grid .class-medal{width:28px;height:28px;border-width:2px}.class-medal-grid .class-medal .crew-symbol{width:20px!important;height:20px!important}.class-medal-grid strong{font-size:8px}.class-medal-grid small{font-size:6px}.catalog-note{display:none}.base-camp>.base-logo{top:12%;left:3%;width:35vw;height:58vh}.start-screen>.game-logo{top:8%;height:60vh;width:43vw}}
@media(max-width:650px) and (orientation:portrait){.game-shell{--top:111px}.game-shell .game-top{height:111px;grid-template-rows:53px 36px;gap:5px;padding:5px 6px;border-bottom-width:3px}.game-top .life-value,.game-top .cash-value{min-width:0;width:100%;height:50px;border-width:2px;padding:0 4px 1px 0;gap:1px}.game-top .hud-emblem{width:36px;height:39px}.game-top .hud-number{min-width:0}.game-top .hud-number strong{font-size:22px}.game-top .hud-number small{font-size:6px;letter-spacing:1px}.hud-charge{display:none}.game-top .wave{height:50px;min-width:0;width:100%;border-width:2px;border-radius:10px 5px;margin:0;padding:2px 4px;gap:5px}.game-top .wave-orbit{width:23px;height:23px}.game-top .wave-orbit svg{width:17px;height:17px}.game-top .wave-number>small{font-size:6px}.wave-number strong{font-size:21px}.wave-number em{font-size:8px}.game-shell .game-top button{min-height:34px;border-width:2px;border-radius:9px 4px;padding:4px}.game-top .square.small{width:100%;height:34px;min-height:34px;font-size:22px}.game-top [data-action=xp-menu]{font-size:9px}.game-shell .roster{padding:7px 9px;border-left:0;border-top:3px solid #1a3d53;box-shadow:inset 0 2px #99d5d5}.game-shell .roster-title{min-height:25px}.game-shell .roster-title h2{font-size:19px}.game-shell .roster-title>button{min-height:24px;padding:3px 6px}.class-switches>button{min-height:43px;padding:3px 7px;gap:8px}.class-switches .class-medal{height:30px;width:31px}.game-shell .availability-ribbon{min-height:19px;height:19px;padding:3px;font-size:8px;margin-top:4px}.class-switches b{font-size:11px}.class-switches small{font-size:7px}.game-shell .wave-intel{min-height:25px;padding:3px 6px;font-size:8px}.game-shell .roster .hero-button{height:57px;min-height:57px}.game-shell .roster .hero-button>.hero-art{height:50px}.game-shell .crew-catalog{padding:0 2px}.catalog-heading{padding:5px 3px 8px}.catalog-heading h3{font-size:16px}.class-medal-grid>button{min-height:78px;padding:5px 2px;gap:3px}.class-medal-grid .class-medal{height:34px;width:34px;border-width:2px}.class-medal-grid strong{font-size:10px}.class-medal-grid small{font-size:7px}.catalog-note{margin:8px 0;font-size:9px}.game-shell .side-panel{border-radius:0}.base-camp>.base-logo{top:17%;left:50%;transform:translateX(-50%)!important;width:70vw;height:29vh}.start-screen>.game-logo{left:50%;top:10%;transform:translateX(-50%)!important;width:87vw;height:35vh}.hud-brand{width:90px;height:65px;left:auto;right:130px;transform:none;top:0}.modal-brand{width:58px;height:38px}.modal-head{gap:6px}.modal-head h2{font-size:19px}}
@media(max-width:380px) and (orientation:portrait){.game-top [data-action=xp-menu]{font-size:0}.game-top .wave-orbit{display:none}.game-top .hud-emblem{width:31px}.game-top .hud-number strong{font-size:20px}.game-top .wave{justify-content:center}.hud-brand{display:none}.class-switches small{display:none}.class-switches>button{min-height:35px;padding:2px 5px;gap:5px}.class-switches .class-medal{width:25px;height:25px}.class-switches .class-medal svg{width:17px;height:17px}.class-switches b{font-size:10px;margin-top:0}.game-shell .crew-catalog .class-medal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.class-medal-grid>button{min-height:65px}.class-medal-grid strong{font-size:8px}.class-medal-grid .class-medal{height:27px;width:27px}.class-medal-grid small,.catalog-heading small{display:none}}
@media(max-height:680px) and (orientation:portrait){.game-shell .dock .hero-button{height:100%;min-height:0}.game-shell .dock .hero-button>.hero-art{height:40px}.game-shell .catalog-open .match-tools{display:none}.game-shell .crew-catalog{min-height:0}.catalog-heading{padding:3px}.catalog-heading small{display:none}.catalog-note{display:none}}
@media(prefers-reduced-motion:reduce){.game-top button,.class-medal-grid>button{transition:none;transform:none}}

/* Keep the logo and login controls in separate columns. */
.start-screen>.game-logo{left:0;top:3%;width:55%;height:50%}.start-screen>.start-panel{grid-column:2;justify-self:end;width:100%}
@media(max-width:680px) and (orientation:portrait){.start-screen{inset:0 16px 16px;display:flex;flex-direction:column;justify-content:flex-end;gap:0}.start-screen>.game-logo{left:5%;top:2%;width:90%;height:40%}.start-screen>.start-panel{width:min(440px,100%);padding:20px;align-self:center;margin:0}.start-screen>.start-mascot{display:none}.start-panel .big-play{margin-bottom:12px}}
@media(max-height:540px) and (orientation:landscape){.start-screen{inset:10px 5%;gap:5%}.start-screen>.game-logo{top:5%;height:70%;width:50%}.start-screen>.start-mascot{display:none}.start-screen>.start-panel{padding:16px;max-width:400px}.start-panel label{font-size:18px}.start-panel form{gap:8px}.start-panel .big-play{font-size:24px;padding:12px;margin:0 0 12px}.start-panel>small{margin-top:12px}}

@media(max-width:680px) and (orientation:portrait){.start-screen>.game-logo{transform:none!important}}
@media(max-height:550px) and (orientation:landscape){.game-shell .roster-group>h3{font-size:10px;margin:0 0 4px;padding:3px 5px;min-height:18px}.game-shell .roster .hero-button{height:40px;min-height:40px}.game-shell .roster .hero-button>.hero-art{height:36px}.game-shell .roster-group.category-hero:has(.hero-button:disabled){display:none}.game-shell .roster-title{height:25px;min-height:25px}.game-shell .wave-intel{height:22px;min-height:22px;padding:3px 5px;margin:0}}

@media(max-width:650px) and (orientation:portrait){.base-camp>.base-logo{top:19%;width:60vw;height:18vh}.modal-head h2{line-height:1.05}.modal-brand{width:48px}}
