
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
    --bg-day-1: #87CEEB;
    --bg-day-2: #FFE4B5;
    --card: rgba(255,255,255,0.88);
    --card-border: rgba(0,0,0,0.08);
    --text-primary: #1a1040;
    --text-secondary: #6b5c8f;
    --text-muted: #a094c0;
    --accent: #6d28d9;
    --accent2: #0891b2;
    --accent3: #be185d;
    --name-grad: linear-gradient(135deg, #6d28d9, #0891b2, #be185d);
    --verified-bg: rgba(109,40,217,0.12);
    --verified-border: rgba(109,40,217,0.25);
    --verified-text: #6d28d9;
    --stat-num: #6d28d9;
    --stat-border: rgba(109,40,217,0.12);
    --tag-bg: rgba(109,40,217,0.08);
    --tag-border: rgba(109,40,217,0.15);
    --tag-text: #6d28d9;
    --section-title: #a094c0;
    --shadow: 0 8px 32px rgba(0,0,0,0.12);
    --shadow-hover: 0 16px 48px rgba(109,40,217,0.2);
    --avatar-border: rgba(109,40,217,0.25);
    --schedule-closed: #dc2626;
    --footer-text: #8B7BA8;
    --schedule-bg: rgba(255,255,255,0.8);
    --schedule-border: rgba(0,0,0,0.08);
    --schedule-divider: rgba(0,0,0,0.05);
    --map-btn-bg: linear-gradient(135deg, rgba(6,182,212,0.12), rgba(109,40,217,0.12));
    --map-btn-border: rgba(6,182,212,0.25);
}

[data-theme="dark"] {
    --card: rgba(12,20,44,0.88);
    --card-border: rgba(255,255,255,0.07);
    --text-primary: #e2e8f0;
    --text-secondary: #94a3b8;
    --text-muted: #64748b;
    --name-grad: linear-gradient(135deg, #c4b5fd, #67e8f9, #f9a8d4);
    --verified-bg: rgba(124,58,237,0.2);
    --verified-border: rgba(124,58,237,0.4);
    --verified-text: #a5b4fc;
    --stat-num: #c4b5fd;
    --stat-border: rgba(255,255,255,0.07);
    --tag-bg: rgba(124,58,237,0.2);
    --tag-border: rgba(124,58,237,0.3);
    --tag-text: #c4b5fd;
    --section-title: rgba(148,163,184,0.55);
    --shadow: 0 8px 32px rgba(0,0,0,0.4);
    --shadow-hover: 0 16px 48px rgba(124,58,237,0.3);
    --avatar-border: rgba(124,58,237,0.5);
    --schedule-closed: rgba(248,113,113,0.9);
    --footer-text: rgba(148,163,184,0.4);
    --schedule-bg: rgba(10,18,40,0.7);
    --schedule-border: rgba(255,255,255,0.07);
    --schedule-divider: rgba(255,255,255,0.04);
    --map-btn-bg: linear-gradient(135deg, rgba(6,182,212,0.18), rgba(124,58,237,0.18));
    --map-btn-border: rgba(6,182,212,0.3);
}

body {
    font-family: 'Raleway', sans-serif;
    min-height: 100vh;
    overflow-x: hidden;
    color: var(--text-primary);
    transition: color 0.5s;
    position: relative;
}

/* ========== BACKGROUND SYSTEM ========== */
#sky-canvas {
    position: fixed; inset: 0; z-index: 0;
    background: linear-gradient(160deg, var(--bg-day-1, #87CEEB) 0%, var(--bg-day-2, #FFE4B5) 100%);
    transition: background 0.8s ease;
}

[data-theme="dark"] #sky-canvas {
    background: linear-gradient(160deg, #020817 0%, #0a0f2a 50%, #1a1a3e 100%);
}

/* ========== SUN WITH RAYS ========== */
.sun-body {
    position: absolute;
    width: 90px; height: 90px;
    top: 7%; right: 8%;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #fff7aa, #FFD700 40%, #FFA500);
    box-shadow:
    0 0 0 8px rgba(255,215,0,0.15),
    0 0 0 18px rgba(255,215,0,0.08),
    0 0 60px rgba(255,180,0,0.5);
    animation: sunFloat 10s ease-in-out infinite, sunGlow 3s ease-in-out infinite;
    z-index: 2;
    transition: opacity 0.6s;
}

.sun-rays {
    position: absolute;
    width: 90px; height: 90px;
    top: 7%; right: 8%;
    border-radius: 50%;
    z-index: 1;
    animation: sunFloat 10s ease-in-out infinite, raysRotate 20s linear infinite;
    transition: opacity 0.6s;
}

.sun-rays::before,
.sun-rays::after {
    content: '';
    position: absolute;
    inset: -28px;
    border-radius: 50%;
    background:
    conic-gradient(
        rgba(255,215,0,0.35) 0deg, transparent 12deg,
        rgba(255,215,0,0.35) 24deg, transparent 36deg,
        rgba(255,215,0,0.35) 48deg, transparent 60deg,
        rgba(255,215,0,0.35) 72deg, transparent 84deg,
        rgba(255,215,0,0.35) 96deg, transparent 108deg,
        rgba(255,215,0,0.35) 120deg, transparent 132deg,
        rgba(255,215,0,0.35) 144deg, transparent 156deg,
        rgba(255,215,0,0.35) 168deg, transparent 180deg,
        rgba(255,215,0,0.35) 192deg, transparent 204deg,
        rgba(255,215,0,0.35) 216deg, transparent 228deg,
        rgba(255,215,0,0.35) 240deg, transparent 252deg,
        rgba(255,215,0,0.35) 264deg, transparent 276deg,
        rgba(255,215,0,0.35) 288deg, transparent 300deg,
        rgba(255,215,0,0.35) 312deg, transparent 324deg,
        rgba(255,215,0,0.35) 336deg, transparent 348deg,
        rgba(255,215,0,0.35) 360deg
    );
    -webkit-mask: radial-gradient(circle at 50% 50%, transparent 42%, black 42%);
    mask: radial-gradient(circle at 50% 50%, transparent 42%, black 42%);
}

.sun-rays::after {
    inset: -44px;
    opacity: 0.5;
    transform: rotate(15deg);
}

@keyframes sunFloat {
    0%,100% { transform: translateY(0); }
    50% { transform: translateY(-14px); }
}
@keyframes sunGlow {
    0%,100% { box-shadow: 0 0 0 8px rgba(255,215,0,0.15), 0 0 0 18px rgba(255,215,0,0.08), 0 0 60px rgba(255,180,0,0.5); }
    50% { box-shadow: 0 0 0 14px rgba(255,215,0,0.2), 0 0 0 28px rgba(255,215,0,0.1), 0 0 90px rgba(255,180,0,0.7); }
}
@keyframes raysRotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

[data-theme="dark"] .sun-body,
[data-theme="dark"] .sun-rays { opacity: 0; pointer-events: none; }

/* ========== MOON WITH CRATERS ========== */
.moon-body {
    position: absolute;
    width: 85px; height: 85px;
    top: 7%; right: 8%;
    border-radius: 50%;
    background: radial-gradient(circle at 32% 28%, #f8f4e8, #d4cfc0 55%, #b8b0a0);
    box-shadow:
    inset -12px -8px 20px rgba(0,0,0,0.25),
    inset 4px 4px 12px rgba(255,255,255,0.3),
    0 0 40px rgba(220,210,180,0.35),
    0 0 80px rgba(180,170,150,0.15);
    animation: moonFloat 12s ease-in-out infinite, moonGlow 5s ease-in-out infinite;
    opacity: 0;
    transition: opacity 0.6s;
    z-index: 2;
    overflow: hidden;
}

[data-theme="dark"] .moon-body { opacity: 1; }

/* Craters */
.moon-body::before {
    content: '';
    position: absolute;
    width: 20px; height: 18px;
    background: radial-gradient(ellipse at 40% 35%, rgba(180,170,155,0.6), rgba(140,132,118,0.8));
    border-radius: 50%;
    top: 28%; left: 20%;
    box-shadow: inset 2px 2px 4px rgba(0,0,0,0.2);
}

.moon-body::after {
    content: '';
    position: absolute;
    width: 13px; height: 11px;
    background: radial-gradient(ellipse at 40% 35%, rgba(175,165,150,0.5), rgba(135,127,113,0.7));
    border-radius: 50%;
    top: 55%; left: 60%;
    box-shadow: inset 1px 1px 3px rgba(0,0,0,0.15);
}

.moon-crater-sm {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(ellipse at 40% 35%, rgba(170,160,145,0.45), rgba(130,122,108,0.65));
    box-shadow: inset 1px 1px 2px rgba(0,0,0,0.15);
}

@keyframes moonFloat {
    0%,100% { transform: translateY(0) rotate(-3deg); }
    50% { transform: translateY(-12px) rotate(3deg); }
}
@keyframes moonGlow {
    0%,100% { box-shadow: inset -12px -8px 20px rgba(0,0,0,0.25), inset 4px 4px 12px rgba(255,255,255,0.3), 0 0 40px rgba(220,210,180,0.35); }
    50% { box-shadow: inset -12px -8px 20px rgba(0,0,0,0.25), inset 4px 4px 12px rgba(255,255,255,0.3), 0 0 65px rgba(220,210,180,0.55), 0 0 120px rgba(180,170,150,0.25); }
}

/* ========== AURORA ========== */
.aurora-wrap {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 55%;
    overflow: hidden;
    opacity: 0;
    transition: opacity 1s;
    pointer-events: none;
    z-index: 1;
}

[data-theme="dark"] .aurora-wrap { opacity: 1; }

.aurora-band {
    position: absolute;
    left: -20%; right: -20%;
    height: 200px;
    border-radius: 50%;
    filter: blur(38px);
    animation: auroraWave 8s ease-in-out infinite;
    mix-blend-mode: screen;
}

.aurora-1 {
    top: 5%;
    background: linear-gradient(90deg,
    transparent 0%, rgba(0,255,150,0.15) 20%,
    rgba(0,200,255,0.22) 40%, rgba(100,0,255,0.18) 60%,
    rgba(255,0,180,0.12) 80%, transparent 100%);
    animation-delay: 0s; animation-duration: 9s;
}
.aurora-2 {
    top: 18%;
    background: linear-gradient(90deg,
    transparent 0%, rgba(100,0,255,0.12) 15%,
    rgba(0,255,200,0.18) 35%, rgba(0,150,255,0.15) 55%,
    rgba(120,0,220,0.12) 75%, transparent 100%);
    animation-delay: -3s; animation-duration: 11s;
}
.aurora-3 {
    top: 28%;
    background: linear-gradient(90deg,
    transparent 0%, rgba(0,255,180,0.1) 25%,
    rgba(200,0,255,0.14) 50%, rgba(0,200,255,0.1) 75%,
    transparent 100%);
    animation-delay: -6s; animation-duration: 13s;
}

@keyframes auroraWave {
    0%,100% { transform: translateX(0) scaleY(1); opacity: 0.7; }
    33% { transform: translateX(5%) scaleY(1.15); opacity: 1; }
    66% { transform: translateX(-5%) scaleY(0.9); opacity: 0.8; }
}

/* ========== STARS ========== */
.star-field {
    position: absolute; inset: 0;
    opacity: 0;
    transition: opacity 1s;
    pointer-events: none;
}
[data-theme="dark"] .star-field { opacity: 1; }

.star {
    position: absolute; border-radius: 50%; background: white;
    animation: starTwinkle ease-in-out infinite;
}
@keyframes starTwinkle {
    0%,100% { opacity: 0.15; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.4); }
}

.shooting-star {
    position: absolute; width: 120px; height: 1.5px;
    background: linear-gradient(90deg, white, transparent);
    border-radius: 2px;
    opacity: 0;
    animation: shoot linear infinite;
}
@keyframes shoot {
    0% { transform: translateX(0) translateY(0) rotate(-30deg); opacity: 0; }
    8% { opacity: 1; }
    40% { transform: translateX(-500px) translateY(150px) rotate(-30deg); opacity: 0.8; }
    100% { transform: translateX(-900px) translateY(270px) rotate(-30deg); opacity: 0; }
}

/* ========== CLOUDS ========== */
.cloud-layer { position: absolute; inset: 0; pointer-events: none; }
[data-theme="dark"] .cloud-layer { opacity: 0; transition: opacity 0.6s; }

.cloud {
    position: absolute;
    background: rgba(255,255,255,0.82);
    border-radius: 50px;
    filter: blur(1px);
    animation: cloudDrift linear infinite;
}
.cloud::before, .cloud::after {
    content: ''; position: absolute;
    background: rgba(255,255,255,0.9);
    border-radius: 50%;
}
.cloud::before { width: 50%; height: 80%; top: -38%; left: 12%; }
.cloud::after  { width: 60%; height: 90%; top: -48%; left: 42%; }
@keyframes cloudDrift {
    from { transform: translateX(-120%); }
    to   { transform: translateX(calc(100vw + 220px)); }
}

/* ========== LAYOUT ========== */
.container {
    position: relative; z-index: 10;
    width: 100%; max-width: 1200px;
    margin: 0 auto;
    padding: 30px 20px 60px;
}

@media (min-width: 768px) {
    .container { padding: 36px 32px 70px; }
    .main-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
    margin-bottom: 24px;
    }
    .stats-row { grid-column: span 2; }
    .map-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
    align-items: start;
    }
}

/* ========== THEME TOGGLE ========== */
.theme-toggle {
    position: fixed; top: 18px; right: 18px;
    width: 52px; height: 52px;
    background: var(--card);
    border: 1px solid var(--card-border);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; font-size: 24px;
    transition: all 0.4s cubic-bezier(0.34,1.56,0.64,1);
    backdrop-filter: blur(12px);
    z-index: 200;
    box-shadow: var(--shadow);
}
.theme-toggle:hover { transform: scale(1.15) rotate(20deg); }

/* ========== AVATAR ========== */
.avatar-section {
    display: flex; flex-direction: column; align-items: center;
    margin: 24px 0 32px;
    animation: fadeDown 0.9s ease both;
}
@keyframes fadeDown {
    from { opacity:0; transform:translateY(-28px); }
    to   { opacity:1; transform:translateY(0); }
}

.avatar-wrapper {
    position: relative; width: 126px; height: 126px;
    margin-bottom: 22px; perspective: 700px;
}

.avatar-ring {
    position: absolute; inset: -9px;
    border-radius: 50%;
    border: 3px solid transparent;
    background: linear-gradient(var(--card), var(--card)) padding-box,
                linear-gradient(135deg, #7c3aed, #06b6d4, #ec4899, #7c3aed) border-box;
    animation: ringRotate 5s linear infinite;
}
@keyframes ringRotate { to { transform: rotate(360deg); } }

.pulse-ring, .pulse-ring-2 {
    position: absolute; border-radius: 50%;
    animation: pulseFade 2.2s ease-out infinite;
}
.pulse-ring   { inset:-14px; border:1px solid rgba(109,40,217,0.3); }
.pulse-ring-2 { inset:-26px; border:1px solid rgba(6,182,212,0.2); animation-delay:0.7s; }
@keyframes pulseFade {
    0% { transform:scale(0.88); opacity:1; }
    100% { transform:scale(1.22); opacity:0; }
}

.avatar-img {
    width: 126px; height: 126px; border-radius: 50%;
    background: linear-gradient(135deg, #ede9fe, #dbeafe);
    display: flex; align-items: center; justify-content: center;
    font-size: 54px; position: relative; z-index: 1;
    border: 3px solid var(--avatar-border);
    box-shadow: var(--shadow);
    animation: avatarFloat 5s ease-in-out infinite;
    overflow: hidden;
}
[data-theme="dark"] .avatar-img { background: linear-gradient(135deg, #1e1b4b, #0f172a); }

.avatar-img img { width: 88px; height: 88px; object-fit: contain; }

@keyframes avatarFloat {
    0%,100% { transform:translateY(0) rotateY(0deg); }
    50%      { transform:translateY(-10px) rotateY(6deg); }
}

.lib-name {
    font-family: 'Playfair Display', serif;
    font-size: clamp(22px, 5vw, 30px);
    font-weight: 900; text-align: center;
    background: var(--name-grad);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text; background-size: 200% 200%;
    animation: shimmer 4s ease-in-out infinite;
    line-height: 1.3; margin-bottom: 7px;
}
@keyframes shimmer {
    0%,100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}

.lib-tagline {
    font-size: clamp(10px, 3vw, 12px);
    color: var(--text-muted); text-align: center;
    font-weight: 400; letter-spacing: 3px;
    text-transform: uppercase; margin-bottom: 12px;
}

.verified-badge {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--verified-bg); border: 1px solid var(--verified-border);
    border-radius: 24px; padding: 5px 18px;
    font-size: 11px; color: var(--verified-text); font-weight: 600;
    backdrop-filter: blur(10px);
}

/* ========== STATS ========== */
.stats-row {
    display: grid; grid-template-columns: repeat(3,1fr);
    gap: clamp(8px,2vw,18px);
    margin-bottom: 26px;
    animation: fadeUp 0.8s 0.2s ease both;
}
@keyframes fadeUp {
    from { opacity:0; transform:translateY(18px); }
    to   { opacity:1; transform:translateY(0); }
}

.stat-card {
    background: var(--card); border: 1px solid var(--stat-border);
    border-radius: 18px; padding: 16px 8px; text-align: center;
    backdrop-filter: blur(12px); position: relative; overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
    cursor: default;
}
.stat-card::before {
    content:''; position:absolute; top:0; left:0; right:0; height:1px;
    background: linear-gradient(90deg, transparent, rgba(109,40,217,0.4), transparent);
}
.stat-card:hover { transform:translateY(-5px); box-shadow: var(--shadow-hover); border-color: rgba(109,40,217,0.3); }

.stat-num {
    font-family: 'Playfair Display', serif;
    font-size: clamp(20px,4vw,26px); font-weight: 700;
    color: var(--stat-num); display: block; margin-bottom: 4px;
}
.stat-label {
    font-size: clamp(9px,2.5vw,10px); color: var(--text-muted);
    font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase;
}
.section-title {
    font-size: 10px; font-weight: 700; letter-spacing: 2.5px;
    text-transform: uppercase; color: var(--section-title);
    margin-bottom: 12px; padding-left: 2px;
}

/* ========== SOCIAL BUTTONS WITH ANIMATED SVG ICONS ========== */
.social-grid {
    display: flex; flex-direction: column; gap: 9px;
    margin-bottom: 26px;
    animation: fadeUp 0.8s 0.3s ease both;
}

.social-btn {
    display: flex; align-items: center; gap: 14px;
    padding: 13px 16px; border-radius: 16px;
    text-decoration: none; font-size: 14px; font-weight: 500;
    color: var(--text-primary); background: var(--card);
    border: 1px solid var(--card-border);
    backdrop-filter: blur(12px);
    transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1);
}
.social-btn:hover {
    transform: translateX(7px);
    box-shadow: var(--shadow-hover);
    border-color: rgba(109,40,217,0.35);
}
.social-btn:hover .sicon-wrap { transform: rotate(8deg) scale(1.08); }
.social-btn:hover .sicon-wrap svg { animation: iconWiggle 0.5s ease; }

@keyframes iconWiggle {
    0%,100% { transform: rotate(0); }
    25% { transform: rotate(-10deg); }
    75% { transform: rotate(10deg); }
}

.sicon-wrap {
    width: 44px; height: 44px; border-radius: 13px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1);
}
.sicon-wrap svg { width: 22px; height: 22px; }

.si-tg  { background: linear-gradient(135deg, #0088cc, #00adef); }
.si-yt  { background: linear-gradient(135deg, #ff0000, #cc0000); }
.si-ig  { background: linear-gradient(135deg, #f09433, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888); }
.si-fb  { background: linear-gradient(135deg, #1877f2, #0c5ecf); }
.si-web { background: linear-gradient(135deg, #7c3aed, #a855f7); }
.si-tw  { background: linear-gradient(135deg, #000, #222); }

.social-text { flex: 1; }
.social-name { display: block; font-size: 14px; font-weight: 700; }
.social-desc { display: block; font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.social-arrow { font-size: 18px; color: var(--text-muted); transition: transform 0.3s; }
.social-btn:hover .social-arrow { transform: translateX(3px); }

/* ========== INFO CARDS ========== */
.info-cards {
    display: flex; flex-direction: column; gap: 9px;
    margin-bottom: 26px;
    animation: fadeUp 0.8s 0.35s ease both;
}

.info-card {
    background: var(--card); border: 1px solid var(--card-border);
    border-radius: 18px; padding: 18px;
    backdrop-filter: blur(12px); position: relative; overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s;
}
.info-card:hover { transform: translateX(5px); box-shadow: var(--shadow-hover); }
.info-card::before {
    content:''; position:absolute; left:0; top:0; bottom:0;
    width:3px; border-radius:3px 0 0 3px;
}
.ic-purple::before { background: linear-gradient(180deg, #7c3aed, #a855f7); }
.ic-cyan::before   { background: linear-gradient(180deg, #06b6d4, #0891b2); }
.ic-pink::before   { background: linear-gradient(180deg, #ec4899, #be185d); }

.ic-header {
    display: flex; align-items: center; gap: 12px; margin-bottom: 12px;
}
.ic-icon {
    width: 44px; height: 44px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    font-size: 21px;
}
.ic-icon-p { background: rgba(124,58,237,0.12); border: 1px solid rgba(124,58,237,0.22); }
.ic-icon-c { background: rgba(6,182,212,0.12);  border: 1px solid rgba(6,182,212,0.22); }
.ic-icon-k { background: rgba(236,72,153,0.12); border: 1px solid rgba(236,72,153,0.22); }

.ic-title    { font-size: 15px; font-weight: 700; color: var(--text-primary); }
.ic-subtitle { font-size: 11px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-top: 1px; }
.ic-content  { font-size: 13px; color: var(--text-secondary); line-height: 1.8; }

.info-tag {
    display: inline-block;
    background: var(--tag-bg); border: 1px solid var(--tag-border);
    border-radius: 20px; padding: 3px 11px;
    font-size: 11px; color: var(--tag-text); font-weight: 600;
    margin: 5px 3px 0 0;
}

/* ========== MAP ========== */
.map-container {
    border-radius: 20px; overflow: hidden; margin-bottom: 26px;
    border: 1px solid var(--card-border); box-shadow: var(--shadow);
    animation: fadeUp 0.8s 0.5s ease both;
}
.map-container iframe { display:block; width:100%; height:255px; border:none; }
@media (min-width: 768px) { .map-container iframe { height: 290px; } }

.map-btn {
    display: flex; align-items: center; gap: 14px;
    background: var(--map-btn-bg); border: 1px solid var(--map-btn-border);
    border-radius: 16px; padding: 15px 16px;
    color: var(--text-primary); text-decoration: none;
    font-size: 14px; font-weight: 500;
    transition: all 0.3s;
    margin-bottom: 26px;
    animation: fadeUp 0.8s 0.55s ease both;
}
.map-btn:hover { transform: translateY(-3px); box-shadow: 0 14px 40px rgba(6,182,212,0.22); }
.map-icon {
    width: 46px; height: 46px; border-radius: 12px;
    background: linear-gradient(135deg, #06b6d4, #7c3aed);
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; flex-shrink: 0;
    animation: mapPulse 2.5s ease-in-out infinite;
}
@keyframes mapPulse {
    0%,100% { box-shadow: 0 0 0 0 rgba(6,182,212,0.45); }
    50%      { box-shadow: 0 0 0 9px rgba(6,182,212,0); }
}
.map-text { flex:1; }
.map-title   { display:block; font-size:14px; font-weight:700; }
.map-address { display:block; font-size:11px; color:var(--text-muted); margin-top:3px; }

/* ========== SCHEDULE ========== */
.schedule-card {
    background: var(--schedule-bg); border: 1px solid var(--schedule-border);
    border-radius: 18px; padding: 16px;
    backdrop-filter: blur(12px);
    margin-bottom: 26px;
    animation: fadeUp 0.8s 0.65s ease both;
}
.schedule-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--schedule-divider);
    font-size: 13px;
}
.schedule-row:last-child { border-bottom: none; }
.schedule-day  { color: var(--text-secondary); font-weight: 500; }
.schedule-time { color: var(--stat-num); font-weight: 700; }
.schedule-off  { color: var(--schedule-closed); font-weight: 700; }

/* ========== FOOTER ========== */
.footer {
    text-align: center; font-size: 11px;
    color: var(--footer-text);
    letter-spacing: 1px; text-transform: uppercase;
    animation: fadeUp 0.8s 0.8s ease both;
    padding: 20px 0 10px;
}
.footer-dots {
    display: flex; justify-content: center; gap: 8px; margin-bottom: 10px;
}
.dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--accent);
    animation: dotPop 1.6s ease-in-out infinite;
}
.dot:nth-child(2) { animation-delay: 0.2s; }
.dot:nth-child(3) { animation-delay: 0.4s; }
@keyframes dotPop {
    0%,100% { transform:scale(1); opacity:0.4; }
    50%      { transform:scale(1.6); opacity:1; }
}
