dok/public/css/launcher.css
2026-04-10 12:41:01 +01:00

330 lines
6.9 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ================================================
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;
}