dok/public/css/building.css
2026-03-15 10:24:21 +00:00

638 lines
8.7 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.

/* =========================
Base
========================= */
body {
margin: 0;
height: 100vh;
font-family: "Cinzel", serif;
color: #2b1b0f;
}
/* =========================
Progress Bar
========================= */
.progress-bar {
width: 100%;
height: 12px;
background: #5b3a1f;
border: 1px solid #8b6a3c;
margin-top: 8px;
}
.progress-fill {
height: 100%;
background: linear-gradient(#3cff3c, #1ea01e);
box-shadow: 0 0 6px #3cff3c;
}
/* =========================
Popup Fenster
========================= */
.building-popup {
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 900px;
max-width: 90vw;
background: url("/images/parchment.png") center / cover no-repeat;
border: 4px solid #6b4b2a;
border-radius: 10px;
box-shadow:
0 0 40px rgba(0, 0, 0, 0.9),
inset 0 0 25px rgba(0, 0, 0, 0.5);
display: none;
z-index: 1000;
animation: popupFade 0.25s ease;
}
/* =========================
Popup Header
========================= */
.popup-header {
padding: 14px;
font-family: "Tangerine", serif;
font-size: 36px;
background: linear-gradient(#6b4b2a, #3c2414);
border-bottom: 2px solid #8b6a3c;
display: flex;
justify-content: space-between;
color: #f0d9a6;
text-shadow: 0 2px 4px black;
}
.popup-header span {
cursor: pointer;
}
/* =========================
Tabs
========================= */
.popup-tabs {
display: flex;
border-bottom: 2px solid #8b6a3c;
}
.popup-tabs button {
flex: 1;
padding: 10px;
font-family: "Cinzel", serif;
font-weight: bold;
background: linear-gradient(#5c3b20, #3a2513);
border: 1px solid #8b6a3c;
color: #e7d9b4;
cursor: pointer;
transition: 0.2s;
}
.popup-tabs button:hover {
background: linear-gradient(#8b6a3c, #5c3b20);
}
.popup-tabs button.active {
background: linear-gradient(#d4b97a, #9c7a3a);
color: #2b1b0f;
}
/* =========================
Popup Inhalt
========================= */
.popup-content {
padding: 20px;
font-size: 20px;
line-height: 1.6;
letter-spacing: 0.5px;
background: rgba(255, 255, 255, 0.08);
border-radius: 6px;
color: #2b1b0f;
}
.popup-content h3 {
font-family: "Tangerine", serif;
font-size: 32px;
color: #3b2412;
margin-top: 0;
}
.popup-content p {
color: #3a2413;
}
/* =========================
Tab Inhalte
========================= */
.tab-content {
display: none;
}
.tab-content.active {
display: block;
}
/* =========================
Buttons
========================= */
.popup-content button {
margin-top: 10px;
background: linear-gradient(#7a5a2a, #caa24b);
border: 1px solid #e0c67b;
padding: 10px 18px;
color: #1a1206;
font-weight: bold;
cursor: pointer;
transition: 0.2s;
}
.popup-content button:hover {
transform: scale(1.05);
box-shadow:
0 0 10px #ffd66b,
0 0 25px #caa24b;
}
/* =========================
Tooltip
========================= */
#map-tooltip {
position: fixed;
pointer-events: none;
background: rgba(0, 0, 0, 0.85);
color: #fff;
padding: 8px 12px;
border-radius: 6px;
font-size: 14px;
display: none;
z-index: 9999;
max-width: 200px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
}
#map-tooltip strong {
color: #ffd700;
}
/* =========================
Character Window
========================= */
.character {
position: absolute;
top: 100px;
left: 50%;
transform: translateX(-50%);
}
#character-ui {
position: relative;
width: 600px;
height: 550px;
margin: auto;
}
.equip-left,
.equip-right {
display: flex;
flex-direction: column;
gap: 12px;
}
.character img {
height: 340px;
object-fit: contain;
filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.6));
}
/* =========================
Equipment Slots
========================= */
.equip-slot {
width: 70px;
height: 70px;
position: relative;
background-image: url("/images/items/slot_mittel.png");
background-size: cover;
background-position: center;
transition: 0.2s;
display: flex;
align-items: center;
justify-content: center;
}
.slot-label {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #ffffff;
font-size: 12px;
font-weight: bold;
text-shadow:
0 0 3px #000,
0 0 6px #000,
0 0 10px rgba(0, 0, 0, 0.8);
pointer-events: none;
}
/* Slot Basis */
.slot.has-item .slot-label {
display: none;
}
.slot.drag-over {
outline: 3px solid gold;
box-shadow: 0 0 10px gold;
}
.slot:hover {
filter: brightness(1.3);
}
.slot {
position: absolute;
width: 90px;
height: 90px;
background-image: url("/images/items/slot_mittel.png");
background-size: cover;
display: flex;
align-items: center;
justify-content: center;
}
/* HELM */
.helmet {
top: 10px;
left: 40%;
transform: translateX(-50%);
}
/* AMULET */
.amulet {
top: 10px;
left: 60%;
transform: translateX(-50%);
}
/* SCHULTER */
.shoulder {
top: 110px;
left: 80px;
}
/* WAFFE */
.weapon {
top: 110px;
right: 70px;
cursor: grab;
}
/* HANDSCHUHE */
.gloves {
top: 220px;
left: 80px;
}
/* SCHILD */
.shield {
top: 220px;
right: 70px;
}
/* GÜRTEL */
.belt {
top: 270px;
left: 50%;
transform: translateX(-50%);
}
/* RINGE */
.ring1 {
top: 330px;
left: 80px;
}
.ring2 {
top: 330px;
right: 70px;
}
/* STIEFEL */
.boots {
bottom: 0;
left: 50%;
transform: translateX(-50%);
}
/* =========================
Inventory
========================= */
#inventory-grid {
display: grid;
grid-template-columns: repeat(8, 70px);
grid-auto-rows: 70px;
gap: 8px;
width: max-content;
margin: 0 auto;
padding: 10px;
max-height: 340px;
}
#inventory-wrapper {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
}
#inventory-page {
font-size: 18px;
font-weight: bold;
display: flex;
align-items: center;
}
#inv-left,
#inv-right {
background: none;
border: none;
font-size: 24px;
cursor: pointer;
padding: 0;
margin: 0;
display: flex;
align-items: center;
justify-content: center;
color: #5c3b20;
}
#inv-left:hover,
#inv-right:hover {
color: #8b6a3c;
transform: scale(1.1);
}
#inventory-nav {
display: flex;
align-items: center;
justify-content: center;
gap: 15px;
margin-top: 10px;
}
.inventory-slot {
width: 70px;
height: 70px;
background-image: url("/images/items/slot_mittel.png");
background-size: cover;
background-position: center;
display: flex;
align-items: center;
justify-content: center;
cursor: grab;
}
.inventory-slot:active {
cursor: grabbing;
}
.inventory-slot:hover,
.equip-slot:hover {
filter: brightness(1.2);
}
.equip-slot.drag-over {
outline: 2px solid gold;
filter: brightness(1.3);
}
.equip-slot:not(:has(img)) {
opacity: 0.7;
}
.item-common {
border: 2px solid #9d9d9d;
}
.item-rare {
border: 2px solid #0070dd;
}
.item-epic {
border: 2px solid #a335ee;
}
.item-legendary {
border: 2px solid #ff8000;
}
.inventory-slot img,
.slot img {
width: 80%;
height: 80%;
object-fit: contain;
}
/* =========================
Tooltip (Items)
========================= */
#item-tooltip {
position: fixed;
pointer-events: none;
background: rgba(0, 0, 0, 0.85);
color: #fff;
padding: 8px 12px;
border-radius: 6px;
font-size: 14px;
display: none;
z-index: 9999;
max-width: 200px;
border: 1px solid #555;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
}
/* =========================
Animation
========================= */
@keyframes popupFade {
from {
opacity: 0;
transform: translate(-50%, -40%);
}
to {
opacity: 1;
transform: translate(-50%, -50%);
}
}
/* =========================
Schwarzmarkt
========================= */
.market-page {
padding: 8px 12px;
border: 1px solid #8b6a3c;
background: rgba(0, 0, 0, 0.15);
}
.market-page.owned {
color: #3cff3c;
}
.market-page.buy {
cursor: pointer;
background: #6b4b2a;
color: white;
}
.market-page.buy:hover {
background: #8b6a3c;
}
.market-page.locked {
opacity: 0.4;
}
/* =========================
Schwarzmarkt Tabs
========================= */
.market-tabs {
display: flex;
gap: 6px;
margin-bottom: 10px;
}
.market-tab {
padding: 8px 14px;
background: #5c3b20;
color: #e7d9b4;
border: 1px solid #8b6a3c;
cursor: pointer;
font-family: "Cinzel", serif;
}
.market-tab:hover {
background: #8b6a3c;
}
.market-tab.active {
background: #d4b97a;
color: #2b1b0f;
}
/* Tab Inhalte */
.market-tab-content {
display: none;
}
.market-tab-content.active {
display: block;
}
#market-pages {
display: grid;
grid-template-columns: repeat(4, 120px);
gap: 14px;
justify-content: center;
margin-top: 15px;
/* Ehemals doppelt definiert zusammengeführt */
}
.bag-icon {
width: 60px;
height: 60px;
}