/* ========================= 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; max-height: 1000px; 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; flex-direction: column; z-index: 1000; animation: popupFade 0.25s ease; } .building-popup.active { display: flex; } /* ========================= 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: 10px 20px; font-size: 20px; line-height: 1.6; letter-spacing: 0.5px; background: rgba(255, 255, 255, 0.08); border-radius: 6px; color: #2b1b0f; overflow-y: auto; flex: 1; } .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-ui { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 8px 0 4px 0; } /* Linke & Rechte Slot-Spalte */ .equip-col { display: flex; flex-direction: column; gap: 8px; align-items: center; } /* Avatar in der Mitte */ .character-center { display: flex; flex-direction: column; align-items: center; gap: 8px; position: relative; } /* ======================== Avatar Wrapper ======================== */ .avatar-wrapper { position: relative; width: 160px; height: 270px; border-radius: 8px; border: 2px solid #8b6a3c; background: radial-gradient(ellipse at center, #2a1f14 0%, #0d0a07 100%); box-shadow: 0 0 20px rgba(0, 0, 0, 0.8), inset 0 0 30px rgba(0, 0, 0, 0.5); overflow: hidden; } .avatar-base { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: contain; display: block; opacity: 0.9; } /* Item Overlays */ .avatar-overlay { position: absolute; pointer-events: none; display: none; z-index: 2; } .avatar-overlay.visible { display: block; animation: overlayFadeIn 0.25s ease; } .avatar-overlay img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 0 4px rgba(255, 200, 80, 0.5)) drop-shadow(0 2px 6px rgba(0, 0, 0, 0.9)); } @keyframes overlayFadeIn { from { opacity: 0; transform: scale(1.15); } to { opacity: 1; transform: scale(1); } } /* Positionen der Item-Overlays (180x320px) */ .avatar-overlay[data-slot="helmet"] { top: 1%; left: 22%; width: 56%; height: 20%; } .avatar-overlay[data-slot="amulet"] { top: 21%; left: 58%; width: 30%; height: 11%; } .avatar-overlay[data-slot="shoulder"] { top: 19%; left: 3%; width: 30%; height: 13%; } .avatar-overlay[data-slot="weapon"] { top: 38%; left: 56%; width: 40%; height: 32%; } .avatar-overlay[data-slot="gloves"] { top: 54%; left: 2%; width: 30%; height: 13%; } .avatar-overlay[data-slot="shield"] { top: 36%; left: 4%; width: 36%; height: 30%; } .avatar-overlay[data-slot="belt"] { top: 51%; left: 18%; width: 64%; height: 11%; } .avatar-overlay[data-slot="ring"] { top: 67%; left: 3%; width: 24%; height: 9%; } .avatar-overlay[data-slot="boots"] { top: 80%; left: 12%; width: 76%; height: 18%; } /* Top-Slots (Helm + Amulett) über dem Avatar */ .equip-top { display: flex; gap: 8px; justify-content: center; } /* Bottom-Slots (Gürtel + Stiefel) unter dem Avatar */ .equip-bottom { display: flex; gap: 8px; justify-content: center; } /* ========================= Equipment Slots ========================= */ .slot { width: 68px; height: 68px; position: relative; background-image: url("/images/items/slot_mittel.png"); background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; border-radius: 4px; transition: 0.2s; cursor: pointer; } .slot:hover { filter: brightness(1.3); box-shadow: 0 0 8px rgba(200, 160, 60, 0.5); } .slot.drag-over { outline: 3px solid gold; box-shadow: 0 0 14px gold; } .slot.has-item { box-shadow: 0 0 8px rgba(255, 200, 60, 0.4); } .slot-label { position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%); white-space: nowrap; color: #ffffff; font-family: "Cinzel", serif; font-size: 9px; font-weight: bold; text-shadow: 0 0 3px #000, 0 0 6px #000; pointer-events: none; background: rgba(0, 0, 0, 0.45); padding: 1px 4px; border-radius: 3px; } .slot.has-item .slot-label { display: none; } .slot img { width: 80%; height: 80%; object-fit: contain; } /* ========================= Inventory ========================= */ .inventory-section-title { font-family: "Tangerine", serif; font-size: 26px; color: #3b2412; text-align: center; margin: 4px 0 2px 0; border-top: 1px solid #8b6a3c; padding-top: 6px; letter-spacing: 1px; } #inventory-grid { display: grid; grid-template-columns: repeat(8, 56px); grid-auto-rows: 56px; gap: 5px; width: max-content; margin: 0 auto; padding: 6px; } #inventory-wrapper { display: flex; align-items: center; justify-content: center; } #inventory-page { font-family: "Cinzel", serif; font-size: 14px; font-weight: bold; color: #3b2412; display: flex; align-items: center; min-width: 100px; justify-content: center; } #inv-left, #inv-right { background: none; border: none; font-size: 22px; cursor: pointer; padding: 4px 8px; margin: 0; display: flex; align-items: center; justify-content: center; color: #5c3b20; transition: 0.2s; border-radius: 4px; } #inv-left:hover, #inv-right:hover { color: #f0d9a6; background: rgba(90, 60, 20, 0.4); transform: scale(1.1); } #inv-left:disabled, #inv-right:disabled { opacity: 0.25; cursor: not-allowed; transform: none; } #inventory-nav { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 8px; padding: 6px; background: rgba(0, 0, 0, 0.1); border-top: 1px solid #8b6a3c; border-radius: 0 0 6px 6px; } .inventory-slot { width: 56px; height: 56px; background-image: url("/images/items/slot_mittel.png"); background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; cursor: grab; border-radius: 3px; transition: 0.2s; } .inventory-slot:active { cursor: grabbing; } .inventory-slot:hover { filter: brightness(1.25); box-shadow: 0 0 6px rgba(200, 160, 60, 0.4); } .inventory-slot img { width: 80%; height: 80%; object-fit: contain; } .item-common { box-shadow: 0 0 0 2px #9d9d9d inset; } .item-rare { box-shadow: 0 0 0 2px #0070dd inset; } .item-epic { box-shadow: 0 0 0 2px #a335ee inset; } .item-legendary { box-shadow: 0 0 0 2px #ff8000 inset; } /* ========================= 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); } /* ========================= Game Notification ========================= */ #game-notification { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.85); z-index: 9999; width: 360px; max-width: 90vw; background: url("/images/parchment.png") center / cover no-repeat; border: 3px solid #6b4b2a; border-radius: 10px; box-shadow: 0 0 40px rgba(0, 0, 0, 0.9), inset 0 0 20px rgba(0, 0, 0, 0.4); display: none; opacity: 0; transition: opacity 0.2s ease, transform 0.2s ease; } #game-notification.show { display: block; opacity: 1; transform: translate(-50%, -50%) scale(1); } .notification-header { padding: 12px 16px; background: linear-gradient(#6b4b2a, #3c2414); border-bottom: 2px solid #8b6a3c; border-radius: 7px 7px 0 0; font-family: "Tangerine", serif; font-size: 28px; color: #f0d9a6; text-shadow: 0 2px 4px black; display: flex; align-items: center; gap: 8px; } .notification-body { padding: 20px 20px 10px 20px; font-family: "Cinzel", serif; font-size: 15px; color: #2b1b0f; line-height: 1.8; text-align: center; white-space: pre-line; } .notification-footer { padding: 10px 20px 16px 20px; display: flex; justify-content: center; } .notification-btn { padding: 8px 28px !important; font-size: 14px !important; font-family: "Cinzel", serif !important; font-weight: bold !important; background: linear-gradient(#7a5a2a, #caa24b) !important; border: 1px solid #e0c67b !important; border-radius: 4px; color: #1a1206 !important; cursor: pointer; transition: 0.2s; margin-top: 0 !important; } .notification-btn:hover { transform: scale(1.05); box-shadow: 0 0 10px #ffd66b, 0 0 20px #caa24b; } #game-notification-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.5); z-index: 9998; display: none; } #game-notification-overlay.show { display: block; } /* ========================= Animation ========================= */ @keyframes popupFade { from { opacity: 0; transform: translate(-50%, -40%); } to { opacity: 1; transform: translate(-50%, -50%); } } /* ========================= Schwarzmarkt Tabs ========================= */ .market-tabs { display: flex; gap: 6px; margin-bottom: 16px; border-bottom: 2px solid #8b6a3c; padding-bottom: 8px; } .market-tab { padding: 8px 20px; background: linear-gradient(#5c3b20, #3a2513); color: #e7d9b4; border: 1px solid #8b6a3c; border-radius: 4px; cursor: pointer; font-family: "Cinzel", serif; font-size: 13px; font-weight: bold; letter-spacing: 0.5px; transition: 0.2s; } .market-tab:hover { background: linear-gradient(#8b6a3c, #5c3b20); box-shadow: 0 0 8px rgba(200, 160, 80, 0.4); } .market-tab.active { background: linear-gradient(#d4b97a, #9c7a3a); color: #2b1b0f; border-color: #f0d9a6; } /* ========================= Schwarzmarkt Tab Inhalte ========================= */ .market-tab-content { display: none; } .market-tab-content.active { display: block; } /* ========================= Schwarzmarkt Seiten Grid ========================= */ #market-pages { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding: 10px 4px; } /* ========================= Schwarzmarkt Slot Karten ========================= */ .market-slot { display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 14px 10px; gap: 8px; border-radius: 8px; border: 2px solid #8b6a3c; background: linear-gradient( 160deg, rgba(80, 50, 20, 0.6), rgba(40, 25, 10, 0.8) ); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 220, 100, 0.1); transition: 0.2s; min-height: 150px; position: relative; } /* Besessen */ .market-slot.owned { border-color: #3caa3c; background: linear-gradient( 160deg, rgba(20, 60, 20, 0.6), rgba(10, 35, 10, 0.8) ); } .market-slot.owned .bag-status { font-size: 22px; color: #3cff3c; text-shadow: 0 0 8px #3cff3c; } /* Kaufbar */ .market-slot.buy { cursor: pointer; border-color: #caa24b; } .market-slot.buy:hover { transform: translateY(-3px); border-color: #f0d060; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5), 0 0 15px rgba(200, 160, 60, 0.3); } /* Gesperrt */ .market-slot.locked { opacity: 0.4; filter: grayscale(60%); } /* ========================= Schwarzmarkt Slot Inhalt ========================= */ .bag-icon { width: 64px; height: 64px; object-fit: contain; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.6)); } .bag-label { font-family: "Cinzel", serif; font-size: 12px; font-weight: bold; color: #e7d9b4; letter-spacing: 0.5px; } .bag-price { font-family: "Cinzel", serif; font-size: 14px; font-weight: bold; color: #ffd700; text-shadow: 0 0 6px rgba(255, 215, 0, 0.5); display: flex; align-items: center; gap: 4px; } .buy-button { padding: 6px 16px !important; font-size: 12px !important; font-family: "Cinzel", serif !important; font-weight: bold !important; background: linear-gradient(#7a5a2a, #caa24b) !important; border: 1px solid #e0c67b !important; border-radius: 4px; color: #1a1206 !important; cursor: pointer; transition: 0.2s; margin-top: 0 !important; width: 100%; } .buy-button:hover { transform: scale(1.05); box-shadow: 0 0 8px #ffd66b, 0 0 18px #caa24b; } /* Info Text über den Taschen */ .market-info-text { font-family: "Cinzel", serif; font-size: 20px; color: #5c3b20; text-align: center; margin: 0 0 12px 0; padding: 10px 16px; border-bottom: 1px solid rgba(139, 106, 60, 0.4); letter-spacing: 0.3px; line-height: 1.6; font-style: italic; } /* Placeholder Texte */ .market-placeholder { text-align: center; padding: 30px 20px; color: #8b6a3c; font-family: "Cinzel", serif; font-size: 14px; font-style: italic; letter-spacing: 0.5px; }