/* ================================================ launcher.css – Dynasty of Knights Launcher ================================================ */ /* ── Fonts ─────────────────────────────────────── */ @font-face { font-family: "Cinzel Decorative"; src: url("/fonts/CinzelDecorative-Regular.woff2") format("woff2"), url("/fonts/CinzelDecorative-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; } @font-face { font-family: "Cinzel Decorative"; src: url("/fonts/CinzelDecorative-Bold.woff2") format("woff2"), url("/fonts/CinzelDecorative-Bold.ttf") format("truetype"); font-weight: 700; font-style: normal; } @font-face { font-family: "Cinzel Decorative"; src: url("/fonts/CinzelDecorative-Black.woff2") format("woff2"), url("/fonts/CinzelDecorative-Black.ttf") format("truetype"); font-weight: 900; font-style: normal; } @font-face { font-family: "Cinzel"; src: url("/fonts/Cinzel-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; } @font-face { font-family: "Cinzel"; src: url("/fonts/Cinzel-Medium.ttf") format("truetype"); font-weight: 500; font-style: normal; } @font-face { font-family: "Cinzel"; src: url("/fonts/Cinzel-SemiBold.ttf") format("truetype"); font-weight: 600; font-style: normal; } @font-face { font-family: "Cinzel"; src: url("/fonts/Cinzel-Bold.ttf") format("truetype"); font-weight: 700; font-style: normal; } @font-face { font-family: "Cinzel"; src: url("/fonts/Cinzel-ExtraBold.ttf") format("truetype"); font-weight: 800; font-style: normal; } @font-face { font-family: "Cinzel"; src: url("/fonts/Cinzel-Black.ttf") format("truetype"); font-weight: 900; font-style: normal; } @font-face { font-family: "Tangerine"; src: url("/fonts/Tangerine-Regular.woff2") format("woff2"), url("/fonts/Tangerine-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; } @font-face { font-family: "Tangerine"; src: url("/fonts/Tangerine-Bold.woff2") format("woff2"), url("/fonts/Tangerine-Bold.ttf") format("truetype"); font-weight: 700; font-style: normal; } /* ── Base ───────────────────────────────────────── */ html, body { margin: 0; padding: 0; background: #0a0603; overflow: hidden; width: 100%; /* nicht 100vw – Firefox zieht Scrollbar-Breite ab */ height: 100%; display: flex; align-items: center; justify-content: center; } /* ── Worldmap ───────────────────────────────────── */ .worldmap { position: relative; /* Map auf max. 85% Viewport-Breite und 82% Viewport-Höhe begrenzen → Chat (links unten) und Quickmenu (unten) verdecken weniger */ width: min(2037px, 85vw); height: min(1018px, 82vh); aspect-ratio: 2037 / 1018; flex-shrink: 0; will-change: transform; } .map-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; /* object-fit: contain; */ } .map-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; will-change: transform; } .area { fill: rgba(255, 255, 255, 0); stroke: transparent; stroke-width: 3; cursor: pointer; transition: fill 0.25s, stroke 0.25s; will-change: fill, stroke; } .area:hover { fill: rgba(255, 255, 255, 0); stroke: transparent; } /* ── Map Tooltip ────────────────────────────────── */ #map-tooltip { position: fixed; pointer-events: none; background: rgba(0, 0, 0, 0.85); color: #f3e6c5; border: 1px solid #8b6a3c; border-radius: 6px; padding: 8px 12px; font-family: serif; font-size: 13px; display: none; z-index: 9999; max-width: min(220px, calc(100vw - 20px)); line-height: 1.6; } #map-tooltip hr { border: none; border-top: 1px solid #8b6a3c; margin: 6px 0; } /* ── Chat ───────────────────────────────────────── */ #game-chat { position: fixed; left: 20px; bottom: 30px; width: 250px; height: 300px; background: linear-gradient(#2b2115, #1a140d); border: 3px solid #8b6a3c; color: #f3e6c5; font-family: serif; display: flex; flex-direction: column; z-index: 1000; transition: transform 0.3s ease; } #game-chat.chat-collapsed { transform: translateX(calc(-100% - 23px)); } #chat-toggle { position: fixed; left: 273px; /* 20px + 250px + 3px border */ bottom: calc(30px + 130px); width: 22px; height: 40px; background: linear-gradient(#6b4a25, #3a2512); border: 2px solid #8b6a3c; border-left: none; border-radius: 0 6px 6px 0; color: #f3e6c5; font-size: 12px; cursor: pointer; z-index: 1001; display: flex; align-items: center; justify-content: center; transition: left 0.3s ease, background 0.15s; } #chat-toggle:hover { background: linear-gradient(#8a6235, #4a3018); border-color: #ffd27a; } #chat-messages { flex: 1; resize: none; background: #1b140b; border: none; color: #f3e6c5; padding: 5px; font-size: 13px; overflow-y: auto; } .chat-channels { display: flex; gap: 4px; padding: 4px; } .chat-channels button { background: linear-gradient(#6b4a25, #3a2512); border: 1px solid #caa46a; color: #f3e6c5; font-family: serif; font-size: 13px; padding: 3px 8px; cursor: pointer; transition: all 0.15s ease; } .chat-channels button:hover { background: linear-gradient(#8a6235, #4a3018); border-color: #ffd27a; box-shadow: 0 0 6px rgba(255, 210, 120, 0.6); } .chat-channels button.active { background: linear-gradient(#a37742, #5c3a1a); border-color: #ffd27a; box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.6); } .global-chat { color: #e6c48a; } .guild-chat { color: #6ed37c; } .private-chat { color: #7ec8ff; } /* ── Music Control ──────────────────────────────── */ #music-control { position: fixed; bottom: 16px; right: 16px; z-index: 9999; display: flex; align-items: center; gap: 8px; background: rgba(10, 5, 0, 0.85); border: 1px solid #c8960c; border-radius: 8px; padding: 6px 10px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.6); } #music-mute-btn { background: none; border: none; cursor: pointer; font-size: 20px; line-height: 1; padding: 0; color: #f0d080; transition: transform 0.15s; } #music-mute-btn:hover { transform: scale(1.2); } #music-volume { -webkit-appearance: none; appearance: none; width: 80px; height: 4px; background: #3a2000; border-radius: 2px; outline: none; cursor: pointer; } #music-volume::-webkit-slider-thumb { -webkit-appearance: none; width: 12px; height: 12px; border-radius: 50%; background: #c8960c; cursor: pointer; }