Files
Kino-Website/style.css
2026-04-29 14:35:21 +02:00

4241 lines
86 KiB
CSS
Raw Permalink 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.
:root {
--bg-black: #000000;
--card-bg: #1c1c1e;
--text-white: #f5f5f7;
--accent-blue: #0071e3;
--glass: rgba(29, 29, 31, 0.75);
}
/* Global Reset */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Segoe UI', sans-serif;
}
body {
background: var(--bg-black);
color: var(--text-white);
overflow-x: hidden;
}
.hidden { display: none !important; }
/* --- Navigation --- */
.navbar {
position: fixed;
top: 0;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
padding: 1.2rem 10%;
background: var(--glass);
backdrop-filter: blur(20px);
z-index: 1000;
}
.nav-links {
display: flex;
list-style: none;
gap: 2rem;
}
.nav-links a {
color: white;
text-decoration: none;
opacity: 0.8;
font-size: 0.9rem;
}
/* --- Hero Section --- */
.hero {
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
background: linear-gradient(rgba(0,0,0,0.4), #000), url('https://images.unsplash.com/photo-1485846234645-a62644f84728?q=80&w=2000') center/cover;
}
.badge {
background: var(--accent-blue);
padding: 4px 12px;
border-radius: 20px;
font-size: 0.7rem;
font-weight: bold;
}
.hero h1 {
font-size: 4.5rem;
margin: 10px 0;
}
/* --- Movie Grid & Sections --- */
.movie-section { padding: 80px 10%; }
.movie-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 30px;
}
.movie-card {
background: var(--card-bg);
border-radius: 20px;
overflow: hidden;
}
.movie-poster img {
width: 100%;
aspect-ratio: 2/3;
object-fit: cover;
}
.movie-info { padding: 20px; }
.showtimes {
display: flex;
gap: 10px;
margin-top: 15px;
}
/* --- UI Elements (Chips & Buttons) --- */
.time-chip {
background: rgba(255,255,255,0.1);
border: none;
color: white;
padding: 8px 15px;
border-radius: 10px;
cursor: pointer;
transition: 0.3s;
}
.time-chip:hover { background: var(--accent-blue); }
.btn-primary {
background: var(--accent-blue);
color: white;
border: none;
padding: 12px 25px;
border-radius: 20px;
cursor: pointer;
}
/* --- Detailed List View --- */
.detailed-card {
display: flex;
background: var(--card-bg);
border-radius: 24px;
margin-bottom: 30px;
overflow: hidden;
}
.card-left {
width: 250px;
position: relative;
}
.card-left img {
width: 100%;
height: 100%;
object-fit: cover;
}
.card-right {
flex: 1;
padding: 30px;
}
.fsk {
position: absolute;
bottom: 10px;
left: 10px;
width: 35px;
height: 35px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
}
.fsk-0 { background: #d6d6d6; }
.fsk-6 { background: #e3c500; }
.fsk-12 { background: #008d39; }
.fsk-16 { background: #0095ff; }
.fsk-18 { background: #ff3730; }
.schedule-container {
background: rgba(0,0,0,0.2);
padding: 15px;
border-radius: 15px;
margin-top: 20px;
}
.schedule-header {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
color: #86868b;
font-size: 0.7rem;
margin-bottom: 10px;
}
.schedule-row {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
align-items: center;
padding: 10px;
border-radius: 10px;
}
.time-btn {
background: var(--accent-blue);
padding: 5px 10px;
border-radius: 5px;
width: fit-content;
}
/* --- Booking Modal --- */
.modal {
position: fixed;
top: 0; left: 0; width: 100%; height: 100%;
background: rgba(0,0,0,0.85);
backdrop-filter: blur(20px);
display: flex;
justify-content: center;
align-items: center;
z-index: 2000;
}
.modal-content {
background: #1c1c1e;
padding: 40px;
border-radius: 32px;
width: 90%;
max-width: 1000px;
border: 1px solid rgba(255,255,255,0.1);
position: relative;
}
.close-btn {
position: absolute;
top: 20px;
right: 25px;
font-size: 2rem;
cursor: pointer;
color: #86868b;
}
.modal-close-btn {
position: absolute;
top: 16px;
right: 16px;
width: 36px;
height: 36px;
border: 0;
border-radius: 50%;
background: #2b2b2d;
color: #fff;
font-size: 1.4rem;
line-height: 1;
cursor: pointer;
transition: background 0.2s ease;
}
.modal-close-btn:hover {
background: #3a3a3d;
}
.screen {
height: 5px;
background: white;
width: 80%;
margin: 20px auto;
box-shadow: 0 0 15px white;
}
.screen-text {
text-align: center;
font-size: 0.7rem;
color: #86868b;
letter-spacing: 5px;
}
/* --- MODAL & SITZPLAN UPDATE --- */
.modal-large {
max-width: 95vw !important; /* Fast die ganze Breite nutzen */
max-height: 90vh;
overflow-y: auto; /* Vertikales Scrollen erlauben */
width: 1000px !important;
}
#deluxe-logos {
display: flex;
gap: 10px;
justify-content: center;
margin-top: 15px;
}
.logo-placeholder {
background: rgba(255,255,255,0.1);
padding: 6px 12px;
border-radius: 8px;
font-size: 0.75rem;
color: #86868b;
border: 1px dashed rgba(255,255,255,0.3);
}
.seat-map-container {
width: 100%;
overflow-x: auto; /* Horizontales Scrollen für IMAX */
padding: 10px 0 20px 0;
}
.seat-grid-custom {
display: flex;
flex-direction: column;
gap: 10px;
align-items: center;
margin: 20px auto;
width: fit-content;
}
.seat-row {
display: flex;
gap: 8px;
justify-content: center;
}
.aisle {
width: 25px; /* Breite des Durchgangs */
}
/* Sitzplatz Design */
/* --- SITZPLATZ DESIGN UPDATE --- */
.seat {
width: 26px;
height: 26px;
background: #3a3a3c; /* Standard Grau */
border-radius: 6px;
cursor: pointer;
transition: all 0.2s ease-in-out;
display: flex;
align-items: center;
justify-content: center;
position: relative;
border: 1px solid rgba(255,255,255,0.1);
}
/* Hover-Effekt (Hervorhebung) */
.seat:hover:not(.occupied) {
transform: scale(1.25);
z-index: 10;
border-color: rgba(255,255,255,0.5);
}
/* Farben der Typen */
.seat.normal, .seat.imax { background: #3a3a3c; }
.seat.vip { background: #ff9500; } /* Orange */
.seat.dbox {
background: #ffca28; /* Gold */
box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
}
/* Ausgewählter Zustand (Grün + Glow) */
.seat.selected {
background: #34c759 !important; /* iOS Grün */
box-shadow: 0 0 15px #34c759;
transform: scale(1.1);
border-color: white;
}
/* Belegter Zustand (Rot mit X) */
.seat.occupied {
background: #ff3b30 !important; /* Rot */
cursor: not-allowed;
opacity: 1;
transform: none;
}
.seat.occupied::after {
content: '×';
color: white;
font-size: 18px;
font-weight: bold;
line-height: 1;
}
/* Legende Styling */
.legend .seat { cursor: default; pointer-events: none; width: 20px; height: 20px; }
.legend .item { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; color: #86868b; }
#dynamic-legend {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 15px;
margin-top: 20px;
padding: 15px;
background: rgba(255,255,255,0.05);
border-radius: 12px;
}
/* --- Snack Tabs Navigation --- */
.category-tabs {
display: flex;
justify-content: center;
gap: 15px;
margin-bottom: 50px;
}
.tab-btn {
background: #1c1c1e;
border: 1px solid rgba(255,255,255,0.1);
color: white;
padding: 12px 25px;
border-radius: 30px;
cursor: pointer;
transition: 0.3s;
}
.tab-btn:hover { background: rgba(255,255,255,0.1); }
.tab-btn.active { background: var(--accent-blue); border-color: var(--accent-blue); }
.snack-category {
animation: fadeIn 0.4s ease-in-out;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
/* --- Snack Grid & Cards --- */
.snack-section { padding: 100px 10%; }
.snack-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 25px;
}
.snack-card {
background: var(--card-bg);
border-radius: 20px;
overflow: hidden;
transition: 0.3s;
border: 1px solid rgba(255,255,255,0.05);
}
.snack-card:hover {
transform: translateY(-8px); border-color: var(--accent-blue);
}
.snack-card.highlight {
border: 1px solid var(--accent-blue);
background: linear-gradient(145deg, #1c1c1e, #0a2540);
}
.snack-img {
width: 100%;
height: 150px;
background: #111;
}
.snack-img img {
width: 100%;
height: 100%;
object-fit: contain; /* Ideal für Produktfotos auf dunklem Grund */
padding: 10px;
}
/* --- SNACK INFO ZENTRIERUNG --- */
.snack-info {
padding: 20px;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
}
.snack-info h3 {
font-size: 1rem;
margin-bottom: 15px;
width: 100%;
}
.size-selector {
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: center;
}
.size-chip {
background: rgba(255,255,255,0.05);
border: 1px solid rgba(255,255,255,0.1);
color: white;
padding: 6px 12px;
border-radius: 8px;
font-size: 0.75rem;
cursor: pointer;
transition: 0.2s;
}
.size-chip span {
display: block;
color: var(--accent-blue);
font-weight: bold;
}
.size-chip:hover {
background: var(--accent-blue);
border-color: var(--accent-blue);
}
.size-chip:hover span {
color: white;
}
.size-chip.special {
background: rgba(229, 160, 13, 0.1);
border: 1px solid #e5a00d;
}
.size-chip.special span {
color: #e5a00d;
}
/* Snack Options (Sweet/Salty & Dips) */
.option-group {
display: flex;
gap: 5px;
margin-bottom: 15px;
background: rgba(0, 0, 0, 0.3);
padding: 4px;
border-radius: 10px;
}
.opt-btn {
flex: 1;
background: transparent;
border: none;
color: #86868b;
padding: 6px;
font-size: 0.75rem;
font-weight: bold;
cursor: pointer;
border-radius: 7px;
transition: 0.2s;
}
.opt-btn.active {
background: #3a3a3c;
color: white;
}
/* --- Coming Soon Banner --- */
.coming-soon-banner {
background: linear-gradient(45deg, #1c1c1e, #2a2a2d);
border: 2px dashed rgba(255,255,255,0.2);
border-radius: 20px;
padding: 80px 20px;
text-align: center;
color: var(--text-white);
}
.coming-soon-banner h2 {
font-size: 2.5rem;
margin-bottom: 10px;
color: var(--accent-blue);
}
.coming-soon-banner p {
font-size: 1.5rem;
font-weight: bold;
margin-bottom: 10px;
}
.coming-soon-banner span { color: #86868b; }
/* Layout breiter machen */
.booking-layout {
display: flex;
gap: 40px; /* Mehr Abstand zwischen Plan und Preis */
align-items: flex-start;
justify-content: center;
max-width: 1200px; /* Erlaubt dem Fenster mehr Platz */
margin: 0 auto;
transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}
/* Das rechte Panel optimiert */
.summary-panel {
width: 300px; /* Etwas breiter für bessere Lesbarkeit */
background: rgba(255, 255, 255, 0.03);
backdrop-filter: blur(10px);
border-radius: 24px;
padding: 25px;
border: 1px solid rgba(255, 255, 255, 0.08);
/* Langsamere, sanftere Animation */
animation: slideInSoft 0.8s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}
@keyframes slideInSoft {
from {
opacity: 0;
transform: translateX(40px) scale(0.98);
}
to {
opacity: 1;
transform: translateX(0) scale(1);
}
}
.summary-row {
display: flex;
justify-content: space-between;
font-size: 0.95rem;
margin-bottom: 12px;
color: #a1a1a6;
/* Die einzelnen Zeilen faden auch sanft ein */
animation: fadeInRow 0.5s ease forwards;
}
@keyframes fadeInRow {
from { opacity: 0; }
to { opacity: 1; }
}
.summary-row .type { color: #f5f5f7; }
.summary-row .price { font-weight: bold; color: var(--accent-blue); }
.divider {
height: 1px;
background: rgba(255, 255, 255, 0.1);
margin: 15px 0;
}
.total-row {
display: flex;
justify-content: space-between;
font-weight: 600;
font-size: 1.2rem;
color: #ffffff;
letter-spacing: -0.02em;
}
/* Verstecken mit sanftem Übergang */
.hidden { display: none !important; }
.header-sub-info {
display: flex;
align-items: center;
gap: 15px;
margin-top: 5px;
}
.tech-badges-container {
display: flex;
gap: 10px;
align-items: center;
/* Sanfter Übergang beim Einblenden */
animation: fadeIn 0.5s ease;
}
.tech-badge {
height: 14px; /* Schön klein und dezent */
width: auto;
opacity: 0.7; /* Leicht transparent für den edlen Look */
filter: brightness(0) invert(1); /* Macht schwarze Logos weiß, passend zum Dark Mode */
}
.tech-badges-container.hidden {
display: none;
}
.tech-badges-container {
display: flex;
gap: 10px;
align-items: center;
margin-left: 10px;
}
.tech-badge {
height: 18px; /* Oder die gewünschte Höhe */
width: auto;
opacity: 0.8;
}
/* --- Warenkorb Badge --- */
.cart-badge {
background-color: #e50914; /* Kino-Rot */
color: white;
font-size: 0.75rem;
font-weight: bold;
border-radius: 50%;
padding: 2px 6px;
position: absolute;
top: -8px;
right: -15px;
transition: transform 0.3s ease;
}
.cart-badge.hidden { display: none; }
.cart-badge.pop { transform: scale(1.3); } /* Für eine kleine Animation beim Hinzufügen */
/* --- WARENKORB SPALTEN-LAYOUT & HINTERGRÜNDE --- */
/* --- WARENKORB DESIGN (SPALTEN-LAYOUT) --- */
.cart-container {
display: flex;
gap: 50px;
align-items: flex-start;
margin-top: 40px;
}
/* Linke Seite (Artikelliste) mit Panel-Hintergrund */
.cart-left {
flex: 2;
background-color: #1c1c1e !important; /* !important stellt sicher, dass es grau bleibt */
padding: 35px;
border-radius: 28px;
border: 1px solid rgba(255, 255, 255, 0.1);
}
/* Rechte Seite (Zusammenfassung) */
.cart-right {
flex: 1;
min-width: 380px;
}
.cart-items {
flex: 2;
background: #1c1c1e;
border-radius: 12px;
padding: 20px;
}
.cart-summary-box {
flex: 1;
background: #1c1c1e;
border-radius: 12px;
padding: 25px;
position: sticky;
top: 100px;
}
.cart-total-row {
display: flex;
justify-content: space-between;
font-size: 1.3rem;
font-weight: bold;
margin-top: 15px;
padding-top: 15px;
border-top: 1px solid #333;
}
.payment-methods-panel {
background: #2c2c2e !important; /* Ein helleres Grau als die Boxen oben */
padding: 20px;
border-radius: 18px;
margin-top: 30px;
border: 1px solid rgba(255, 255, 255, 0.1);
}
/* Die Logos selbst */
.payment-methods-panel div {
display: flex;
justify-content: center;
gap: 15px;
opacity: 0.95; /* Fast volle Sichtbarkeit (vorher 0.6) */
}
.payment-methods-panel img {
height: 22px; /* Etwas größer für bessere Sichtbarkeit */
filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5)); /* Kleiner Schatten für Tiefe */
transition: transform 0.2s;
}
.payment-methods-panel img:hover {
transform: scale(1.1); /* Kleiner Effekt beim Drüberfahren */
}
/* --- Snack Prompt Overlay --- */
.snack-overlay {
position: fixed;
top: 0; left: 0; width: 100%; height: 100%;
background: rgba(0,0,0,0.8);
backdrop-filter: blur(5px);
display: flex;
justify-content: center;
align-items: center;
z-index: 2000;
opacity: 1;
transition: opacity 0.4s ease;
}
.snack-overlay.hidden {
opacity: 0;
pointer-events: none;
}
.snack-prompt-box {
background: #1c1c1e;
padding: 40px;
border-radius: 16px;
text-align: center;
max-width: 500px;
transform: translateY(0);
transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.snack-overlay.hidden .snack-prompt-box {
transform: translateY(50px);
}
.snack-prompt-box h2 { margin-bottom: 15px; color: #fff; }
.snack-prompt-box p { color: #aaa; margin-bottom: 25px; }
.prompt-buttons { display: flex; gap: 15px; justify-content: center; }
.btn-secondary {
background: transparent;
border: 1px solid #fff;
color: #fff;
padding: 12px 24px;
border-radius: 8px;
cursor: pointer;
transition: 0.3s;
}
.btn-secondary:hover { background: rgba(255,255,255,0.1); }
/* --- WARENKORB TABELLEN-LAYOUT --- */
.cart-item-row,
.cart-header {
display: grid;
grid-template-columns: 100px 80px 1.5fr 1fr 100px 50px;
align-items: center;
gap: 0; /* Wir nutzen kein gap, um volle Kontrolle über die Spalten zu haben */
}
.cart-header {
font-size: 0.75rem;
color: #86868b;
font-weight: bold;
letter-spacing: 1.2px;
border-bottom: 1px solid #333;
padding: 15px 0;
margin-bottom: 10px;
}
.cart-item-row {
padding: 20px 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
/* 1. Spalte: Menge (Zentriert den Stepper/Text etwas) */
.cart-item-row > div:nth-child(1),
.cart-header > div:nth-child(1) {
padding-left: 5px;
}
/* 2. Spalte: Das Bild (Bekommt links Platz zum Stepper) */
.cart-item-row > div:nth-child(2) {
padding-left: 15px; /* Abstand zwischen +/- Button und Bild */
}
/* 3. Spalte: ARTIKEL (Titel) - Hier schieben wir die Schrift nach rechts */
.cart-header > div:nth-child(3),
.cart-item-row > div:nth-child(3) {
padding-left: 30px; /* Dieser Wert sorgt für die Ordnung */
}
/* 4. Spalte: INFO - Auch hier schieben wir für die vertikale Linie nach rechts */
.cart-header > div:nth-child(4),
.cart-item-row > div:nth-child(4) {
padding-left: 30px;
}
/* 5. Spalte: PREIS (Rechtsbündig für Tabellen-Look) */
.cart-header > div:nth-child(5),
.cart-item-row > div:nth-child(5) {
text-align: right;
padding-right: 15px;
}
/* 6. Spalte: LÖSCHEN (Zentriert am Ende) */
.cart-header > div:nth-child(6),
.cart-item-row > div:nth-child(6) {
text-align: right;
}
/* Bild-Styling innerhalb der Spalte */
.cart-item-row img {
width: 45px;
height: 60px;
object-fit: cover;
border-radius: 8px;
display: block;
}
/* Plus-Minus Buttons */
.qty-stepper {
display: flex;
align-items: center;
gap: 10px;
background: rgba(0,0,0,0.3);
padding: 5px 10px;
border-radius: 20px;
width: fit-content;
}
.btn-qty {
background: none;
border: 1px solid var(--accent-blue);
color: var(--accent-blue);
width: 22px;
height: 22px;
border-radius: 50%;
cursor: pointer;
font-weight: bold;
}
.btn-delete-item {
transition: background 0.2s ease, transform 0.1s ease, opacity 0.2s ease;
cursor: pointer;
}
.btn-qty:hover,
.btn-delete-item:hover {
background: #0071e3 !important; /* Das Apple-Blau */
border-radius: 6px; /* Schön abgerundet */
transform: scale(1.1); /* Minimal vergrößern */
}
/* Animationen */
@keyframes popIn {
0% { transform: scale(0.9); opacity: 0; }
100% { transform: scale(1); opacity: 1; }
}
.animate-pop-in {
animation: popIn 0.4s cubic-bezier(0.17, 0.67, 0.83, 0.67);
}
.btn-delete-item {
background: none;
border: none;
font-size: 1.2rem;
cursor: pointer;
opacity: 0.5;
transition: 0.3s;
}
.btn-delete-item:hover {
opacity: 1; transform: scale(1.2);
}
/* Checkout Container */
.checkout-container {
max-width: 600px;
margin: 0 auto;
padding: 30px;
background: #1a1a1a;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}
/* Fortschrittsleiste */
.progress-bar {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 40px;
}
.progress-bar .step {
width: 35px;
height: 35px;
border-radius: 50%;
background: #333;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
color: #e5e5e7; /* Zahlen deutlich heller gemacht */
transition: 0.3s;
}
.progress-bar .step.active {
background: #4caf50 !important; /* Grün statt Rot/Blau */
color: white;
border-color: #4caf50 !important;
}
.progress-bar .line {
height: 4px;
width: 80px;
background: #333;
margin: 0 15px;
transition: all 0.5s ease;
}
.progress-bar .line.active {
background: #4caf50 !important;
}
/* Zahlungsarten */
.payment-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
}
.payment-method {
background: #1c1c1e;
padding: 20px;
border-radius: 12px;
cursor: pointer;
border: 2px solid transparent;
display: flex;
flex-direction: row; /* Nebeneinander statt untereinander */
align-items: center; /* Vertikal zentriert */
justify-content: center;
gap: 15px;
transition: 0.3s;
}
.payment-method img {
height: 22px; /* Einheitliche Größe */
width: auto;
margin-top: 2px; /* Schiebt das Bild dezent nach unten für optische Symmetrie zum Text */
}
.payment-method:hover {
border-color: #888;
}
.payment-method.selected {
border-color: #e50914;
background: rgba(229, 9, 20, 0.1);
transform: scale(1.02);
}
/* Hover-Effekt für den Zurück-Pfeil */
#btn-back-to-step1:hover {
opacity: 1;
transform: translateX(-3px);
}
.cart-header-row,
.cart-item-row {
display: grid;
/* Spalten: Menge(100px) | Bild(100px) | Produkt(1.5fr) | Details(2fr) | Preis(100px) | Aktion(80px) */
grid-template-columns: 100px 100px 1.5fr 2fr 100px 80px;
gap: 15px;
align-items: center;
padding: 15px 20px;
}
.cart-header-row,
.cart-item-row {
display: grid;
/* Menge | Bild | Produkt | Details | Preis | Aktion */
grid-template-columns: 110px 100px 1.3fr 1.7fr 100px 60px;
gap: 10px;
align-items: center;
padding: 15px 20px;
}
.col-amount { text-align: center; }
.col-img { text-align: center; }
/* Produkt & Details nach rechts schieben */
.col-product {
text-align: left;
padding-left: 25px; /* Minimal mehr nach rechts */
}
.col-details {
text-align: left;
padding-left: 35px; /* Minimal mehr nach rechts */
}
/* Preis weiter links ausrichten */
.col-price {
text-align: left;
padding-left: 10px;
}
.col-action { text-align: right; }
/* Menge-Stepper im Warenkorb */
.qty-stepper {
display: flex;
align-items: center;
gap: 10px;
background: #2c2c2e;
padding: 5px 10px;
border-radius: 8px;
width: fit-content;
}
.btn-qty {
cursor: pointer;
width: 28px;
height: 28px;
border: none;
background: #3a3a3c;
color: white;
border-radius: 6px;
font-weight: bold;
transition: 0.2s;
}
/* Klick-Zustand: Leicht eindrücken */
.btn-qty:active,
.btn-delete-item:active {
transform: scale(0.95);
}
/* Spezifisches Styling für den Mülleimer (damit der Hover-Hintergrund passt) */
.btn-delete-item {
background: none;
border: none;
font-size: 1.2rem;
padding: 5px 8px; /* Etwas Platz für den blauen Hintergrund */
display: flex;
align-items: center;
justify-content: center;
}
.cart-img-small {
width: 60px;
height: 85px;
object-fit: cover;
border-radius: 6px;
box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.cart-item-info {
color: #0071e3;
font-size: 0.9rem;
line-height: 1.4;
}
/* --- Luxury Dark Ticket --- */
.luxury-ticket {
background: #111; /* Dunkel statt Weiß */
color: #f5f5f7;
display: flex;
max-width: 600px;
margin: 20px auto;
border-radius: 15px;
overflow: hidden;
border: 1px solid #333;
box-shadow: 0 20px 40px rgba(0,0,0,0.8);
}
.ticket-left {
width: 35%;
}
.ticket-poster {
width: 100%;
height: 100%;
object-fit: cover;
}
.ticket-right {
width: 65%;
padding: 25px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.ticket-brand {
font-size: 0.7rem;
letter-spacing: 3px;
color: #0071e3;
margin-bottom: 10px;
}
.ticket-title {
font-size: 1.8rem;
margin-bottom: 20px;
border-bottom: 1px solid #333;
padding-bottom: 10px;
}
.ticket-details p {
display: flex;
justify-content: space-between;
margin-bottom: 8px;
font-size: 0.9rem;
}
.ticket-details span {
color: #86868b;
}
.ticket-footer {
display: flex;
justify-content: space-between;
align-items: flex-end;
margin-top: 20px;
}
.ticket-qr {
width: 100px;
height: 100px;
border: 5px solid white; /* Weißer Rand für Scanbarkeit auf dunklem Grund */
border-radius: 5px;
}
.ticket-code {
font-family: 'Courier New', Courier, monospace;
color: #444;
font-size: 1.2rem;
}
/* Kinoticket */
.kinoticket {
background: #fff;
color: #000;
padding: 20px;
border-radius: 15px;
max-width: 300px; /* Begrenzt die Breite des Tickets */
margin: 20px auto;
text-align: center;
box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}
.kinoticket .poster {
width: 100%;
max-height: 180px; /* Macht das Bild deutlich kleiner */
object-fit: cover; /* Verhindert Verzerrung */
border-radius: 10px;
margin-bottom: 15px;
}
.kinoticket h3 {
margin: 10px 0 5px;
font-size: 1.2rem;
}
.kinoticket p { color: #ccc; margin-bottom: 5px; font-size: 0.9rem; }
.kinoticket .seats { font-weight: bold; color: #e50914; margin-top: 10px; font-size: 1.1rem; }
.kinoticket .qr-code {
background: white;
padding: 10px;
display: inline-block;
margin-top: 15px;
border: 1px solid #ddd;
}
.kinoticket .qr-code img {
width: 130px; /* Feste Größe für den QR-Code */
height: 130px;
display: block;
}
/* Fix für Screenshot 1: Modal-Info Zeile */
#modal-info-text {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 15px;
}
/* --- Lösch-Animation nach Links --- */
.cart-item-row.slide-out-left {
animation: slideOutLeft 0.4s ease forwards;
pointer-events: none; /* Verhindert Klicks während der Animation */
}
@keyframes slideOutLeft {
0% {
transform: translateX(0);
opacity: 1;
}
100% {
transform: translateX(-100%); /* Vollständig nach links raus */
opacity: 0;
/* Verhindert, dass die Lücke abrupt kollabiert */
height: 0;
padding-top: 0;
padding-bottom: 0;
margin-top: 0;
margin-bottom: 0;
border: none;
}
}
.summary-box-black {
background-color: #1c1c1e !important;
padding: 35px;
border-radius: 28px;
border: 1px solid rgba(255, 255, 255, 0.1);
position: sticky;
top: 120px;
}
.summary-row-large {
display: flex;
justify-content: space-between;
font-size: 1.6rem;
font-weight: 600;
margin-top: 25px;
}
.blue-button {
width: 100%;
background: var(--accent-blue);
color: white;
border: none;
padding: 18px;
border-radius: 14px;
font-weight: bold;
font-size: 1.1rem;
margin-top: 30px;
cursor: pointer;
transition: all 0.3s ease;
}
.blue-button:hover {
background: #0077ed;
transform: scale(1.02);
}
.summary-content {
width: 100%;
max-width: 350px;
text-align: right;
}
.total-row {
font-size: 1.5rem;
font-weight: bold;
display: flex;
justify-content: space-between;
margin-bottom: 5px;
}
.vat-row {
color: #86868b;
font-size: 0.9rem;
margin-bottom: 20px;
}
.checkout-main-btn {
width: 100%;
padding: 16px;
background: #e50914;
color: white;
border: none;
border-radius: 8px;
font-weight: bold;
font-size: 1.1rem;
cursor: pointer;
transition: transform 0.2s, background 0.2s;
}
.checkout-main-btn:hover {
background: #f40a16;
transform: translateY(-2px);
}
#modal-info-text {
display: block; /* Verhindert das Nebeneinanderquetschen */
margin-top: 5px;
color: #ccc;
}
.modal-header-container {
padding-bottom: 15px;
border-bottom: 1px solid #333;
margin-bottom: 20px;
}
#snacks-view, #movie-list-view, #cart-view {
padding-bottom: 100px; /* Platz unten lassen */
min-height: 100vh;
overflow-y: auto; /* Sicherstellen, dass gescrollt werden kann */
}
/* --- Account View (stabil & sichtbar) --- */
#account-view {
padding: 130px 8% 60px;
min-height: 100vh;
}
.account-login-box,
.account-panel {
width: min(820px, 100%);
margin: 0 auto;
background: #1c1c1e;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 24px;
padding: 28px;
}
.account-login-box {
display: flex;
flex-direction: column;
align-items: stretch;
}
.account-login-box h2,
.account-panel h2 {
margin-bottom: 16px;
}
.account-login-box input {
width: 100%;
margin-bottom: 12px;
padding: 12px 14px;
background: #111214;
border: 1px solid #3a3a3a;
border-radius: 10px;
color: #fff;
}
.account-login-box button {
width: 100%;
margin-top: 10px;
padding: 12px 14px;
border: 0;
border-radius: 10px;
background: #0071e3;
color: #fff;
cursor: pointer;
}
#btn-forgot-password {
width: auto !important;
align-self: flex-start;
margin-top: 2px;
margin-bottom: 12px;
padding: 0;
background: transparent !important;
border: none !important;
color: #95bce9;
font-size: 0.82rem;
text-decoration: underline;
}
#btn-open-register {
width: auto !important;
align-self: flex-start;
margin-top: 6px;
padding: 8px 14px !important;
font-size: 0.82rem;
background: #2a2d31 !important;
border: 1px solid #4d4f54 !important;
}
#account-register-hint {
margin-top: 18px;
margin-bottom: 2px;
font-size: 0.82rem;
color: #9ca0a8;
align-self: flex-start;
}
/* --- Auth Modals (Register + Forgot) --- */
.account-auth-modal {
width: min(460px, 92vw);
max-width: 460px;
padding: 30px 24px 22px;
border-radius: 22px;
background: linear-gradient(180deg, #1f2125 0%, #181a1e 100%);
border: 1px solid rgba(255, 255, 255, 0.12);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.45);
}
.account-auth-modal h2 {
font-size: 1.45rem;
margin-bottom: 8px;
}
.auth-modal-subtitle {
color: #9da3ad;
font-size: 0.9rem;
margin-bottom: 16px;
line-height: 1.4;
}
.account-auth-modal input {
width: 100%;
margin-bottom: 11px;
padding: 12px 13px;
border-radius: 10px;
border: 1px solid #3a3f46;
background: #111317;
color: #f5f5f7;
outline: none;
transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.account-auth-modal input:focus {
border-color: #0071e3;
box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.18);
}
.auth-submit-btn {
width: 100%;
margin-top: 6px;
padding: 12px 14px;
border: 0;
border-radius: 11px;
background: #0071e3;
color: #fff;
font-weight: 600;
cursor: pointer;
transition: background 0.2s ease, transform 0.15s ease;
}
.auth-submit-btn:hover {
background: #0a7cf0;
transform: translateY(-1px);
}
#reset-message {
margin-top: 12px;
padding: 10px 12px;
border-radius: 10px;
background: rgba(17, 101, 42, 0.22);
border: 1px solid rgba(74, 199, 123, 0.32);
color: #84e5aa;
font-size: 0.88rem;
}
.account-panel-header {
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
}
.account-logout-btn {
border: 1px solid #4a4a4a;
background: transparent;
color: #fff;
border-radius: 10px;
padding: 8px 12px;
cursor: pointer;
}
.account-tabs {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin: 20px 0 16px;
}
.account-tab-btn {
border: 1px solid #3f3f3f;
background: #151618;
color: #fff;
border-radius: 999px;
padding: 8px 14px;
cursor: pointer;
}
#account-tab-content {
margin-top: 8px;
}
.account-card,
.order-box {
background: #111214;
border: 1px solid #2f2f2f;
border-radius: 12px;
padding: 14px 16px;
margin-bottom: 10px;
}
/* --- Cart Columns (final override) --- */
#cart-items-list .cart-header-row,
#cart-items-list .cart-item-row {
display: grid;
grid-template-columns: 120px 90px 1.2fr 1.5fr 130px 70px;
gap: 12px;
align-items: center;
}
#cart-items-list .cart-header-row {
padding: 12px 8px;
margin-bottom: 6px;
border-bottom: 1px solid rgba(255, 255, 255, 0.15);
color: #9ca0a8;
font-size: 0.74rem;
font-weight: 700;
letter-spacing: 1px;
}
#cart-items-list .cart-item-row {
padding: 16px 8px;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
#cart-items-list .col-amount {
display: flex;
justify-content: center;
}
#cart-items-list .col-img {
display: flex;
justify-content: center;
}
#cart-items-list .col-product {
font-weight: 600;
}
#cart-items-list .col-details {
color: #8fbef6;
font-size: 0.9rem;
line-height: 1.35;
}
#cart-items-list .col-price {
font-weight: 700;
text-align: right;
padding-right: 18px;
}
#cart-items-list .cart-header-row .col-price {
text-align: left;
padding-left: 8px;
padding-right: 0;
}
#cart-items-list .col-action {
display: flex;
justify-content: flex-end;
text-align: right;
padding-right: 0;
}
#cart-items-list .btn-delete-item {
display: inline-flex;
align-items: center;
justify-content: center;
width: 34px;
height: 34px;
border-radius: 8px;
border: 1px solid #7a3a45;
background: #2b1116;
color: #ff7a90;
font-size: 1.05rem;
opacity: 1;
transform: translateX(6px);
}
#cart-items-list .btn-delete-item:hover {
background: #3a161d;
color: #ff95a7;
border-color: #97505d;
transform: translateX(6px) scale(1.06);
}
#cart-items-list .btn-delete-item:active {
transform: translateX(6px) scale(0.96);
}
.cart-img-fallback {
width: 60px;
height: 85px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.7rem;
text-align: center;
background: #2b2d31;
color: #aeb3bb;
padding: 6px;
}
@media (max-width: 980px) {
.cart-container {
flex-direction: column;
gap: 24px;
}
.cart-right {
width: 100%;
min-width: 0;
}
#cart-items-list .cart-header-row {
display: none;
}
#cart-items-list .cart-item-row {
grid-template-columns: 1fr;
gap: 10px;
padding: 14px 0;
}
#cart-items-list .col-amount,
#cart-items-list .col-img,
#cart-items-list .col-action {
justify-content: flex-start;
text-align: left;
}
#cart-items-list .col-price {
text-align: left;
}
}
/* --- Seat Map Refresh (Cinema-Like Layout) --- */
.seat-map-container {
perspective: 900px;
}
#seat-grid.seat-grid-custom {
display: flex;
flex-direction: column;
gap: 9px;
align-items: center;
min-width: max-content;
padding: 16px 8px 6px;
transform: rotateX(4deg);
transform-origin: top center;
}
#seat-grid .seat-row.cinema-row {
display: grid;
grid-template-columns: 28px auto 40px auto 28px;
align-items: center;
gap: 9px;
width: max-content;
margin-left: var(--row-indent, 0);
margin-right: var(--row-indent, 0);
}
#seat-grid .row-seat-block {
display: flex;
gap: 7px;
}
#seat-grid .row-label {
font-size: 0.72rem;
letter-spacing: 1px;
color: #8f949c;
font-weight: 700;
text-align: center;
}
#seat-grid .row-label-right {
opacity: 0.65;
}
#seat-grid .aisle-gap {
width: 40px;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent);
}
#seat-grid .seat {
width: 24px;
height: 20px;
border-radius: 8px 8px 5px 5px;
border: 1px solid rgba(255, 255, 255, 0.18);
position: relative;
appearance: none;
padding: 0;
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
#seat-grid .seat::before {
content: "";
position: absolute;
left: 2px;
right: 2px;
top: -4px;
height: 5px;
border-radius: 5px 5px 0 0;
background: inherit;
opacity: 0.92;
}
#seat-grid .seat:hover:not(.occupied) {
transform: translateY(-2px) scale(1.08);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.45);
}
#seat-grid .seat.normal,
#seat-grid .seat.imax {
background: linear-gradient(180deg, #45484f 0%, #2f3238 100%);
}
#seat-grid .seat.vip {
background: linear-gradient(180deg, #ffb74d 0%, #ff8f00 100%);
}
#seat-grid .seat.dbox {
background: linear-gradient(180deg, #ffeb3b 0%, #f9a825 100%);
}
#seat-grid .seat.selected {
background: linear-gradient(180deg, #56f189 0%, #28a745 100%) !important;
box-shadow: 0 0 14px rgba(69, 233, 120, 0.72);
border-color: #d6ffe4;
}
#seat-grid .seat.occupied {
background: linear-gradient(180deg, #ef5350 0%, #c62828 100%) !important;
opacity: 1;
cursor: not-allowed;
}
#seat-grid .seat:disabled {
opacity: 1;
}
#seat-grid .seat.occupied::after {
content: "×";
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 14px;
font-weight: 700;
}
#dynamic-legend {
margin-top: 14px;
}
#summary-items .summary-row {
display: flex;
justify-content: space-between;
gap: 14px;
padding: 7px 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
font-size: 0.9rem;
}
/* --- April 2026 Refresh --- */
.hero-overlay {
max-width: 860px;
border-radius: 24px;
background: linear-gradient(90deg, rgba(6, 9, 14, 0.7), rgba(6, 9, 14, 0.25));
backdrop-filter: blur(2px);
}
.running-poster {
display: flex;
flex-direction: column;
}
.running-poster img {
height: 240px;
object-position: center 18%;
}
.running-meta {
display: flex;
flex-direction: column;
min-height: 150px;
}
.running-meta p {
margin-bottom: 14px;
}
.open-program-btn {
margin-top: auto;
}
/* --- Latest home/account refinement --- */
.hero {
min-height: 94vh;
}
.hero::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(180deg, rgba(3, 5, 8, 0.05) 0%, rgba(3, 5, 8, 0.62) 80%, rgba(3, 5, 8, 0.88) 100%);
pointer-events: none;
z-index: 1;
}
.hero-overlay {
z-index: 2;
max-width: 980px;
padding: 180px 8% 118px;
background: transparent;
backdrop-filter: none;
border-radius: 0;
text-shadow: 0 8px 30px rgba(0, 0, 0, 0.45);
}
.hero-slide {
background-size: contain;
background-repeat: no-repeat;
background-position: center center;
background-color: #06080d;
transform: none;
}
.hero-slide.active {
transform: none;
}
.home-experience {
margin-top: 34px;
display: grid;
grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
gap: 16px;
}
.experience-main-card,
.experience-side-card {
background: linear-gradient(158deg, #151820 0%, #0f1219 100%);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 18px;
padding: 20px 20px 22px;
}
.experience-main-head {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 12px;
margin-bottom: 10px;
}
.experience-main-head h3 {
font-size: 1.25rem;
}
.experience-main-head span {
color: #9aa4b2;
font-size: 0.78rem;
}
.experience-main-card p,
.experience-side-card p {
color: #b4becb;
line-height: 1.5;
font-size: 0.92rem;
}
.experience-tags,
.experience-chip-row {
margin-top: 14px;
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.experience-tags span,
.experience-chip-row span {
border-radius: 999px;
border: 1px solid rgba(0, 113, 227, 0.45);
background: rgba(0, 113, 227, 0.16);
color: #c4dffe;
padding: 4px 11px;
font-size: 0.76rem;
}
.experience-side-stack {
display: grid;
gap: 16px;
}
.collector-card .collector-placeholder-grid {
margin-top: 12px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.collector-card .collector-slot {
min-height: 100px;
}
.account-orders-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 10px;
margin-top: 8px;
}
.order-item-btn {
width: 100%;
text-align: left;
cursor: pointer;
transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}
.order-item-btn:hover {
border-color: rgba(0, 113, 227, 0.58);
transform: translateY(-2px);
}
.order-item-btn.active {
border-color: #0071e3;
background: linear-gradient(150deg, #162334 0%, #111720 100%);
}
.order-item-head {
display: flex;
justify-content: space-between;
align-items: center;
gap: 10px;
margin-bottom: 8px;
}
.order-item-head h4 {
font-size: 0.98rem;
}
.order-item-head span {
color: #9ed0ff;
font-weight: 700;
font-size: 0.86rem;
}
.order-ticket-details {
margin-top: 14px;
}
.order-ticket-card {
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 16px;
background: linear-gradient(155deg, #12161f 0%, #0c1017 100%);
padding: 14px;
display: grid;
grid-template-columns: 120px minmax(0, 1fr);
gap: 14px;
}
.order-ticket-poster img {
width: 100%;
height: 100%;
max-height: 180px;
object-fit: cover;
border-radius: 10px;
}
.order-ticket-poster-fallback {
height: 100%;
min-height: 150px;
border-radius: 10px;
background: #202632;
color: #9aa4b2;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.8rem;
}
.order-ticket-brand {
color: #9ec3ee;
font-size: 0.73rem;
letter-spacing: 0.8px;
margin-bottom: 6px;
}
.order-ticket-content h4 {
margin-bottom: 10px;
}
.order-ticket-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px 14px;
}
.order-ticket-grid p {
display: flex;
flex-direction: column;
gap: 3px;
margin: 0;
}
.order-ticket-grid span {
font-size: 0.74rem;
color: #8c98a9;
}
.order-ticket-grid strong {
font-size: 0.9rem;
}
.payment-logo-slot img {
max-width: 72%;
max-height: 30px;
object-fit: contain;
filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.35));
}
@media (max-width: 1000px) {
.home-experience {
grid-template-columns: 1fr;
}
}
@media (max-width: 720px) {
.hero-overlay {
padding: 145px 6% 92px;
}
.order-ticket-card {
grid-template-columns: 1fr;
}
.order-ticket-grid {
grid-template-columns: 1fr;
}
.collector-card .collector-placeholder-grid {
grid-template-columns: 1fr;
}
}
.home-feature-grid {
margin-top: 34px;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 14px;
}
.feature-card {
background: linear-gradient(155deg, #17191f 0%, #101218 100%);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 16px;
padding: 16px 16px 18px;
}
.feature-card h4 {
margin-bottom: 8px;
font-size: 0.95rem;
}
.feature-card p {
color: #a7afbb;
font-size: 0.86rem;
line-height: 1.45;
}
.feature-card-wide {
grid-column: span 2;
}
.hall-tags {
margin-top: 12px;
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.hall-tags span {
border: 1px solid rgba(0, 113, 227, 0.5);
background: rgba(0, 113, 227, 0.18);
color: #c6e1ff;
border-radius: 999px;
padding: 4px 10px;
font-size: 0.75rem;
}
.feature-highlight {
margin-top: 12px;
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 10px;
color: #d8dee8;
padding: 8px 10px;
font-size: 0.8rem;
}
.feature-card-collector {
grid-column: span 2;
}
.collector-placeholder-grid {
margin-top: 12px;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
.collector-slot {
min-height: 90px;
border-radius: 12px;
border: 1px dashed rgba(255, 255, 255, 0.25);
background: linear-gradient(140deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
color: #9ca6b3;
font-size: 0.78rem;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
padding: 6px;
}
#cart-items-list .qty-static {
min-width: 68px;
text-align: center;
padding: 7px 10px;
border-radius: 999px;
border: 1px solid rgba(255, 255, 255, 0.2);
background: rgba(255, 255, 255, 0.05);
color: #d8dce3;
font-weight: 600;
}
.account-payments-note {
color: #9aa1ad;
font-size: 0.9rem;
margin-bottom: 12px;
}
.account-payment-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
gap: 10px;
}
.account-payment-card {
background: #141518;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 12px;
padding: 12px;
}
.account-payment-card h4 {
font-size: 0.9rem;
margin-bottom: 4px;
}
.account-payment-card p {
color: #9aa1ad;
font-size: 0.8rem;
}
.payment-logo-slot {
height: 52px;
border-radius: 10px;
border: 1px dashed rgba(255, 255, 255, 0.28);
margin-bottom: 10px;
display: flex;
align-items: center;
justify-content: center;
color: #9aa1ad;
font-size: 0.8rem;
}
@media (max-width: 900px) {
.feature-card-wide,
.feature-card-collector {
grid-column: span 1;
}
.collector-placeholder-grid {
grid-template-columns: 1fr;
}
}
/* =========================================================
Cinecity-Inspired Home + Program Refresh
========================================================= */
.hero {
position: relative;
min-height: 92vh;
height: auto;
display: block;
overflow: hidden;
isolation: isolate;
}
.hero-slider {
position: absolute;
inset: 0;
}
.hero-slide {
position: absolute;
inset: 0;
background-size: cover;
background-position: center;
opacity: 0;
transform: scale(1.03);
transition: opacity 0.8s ease, transform 1.4s ease;
}
.hero-slide.active {
opacity: 1;
transform: scale(1);
}
.hero-overlay {
position: relative;
z-index: 2;
max-width: 760px;
margin: 0 auto;
padding: 190px 10% 130px;
text-align: left;
}
.hero-overlay h1 {
font-size: clamp(2.2rem, 5vw, 4.7rem);
letter-spacing: 0.4px;
margin: 12px 0;
}
.hero-overlay p {
color: #d1d4da;
font-size: 1.05rem;
max-width: 620px;
margin-bottom: 22px;
}
.hero-dots {
margin-top: 22px;
display: flex;
gap: 10px;
align-items: center;
}
.hero-dot {
width: 30px;
height: 6px;
border-radius: 99px;
border: 0;
background: rgba(255, 255, 255, 0.3);
cursor: pointer;
}
.hero-dot.active {
background: #0071e3;
}
.cinema-home {
background:
radial-gradient(circle at 20% -10%, rgba(0, 113, 227, 0.15), transparent 45%),
radial-gradient(circle at 85% 15%, rgba(255, 255, 255, 0.08), transparent 38%),
#07080b;
border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.home-poster-band {
margin-top: 18px;
padding: 18px;
background: rgba(255, 255, 255, 0.03);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 18px;
}
.home-band-header {
display: flex;
justify-content: space-between;
align-items: baseline;
margin-bottom: 14px;
}
.home-band-header h3 {
font-size: 1.2rem;
}
.home-band-header span {
color: #8f95a0;
font-size: 0.85rem;
}
.now-running-row {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
gap: 14px;
}
.running-poster {
background: #121317;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 14px;
overflow: hidden;
}
.running-poster img {
width: 100%;
height: 210px;
object-fit: cover;
display: block;
}
.running-meta {
padding: 12px;
}
.running-meta h4 {
font-size: 0.95rem;
margin-bottom: 4px;
}
.running-meta p {
color: #94a0af;
font-size: 0.78rem;
margin-bottom: 10px;
}
.open-program-btn {
width: 100%;
border: 1px solid rgba(255, 255, 255, 0.25);
background: transparent;
color: #e7ebf0;
border-radius: 8px;
font-size: 0.78rem;
padding: 7px 10px;
cursor: pointer;
}
.open-program-btn:hover {
background: rgba(255, 255, 255, 0.08);
}
.home-program-head {
margin-top: 36px;
}
.home-program-grid {
margin-top: 10px;
}
.home-movie-card {
box-shadow: 0 20px 30px rgba(0, 0, 0, 0.3);
}
.home-info-grid {
margin-top: 34px;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 14px;
}
.info-card {
background: linear-gradient(155deg, #17191f 0%, #101218 100%);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 16px;
padding: 16px 16px 18px;
}
.info-card h4 {
margin-bottom: 8px;
font-size: 0.95rem;
}
.info-card p {
color: #a7afbb;
font-size: 0.86rem;
line-height: 1.45;
}
.movie-list-shell {
padding: 120px 8% 60px;
}
.list-subtitle {
margin-top: 8px;
color: #9aa1ac;
margin-bottom: 22px;
}
.movie-program-list {
display: flex;
flex-direction: column;
gap: 28px;
}
.program-card {
border: 1px solid rgba(255, 255, 255, 0.08);
box-shadow: 0 22px 40px rgba(0, 0, 0, 0.33);
}
.program-card .card-header {
margin-bottom: 12px;
}
.program-card .description {
color: #c2c8d1;
margin-bottom: 16px;
line-height: 1.55;
}
.program-day-tabs {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 14px;
}
.program-day-tab {
min-width: 78px;
border: 1px solid rgba(255, 255, 255, 0.16);
background: rgba(255, 255, 255, 0.03);
color: #f2f5f9;
border-radius: 12px;
padding: 7px 10px;
cursor: pointer;
display: inline-flex;
flex-direction: column;
align-items: flex-start;
gap: 3px;
}
.program-day-tab small {
font-size: 0.72rem;
color: #94a0ad;
}
.program-day-tab.active {
border-color: #0071e3;
background: rgba(0, 113, 227, 0.2);
}
.program-schedule-shell {
margin-top: 0;
}
.program-schedule-body {
display: flex;
flex-direction: column;
gap: 8px;
}
.program-time-row {
width: 100%;
text-align: left;
padding: 12px 14px;
display: grid;
grid-template-columns: 1fr 130px 90px;
align-items: center;
gap: 10px;
border: 1px solid rgba(255, 255, 255, 0.09);
background: rgba(0, 0, 0, 0.2);
}
.program-time-row:hover {
border-color: #0071e3;
transform: translateX(3px);
}
.hall-pill {
justify-self: center;
font-size: 0.78rem;
color: #bcd6f6;
border: 1px solid rgba(0, 113, 227, 0.4);
background: rgba(0, 113, 227, 0.15);
border-radius: 999px;
padding: 4px 10px;
}
.flash-focus {
animation: cardFlash 1.1s ease;
}
@keyframes cardFlash {
0% {
box-shadow: 0 0 0 rgba(0, 113, 227, 0);
transform: translateY(0);
}
40% {
box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.35);
transform: translateY(-2px);
}
100% {
box-shadow: 0 0 0 rgba(0, 113, 227, 0);
transform: translateY(0);
}
}
.reveal-on-scroll {
opacity: 0;
transform: translateY(28px);
transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal-on-scroll.is-visible {
opacity: 1;
transform: translateY(0);
}
@media (max-width: 900px) {
.hero-overlay {
padding: 150px 8% 90px;
}
.program-time-row {
grid-template-columns: 1fr;
align-items: flex-start;
}
.hall-pill {
justify-self: flex-start;
}
.movie-list-shell {
padding-left: 5%;
padding-right: 5%;
}
}
/* --- Final visual overrides --- */
.hero-overlay {
max-width: 860px;
border-radius: 24px;
background: linear-gradient(90deg, rgba(6, 9, 14, 0.7), rgba(6, 9, 14, 0.25));
backdrop-filter: blur(2px);
}
.running-poster {
display: flex;
flex-direction: column;
}
.running-poster img {
height: 240px;
object-position: center 18%;
}
.running-meta {
display: flex;
flex-direction: column;
min-height: 150px;
}
.running-meta p {
margin-bottom: 14px;
}
.open-program-btn {
margin-top: auto;
}
/* --- 2026-04 final overrides (keep at file end) --- */
.hero {
min-height: 94vh;
}
.hero::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(180deg, rgba(3, 5, 8, 0.05) 0%, rgba(3, 5, 8, 0.62) 80%, rgba(3, 5, 8, 0.88) 100%);
pointer-events: none;
z-index: 1;
}
.hero-overlay {
z-index: 2;
max-width: 980px;
padding: 180px 8% 118px;
background: transparent;
backdrop-filter: none;
border-radius: 0;
text-shadow: 0 8px 30px rgba(0, 0, 0, 0.45);
}
.home-experience {
margin-top: 34px;
display: grid;
grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
gap: 16px;
}
.experience-main-card,
.experience-side-card {
background: linear-gradient(158deg, #151820 0%, #0f1219 100%);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 18px;
padding: 20px 20px 22px;
}
.experience-main-head {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 12px;
margin-bottom: 10px;
}
.experience-main-head h3 {
font-size: 1.25rem;
}
.experience-main-head span {
color: #9aa4b2;
font-size: 0.78rem;
}
.experience-main-card p,
.experience-side-card p {
color: #b4becb;
line-height: 1.5;
font-size: 0.92rem;
}
.experience-tags,
.experience-chip-row {
margin-top: 14px;
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.experience-tags span,
.experience-chip-row span {
border-radius: 999px;
border: 1px solid rgba(0, 113, 227, 0.45);
background: rgba(0, 113, 227, 0.16);
color: #c4dffe;
padding: 4px 11px;
font-size: 0.76rem;
}
.experience-side-stack {
display: grid;
gap: 16px;
}
.collector-card .collector-placeholder-grid {
margin-top: 12px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.collector-card .collector-slot {
min-height: 100px;
}
.account-orders-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 10px;
margin-top: 8px;
}
.order-item-btn {
width: 100%;
text-align: left;
cursor: pointer;
transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}
.order-item-btn:hover {
border-color: rgba(0, 113, 227, 0.58);
transform: translateY(-2px);
}
.order-item-btn.active {
border-color: #0071e3;
background: linear-gradient(150deg, #162334 0%, #111720 100%);
}
.order-item-head {
display: flex;
justify-content: space-between;
align-items: center;
gap: 10px;
margin-bottom: 8px;
}
.order-item-head h4 {
font-size: 0.98rem;
}
.order-item-head span {
color: #9ed0ff;
font-weight: 700;
font-size: 0.86rem;
}
.order-ticket-details {
margin-top: 14px;
}
.order-ticket-card {
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 16px;
background: linear-gradient(155deg, #12161f 0%, #0c1017 100%);
padding: 14px;
display: grid;
grid-template-columns: 120px minmax(0, 1fr);
gap: 14px;
}
.order-ticket-poster img {
width: 100%;
height: 100%;
max-height: 180px;
object-fit: cover;
border-radius: 10px;
}
.order-ticket-poster-fallback {
height: 100%;
min-height: 150px;
border-radius: 10px;
background: #202632;
color: #9aa4b2;
display: flex;
align-items: center;
justify-content: center;
font-size: 0.8rem;
}
.order-ticket-brand {
color: #9ec3ee;
font-size: 0.73rem;
letter-spacing: 0.8px;
margin-bottom: 6px;
}
.order-ticket-content h4 {
margin-bottom: 10px;
}
.order-ticket-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px 14px;
}
.order-ticket-grid p {
display: flex;
flex-direction: column;
gap: 3px;
margin: 0;
}
.order-ticket-grid span {
font-size: 0.74rem;
color: #8c98a9;
}
.order-ticket-grid strong {
font-size: 0.9rem;
}
.payment-logo-slot img {
max-width: 72%;
max-height: 30px;
object-fit: contain;
filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.35));
}
@media (max-width: 1000px) {
.home-experience {
grid-template-columns: 1fr;
}
}
@media (max-width: 720px) {
.hero-overlay {
padding: 145px 6% 92px;
}
.order-ticket-card {
grid-template-columns: 1fr;
}
.order-ticket-grid {
grid-template-columns: 1fr;
}
.collector-card .collector-placeholder-grid {
grid-template-columns: 1fr;
}
}
/* hero slide clarity final */
.hero-slide {
background-size: contain;
background-repeat: no-repeat;
background-position: center center;
background-color: #06080d;
transform: none;
}
.hero-slide.active {
transform: none;
}
/* --- 2026-04-21 final UX overrides --- */
.hero-overlay {
padding: 230px 8% 74px;
}
.hero-slide {
background-size: cover;
background-repeat: no-repeat;
background-position: center 34%;
transform: scale(1.09);
}
.hero-slide.active {
transform: scale(1.02);
}
.home-inline-showcase {
margin-top: 36px;
display: flex;
flex-direction: column;
gap: 28px;
}
.inline-section {
display: grid;
grid-template-columns: 1.15fr 1fr;
border-radius: 26px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.11);
background: #0d1118;
min-height: 290px;
box-shadow: 0 26px 50px rgba(0, 0, 0, 0.34);
}
.inline-media {
position: relative;
background-size: cover;
background-position: center;
}
.inline-media::after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(110deg, rgba(4, 6, 10, 0.08), rgba(4, 6, 10, 0.58));
}
.inline-halls .inline-media {
background-image: linear-gradient(120deg, rgba(0, 113, 227, 0.3), rgba(7, 10, 16, 0.55)), url('img/placeholder-hall.jpg');
}
.inline-dbox .inline-media {
background-image: linear-gradient(120deg, rgba(255, 176, 0, 0.2), rgba(8, 12, 18, 0.62)), url('img/placeholder-dbox.jpg');
}
.inline-collectors .inline-media {
background-image: linear-gradient(120deg, rgba(185, 124, 255, 0.15), rgba(8, 12, 18, 0.62)), url('img/placeholder-collector.jpg');
}
.inline-content {
padding: 28px 26px;
display: flex;
flex-direction: column;
justify-content: center;
}
.inline-content h3 {
font-size: clamp(1.3rem, 2.3vw, 1.9rem);
margin-bottom: 12px;
}
.inline-content p {
color: #b4bfcc;
line-height: 1.58;
margin-bottom: 16px;
}
.inline-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 16px;
}
.inline-tags span {
border-radius: 999px;
border: 1px solid rgba(0, 113, 227, 0.5);
background: rgba(0, 113, 227, 0.16);
color: #cae3ff;
padding: 5px 11px;
font-size: 0.76rem;
}
.story-more-btn {
align-self: flex-start;
border: 1px solid rgba(255, 255, 255, 0.24);
background: rgba(255, 255, 255, 0.04);
color: #e8edf3;
border-radius: 999px;
padding: 10px 16px;
font-size: 0.82rem;
cursor: pointer;
transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.story-more-btn:hover {
transform: translateY(-2px) scale(1.03);
background: rgba(0, 113, 227, 0.16);
border-color: rgba(0, 113, 227, 0.72);
box-shadow: 0 10px 24px rgba(0, 113, 227, 0.22);
}
.dbox-now-highlight {
border: 1px solid rgba(255, 181, 59, 0.5);
background: linear-gradient(160deg, rgba(255, 164, 27, 0.2), rgba(255, 213, 128, 0.08));
border-radius: 14px;
padding: 12px;
margin-bottom: 16px;
}
.dbox-now-highlight h4 {
font-size: 0.88rem;
margin-bottom: 8px;
color: #ffe2b5;
}
.dbox-mini-cards {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
}
.dbox-mini-cards div {
border-radius: 10px;
border: 1px solid rgba(255, 228, 168, 0.35);
background: rgba(23, 16, 8, 0.42);
padding: 7px 10px;
font-size: 0.78rem;
color: #f7dfb6;
text-align: center;
}
.home-modal-overlay {
position: fixed;
inset: 0;
background: rgba(2, 5, 10, 0.74);
backdrop-filter: blur(8px);
z-index: 2500;
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
}
.home-modal-panel {
width: min(980px, 100%);
max-height: 90vh;
overflow-y: auto;
border-radius: 22px;
border: 1px solid rgba(255, 255, 255, 0.14);
background: linear-gradient(165deg, #171b24 0%, #10141c 100%);
padding: 22px;
position: relative;
}
.home-modal-wide {
width: min(1120px, 100%);
}
.home-modal-close {
position: absolute;
top: 14px;
right: 14px;
width: 34px;
height: 34px;
border-radius: 50%;
border: 0;
background: #2a2f3a;
color: #fff;
font-size: 1.2rem;
cursor: pointer;
}
.home-modal-sub {
color: #96a1b2;
margin-top: 4px;
margin-bottom: 14px;
}
.hall-modal-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
.hall-modal-item {
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 14px;
padding: 12px;
background: rgba(255, 255, 255, 0.02);
}
.hall-modal-item h4 {
margin-bottom: 10px;
}
.hall-modal-item textarea,
.hall-modal-item input,
.dbox-modal-section input,
.collector-entry-content input {
width: 100%;
border-radius: 10px;
border: 1px solid #3e4658;
background: #111621;
color: #f3f6fb;
padding: 10px 11px;
}
.hall-modal-item textarea {
min-height: 100px;
resize: vertical;
margin-bottom: 8px;
}
.dbox-modal-section {
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 14px;
padding: 14px;
margin-top: 12px;
}
.dbox-image-grid {
margin-top: 12px;
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
}
.dbox-image-slot {
min-height: 98px;
border: 1px dashed rgba(255, 255, 255, 0.3);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
color: #9aa8ba;
font-size: 0.78rem;
}
.modal-highlight {
margin-top: 14px;
}
.collector-zigzag {
margin-top: 14px;
display: flex;
flex-direction: column;
gap: 14px;
}
.collector-entry {
width: 82%;
display: grid;
grid-template-columns: 90px 1fr;
gap: 10px;
border-radius: 14px;
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.03);
padding: 12px;
}
.collector-entry.left {
align-self: flex-start;
}
.collector-entry.right {
align-self: flex-end;
}
.collector-film-logo {
border-radius: 10px;
border: 1px dashed rgba(255, 255, 255, 0.35);
min-height: 72px;
display: flex;
align-items: center;
justify-content: center;
color: #9ba7b9;
font-size: 0.74rem;
}
.collector-entry-content h4 {
margin-bottom: 6px;
}
.collector-entry-content p {
color: #b3becc;
margin-bottom: 8px;
font-size: 0.9rem;
}
.account-payment-card {
text-align: left;
cursor: pointer;
}
.account-payment-card:hover {
border-color: rgba(0, 113, 227, 0.6);
transform: translateY(-2px);
}
.payment-logo-slot {
border: 1px solid rgba(255, 255, 255, 0.16);
background: rgba(255, 255, 255, 0.04);
}
.pay-modal-overlay {
position: fixed;
inset: 0;
z-index: 2600;
background: rgba(2, 4, 9, 0.72);
backdrop-filter: blur(8px);
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.pay-modal-panel {
width: min(460px, 100%);
border-radius: 18px;
border: 1px solid rgba(255, 255, 255, 0.16);
background: #12151d;
padding: 18px;
position: relative;
}
.pay-modal-head {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 12px;
}
.pay-modal-head img {
height: 26px;
width: auto;
}
.pay-close-btn {
position: absolute;
top: 11px;
right: 11px;
width: 32px;
height: 32px;
border-radius: 50%;
border: 0;
background: rgba(255, 255, 255, 0.08);
color: #fff;
cursor: pointer;
font-size: 1.1rem;
}
.pay-form-grid label,
.pay-modal-panel label {
display: flex;
flex-direction: column;
gap: 6px;
font-size: 0.84rem;
color: #b2bece;
margin-top: 8px;
}
.pay-form-grid input,
.pay-modal-panel input {
border-radius: 10px;
border: 1px solid #3b4255;
background: #10141f;
color: #f2f6fd;
padding: 10px;
}
.pay-form-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
}
.pay-submit-btn {
width: 100%;
margin-top: 14px;
border: 0;
border-radius: 11px;
padding: 11px 12px;
font-weight: 600;
cursor: pointer;
background: #0071e3;
color: #fff;
}
.paypal-btn {
background: linear-gradient(90deg, #005ea6, #0b84e3);
}
.apple-btn {
background: linear-gradient(90deg, #e9edf5, #cfd7e5);
color: #0c1016;
}
.google-btn {
background: linear-gradient(90deg, #1967d2, #34a853);
}
.pay-modal-paypal-style {
background: linear-gradient(160deg, #112544 0%, #0f1e34 100%);
}
.pay-modal-apple-style {
background: linear-gradient(160deg, #1d212b 0%, #131722 100%);
}
.pay-modal-google-style {
background: linear-gradient(160deg, #122033 0%, #141925 100%);
}
@media (max-width: 980px) {
.inline-section {
grid-template-columns: 1fr;
}
.inline-media {
min-height: 210px;
}
.hall-modal-grid {
grid-template-columns: 1fr;
}
.dbox-image-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.collector-entry {
width: 100%;
}
}
/* --- 2026-04-21 nav/theme/info pages --- */
#link-cart {
transform: translateY(2px);
}
.theme-toggle-item {
display: flex;
align-items: center;
}
.theme-toggle-btn {
width: 44px;
height: 44px;
border-radius: 999px;
border: 1px solid rgba(255, 255, 255, 0.24);
background: linear-gradient(140deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.02));
color: #fff;
position: relative;
cursor: pointer;
transition: transform 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
}
.theme-toggle-btn:hover {
transform: translateY(-1px) scale(1.03);
box-shadow: 0 10px 18px rgba(0, 0, 0, 0.28);
}
.theme-icon {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.05rem;
transition: opacity 0.35s ease, transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.theme-icon-sun {
opacity: 0;
transform: rotate(-35deg) scale(0.5);
}
.theme-icon-moon {
opacity: 1;
transform: rotate(0deg) scale(1);
}
.theme-toggle-btn.is-light .theme-icon-sun {
opacity: 1;
transform: rotate(0deg) scale(1);
}
.theme-toggle-btn.is-light .theme-icon-moon {
opacity: 0;
transform: rotate(35deg) scale(0.55);
}
.info-view {
min-height: 100vh;
padding-top: 120px;
padding-bottom: 70px;
}
.info-view-shell {
padding: 0 8%;
}
.info-view-shell h1 {
font-size: clamp(2rem, 4vw, 3rem);
}
.info-view-subtitle {
color: #98a3b3;
margin-top: 8px;
margin-bottom: 22px;
}
.full-page-grid {
margin-top: 16px;
}
.subpage-back-btn {
border: 1px solid rgba(255, 255, 255, 0.2);
background: rgba(255, 255, 255, 0.04);
color: #ebf1f9;
border-radius: 999px;
padding: 10px 14px;
margin-bottom: 18px;
cursor: pointer;
transition: transform 0.2s ease, border-color 0.2s ease;
}
.subpage-back-btn:hover {
transform: translateX(-2px);
border-color: rgba(0, 113, 227, 0.65);
}
.about-intro {
margin-top: 12px;
color: #b2bcc9;
line-height: 1.65;
max-width: 900px;
}
.about-cards {
margin-top: 24px;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 14px;
}
.about-card {
border: 1px solid rgba(255, 255, 255, 0.11);
border-radius: 16px;
background: linear-gradient(155deg, #151922 0%, #10141c 100%);
padding: 16px;
}
.about-card h3 {
margin-bottom: 8px;
}
.about-card p {
color: #aeb8c6;
margin-bottom: 14px;
line-height: 1.5;
}
body.theme-dark .program-card .description,
body.theme-dark .inline-content p,
body.theme-dark .about-intro {
color: #d1d7e0;
}
body.theme-dark #checkout-summary-list,
body.theme-dark .hall-modal-item,
body.theme-dark .dbox-modal-section {
color: #eaf1fc;
}
body.theme-light {
background: #eef2f8;
color: #121620;
}
body.theme-light .navbar {
background: rgba(244, 248, 255, 0.85);
border-bottom: 1px solid rgba(11, 22, 42, 0.08);
}
body.theme-light .nav-links a,
body.theme-light .logo {
color: #1a2435;
opacity: 0.95;
}
body.theme-light .hero::after {
background: linear-gradient(180deg, rgba(240, 246, 255, 0.04) 0%, rgba(240, 246, 255, 0.26) 100%);
}
body.theme-light .hero-overlay h1,
body.theme-light .hero-overlay p {
color: #131a26;
text-shadow: none;
}
body.theme-light .home-poster-band,
body.theme-light .inline-section,
body.theme-light .detailed-card,
body.theme-light .program-card,
body.theme-light .hall-modal-item,
body.theme-light .dbox-modal-section,
body.theme-light .about-card,
body.theme-light .account-panel,
body.theme-light .account-login-box,
body.theme-light .account-card,
body.theme-light .order-box,
body.theme-light .summary-box-black,
body.theme-light .cart-left,
body.theme-light .pay-modal-panel,
body.theme-light .home-modal-panel,
body.theme-light .snack-card,
body.theme-light .snack-card.highlight {
background: #ffffff !important;
color: #1a2435;
border-color: rgba(21, 35, 58, 0.14) !important;
box-shadow: 0 10px 30px rgba(21, 35, 58, 0.08);
}
body.theme-light .inline-content p,
body.theme-light .program-card .description,
body.theme-light .list-subtitle,
body.theme-light .info-view-subtitle,
body.theme-light .about-intro,
body.theme-light .about-card p,
body.theme-light .account-payments-note,
body.theme-light .running-meta p {
color: #45556f !important;
}
body.theme-light .running-poster,
body.theme-light .order-ticket-card,
body.theme-light .order-item-btn.active,
body.theme-light .dbox-now-highlight,
body.theme-light .modal-highlight,
body.theme-light .collector-entry {
background: #f7f9fd !important;
border-color: rgba(28, 56, 94, 0.16) !important;
}
body.theme-light .story-more-btn,
body.theme-light .subpage-back-btn,
body.theme-light .open-program-btn,
body.theme-light .account-tab-btn,
body.theme-light .account-logout-btn,
body.theme-light .theme-toggle-btn {
color: #1c2b44;
background: #f3f7ff;
border-color: rgba(28, 56, 94, 0.22);
}
body.theme-light .btn-primary,
body.theme-light .blue-button,
body.theme-light .auth-submit-btn,
body.theme-light .pay-submit-btn {
color: #fff;
}
body.theme-light #checkout-summary-list,
body.theme-light .hall-modal-item textarea,
body.theme-light .hall-modal-item input,
body.theme-light .pay-modal-panel input,
body.theme-light .collector-entry-content input,
body.theme-light .account-login-box input,
body.theme-light .account-auth-modal input {
background: #f5f8ff !important;
color: #1a2435 !important;
border-color: rgba(33, 55, 91, 0.22) !important;
}
body.theme-light .pay-modal-overlay,
body.theme-light .home-modal-overlay,
body.theme-light .modal,
body.theme-light .snack-overlay {
background: rgba(203, 216, 236, 0.7);
}
body.theme-light .theme-toggle-btn {
background: linear-gradient(140deg, #fff9d5, #ffe9b0);
}
@media (max-width: 1000px) {
.about-cards {
grid-template-columns: 1fr;
}
}
/* --- 2026-04-28 light-mode polish + new about design --- */
.about-hero-block {
margin-top: 8px;
border-radius: 24px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.12);
display: grid;
grid-template-columns: 1.2fr 1fr;
background: linear-gradient(130deg, #111722 0%, #0b111a 100%);
box-shadow: 0 24px 46px rgba(0, 0, 0, 0.3);
}
.about-hero-content {
padding: 30px 28px;
}
.about-hero-content h1 {
margin-bottom: 10px;
}
.about-pill-row {
margin-top: 18px;
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.about-pill-row span {
border: 1px solid rgba(0, 113, 227, 0.45);
background: rgba(0, 113, 227, 0.15);
color: #c8e2ff;
border-radius: 999px;
padding: 6px 12px;
font-size: 0.76rem;
}
.about-hero-media {
min-height: 300px;
background-image:
linear-gradient(150deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.58)),
url('img/derAustronaut.jpg');
background-size: cover;
background-position: center;
position: relative;
}
.about-hero-media::after {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(circle at 25% 25%, rgba(0, 113, 227, 0.22), transparent 45%),
radial-gradient(circle at 70% 70%, rgba(255, 184, 92, 0.18), transparent 42%);
}
.about-stats-grid {
margin-top: 18px;
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
}
.about-stats-grid article {
border-radius: 14px;
border: 1px solid rgba(255, 255, 255, 0.12);
background: rgba(255, 255, 255, 0.03);
padding: 12px;
}
.about-stats-grid h3 {
color: #8ec8ff;
margin-bottom: 4px;
}
.about-stats-grid p {
color: #aab7c8;
font-size: 0.84rem;
}
.about-cards {
margin-top: 20px;
gap: 16px;
}
.about-card {
position: relative;
overflow: hidden;
border-radius: 18px;
min-height: 230px;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 18px;
background-size: cover;
background-position: center;
}
.about-card::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(175deg, rgba(7, 10, 15, 0.2), rgba(7, 10, 15, 0.82));
z-index: 0;
}
.about-card > * {
position: relative;
z-index: 1;
}
.about-card-halls {
background-image: url('img/zoomania-2.jpg');
}
.about-card-dbox {
background-image: url('img/shelter.jpg');
}
.about-card-tech {
background-image: url('img/spidermannewday.jpg');
}
.about-card p {
color: #d7dfeb;
}
/* Light mode readability improvements */
body.theme-light .cinema-home {
background:
radial-gradient(circle at 12% -2%, rgba(0, 113, 227, 0.17), transparent 36%),
radial-gradient(circle at 88% 18%, rgba(123, 164, 218, 0.22), transparent 34%),
#edf2fb;
}
body.theme-light .home-band-header h3,
body.theme-light .section-header h2,
body.theme-light .list-title,
body.theme-light .movie-info h3,
body.theme-light .duration,
body.theme-light .program-card h2,
body.theme-light .running-meta h4,
body.theme-light .snack-info h3,
body.theme-light #account-view h2,
body.theme-light #account-tab-content h3,
body.theme-light .order-item-head h4 {
color: #13233c !important;
}
body.theme-light .home-band-header span,
body.theme-light .movie-info .genre,
body.theme-light .program-day-tab small,
body.theme-light .card-right .description,
body.theme-light .account-card p,
body.theme-light .order-box p,
body.theme-light .order-ticket-grid span,
body.theme-light .order-ticket-brand,
body.theme-light .summary-row,
body.theme-light .vat-row,
body.theme-light .snack-prompt-box p {
color: #4a5d79 !important;
}
body.theme-light .program-day-tab {
border-color: rgba(22, 45, 74, 0.24);
background: #f4f8ff;
color: #13233c;
}
body.theme-light .program-day-tab.active {
border-color: #0071e3;
background: rgba(0, 113, 227, 0.14);
}
body.theme-light .program-time-row {
border-color: rgba(24, 52, 87, 0.2);
background: #f5f9ff;
color: #13233c;
}
body.theme-light .program-time-row:hover {
background: #ebf3ff;
}
body.theme-light .hall-pill {
color: #144274;
border-color: rgba(0, 113, 227, 0.32);
background: rgba(0, 113, 227, 0.11);
}
body.theme-light .time-btn {
background: #0071e3;
color: #fff;
}
body.theme-light .category-tabs {
background: rgba(255, 255, 255, 0.65);
border: 1px solid rgba(26, 51, 83, 0.12);
border-radius: 18px;
padding: 10px;
}
body.theme-light .tab-btn {
background: #eef4ff;
color: #1b2f4d;
border-color: rgba(20, 45, 78, 0.2);
}
body.theme-light .tab-btn.active {
background: #0071e3;
color: #fff;
}
body.theme-light .option-group {
background: #edf3ff;
}
body.theme-light .opt-btn {
color: #445976;
}
body.theme-light .opt-btn.active {
background: #dbe9ff;
color: #11325b;
}
body.theme-light .size-chip {
background: #f4f8ff;
color: #122741;
border-color: rgba(17, 41, 72, 0.2);
}
body.theme-light .size-chip span {
color: #0057ae;
}
body.theme-light .size-chip:hover {
background: #0071e3;
color: #fff;
}
body.theme-light .size-chip:hover span {
color: #fff;
}
body.theme-light .summary-row-large,
body.theme-light .total-row,
body.theme-light #cart-total-right,
body.theme-light #cart-vat-right,
body.theme-light #checkout-total-display,
body.theme-light #checkout-vat-display,
body.theme-light .col-price {
color: #10213a !important;
}
body.theme-light .order-item-btn.active .order-item-head span {
color: #0053aa;
}
body.theme-light .order-ticket-grid strong,
body.theme-light .order-item-head span,
body.theme-light .order-ticket-content h4 {
color: #112742;
}
body.theme-light .about-hero-block {
background: linear-gradient(130deg, #f7fbff 0%, #ecf3ff 100%);
border-color: rgba(24, 48, 80, 0.14);
}
body.theme-light .about-hero-content h1,
body.theme-light .about-stats-grid h3,
body.theme-light .about-card h3 {
color: #122440;
}
body.theme-light .about-hero-content p,
body.theme-light .about-stats-grid p,
body.theme-light .about-card p {
color: #455a77;
}
body.theme-light .about-stats-grid article {
background: #ffffff;
border-color: rgba(24, 49, 82, 0.14);
}
body.theme-light .about-card::before {
background: linear-gradient(175deg, rgba(245, 250, 255, 0.2), rgba(245, 250, 255, 0.78));
}
body.theme-light .about-card {
border-color: rgba(22, 47, 80, 0.18);
}
@media (max-width: 980px) {
.about-hero-block {
grid-template-columns: 1fr;
}
.about-hero-media {
min-height: 230px;
}
.about-stats-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
/* --- 2026-04-29 account/about/snack readability polish --- */
.snack-subsection {
margin-top: 30px;
}
.snack-subsection:first-child {
margin-top: 0;
}
.snack-section-heading {
margin: 0 0 16px;
padding: 16px 18px;
border-left: 4px solid var(--accent-blue);
border-radius: 18px;
background:
linear-gradient(135deg, rgba(0, 113, 227, 0.18), rgba(255, 255, 255, 0.035)),
rgba(255, 255, 255, 0.035);
}
.snack-section-heading span {
display: block;
margin-bottom: 3px;
color: #9ed0ff;
font-size: 0.72rem;
font-weight: 800;
letter-spacing: 1.7px;
text-transform: uppercase;
}
.snack-section-heading h2 {
margin: 0;
color: #f5f8ff;
font-size: clamp(1.35rem, 2vw, 2rem);
}
.snack-card-note {
margin: 4px 0 12px;
color: #aeb8c6;
font-size: 0.82rem;
line-height: 1.45;
}
body.theme-dark .account-orders-shell h3,
body.theme-dark .order-item-head h4,
body.theme-dark .order-box p,
body.theme-dark .order-box strong,
body.theme-dark .order-ticket-content h4,
body.theme-dark .order-ticket-grid strong {
color: #f4f8ff;
}
body.theme-dark .order-box {
background: linear-gradient(145deg, #18202d 0%, #10151f 100%);
border-color: rgba(130, 180, 235, 0.2);
box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
}
body.theme-dark .order-box p {
color: #d2dbe8;
}
body.theme-dark .order-item-btn:hover,
body.theme-dark .order-item-btn.active {
background: linear-gradient(145deg, #1d3148 0%, #111a27 100%);
border-color: rgba(110, 185, 255, 0.7);
}
body.theme-dark .order-item-head span {
color: #a9d7ff;
}
body.theme-dark .order-ticket-card {
background:
radial-gradient(circle at 18% 0%, rgba(0, 113, 227, 0.2), transparent 30%),
linear-gradient(155deg, #172235 0%, #0b111b 100%);
border-color: rgba(146, 194, 255, 0.22);
}
body.theme-dark .order-ticket-grid span,
body.theme-dark .order-ticket-brand {
color: #b9c9dd;
}
body.theme-light .about-hero-block {
background:
radial-gradient(circle at 8% 0%, rgba(0, 113, 227, 0.12), transparent 36%),
linear-gradient(130deg, #ffffff 0%, #edf5ff 100%);
box-shadow: 0 22px 55px rgba(35, 67, 108, 0.12);
}
body.theme-light .about-hero-content h1,
body.theme-light .about-stats-grid h3,
body.theme-light .about-card h3 {
color: #0e1b31 !important;
text-shadow: none;
}
body.theme-light .about-hero-content p,
body.theme-light .about-stats-grid p {
color: #314763 !important;
}
body.theme-light .about-pill-row span {
background: rgba(0, 113, 227, 0.11);
border-color: rgba(0, 113, 227, 0.28);
color: #064b90;
}
body.theme-light .about-stats-grid article {
background: rgba(255, 255, 255, 0.92);
border-color: rgba(24, 52, 88, 0.18);
box-shadow: 0 12px 28px rgba(42, 70, 106, 0.08);
}
body.theme-light .about-card {
border-color: rgba(22, 47, 80, 0.22);
box-shadow: 0 18px 42px rgba(31, 61, 98, 0.13);
}
body.theme-light .about-card-halls {
background-image: url('img/zoomania-2.jpg') !important;
}
body.theme-light .about-card-dbox {
background-image: url('img/shelter.jpg') !important;
}
body.theme-light .about-card-tech {
background-image: url('img/spidermannewday.jpg') !important;
}
body.theme-light .about-card::before {
background:
linear-gradient(175deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.93) 74%),
linear-gradient(90deg, rgba(0, 113, 227, 0.1), transparent);
}
body.theme-light .about-card p {
color: #263f5f !important;
}
body.theme-light .about-card .story-more-btn {
background: rgba(255, 255, 255, 0.84);
border-color: rgba(0, 83, 170, 0.24);
color: #0d3563;
box-shadow: 0 10px 24px rgba(26, 57, 95, 0.12);
}
body.theme-light .about-card .story-more-btn:hover {
background: #0071e3;
border-color: #0071e3;
color: #ffffff;
}
body.theme-light .snack-section-heading {
background:
linear-gradient(135deg, rgba(0, 113, 227, 0.12), rgba(255, 255, 255, 0.94)),
#ffffff;
border-color: #0071e3;
box-shadow: 0 12px 26px rgba(34, 74, 121, 0.09);
}
body.theme-light .snack-section-heading span {
color: #0057ae;
}
body.theme-light .snack-section-heading h2 {
color: #10213a;
}
body.theme-light .snack-card-note {
color: #4a5d79;
}
/* --- 2026-04-29 limited snack specials --- */
.limited-specials-category {
position: relative;
}
.limited-specials-hero {
position: relative;
overflow: hidden;
margin-bottom: 28px;
padding: clamp(24px, 4vw, 42px);
border: 1px solid rgba(255, 255, 255, 0.13);
border-radius: 28px;
background:
radial-gradient(circle at 14% 16%, rgba(0, 113, 227, 0.42), transparent 34%),
radial-gradient(circle at 82% 10%, rgba(255, 178, 84, 0.2), transparent 30%),
linear-gradient(135deg, rgba(12, 18, 31, 0.96), rgba(5, 8, 14, 0.96));
box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
}
.limited-specials-hero::after {
content: "";
position: absolute;
inset: auto -10% -45% 42%;
height: 180px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.08);
transform: rotate(-8deg);
}
.limited-kicker {
display: inline-flex;
margin-bottom: 10px;
padding: 7px 12px;
border: 1px solid rgba(158, 208, 255, 0.38);
border-radius: 999px;
color: #9ed0ff;
font-size: 0.76rem;
font-weight: 800;
letter-spacing: 1.5px;
text-transform: uppercase;
}
.limited-specials-hero h2 {
margin: 0 0 8px;
color: #ffffff;
font-size: clamp(2rem, 5vw, 4.6rem);
letter-spacing: -2px;
}
.limited-specials-hero p {
max-width: 620px;
color: #d4dfec;
line-height: 1.65;
}
.limited-special-block {
margin-top: 30px;
}
.special-film-heading {
display: flex;
align-items: center;
gap: 16px;
margin-bottom: 16px;
padding: 14px 16px;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 22px;
background:
linear-gradient(115deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.025)),
rgba(255, 255, 255, 0.035);
}
.special-film-heading img {
width: 76px;
height: 76px;
border-radius: 18px;
object-fit: cover;
box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
}
.special-film-heading span {
display: block;
margin-bottom: 3px;
color: #9ed0ff;
font-size: 0.74rem;
font-weight: 800;
letter-spacing: 1.5px;
text-transform: uppercase;
}
.special-film-heading h2 {
margin: 0;
color: #f8fbff;
font-size: clamp(1.35rem, 2vw, 2.2rem);
}
.limited-special-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
gap: 18px;
}
.limited-special-grid.compact-specials {
grid-template-columns: minmax(230px, 420px);
}
.limited-special-card {
border-color: rgba(0, 113, 227, 0.3);
background:
linear-gradient(160deg, rgba(0, 113, 227, 0.15), transparent 42%),
var(--card-bg);
}
.limited-special-card .snack-img {
background:
radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.11), transparent 34%),
#090d14;
}
.limited-special-card .badge {
display: inline-flex;
width: max-content;
margin-bottom: 8px;
}
.wide-special {
display: grid;
grid-template-columns: minmax(130px, 42%) 1fr;
}
.wide-special .snack-img {
height: 100%;
min-height: 220px;
}
.wide-special .snack-info {
display: flex;
flex-direction: column;
justify-content: center;
}
body.theme-light .limited-specials-hero {
border-color: rgba(31, 67, 110, 0.14);
background:
radial-gradient(circle at 12% 16%, rgba(0, 113, 227, 0.18), transparent 34%),
radial-gradient(circle at 84% 12%, rgba(255, 188, 104, 0.26), transparent 32%),
linear-gradient(135deg, #ffffff, #edf5ff);
box-shadow: 0 24px 60px rgba(35, 67, 108, 0.12);
}
body.theme-light .limited-specials-hero h2 {
color: #0e1b31;
}
body.theme-light .limited-specials-hero p {
color: #314763;
}
body.theme-light .limited-kicker {
background: rgba(0, 113, 227, 0.1);
border-color: rgba(0, 113, 227, 0.28);
color: #0759aa;
}
body.theme-light .special-film-heading {
background: rgba(255, 255, 255, 0.86);
border-color: rgba(28, 56, 94, 0.14);
box-shadow: 0 14px 32px rgba(33, 67, 107, 0.09);
}
body.theme-light .special-film-heading span {
color: #0057ae;
}
body.theme-light .special-film-heading h2 {
color: #10213a;
}
body.theme-light .limited-special-card {
background:
linear-gradient(160deg, rgba(0, 113, 227, 0.08), transparent 42%),
#ffffff !important;
border-color: rgba(0, 113, 227, 0.16) !important;
}
@media (max-width: 760px) {
.wide-special {
grid-template-columns: 1fr;
}
.wide-special .snack-img {
min-height: 180px;
}
.special-film-heading {
align-items: flex-start;
}
}