/* 
================================================
KN STUDIO - Premium Portfolio Website
Author: Kushan Nethindu
Stack: HTML5, CSS3, Vanilla JS
Theme: Luxury Black + Gold #D4AF37 + White
Typography: Cinzel/Playfair Display (Headings), Poppins (Body), Montserrat (Buttons)
================================================
*/

/* ========== CSS VARIABLES ========== */
:root {
  --bg-primary: #050505;
  --bg-secondary: #0f0f0f;
  --bg-charcoal: #151515;
  --bg-card: #1a1a1a;
  --bg-glass: rgba(255,255,255,0.06);
  --bg-glass-strong: rgba(255,255,255,0.10);
  --border-glass: rgba(255,255,255,0.12);
  --text-primary: #ffffff;
  --text-secondary: #b8b8b8;
  --text-muted: #777777;
  --accent: #D4AF37;
  --accent-hover: #e6c150;
  --accent-glow: rgba(212,175,55,0.35);
  --gold-gradient: linear-gradient(135deg, #D4AF37 0%, #F9E27F 50%, #D4AF37 100%);
  --shadow-premium: 0 20px 60px rgba(0,0,0,0.6);
  --shadow-gold: 0 10px 40px rgba(212,175,55,0.25);
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 32px;
  --transition: all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
  --transition-fast: all 0.25s ease;
}

/* ========== RESET & BASE ========== */
* {
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
    font-size:16px;
}

body {
    width:100%;
    overflow-x:hidden;
}

.container {
    width:100%;
    max-width:1280px;
    margin:0 auto;
    padding:0 20px;
}
body {
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: 'Poppins', 'Noto Sans Sinhala', sans-serif;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing: antialiased;
}
img, video { display:block; max-width:100%; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
button, input, select, textarea { font-family: inherit; }

/* ========== UTILITIES ========== */
.container { width:100%; max-width:1280px; margin:0 auto; padding: 0 20px; }
.section-padding { padding:110px 0; }
.glass {
  background: var(--bg-glass);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border:1px solid var(--border-glass);
  border-radius: var(--radius-md);
}
.hover-lift { transition: var(--transition); }
.hover-lift:hover { transform: translateY(-8px); box-shadow: var(--shadow-premium), var(--shadow-gold); border-color: rgba(212,175,55,0.25); }

/* ========== LOADING SCREEN ========== */
.loading-screen {
  position:fixed; inset:0; z-index:10000;
  background: radial-gradient(ellipse at center, #151515 0%, #050505 70%);
  display:flex; align-items:center; justify-content:center;
  transition: opacity 0.8s ease, visibility 0.8s;
}
.loading-screen.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.loader-content { text-align:center; }
.loader-logo { width:80px; height:80px; margin:0 auto 24px; border-radius:16px; animation: pulse 1.5s infinite; }
.loader-bar { width:120px; height:2px; background: rgba(255,255,255,0.1); margin:0 auto; border-radius:2px; overflow:hidden; }
.loader-bar span { display:block; height:100%; width:0%; background: var(--gold-gradient); animation: loadingBar 2s ease-in-out forwards; }
.loader-text { margin-top:16px; letter-spacing:0.4em; font-family:'Cinzel', serif; font-size:0.9rem; color: var(--accent); }

/* ========== SCROLL PROGRESS ========== */
.scroll-progress {
  position:fixed; top:0; left:0; height:3px; width:0%;
  background: var(--gold-gradient);
  z-index:9999; transition: width 0.1s linear;
  box-shadow: 0 0 10px var(--accent-glow);
}

/* ========== CUSTOM CURSOR (Desktop) ========== */
.cursor-dot, .cursor-ring { position:fixed; pointer-events:none; z-index:10001; mix-blend-mode: difference; }
.cursor-dot { width:6px; height:6px; background: var(--accent); border-radius:50%; transform: translate(-50%,-50%); transition: transform 0.05s linear; }
.cursor-ring { width:36px; height:36px; border:1.5px solid rgba(212,175,55,0.6); border-radius:50%; transform: translate(-50%,-50%); transition: width 0.3s, height 0.3s, transform 0.15s ease-out; }
.cursor-ring.hover { width:60px; height:60px; background: rgba(212,175,55,0.08); border-color: var(--accent); }
@media (max-width:1024px) { .cursor-dot, .cursor-ring { display:none; } }
@media (max-width: 768px) {

    .container {
        padding: 0 16px;
    }

    .section-padding {
        padding: 70px 0;
    }

}
/* ========== LANGUAGE SCREEN ========== */
.language-screen {
  position:fixed; inset:0; z-index:9998;
  background: #050505;
  display:flex; align-items:center; justify-content:center;
  transition: opacity 0.8s, transform 0.8s cubic-bezier(0.77,0,0.175,1);
}
.language-screen.hidden { opacity:0; pointer-events:none; transform: scale(1.05); }
.lang-bg { position:absolute; inset:0; overflow:hidden; }
.lang-glow { position:absolute; width:800px; height:800px; top:50%; left:50%; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(212,175,55,0.15) 0%, transparent 70%); filter: blur(30px); animation: glowMove 6s infinite alternate; }
.lang-content { position:relative; text-align:center; padding:40px; max-width:480px; width:90%; }
.lang-logo { width:90px; height:90px; border-radius:18px; margin:0 auto 20px; box-shadow: var(--shadow-gold); }
.lang-title { font-family:'Cinzel', serif; font-size:2.8rem; letter-spacing:0.25em; margin-bottom:8px; }
.lang-subtitle { color: var(--text-secondary); margin-bottom:32px; font-size:0.95rem; }
.lang-buttons { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.lang-btn { padding:14px 28px; border-radius:50px; border:1px solid var(--border-glass); background: var(--bg-glass); color:#fff; font-family:'Montserrat', sans-serif; font-weight:600; cursor:pointer; transition: var(--transition); display:flex; align-items:center; gap:8px; }
.lang-btn:hover { background: var(--accent); color:#000; border-color: var(--accent); transform: translateY(-3px); box-shadow: var(--shadow-gold); }
.lang-tagline { margin-top:32px; font-family:'Playfair Display', serif; font-style:italic; color: var(--accent); letter-spacing:0.05em; }

/* ========== NAVBAR ========== */
.navbar {
  position:fixed; top:0; width:100%; z-index:1000;
  padding:18px 0; transition: var(--transition);
  background: transparent;
}
.navbar.scrolled {
  background: rgba(5,5,5,0.75);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border-bottom:1px solid rgba(255,255,255,0.06);
  padding:12px 0;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
}
.nav-container { display:flex; justify-content:space-between; align-items:center; width:92%; max-width:1280px; margin:0 auto; }
.nav-logo { display:flex; align-items:center; gap:12px; }
.nav-logo img { width:42px; height:42px; border-radius:10px; object-fit:cover; transition: var(--transition); }
.nav-logo span { font-family:'Cinzel', serif; font-weight:700; letter-spacing:0.2em; font-size:1.1rem; }
.nav-menu { display:flex; align-items:center; gap:28px; }
.nav-link { position:relative; font-size:0.9rem; font-weight:500; color: var(--text-primary); opacity:0.85; transition: var(--transition-fast); letter-spacing:0.02em; }
.nav-link::after { content:''; position:absolute; bottom:-6px; left:0; width:0%; height:1.5px; background: var(--accent); transition: var(--transition); }
.nav-link:hover, .nav-link.active { color: var(--accent); opacity:1; }
.nav-link:hover::after, .nav-link.active::after { width:100%; }
.nav-lang-switch { position:relative; }
.lang-toggle { background: var(--bg-glass); border:1px solid var(--border-glass); color:#fff; padding:8px 14px; border-radius:20px; cursor:pointer; font-size:0.85rem; display:flex; gap:6px; align-items:center; transition: var(--transition-fast); }
.lang-toggle:hover { border-color: var(--accent); color: var(--accent); }
.lang-dropdown { position:absolute; top:120%; right:0; background: #151515; border:1px solid var(--border-glass); border-radius:12px; padding:6px; min-width:140px; opacity:0; visibility:hidden; transform: translateY(10px); transition: var(--transition); }
.lang-dropdown.show { opacity:1; visibility:visible; transform: translateY(0); }
.lang-dropdown button { width:100%; text-align:left; background:none; border:none; color:#fff; padding:10px 12px; border-radius:8px; cursor:pointer; font-size:0.9rem; transition: var(--transition-fast); }
.lang-dropdown button:hover { background: var(--bg-glass-strong); color: var(--accent); }

/* Hamburger */
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; width:26px; }
.hamburger span { height:2px; background:#fff; border-radius:2px; transition: var(--transition); display:block; }
.hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.hamburger.active span:nth-child(2) { opacity:0; }
.hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

/* ========== HERO ========== */
.hero {
  position:relative; min-height:100vh; display:flex; align-items:center;
  overflow:hidden; background: radial-gradient(ellipse at 20% 30%, #1a1a1a 0%, #050505 55%);
}
.hero-overlay { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.7) 100%); }
#particles { position:absolute; inset:0; width:100%; height:100%; }
.hero-content { position:relative; z-index:2; max-width:860px; padding-top:80px; }
.hero-eyebrow { font-family:'Montserrat', sans-serif; font-size:0.8rem; letter-spacing:0.3em; text-transform:uppercase; color: var(--accent); margin-bottom:20px; }
.hero-heading { font-family:'Cinzel', serif; font-size: clamp(2.4rem, 6vw, 4.6rem); line-height:1.1; font-weight:700; margin-bottom:18px; background: linear-gradient(180deg, #fff 30%, #b8b8b8 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.hero-subheading { font-size: clamp(1rem, 2.2vw, 1.25rem); color: #e8e8e8; font-weight:500; margin-bottom:16px; line-height:1.5; }
.hero-desc { color: var(--text-secondary); font-size:0.98rem; max-width:680px; margin-bottom:36px; }
.hero-actions { display:flex; gap:16px; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; gap:10px; padding:14px 28px; border-radius:50px; font-family:'Montserrat', sans-serif; font-weight:600; font-size:0.9rem; letter-spacing:0.04em; cursor:pointer; border:none; transition: var(--transition); position:relative; overflow:hidden; }
.btn-primary { background: var(--gold-gradient); color:#000; box-shadow: var(--shadow-gold); }
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 15px 50px rgba(212,175,55,0.35); }
.btn-secondary { background: transparent; color:#fff; border:1px solid rgba(255,255,255,0.2); backdrop-filter: blur(10px); }
.btn-secondary:hover { border-color: var(--accent); color: var(--accent); background: rgba(212,175,55,0.08); }
.ripple::after { content:''; position:absolute; inset:0; background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 70%); opacity:0; transform: scale(0); transition: transform 0.6s, opacity 0.6s; }
.ripple:active::after { transform: scale(2); opacity:1; transition: 0s; }
.hero-scroll-indicator { position:absolute; bottom:32px; left:50%; transform:translateX(-50%); width:24px; height:42px; border:1.5px solid rgba(255,255,255,0.2); border-radius:20px; display:flex; justify-content:center; padding-top:8px; }
.hero-scroll-indicator span { width:3px; height:8px; background: var(--accent); border-radius:2px; animation: scrollBounce 1.8s infinite; }

/* ========== SECTION HEADERS ========== */
.section-header { text-align:center; max-width:720px; margin:0 auto 64px; }
.section-eyebrow { font-family:'Montserrat', sans-serif; font-size:0.78rem; letter-spacing:0.35em; text-transform:uppercase; color: var(--accent); display:block; margin-bottom:12px; }
.section-title { font-family:'Cinzel', serif; font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight:700; line-height:1.2; margin-bottom:12px; }
.section-desc { color: var(--text-secondary); font-size:0.98rem; }

/* ========== STATS ========== */
.stats { background: var(--bg-charcoal); border-top:1px solid rgba(255,255,255,0.04); border-bottom:1px solid rgba(255,255,255,0.04); }
.stats-grid { display:grid; grid-template-columns: repeat(4,1fr); gap:24px; }
.stat-card { padding:36px 24px; text-align:center; transition: var(--transition); }
.stat-card h3 { font-family:'Cinzel', serif; font-size:2.6rem; color: var(--accent); margin-bottom:6px; }
.stat-card p { color: var(--text-secondary); font-size:0.9rem; letter-spacing:0.04em; }

/* ========== SERVICES ========== */
.services { background: var(--bg-primary); }
.services-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap:28px; }
.service-card { padding:36px 28px; position:relative; overflow:hidden; }
.service-card::before { content:''; position:absolute; top:0; left:0; width:100%; height:1px; background: linear-gradient(90deg, transparent, var(--accent), transparent); opacity:0; transition: var(--transition); }
.service-card:hover::before { opacity:1; }
.service-icon { width:56px; height:56px; border-radius:14px; background: linear-gradient(135deg, rgba(212,175,55,0.15), rgba(212,175,55,0.03)); border:1px solid rgba(212,175,55,0.2); display:flex; align-items:center; justify-content:center; margin-bottom:20px; color: var(--accent); font-size:1.3rem; }
.service-card h3 { font-family:'Playfair Display', serif; font-size:1.25rem; margin-bottom:10px; }
.service-card p { color: var(--text-secondary); font-size:0.92rem; margin-bottom:18px; line-height:1.6; }
.service-link { font-size:0.85rem; font-weight:600; color: var(--accent); display:inline-flex; gap:6px; align-items:center; transition: var(--transition-fast); }
.service-link:hover { gap:10px; }

/* ========== PORTFOLIO ========== */
.portfolio { background: var(--bg-secondary); }
.portfolio-filters { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:48px; }
.filter-btn { padding:10px 20px; border-radius:30px; border:1px solid var(--border-glass); background: transparent; color: var(--text-secondary); font-family:'Montserrat', sans-serif; font-size:0.85rem; font-weight:500; cursor:pointer; transition: var(--transition-fast); }
.filter-btn.active, .filter-btn:hover { background: var(--accent); color:#000; border-color: var(--accent); box-shadow: var(--shadow-gold); }
.portfolio-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(320px,1fr)); gap:20px; }
.portfolio-item { position:relative; border-radius: var(--radius-md); overflow:hidden; aspect-ratio: 4/3; background: var(--bg-card); cursor:pointer; transform: translateZ(0); }
.portfolio-item img, .portfolio-item video { width:100%; height:100%; object-fit:cover; transition: transform 0.7s cubic-bezier(0.25,0.46,0.45,0.94); }
.portfolio-item:hover img, .portfolio-item:hover video { transform: scale(1.08); }
.portfolio-overlay { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,0.85) 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:22px; opacity:0; transition: var(--transition); }
.portfolio-item:hover .portfolio-overlay { opacity:1; }
.portfolio-overlay span { font-size:0.75rem; letter-spacing:0.15em; text-transform:uppercase; color: var(--accent); margin-bottom:4px; }
.portfolio-overlay h4 { font-family:'Playfair Display', serif; font-size:1.15rem; color:#fff; }
.portfolio-overlay i { position:absolute; top:50%; left:50%; transform: translate(-50%,-50%) scale(0.8); width:56px; height:56px; background: rgba(255,255,255,0.12); backdrop-filter: blur(10px); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.2rem; transition: var(--transition); }
.portfolio-item:hover .portfolio-overlay i { transform: translate(-50%,-50%) scale(1); }
.portfolio-item.hide { display:none; }

/* ========== PROCESS ========== */
.process { background: var(--bg-charcoal); position:relative; }
.process-timeline { position:relative; max-width:900px; margin:0 auto; display:flex; flex-direction:column; gap:48px; }
.timeline-line { position:absolute; left:38px; top:0; bottom:0; width:1px; background: linear-gradient(180deg, var(--accent), transparent 90%); opacity:0.4; }
.process-step { display:flex; gap:32px; align-items:flex-start; position:relative; }
.step-number { min-width:76px; height:76px; border-radius:50%; background: var(--bg-card); border:1px solid var(--border-glass); display:flex; align-items:center; justify-content:center; font-family:'Cinzel', serif; font-weight:700; color: var(--accent); font-size:1.1rem; box-shadow: 0 0 0 8px rgba(212,175,55,0.06); z-index:1; }
.step-card { flex:1; padding:28px; }
.step-card h3 { font-family:'Playfair Display', serif; font-size:1.2rem; margin-bottom:8px; }
.step-card p { color: var(--text-secondary); font-size:0.92rem; }

/* ========== ABOUT ========== */
.about { background: var(--bg-primary); }
.about-grid { display:grid; grid-template-columns: 0.9fr 1.2fr; gap:72px; align-items:center; }
.founder-img-wrapper {
  position: relative;
  border-radius: 50%;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background: var(--bg-card);
}

.founder-img-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.founder-glow { position:absolute; inset:-20%; background: radial-gradient(circle, rgba(212,175,55,0.18) 0%, transparent 70%); filter: blur(20px); pointer-events:none; }
.experience-badge { position:absolute; bottom:18px; right:18px; padding:14px 18px; display:flex; align-items:center; gap:10px; border-radius:14px; }
.experience-badge h4 { font-family:'Cinzel', serif; font-size:1.6rem; color: var(--accent); }
.experience-badge p { font-size:0.8rem; color:#fff; line-height:1.2; }
.about-content .section-title { text-align:left; }
.about-desc { color: var(--text-secondary); margin:20px 0 28px; font-size:0.98rem; line-height:1.8; }
.skills-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:32px; }
.skill-item { display:flex; gap:10px; align-items:center; font-size:0.9rem; color:#e0e0e0; }
.skill-item i { color: var(--accent); font-size:0.8rem; }
.mission-vision { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.mv-card { padding:20px; }
.mv-card i { color: var(--accent); font-size:1.2rem; margin-bottom:10px; }
.mv-card h4 { font-family:'Montserrat', sans-serif; font-size:0.95rem; margin-bottom:6px; }
.mv-card p { font-size:0.85rem; color: var(--text-secondary); }

/* ========== TESTIMONIALS ========== */
.testimonials { background: var(--bg-secondary); overflow:hidden; }
.testimonial-wrapper { position:relative; max-width:1000px; margin:0 auto; }
.testimonial-track { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:20px; }
.testimonial-track::-webkit-scrollbar { display:none; }
.testimonial-card { min-width:320px; max-width:360px; padding:28px; flex:0 0 auto; scroll-snap-align:start; }
.testi-header { display:flex; gap:14px; align-items:center; margin-bottom:16px; }
.testi-header img { width:48px; height:48px; border-radius:50%; object-fit:cover; }
.testi-header h4 { font-size:0.95rem; font-weight:600; }
.stars { color: var(--accent); font-size:0.75rem; display:flex; gap:2px; }
.testimonial-card p { font-size:0.92rem; color: var(--text-secondary); line-height:1.6; margin-bottom:12px; font-style:italic; }
.testi-date { font-size:0.75rem; color: var(--text-muted); }
.testi-controls { display:flex; gap:12px; justify-content:center; margin-top:12px; }
.testi-controls button { width:42px; height:42px; border-radius:50%; border:1px solid var(--border-glass); background: var(--bg-glass); color:#fff; cursor:pointer; transition: var(--transition-fast); }
.testi-controls button:hover { background: var(--accent); color:#000; border-color: var(--accent); }
.testi-form-wrapper { max-width:760px; margin:72px auto 0; padding:36px; }
.testi-form-wrapper h3 { font-family:'Playfair Display', serif; font-size:1.4rem; margin-bottom:24px; text-align:center; }
.form-row { display:flex; gap:16px; margin-bottom:16px; }
.form-row input, .form-row select, textarea, .testi-form input { flex:1; padding:14px 18px; border-radius:12px; border:1px solid var(--border-glass); background: rgba(255,255,255,0.04); color:#170000; outline:none; transition: var(--transition-fast); font-size:0.9rem; }
.form-row input:focus, .form-row select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(212,175,55,0.15); }
.form-row input,
textarea,

.form-row select {
  color: #fff;  
}

.form-row select option {
  background: rgba(255,255,255,0.06);
  color: #625c5c;
}
textarea { min-height:120px; resize:vertical; width:100%; margin-bottom:16px; }
.star-rating-input { display:flex; gap:16px; align-items:center; }
.stars-input { display:flex; gap:6px; }
.stars-input i { font-size:1.2rem; cursor:pointer; color: var(--text-muted); transition: var(--transition-fast); }
.stars-input i.active, .stars-input i:hover { color: var(--accent); }
.form-msg { margin-top:12px; font-size:0.85rem; }
.form-msg.success { color:#4ade80; } .form-msg.error { color:#f87171; }

/* ========== CONTACT ========== */
.contact { background: var(--bg-charcoal); }
.contact-grid { display:grid; grid-template-columns: 0.8fr 1.2fr; gap:32px; }
.contact-cards { display:flex; flex-direction:column; gap:16px; }
.contact-card { display:flex; gap:16px; align-items:center; padding:22px; cursor:pointer; transition: var(--transition); }
.contact-card i { width:48px; height:48px; border-radius:12px; background: rgba(212,175,55,0.12); color: var(--accent); display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.contact-card h4 { font-size:0.95rem; margin-bottom:2px; }
.contact-card p { font-size:0.85rem; color: var(--text-secondary); }
.contact-form-wrapper { padding:32px; }
.contact-form-wrapper input, .contact-form-wrapper select, .contact-form-wrapper textarea { background: rgba(255,255,255,0.05); }

/* ========== SOCIAL ========== */
.social { background: var(--bg-primary); }
.social-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); gap:16px; max-width:900px; margin:0 auto; }
.social-card { padding:22px; display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; transition: var(--transition); }
.social-card i { font-size:1.6rem; }
.social-card span { font-size:0.9rem; font-weight:500; }
.social-card:hover { color: var(--accent); }

/* ========== QR ========== */
.qr { background: var(--bg-secondary); }
.qr-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap:24px; max-width:900px; margin:0 auto; }
.qr-card { padding:20px; text-align:center; }
.qr-card img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:12px; margin-bottom:14px; background:#fff; padding:8px; }
.qr-card h4 { font-size:0.9rem; display:flex; gap:8px; justify-content:center; align-items:center; }

/* ========== FOOTER ========== */
.footer { background: #080808; border-top:1px solid rgba(255,255,255,0.06); padding:72px 0 32px; }
.footer-grid { display:grid; grid-template-columns:1.5fr 0.8fr 0.8fr 1fr; gap:40px; margin-bottom:48px; }
.footer-logo { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.footer-logo img { width:44px; height:44px; border-radius:10px; }
.footer-logo span { font-family:'Cinzel', serif; font-weight:700; letter-spacing:0.2em; }
.footer-brand p { color: var(--text-secondary); font-size:0.9rem; line-height:1.7; }
.footer-links h4, .footer-contact h4 { font-family:'Montserrat', sans-serif; font-size:0.95rem; margin-bottom:16px; letter-spacing:0.05em; }
.footer-links ul { display:flex; flex-direction:column; gap:10px; }
.footer-links a { color: var(--text-secondary); font-size:0.9rem; transition: var(--transition-fast); }
.footer-links a:hover { color: var(--accent); padding-left:4px; }
.footer-contact p { color: var(--text-secondary); font-size:0.9rem; margin-bottom:8px; display:flex; gap:8px; align-items:center; }
.footer-social { display:flex; gap:12px; margin-top:16px; }
.footer-social a { width:36px; height:36px; border-radius:50%; background: var(--bg-glass); border:1px solid var(--border-glass); display:flex; align-items:center; justify-content:center; transition: var(--transition-fast); }
.footer-social a:hover { background: var(--accent); color:#000; border-color: var(--accent); }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.06); padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.footer-bottom p { color: var(--text-muted); font-size:0.8rem; }

/* ========== MODALS ========== */
.modal, .lightbox { position:fixed; inset:0; z-index:2000; background: rgba(0,0,0,0.85); backdrop-filter: blur(20px); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition: var(--transition); padding:20px; }
.modal.show, .lightbox.show { opacity:1; visibility:visible; }
.modal-content { padding:32px; max-width:400px; width:100%; text-align:center; position:relative; }
.modal-close, .lightbox-close { position:absolute; top:16px; right:16px; width:40px; height:40px; border-radius:50%; border:1px solid var(--border-glass); background: var(--bg-glass); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; transition: var(--transition-fast); }
.modal-close:hover, .lightbox-close:hover { background: var(--accent); color:#000; }
.phone-options { display:flex; flex-direction:column; gap:12px; margin-top:20px; }

/* Lightbox */
.lightbox-content { position:relative; max-width:92vw; max-height:86vh; display:flex; flex-direction:column; align-items:center; }
.lightbox-content img, .lightbox-content video { max-width:100%; max-height:75vh; border-radius:16px; object-fit:contain; display:none; }
.lightbox-content img.active, .lightbox-content video.active { display:block; }
.lightbox-caption { margin-top:16px; text-align:center; }
.lightbox-caption h4 { font-family:'Playfair Display', serif; font-size:1.2rem; }
.lightbox-caption span { color: var(--accent); font-size:0.8rem; letter-spacing:0.15em; text-transform:uppercase; }
.lightbox-nav { position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%; border:1px solid var(--border-glass); background: var(--bg-glass); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; transition: var(--transition-fast); }
.lightbox-nav.prev { left:20px; } .lightbox-nav.next { right:20px; }
.lightbox-nav:hover { background: var(--accent); color:#000; }

/* Back to Top */
.back-to-top { position:fixed; bottom:32px; right:32px; width:48px; height:48px; border-radius:50%; background: var(--gold-gradient); color:#000; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transform: translateY(20px); transition: var(--transition); z-index:999; box-shadow: var(--shadow-gold); }
.back-to-top.show { opacity:1; visibility:visible; transform: translateY(0); }
.back-to-top:hover { transform: translateY(-4px); }

/* ========== ANIMATIONS ========== */
.fade-up { opacity:0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.25,0.46,0.45,0.94); }
.fade-up.visible { opacity:1; transform: translateY(0); }
.fade-right { opacity:0; transform: translateX(-40px); transition: opacity 0.8s ease, transform 0.8s; }
.fade-right.visible { opacity:1; transform: translateX(0); }
.fade-left { opacity:0; transform: translateX(40px); transition: opacity 0.8s ease, transform 0.8s; }
.fade-left.visible { opacity:1; transform: translateX(0); }
.delay-1 { transition-delay:0.15s; } .delay-2 { transition-delay:0.3s; } .delay-3 { transition-delay:0.45s; } .delay-4 { transition-delay:0.6s; }

@keyframes pulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.05); } }
@keyframes loadingBar { 0% { width:0%; } 100% { width:100%; } }
@keyframes glowMove { 0% { transform: translate(-50%,-50%) scale(1); } 100% { transform: translate(-50%,-45%) scale(1.15); } }
@keyframes scrollBounce { 0%,100% { transform: translateY(0); opacity:0.6; } 50% { transform: translateY(8px); opacity:1; } }

/* ========== RESPONSIVE ========== */
@media (max-width:1024px) {
  .stats-grid { grid-template-columns: repeat(2,1fr); }
  .about-grid, .contact-grid, .footer-grid { grid-template-columns:1fr; }
  .process-timeline { padding-left:10px; }
  .mission-vision { grid-template-columns:1fr; }
}
@media (max-width:768px) {
  .nav-menu { position:fixed; top:0; right:-100%; width:78%; max-width:320px; height:100vh; background: rgba(8,8,8,0.98); backdrop-filter: blur(24px); border-left:1px solid rgba(255,255,255,0.06); flex-direction:column; align-items:flex-start; padding:90px 32px 32px; gap:20px; transition: right 0.45s cubic-bezier(0.77,0,0.175,1); }
  .nav-menu.active { right:0; }
  .hamburger { display:flex; z-index:1001; }
  .section-padding { padding:80px 0; }
  .hero-actions { flex-direction:column; }
  .btn { width:100%; justify-content:center; }
  .form-row { flex-direction:column; }
  .portfolio-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; text-align:center; }
  .footer-grid { gap:28px; }
  .lightbox-nav.prev { left:8px; } .lightbox-nav.next { right:8px; }
}
@media (max-width:480px) {
  .container { width:90%; }
  .hero-heading { font-size:2rem; }
  .stats-grid { grid-template-columns:1fr 1fr; gap:14px; }
  .stat-card { padding:24px 16px; }
  .stat-card h3 { font-size:2rem; }
  .skills-grid { grid-template-columns:1fr; }
}
@media (min-width:1920px) {
  html { font-size:18px; }
  .container { max-width:1600px; }
}
@media (min-width:2560px) {
  html { font-size:20px; }
  .container { max-width:2000px; }
}

/* Accessibility: focus visible */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

/* Optimized image loading placeholder */
img[loading="lazy"] { background: linear-gradient(110deg, #1a1a1a 8%, #222 18%, #1a1a1a 33%); background-size:200% 100%; animation: shimmer 1.5s linear infinite; }
@keyframes shimmer { to { background-position-x: -200%; } }
