/* Micro Valendor: parchment, iron, and a clear view of the battlefield. */
:root {
  --bg-deep: #111a16;
  --panel-stone: #1c2821;
  --panel-stone-hover: #28372d;
  --panel-parchment: #e9dfc8;
  --panel-parchment-dark: #d5c5a2;
  --color-gold: #d9b86d;
  --color-burgundy: #914536;
  --color-iron-grey: #506052;
  --color-text-dark: #273328;
  --color-text-light: #f0eadb;
  --color-text-muted: #aab3a5;
  --font-display: 'Cinzel', Georgia, serif;
  --font-medieval: 'Cinzel', Georgia, serif;
  --font-sans: 'Outfit', system-ui, sans-serif;
  --border-iron: 1px solid #435144;
  --shadow-stone: 0 16px 48px #07110c66;
  --shadow-iron: 0 3px 0 #07110c66;
  --shadow-gold: 0 0 0 transparent;
  --transition-tactile: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

body { font-size: 15px; line-height: 1.5; height: 100dvh; color-scheme: dark; -webkit-tap-highlight-color: transparent; }
button, input, select, textarea { font: inherit; }
button { touch-action: manipulation; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, canvas:focus-visible {
  outline: 3px solid #ead18f !important;
  outline-offset: 4px;
}
input, select, textarea { border: 1px solid #536150 !important; border-radius: 5px !important; min-height: 44px; accent-color: var(--color-gold); }
input[type='text'], input[type='password'], input[type='number'], textarea, select {
  background: #132019 !important; color: #f0eadb !important; padding: 10px 12px !important;
}
input::placeholder, textarea::placeholder { color: #a4afa0; opacity: 1; }
input[type='range'] { min-height: 32px; border: 0 !important; }
input[type='checkbox'] { min-height: 20px; width: 20px; }
input:focus, select:focus, textarea:focus { border-color: #d9b86d !important; }
.font-medieval, .font-gothic { letter-spacing: .025em; }
.text-burgundy { color: #db9c81; text-shadow: none; }
.text-gold { text-shadow: none; }
.btn {
  justify-content: center; min-height: 44px; border-radius: 5px; border-width: 1px;
  font-family: var(--font-sans); font-weight: 650; letter-spacing: .015em; text-transform: none;
  font-size: .94rem; padding: 10px 16px; line-height: 1.2; box-shadow: none;
}
.btn-primary { background: #d9b86d; color: #162319; border-color: #e3c988; box-shadow: 0 3px 0 #8d713b; }
.btn-primary:hover { background: #e6c985; box-shadow: 0 4px 0 #8d713b; transform: translateY(-1px); }
.btn-primary:active { transform: translateY(2px); box-shadow: 0 1px 0 #8d713b; }
.btn-secondary { background: #29392e; color: #e9e6d9; border-color: #4d5e4d; }
.btn-secondary:hover { background: #354b3b; border-color: #8b9a7d; }
.btn[disabled], .btn.disabled { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none; }
.sound-btn { height: auto; min-height: 40px; }
.text-button { color: #55482b; border: 0; border-bottom: 1px solid #8b7847; background: none; padding: 5px 0; font-weight: 600; cursor: pointer; }
.ambient-bg { background: #101c15 url('assets/ui/war-table.svg') center / cover no-repeat; opacity: .2; filter: saturate(.6); }
.candle-glow-left, .candle-glow-right { display: none; }
.overlay-container { height: 100dvh; width: 100%; padding: 92px 24px 72px; background: linear-gradient(180deg, #121e17c9, #0c160fe8); }
.top-nav-bar { height: 68px; padding: 0 28px; border-bottom: 1px solid #5b654b; background: #142019f5; backdrop-filter: none; }
.nav-container { max-width: 1240px; gap: 24px; }
.nav-brand { display: inline-flex; align-items: center; gap: 10px; color: #e6d3a0; text-decoration: none; font-size: 1.02rem; letter-spacing: .04em; text-shadow: none; white-space: nowrap; }
.nav-brand img { width: 28px; height: 34px; }
.nav-links { gap: 5px; align-items: center; }
.nav-link { padding: 10px; font: 500 .83rem var(--font-sans); letter-spacing: .025em; text-transform: none; color: #d6dccd; }
button.nav-link { border: 0; border-bottom: 2px solid transparent; background: none; cursor: pointer; }
.nav-link.active, .nav-link:hover { color: #efd99f; border-bottom-color: #d9b86d; transform: none; }
.parchment-card { border: 1px solid #8c805f; padding: 28px; border-radius: 9px; color-scheme: light; background: #e9dfc8; box-shadow: 0 22px 80px #0006, inset 0 0 0 4px #f4edd729; }
.main-lobby-card { margin: 18px auto !important; gap: 22px; }
.gateway-card { max-width: 680px; padding: 0; overflow: hidden; }
.gateway-card .entry-hero { position: relative; padding: 40px 28px 30px; text-align: center; color: #f0eadb; border-bottom: 1px solid #b49a61; background: linear-gradient(90deg, #1a2e23c9, #1a2e23b3), url('assets/ui/war-table.svg') center 57% / cover; }
.entry-crest { display: block; margin: 0 auto 18px; height: 75px; width: auto; filter: drop-shadow(0 3px 0 #101b13); }
.entry-kicker { margin: 0 0 12px; color: #dfca9b; font-size: .67rem; letter-spacing: .19em; text-transform: uppercase; font-weight: 600; }
.gateway-card .gothic-title { color: #f0eadb; font: 600 clamp(2.5rem, 5.5vw, 3.6rem)/1.05 var(--font-display) !important; letter-spacing: -.025em; text-shadow: 0 2px 0 #122118; }
.gothic-title span { color: #e3c47d; }
.gateway-card .subtitle { margin-top: 14px; color: #dee3d6; font: 400 1rem/1.5 var(--font-sans); letter-spacing: .01em; }
.entry-mode-line { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 18px; margin-top: 22px; color: #c5cdbb; font-size: .71rem; }
.entry-mode-line span + span::before { content: '·'; margin-right: 18px; color: #d9b86d; }
.gateway-card .heraldic-divider { display: none; }
.auth-section { padding: 0 40px; }
.entry-intro { margin: 2px auto 24px; color: #59614d; font-size: .94rem; max-width: 430px; text-align: center; line-height: 1.65; }
.auth-section .input-group { display: flex; flex-direction: column; gap: 8px; }
.auth-section label { font-size: .8rem; color: #4e5a47; font-weight: 650; }
.auth-section input[type='text'] { background: #f5edd9 !important; border-color: #a8a184 !important; color: #26372a !important; min-height: 50px; font-size: 1rem; }
.auth-section input::placeholder { color: #777b67; }
#playAsGuestBtn { min-height: 52px; font-size: 1rem; border-color: #314b36; background: #2e4c36; color: #f4f0df; box-shadow: 0 3px 0 #152e20; }
#playAsGuestBtn:hover { background: #3b6044; }
#playAsGuestBtn span { margin-left: auto; font-size: 1.2rem; }
.or-separator { color: #6e725d; text-transform: none; font-family: var(--font-sans); font-size: .75rem; letter-spacing: .01em; margin: 22px 0 14px; }
.oauth-buttons { gap: 12px; }
.oauth-btn { min-height: 46px; font-size: .82rem; background: #f3ecd8 !important; color: #34422f !important; border-color: #afa78a !important; box-shadow: none; }
.oauth-btn:hover { background: #fff8e7 !important; border-color: #67785e !important; }
.provider-mark { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; font-weight: 800; font-size: .86rem; font-family: var(--font-sans); }
.gateway-help { margin: -4px 24px -8px; text-align: center; font-size: .81rem; }
.gateway-footer { padding: 18px 24px !important; margin-top: 4px !important; border-top: 1px solid #beb294 !important; font-size: .72rem !important; background: #e0d4b9; }
.gateway-footer .footer-link { color: #59614e; font-family: var(--font-sans); }
.mock-profiles-grid { gap: 8px; }
.mock-profiles-grid .btn { font-size: .72rem; min-height: 40px; padding: 7px; }

.hub-card { max-width: 960px; color: #e8e5d5; color-scheme: dark; background: #1c2821; border-color: #59644d; padding: 30px; }
.hub-user-greeting { gap: 14px; flex-wrap: wrap; padding-bottom: 14px; }
.user-crest { background: #314635; border: 1px solid #607453; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; border-radius: 7px; font-size: 1.4rem; }
.hub-card .user-greeting-meta { flex: 1; min-width: 180px; }
.hub-card .user-greeting-meta h2 { font: 500 1.15rem/1.5 var(--font-sans); color: #f0eadb; }
.hub-card .text-burgundy { color: #e6c789; }
.vip-badge { font: 650 .64rem var(--font-sans); letter-spacing: .06em; padding: 4px 7px; border-radius: 3px; box-shadow: none; }
.vip-badge.guest { background: #354439; color: #dce4d4; border-color: #66745b; }
#lobbyXpProgressContainer { background: #142019 !important; border-color: #3b4e3d !important; border-radius: 5px !important; padding: 12px 14px !important; box-shadow: none !important; }
.xp-bar-outer { height: 8px !important; margin: 10px 0 !important; border: 0 !important; background: #354837 !important; }
#xpBarInner { background: #bda162 !important; }
#xpNeededOverlayText { display: none; }
.xp-level-header span, .xp-bar-footer { font-family: var(--font-sans) !important; }
#seeMoreLevelsBtn { font-size: .74rem !important; min-height: 32px; }
.lobby-tabs-bar { gap: 0; border-bottom: 1px solid #4d5b46; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)) !important; margin-top: 22px; }
.hub-card .tab-btn { padding: 14px 8px; min-height: 48px; font: 550 .88rem var(--font-sans); letter-spacing: .02em; color: #b9c4ae !important; border: 0; border-bottom: 3px solid transparent; background: transparent; box-shadow: none; }
.hub-card .tab-btn.active { color: #f1d797 !important; background: #293a2d; border-bottom-color: #d9b86d; }
.hub-card .tab-btn:hover { background: #2b3d2e; color: #f0eadb !important; }
.hub-card .heraldic-divider { display: none; }
.campaign-subtabs-bar { gap: 10px !important; margin: 0 0 22px !important; }
.campaign-subtabs-bar .subtab-btn { min-height: 76px; padding: 13px 12px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 5px; background: #233328; border: 1px solid #42533d; border-radius: 5px; color: #b8c3ac !important; text-align: left; }
.subtab-btn strong { font: 600 .92rem var(--font-sans); color: #e2e6d7; }
.subtab-btn > span { font: 400 .68rem var(--font-sans); letter-spacing: 0; text-transform: none; }
.campaign-subtabs-bar .subtab-btn.active { color: #d2be88 !important; border-color: #c2a360; background: #3c422d; box-shadow: inset 0 2px 0 #d9b86d; }
.campaign-subtabs-bar .subtab-btn.active strong { color: #f1ddb0; }
.section-title { gap: 12px; }
.section-title h3, .highscores-section h3 { font: 500 1.05rem/1.4 var(--font-display); color: #e5d8b3; }
.rooms-filter-bar { gap: 10px !important; margin: 12px 0 !important; }
.stone-wrapper { border-radius: 5px; border-color: #465440; background: #16231a; }
.rooms-table { font-size: .84rem; }
.rooms-table th { background: #26362a; color: #abb99d; font: 600 .66rem var(--font-sans); letter-spacing: .07em; padding: 12px 14px; }
.rooms-table td { padding: 13px 14px; border-color: #344530; }
.rooms-table td .btn { font-size: .77rem; min-height: 36px; padding: 7px 12px; }
.empty-row td { padding: 28px 14px; color: #b5bea7; font-style: normal; }
.pagination-panel .btn { min-height: 36px; font-size: .76rem !important; }
.pagination-panel #pageIndicator { font-family: var(--font-sans); }
.lobby-footer .create-room-group { gap: 12px; }
#quickJoinCasualBtn, #quickJoinZombiesBtn, #quickJoinHordesBtn, #quickJoinCompetitiveBtn { min-height: 48px; background: #d9b86d !important; border-color: #e7cc8a !important; color: #1c2b1f; font-size: .92rem; max-width: none !important; box-shadow: 0 3px 0 #8d713b; }
#quickJoinCasualBtn span, #quickJoinZombiesBtn span, #quickJoinHordesBtn span { margin-left: 8px; }
.accordion-header { min-height: 48px; background: #26372a; padding: 12px 14px; border-color: #465540; border-radius: 4px; font: 500 .84rem var(--font-sans); }
.accordion-header.locked { opacity: .9; }
.lock-badge { padding: 4px 7px; font: 600 .62rem var(--font-sans); letter-spacing: .03em; background: #d3b569; color: #243023; border-radius: 3px; }
.settings-grid { gap: 14px; padding-top: 8px; }
.setting-item label { color: #c5cfb8; font: 500 .76rem var(--font-sans); text-transform: none; letter-spacing: .01em; }
.kpi-card { border-radius: 6px; box-shadow: none; }
.subtab-panel > .kpi-card { padding: 28px !important; background: #26372b url('assets/ui/war-table.svg') right center / auto 100% !important; background-blend-mode: soft-light; border-color: #647052 !important; }
.subtab-panel > .kpi-card h4 { font: 500 1.3rem var(--font-display) !important; color: #ead29b !important; }
.subtab-panel > .kpi-card p { max-width: 570px; font: 400 .95rem/1.7 var(--font-sans) !important; color: #d2dbc7 !important; }
.hub-card .gateway-footer { margin: 8px -30px -30px !important; border-top: 1px solid #48543e !important; background: #19241c; border-radius: 0 0 8px 8px; }
.hub-card .gateway-footer a { color: #b9c3ad; }
.profile-castle-content { gap: 20px; }
.castle-customizer-grid { gap: 20px; }
.lobby-chat-widget { border: 1px solid #627151; border-radius: 7px 7px 0 0; background: #18241c; box-shadow: 0 8px 32px #0005; max-width: calc(100vw - 24px); }
.lobby-chat-header { min-height: 46px; padding: 11px 14px; color: #dec88f; background: #243529; border-radius: 6px 6px 0 0; }
.lobby-chat-header-title { font: 550 .8rem var(--font-sans); }
.lobby-chat-messages { color: #dce3d1; font-size: .84rem; line-height: 1.55; }

.game-container { height: 100dvh; padding: 8px; gap: 8px; grid-template-columns: minmax(0,1fr) 290px; grid-template-rows: 62px minmax(0,1fr); background: #101a13; }
.game-container.hordes-layout { grid-template-columns: minmax(0,1fr); }
.hud-header { background: #1c2a20; border-color: #4d5b43; border-radius: 5px; padding: 0 16px; gap: 12px; }
.hud-item .label { color: #a9b69d; font: 500 .64rem var(--font-sans); letter-spacing: .03em; text-transform: uppercase; }
.hud-item .value { font: 600 1rem var(--font-sans); font-variant-numeric: tabular-nums; }
.room-info { min-width: 0; max-width: 31%; }
#hudRoomName { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #e4d4a3; font-size: .85rem; }
.gold-box { background: #3c4028; border-color: #7c7544; border-radius: 5px; padding: 6px 11px; }
.canvas-wrapper { border-radius: 5px; border-color: #506149; background: #344d38; min-height: 0; }
.shop-sidebar { border-radius: 5px; padding: 16px; gap: 12px; background: #1b2920; border-color: #4e5d45; min-height: 0; }
.sidebar-title { font: 500 1.1rem var(--font-display); letter-spacing: .015em; }
.sidebar-desc { font-size: .77rem; line-height: 1.55; color: #acb9a0; }
.shop-tabs-bar { gap: 4px; border-bottom-color: #46593f; }
.shop-tab-btn { font: 550 .74rem var(--font-sans); min-height: 42px; padding: 9px 3px; }
.shop-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px 8px; padding: 8px 0; }
.shop-grid.active { align-content: start; }
.circle-card-container { width: 70px; height: 86px; margin-bottom: 7px; }
.shop-circle-card { width: 70px; height: 86px; border-radius: 6px; border: 1px solid #667354; background: #2d3e2b; overflow: hidden; }
.shop-circle-card:hover:not([disabled]) { transform: translateY(-2px); box-shadow: none; border-color: #dfc479; background: #3a4f32; }
.shop-circle-card .unit-icon { width: 60px; height: 68px; object-fit: contain; margin-top: -7px; pointer-events: none; }
.shop-circle-card .price-tag { font-size: .71rem; padding: 3px 0; background: #17251a; color: #edcf85; border-color: #546044; }
.shop-circle-wrapper .info-btn { top: -5px; right: -5px; width: 26px; height: 26px; font: 700 .7rem var(--font-sans); color: #17291b; background: #d9be7b; border: 2px solid #233325; box-shadow: none; }
.shop-circle-wrapper .unit-label { font: 500 .73rem/1.35 var(--font-sans); color: #e7e7d4; }
.unit-mini-stats { font-size: .6rem; color: #a7b49b; line-height: 1.45; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 0 5px; }
.unit-mini-stats span:nth-child(3) { display: none; }
.shop-circle-wrapper.locked .shop-circle-card { filter: grayscale(.65) brightness(.75); }
.shop-circle-wrapper.locked .lock-overlay { width: 70px; height: 86px; border-radius: 6px; color: #e6d5ae; border-color: #667354; background: #18251ad1; font: 550 .7rem var(--font-sans); }
.selections-box { border-color: #3e5138; margin-top: auto; }
.box-title { font: 550 .69rem var(--font-sans); color: #b1bfa5; letter-spacing: .06em; }
.selection-row { border: 0; border-radius: 3px; background: #233426; font-size: .76rem; }
.no-selection { font-size: .74rem; font-style: normal; line-height: 1.6; }
.controls-legend { border-radius: 4px; border: 1px solid #687854; background: #1b2b20ed; opacity: .92; font: 400 .69rem/1.65 var(--font-sans); padding: 9px 12px; }
.chat-container { border-radius: 4px; border: 1px solid #677352; background: #1c2c20ed; width: 280px; max-height: 115px; }
.chat-messages { font-size: .7rem; line-height: 1.45; }
.chat-messages .msg.system { font-weight: 400; color: #d5c590; }
.buffs-container { filter: none; }
.hud-overlay, .realm-modal-overlay, .ad-modal-overlay { height: 100dvh; background: #07110de6; backdrop-filter: none; padding: 20px; overflow-y: auto; }
.realm-modal-panel, .victory-banner, .vip-store-panel { border: 1px solid #9f905f !important; border-radius: 9px; background: #1d2c22 !important; box-shadow: 0 24px 80px #0008; max-height: calc(100dvh - 40px); overflow-y: auto; }
.realm-modal-header { border-bottom: 1px solid #4c5c43; }
.realm-modal-badge { border: 0; background: none; color: #d7c48b; padding: 0; font: 600 .73rem var(--font-sans); letter-spacing: .07em; }
.realm-modal-panel p, .realm-modal-content p { line-height: 1.65 !important; }
.realm-modal-content { color: #c3cfb8; }
.realm-modal-panel .btn, .vip-store-panel .btn { min-height: 44px; }
.vip-crown-icon { filter: none !important; }
.vip-store-header h2 { font-size: 1.6rem !important; text-shadow: none !important; letter-spacing: 0 !important; text-transform: none !important; }
.vip-store-header p { font-style: normal !important; line-height: 1.6; }
.vip-feature-card { background: #25372a !important; border-color: #45563e !important; border-radius: 5px; }
.vip-feature-card h4 { font-family: var(--font-sans) !important; font-size: .8rem !important; }
.vip-feature-card p { color: #b7c4aa !important; font-size: .73rem !important; }
.vip-pricing-card { border: 1px solid #9b8a53 !important; border-radius: 6px; background: #17251b !important; box-shadow: none !important; }
.vip-pricing-card > p { line-height: 1.6; font-size: .76rem !important; color: #bdc9af !important; }
#vipPaymentStatus { margin: 12px 0; color: #e1ce9c !important; }
.victory-banner { padding: 32px; max-width: 720px; }
.victory-title { font: 500 clamp(1.8rem,4vw,2.5rem) var(--font-display); letter-spacing: .025em; }
.winner-name { font: 600 1.4rem var(--font-sans); color: #f0d490; text-shadow: none; }
.victory-banner .stone-wrapper { max-height: 28dvh; }
.cooldown-msg { font: 400 .8rem/1.6 var(--font-sans); color: #b2bfa5; }
.hordes-card { border-radius: 6px; background: #293c2c; box-shadow: none; }
.hordes-card .card-unit-name { font-family: var(--font-sans); }
.legal-page { user-select: text; }
.legal-card { padding: 40px; }
.legal-card .gothic-title { font: 500 2.2rem var(--font-display); letter-spacing: -.02em; color: #314a32; text-shadow: none; }
.legal-card .subtitle { color: #73785d; font-family: var(--font-sans); letter-spacing: .03em; }
.legal-content h2 { font-family: var(--font-display); color: #4d613e; }
.legal-content p, .legal-content li { color: #45513c; line-height: 1.8; }
.legal-content a { color: #5e4a21; }

.field-guide { width: min(600px, calc(100vw - 32px)); color: #e7e7d4; background: #1d2d22; border: 1px solid #a39059; border-radius: 10px; padding: 28px; box-shadow: 0 20px 100px #0009; max-height: calc(100dvh - 32px); overflow: auto; margin: auto; }
.field-guide::backdrop { background: #08130de8; }
.field-guide-header { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.field-guide-kicker { font-size: .65rem; text-transform: uppercase; letter-spacing: .16em; color: #c3b276; margin-bottom: 8px; }
.field-guide h2 { font: 500 1.7rem/1.2 var(--font-display); color: #e8d4a0; }
.field-guide-header button { width: 44px; flex: 0 0 44px; font-size: 1.4rem; padding: 0; }
.field-guide-intro { font-size: .88rem; line-height: 1.65; color: #b9c8ad; margin: 18px 0; }
.field-guide ol { list-style: none; display: flex; flex-direction: column; gap: 10px; padding: 0; }
.field-guide li { display: grid; grid-template-columns: 32px 1fr; gap: 12px; padding: 12px; background: #263b2b; border: 1px solid #435940; border-radius: 5px; }
.field-guide-number { width: 28px; height: 28px; border: 1px solid #7b8957; border-radius: 50%; display: grid; place-items: center; color: #d8c289; font-size: .77rem; }
.field-guide li.is-complete { border-color: #8d9d62; }
.field-guide li.is-complete .field-guide-number { background: #c7b56d; color: #213a24; }
.field-guide li strong { display: block; font-size: .86rem; color: #e5e5cf; margin-bottom: 3px; }
.field-guide li p { color: #b7c8ac; font-size: .78rem; line-height: 1.55; }
.field-guide-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 20px; }
.field-guide-progress { color: #aebf9f; font-size: .74rem; }

@media (min-width: 1500px) { .gateway-card { margin-top: 44px; } .game-container { grid-template-columns: minmax(0,1fr) 315px; } }
@media (max-width: 1000px) {
  .nav-links a[href='/privacy'], .nav-links a[href='/tos'] { display: none; }
  .hud-header { gap: 8px; padding: 0 10px; }
  .hud-item { gap: 5px; }
  .hud-item .label { font-size: .58rem; }
  .sound-control input { display: none; }
  .game-container { grid-template-columns: minmax(0,1fr) 260px; }
  .shop-sidebar { padding: 12px; }
}
@media (max-width: 700px) {
  .top-nav-bar { height: 60px; padding: 0 16px; }
  .nav-container { gap: 10px; }
  .nav-brand { font-size: .85rem; gap: 7px; }
  .nav-brand img { width: 23px; height: 28px; }
  .nav-links { gap: 0; }
  .nav-link { font-size: .75rem; padding: 10px 7px; }
  .nav-links a[href='/news'], .nav-links a[href='/contact'], .nav-links a[href='news.html'], .nav-links a[href='contact.html'],
  .nav-links a[href='/'], .nav-links a[href='index.html'], .nav-links a[href='/tos'], .nav-links a[href='tos.html'] { display: none; }
  .overlay-container { padding: 72px 12px 64px; }
  .main-lobby-card { margin: 10px auto !important; }
  .gateway-card .entry-hero { padding: 28px 20px 24px; }
  .entry-crest { height: 58px; margin-bottom: 14px; }
  .entry-kicker { font-size: .57rem; letter-spacing: .13em; }
  .entry-mode-line { font-size: .63rem; gap: 8px 10px; margin-top: 17px; }
  .entry-mode-line span + span::before { margin-right: 10px; }
  .auth-section { padding: 0 24px; }
  .entry-intro { font-size: .87rem; margin-bottom: 20px; }
  .oauth-buttons { flex-direction: column; gap: 10px; }
  .oauth-btn { width: 100%; }
  .gateway-footer { gap: 9px !important; padding: 16px !important; font-size: .65rem !important; }
  .hub-card { padding: 18px; }
  .hub-user-greeting { gap: 10px; }
  .user-crest { width: 40px; height: 40px; }
  .hub-card .user-greeting-meta { min-width: 130px; }
  .hub-card .user-greeting-meta h2 { font-size: .96rem; }
  .hub-user-greeting > .btn { font-size: .72rem !important; padding: 8px 10px !important; }
  .lobby-tabs-bar { grid-template-columns: repeat(auto-fit, minmax(64px,1fr)) !important; margin-top: 16px; }
  .hub-card .tab-btn { font-size: .76rem; padding: 12px 4px; }
  .campaign-subtabs-bar { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 8px !important; }
  .campaign-subtabs-bar .subtab-btn { min-height: 66px; padding: 11px; }
  .subtab-btn strong { font-size: .85rem; }
  .subtab-btn > span { font-size: .65rem; }
  .section-title h3 { font-size: .94rem; }
  .rooms-table th, .rooms-table td { padding: 10px 8px; font-size: .7rem; }
  .rooms-table td .btn { padding: 7px 8px; font-size: .69rem; min-height: 40px; }
  .rooms-table th { font-size: .56rem; }
  .rooms-filter-bar select { width: 100%; }
  .create-room-group { grid-template-columns: 1fr !important; }
  .lobby-footer .create-room-group { grid-template-columns: 1fr !important; }
  .lobby-footer .create-room-group .btn { width: 100%; }
  .hub-card .gateway-footer { margin: 8px -18px -18px !important; }
  .subtab-panel > .kpi-card { padding: 22px 18px !important; }
  .subtab-panel > .kpi-card h4 { font-size: 1.1rem !important; }
  .subtab-panel > .kpi-card p { font-size: .85rem !important; }
  .castle-customizer-grid { grid-template-columns: 1fr; }
  .highscores-champions-grid { gap: 8px !important; }
  .highscores-champions-grid .kpi-card { padding: 12px 8px !important; }
  .highscores-champions-grid .kpi-value { font-size: .93rem !important; overflow-wrap: anywhere; }
  .lobby-chat-widget { right: 12px; bottom: 0; }
  .lobby-chat-widget.collapsed { width: 190px; }
  .hud-overlay, .realm-modal-overlay, .ad-modal-overlay { padding: 12px; }
  .realm-modal-panel, .vip-store-panel { padding: 20px !important; width: 100% !important; max-height: calc(100dvh - 24px); }
  .realm-modal-panel .realm-modal-content { padding: 12px 0 !important; }
  .victory-banner { padding: 24px 18px; width: 100%; }
  .victory-banner .leaderboard-table th, .victory-banner .leaderboard-table td { font-size: .68rem; }
  .vip-store-header { padding-top: 30px !important; }
  .vip-store-header h2 { font-size: 1.4rem !important; }
  .vip-features-grid { gap: 8px !important; }
  .field-guide { padding: 20px; }
  .field-guide h2 { font-size: 1.4rem; }
  .field-guide-footer { align-items: stretch; flex-direction: column; }
  .field-guide-footer .btn { width: 100%; }
  .legal-main { padding: 84px 12px 28px; }
  .legal-card { padding: 24px; }
  .legal-card .gothic-title { font-size: 1.7rem; }
}
@media (pointer: coarse) {
  .btn, .tab-btn, .subtab-btn, .shop-tab-btn, .btn-mobile-banner, .btn-mobile-mode { min-height: 48px; }
  .info-btn { min-height: 36px; min-width: 36px; }
  #lobbyChatInput, #nicknameInput { font-size: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
