/* ===== DESIGN TOKENS ===== */
:root {
    --bg: #0a0a0a;
    --bg-card: #131313;
    --bg-card-hover: #1a1a1a;
    --surface: #161616;
    --gold: #c9a86c;
    --gold-light: #e8d5a8;
    --gold-dark: #9a7b4f;
    --text: #f5f0e8;
    --text-muted: #8a8578;
    --text-dim: #5a574f;
    --white: #ffffff;
    --border: rgba(201,168,108,.12);
    --border-hover: rgba(201,168,108,.3);
    --radius: 16px;
    --radius-sm: 8px;
    --transition: .4s cubic-bezier(.25,.46,.45,.94);
    --font-heading: 'Playfair Display', Georgia, serif;
    --font-body: 'Inter', -apple-system, sans-serif;
}

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

html {
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: var(--gold-dark) var(--bg);
}
::-webkit-scrollbar { width:6px }
::-webkit-scrollbar-track { background:var(--bg) }
::-webkit-scrollbar-thumb { background:var(--gold-dark); border-radius:3px }

body {
    font-family: var(--font-body);
    background: var(--bg);
    color: var(--text);
    line-height: 1.7;
    overflow-x: hidden;
    cursor: none;
}

a { color:inherit; text-decoration:none }
img { max-width:100%; display:block }
button { cursor:none; border:none; background:none; font-family:inherit }
input,textarea,select { font-family:inherit }

.container { max-width:1280px; margin:0 auto; padding:0 24px }
.section { padding:120px 0 }
.center { text-align:center }

/* ===== PRELOADER ===== */
#preloader {
    position:fixed; inset:0; z-index:9999;
    background:var(--bg);
    display:flex; align-items:center; justify-content:center;
    transition: opacity .6s, visibility .6s;
}
#preloader.loaded { opacity:0; visibility:hidden; pointer-events:none }
.loader-inner { text-align:center }
.loader-line {
    width:60px; height:2px; background:var(--border);
    margin:0 auto 20px; position:relative; overflow:hidden; border-radius:2px;
}
.loader-line::after {
    content:''; position:absolute; left:-100%; width:100%; height:100%;
    background:var(--gold); animation:loaderSlide 1.2s ease infinite;
}
@keyframes loaderSlide { to { left:100% } }
.loader-text {
    font-family:var(--font-heading); font-size:1.1rem;
    letter-spacing:.3em; color:var(--gold);
}

/* ===== CUSTOM CURSOR ===== */
.cursor {
    width:8px; height:8px; border-radius:50%;
    background:var(--gold); position:fixed;
    pointer-events:none; z-index:10000;
    transform:translate(-50%,-50%);
    transition: transform .1s, opacity .3s;
}
.cursor-follower {
    width:36px; height:36px; border-radius:50%;
    border:1px solid var(--gold); position:fixed;
    pointer-events:none; z-index:9999;
    transform:translate(-50%,-50%);
    transition: transform .25s ease-out, width .3s, height .3s, border-color .3s;
}
.cursor.hover { transform:translate(-50%,-50%) scale(0) }
.cursor-follower.hover {
    width:60px; height:60px; border-color:var(--gold-light);
    background:rgba(201,168,108,.08);
}

/* ===== NAVIGATION ===== */
#navbar {
    position:fixed; top:0; left:0; right:0; z-index:1000;
    padding:20px 0; transition:var(--transition);
}
#navbar.scrolled {
    background:rgba(10,10,10,.92);
    backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    padding:12px 0; border-bottom:1px solid var(--border);
}
.nav-container {
    max-width:1280px; margin:0 auto; padding:0 24px;
    display:flex; align-items:center; justify-content:space-between;
}
.logo { display:flex; align-items:baseline; gap:0; font-family:var(--font-heading) }
.logo-a {
    font-size:2rem; font-weight:700; color:var(--gold);
    line-height:1;
}
.logo-text { font-size:1.15rem; font-weight:500; color:var(--text); letter-spacing:.02em }
.nav-links { display:flex; gap:32px }
.nav-link {
    font-size:.85rem; letter-spacing:.08em; text-transform:uppercase;
    color:var(--text-muted); transition:var(--transition); position:relative; font-weight:400;
}
.nav-link::after {
    content:''; position:absolute; bottom:-4px; left:0;
    width:0; height:1px; background:var(--gold); transition:var(--transition);
}
.nav-link:hover, .nav-link.active { color:var(--gold) }
.nav-link:hover::after, .nav-link.active::after { width:100% }
.nav-toggle {
    display:none; flex-direction:column; gap:5px; padding:4px;
}
.nav-toggle span {
    width:24px; height:2px; background:var(--text);
    transition:var(--transition); border-radius:2px;
}
.nav-toggle.active span:nth-child(1) { transform:rotate(45deg) translateY(7px) }
.nav-toggle.active span:nth-child(2) { opacity:0 }
.nav-toggle.active span:nth-child(3) { transform:rotate(-45deg) translateY(-7px) }

/* ===== HERO ===== */
.hero {
    position:relative; min-height:100vh; display:flex;
    align-items:center; overflow:hidden;
}
.hero-bg { position:absolute; inset:0 }
.hero-img {
    width:100%; height:100%; object-fit:cover;
    transform:scale(1.08); transition:transform 8s ease-out;
}
.hero.in-view .hero-img { transform:scale(1) }
.hero-overlay {
    position:absolute; inset:0;
    background:linear-gradient(135deg,rgba(10,10,10,.88) 0%,rgba(10,10,10,.55) 50%,rgba(10,10,10,.75) 100%);
}
.hero-content {
    position:relative; z-index:2; padding:0 24px;
    max-width:1280px; margin:0 auto; width:100%;
}
.hero-tag {
    font-size:.8rem; letter-spacing:.35em; color:var(--gold);
    margin-bottom:24px; font-weight:500;
}
.hero-title {
    font-family:var(--font-heading); font-size:clamp(3rem,8vw,6.5rem);
    font-weight:600; line-height:1.08; margin-bottom:28px;
}
.hero-title span { display:block }
.hero-title .italic { font-style:italic; color:var(--gold-light) }
.hero-desc {
    font-size:1.1rem; color:var(--text-muted); max-width:520px;
    line-height:1.8; margin-bottom:40px;
}
.hero-btns { display:flex; gap:16px; flex-wrap:wrap }

/* Buttons */
.btn {
    display:inline-flex; align-items:center; gap:8px;
    padding:16px 36px; border-radius:60px; font-size:.9rem;
    font-weight:500; letter-spacing:.06em; text-transform:uppercase;
    transition:var(--transition); position:relative; overflow:hidden;
}
.btn-primary {
    background:var(--gold); color:var(--bg);
}
.btn-primary:hover {
    background:var(--gold-light); transform:translateY(-2px);
    box-shadow:0 12px 40px rgba(201,168,108,.25);
}
.btn-outline {
    border:1px solid var(--border-hover); color:var(--text);
}
.btn-outline:hover {
    border-color:var(--gold); color:var(--gold);
    background:rgba(201,168,108,.06);
}
.btn-lg { padding:20px 48px; font-size:.95rem }
.btn-full { width:100%; justify-content:center }

/* Hero Scroll Indicator */
.hero-scroll {
    position:absolute; bottom:40px; left:50%; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:8px; z-index:2;
}
.scroll-line {
    width:1px; height:60px; background:var(--border); position:relative; overflow:hidden;
}
.scroll-line::after {
    content:''; position:absolute; top:-100%; width:100%; height:50%;
    background:var(--gold); animation:scrollDown 2s ease infinite;
}
@keyframes scrollDown { to { top:200% } }
.hero-scroll span { font-size:.7rem; letter-spacing:.2em; color:var(--text-dim); text-transform:uppercase }

/* Hero Stats */
.hero-stats {
    position:absolute; bottom:40px; right:40px; z-index:2;
    display:flex; gap:40px;
}
.stat { text-align:center }
.stat-num {
    font-family:var(--font-heading); font-size:2.2rem; font-weight:600; color:var(--gold);
}
.stat-plus { font-family:var(--font-heading); font-size:1.5rem; color:var(--gold) }
.stat-label { display:block; font-size:.7rem; letter-spacing:.15em; color:var(--text-dim); text-transform:uppercase; margin-top:2px }

/* ===== SECTION COMMON ===== */
.section-tag {
    font-size:.75rem; letter-spacing:.3em; color:var(--gold);
    text-transform:uppercase; font-weight:500; display:block; margin-bottom:16px;
}
.section-title {
    font-family:var(--font-heading); font-size:clamp(2rem,5vw,3.5rem);
    font-weight:600; line-height:1.15; margin-bottom:20px;
}
.section-title em { font-style:italic; color:var(--gold-light) }
.section-desc { color:var(--text-muted); max-width:560px; margin:0 auto; font-size:1.05rem }

/* ===== REVEAL ANIMATIONS ===== */
.reveal-up {
    opacity:0; transform:translateY(60px);
    transition: opacity .8s cubic-bezier(.25,.46,.45,.94), transform .8s cubic-bezier(.25,.46,.45,.94);
    transition-delay:var(--delay,0s);
}
.reveal-up.revealed { opacity:1; transform:translateY(0) }
.reveal-left {
    opacity:0; transform:translateX(-60px);
    transition: opacity .8s cubic-bezier(.25,.46,.45,.94), transform .8s cubic-bezier(.25,.46,.45,.94);
}
.reveal-left.revealed { opacity:1; transform:translateX(0) }

/* ===== ABOUT ===== */
.about-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center;
}
.about-img-wrap { position:relative; border-radius:var(--radius); overflow:hidden }
.about-img {
    width:100%; height:600px; object-fit:cover;
    transition:transform .6s ease;
}
.about-img-wrap:hover .about-img { transform:scale(1.05) }
.about-badge {
    position:absolute; bottom:24px; right:24px;
    background:rgba(10,10,10,.85); backdrop-filter:blur(12px);
    padding:20px 28px; border-radius:var(--radius-sm);
    border:1px solid var(--border); text-align:center;
}
.badge-num { display:block; font-family:var(--font-heading); font-size:2.4rem; font-weight:700; color:var(--gold) }
.badge-text { font-size:.75rem; color:var(--text-muted); letter-spacing:.1em; text-transform:uppercase; line-height:1.5 }
.about-text { color:var(--text-muted); margin-bottom:20px; font-size:1.02rem }
.about-features { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:32px }
.feature {
    display:flex; gap:14px; align-items:flex-start;
    padding:16px; border-radius:var(--radius-sm);
    border:1px solid var(--border); transition:var(--transition);
}
.feature:hover { border-color:var(--border-hover); background:var(--bg-card) }
.feature-icon { color:var(--gold); font-size:1.2rem; margin-top:2px }
.feature strong { display:block; font-size:.9rem; margin-bottom:4px }
.feature p { font-size:.8rem; color:var(--text-dim); margin:0; line-height:1.4 }

/* ===== SERVICES ===== */
.services { background:var(--surface) }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:60px }
.service-card {
    padding:40px 32px; border-radius:var(--radius);
    border:1px solid var(--border); background:var(--bg-card);
    transition:var(--transition); position:relative; overflow:hidden;
}
.service-card::before {
    content:''; position:absolute; top:0; left:0; right:0;
    height:3px; background:linear-gradient(90deg,var(--gold),var(--gold-light));
    transform:scaleX(0); transition:var(--transition); transform-origin:left;
}
.service-card:hover { border-color:var(--border-hover); transform:translateY(-4px); background:var(--bg-card-hover) }
.service-card:hover::before { transform:scaleX(1) }
.service-num {
    font-family:var(--font-heading); font-size:3rem; font-weight:700;
    color:rgba(201,168,108,.08); position:absolute; top:16px; right:20px;
}
.service-icon { font-size:1.8rem; color:var(--gold); margin-bottom:20px }
.service-card h3 {
    font-family:var(--font-heading); font-size:1.3rem;
    font-weight:600; margin-bottom:12px;
}
.service-card p { color:var(--text-muted); font-size:.92rem; margin-bottom:20px; line-height:1.7 }
.service-link {
    font-size:.82rem; letter-spacing:.08em; color:var(--gold);
    text-transform:uppercase; transition:var(--transition);
}
.service-link:hover { letter-spacing:.14em }

/* ===== PORTFOLIO ===== */
.portfolio-filter {
    display:flex; justify-content:center; gap:8px; margin:40px 0;
}
.filter-btn {
    padding:10px 24px; border-radius:60px; font-size:.82rem;
    letter-spacing:.06em; color:var(--text-muted); border:1px solid var(--border);
    transition:var(--transition); text-transform:uppercase;
}
.filter-btn:hover, .filter-btn.active {
    color:var(--bg); background:var(--gold); border-color:var(--gold);
}
.portfolio-grid {
    display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:20px;
}
.portfolio-item {
    position:relative; border-radius:var(--radius); overflow:hidden;
    aspect-ratio:4/3; cursor:none; transition: var(--transition);
}
.portfolio-item img {
    width:100%; height:100%; object-fit:cover;
    transition:transform .6s ease;
}
.portfolio-item:hover img { transform:scale(1.08) }
.portfolio-overlay {
    position:absolute; inset:0; padding:32px;
    display:flex; flex-direction:column; justify-content:flex-end;
    background:linear-gradient(0deg,rgba(10,10,10,.85) 0%,transparent 60%);
    opacity:0; transition:var(--transition);
}
.portfolio-item:hover .portfolio-overlay { opacity:1 }
.portfolio-cat {
    font-size:.7rem; letter-spacing:.2em; color:var(--gold);
    text-transform:uppercase; margin-bottom:8px;
}
.portfolio-overlay h3 { font-family:var(--font-heading); font-size:1.3rem; font-weight:600; margin-bottom:4px }
.portfolio-overlay p { font-size:.85rem; color:var(--text-muted) }
.portfolio-item.hidden { display:none }

/* ===== PROCESS ===== */
.process { background:var(--surface) }
.process-timeline {
    display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin-top:60px; position:relative;
}
.process-timeline::before {
    content:''; position:absolute; top:40px; left:10%; right:10%;
    height:1px; background:var(--border);
}
.process-step {
    text-align:center; padding:0 16px; position:relative;
}
.step-number {
    width:80px; height:80px; border-radius:50%; display:flex;
    align-items:center; justify-content:center; margin:0 auto 24px;
    font-family:var(--font-heading); font-size:1.5rem; font-weight:700;
    color:var(--gold); border:2px solid var(--border);
    background:var(--surface); position:relative; z-index:1;
    transition:var(--transition);
}
.process-step:hover .step-number {
    border-color:var(--gold); background:rgba(201,168,108,.08);
    transform:scale(1.1);
}
.process-step h3 {
    font-family:var(--font-heading); font-size:1.2rem; margin-bottom:12px;
}
.process-step p { color:var(--text-muted); font-size:.9rem; line-height:1.7 }

/* ===== TESTIMONIALS ===== */
.testimonial-slider { max-width:800px; margin:60px auto 0; position:relative; overflow:hidden }
.testimonial-track { display:flex; transition:transform .6s cubic-bezier(.25,.46,.45,.94) }
.testimonial-card {
    min-width:100%; padding:48px; border-radius:var(--radius);
    border:1px solid var(--border); background:var(--bg-card); text-align:center;
}
.testimonial-quote {
    font-family:var(--font-heading); font-size:4rem; color:var(--gold);
    line-height:1; margin-bottom:8px;
}
.testimonial-card p { font-size:1.1rem; color:var(--text-muted); line-height:1.9; margin-bottom:28px; font-style:italic }
.testimonial-author { display:flex; align-items:center; justify-content:center; gap:16px }
.author-info { text-align:left }
.author-info strong { display:block; font-size:1rem }
.author-info span { font-size:.82rem; color:var(--text-dim) }
.testimonial-stars { color:var(--gold); font-size:1rem; letter-spacing:2px }
.testimonial-nav {
    display:flex; align-items:center; justify-content:center; gap:20px; margin-top:32px;
}
.testi-btn {
    width:44px; height:44px; border-radius:50%; border:1px solid var(--border);
    color:var(--text); font-size:1.3rem; display:flex; align-items:center;
    justify-content:center; transition:var(--transition);
}
.testi-btn:hover { border-color:var(--gold); color:var(--gold) }
.testi-dots { display:flex; gap:8px }
.testi-dot {
    width:8px; height:8px; border-radius:50%; background:var(--border);
    transition:var(--transition); cursor:pointer;
}
.testi-dot.active { background:var(--gold); width:24px; border-radius:4px }

/* ===== CTA ===== */
.cta {
    background: linear-gradient(135deg,rgba(201,168,108,.1),rgba(201,168,108,.03));
    border-top:1px solid var(--border); border-bottom:1px solid var(--border);
}
.cta-content { text-align:center; max-width:640px; margin:0 auto }
.cta-content h2 {
    font-family:var(--font-heading); font-size:clamp(2rem,5vw,3.2rem);
    font-weight:600; margin-bottom:20px; line-height:1.15;
}
.cta-content em { font-style:italic; color:var(--gold-light) }
.cta-content p { color:var(--text-muted); font-size:1.1rem; margin-bottom:36px }

/* ===== CONTACT ===== */
.contact { background:var(--surface) }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start }
.contact-info p { color:var(--text-muted); margin-bottom:36px; font-size:1.02rem }
.contact-details { display:flex; flex-direction:column; gap:24px; margin-bottom:36px }
.contact-item { display:flex; gap:16px; align-items:flex-start }
.contact-icon { font-size:1.4rem; margin-top:2px }
.contact-item strong { display:block; margin-bottom:4px; font-size:.95rem }
.contact-item p { color:var(--text-muted); font-size:.9rem; margin:0; line-height:1.5 }
.social-links { display:flex; gap:12px }
.social-link {
    width:44px; height:44px; border-radius:50%; border:1px solid var(--border);
    display:flex; align-items:center; justify-content:center;
    font-size:.75rem; font-weight:600; letter-spacing:.05em;
    transition:var(--transition);
}
.social-link:hover { border-color:var(--gold); color:var(--gold); background:rgba(201,168,108,.06) }

/* Contact Form */
.contact-form {
    padding:40px; border-radius:var(--radius);
    border:1px solid var(--border); background:var(--bg-card);
}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px }
.form-group { position:relative; margin-bottom:20px }
.form-group input,
.form-group textarea,
.form-group select {
    width:100%; padding:16px 20px; background:var(--surface);
    border:1px solid var(--border); border-radius:var(--radius-sm);
    color:var(--text); font-size:.95rem; transition:var(--transition);
    outline:none;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus { border-color:var(--gold) }
.form-group label {
    position:absolute; top:16px; left:20px; font-size:.9rem;
    color:var(--text-dim); transition:var(--transition); pointer-events:none;
}
.form-group input:focus ~ label,
.form-group input:not(:placeholder-shown) ~ label,
.form-group textarea:focus ~ label,
.form-group textarea:not(:placeholder-shown) ~ label {
    top:-10px; left:12px; font-size:.72rem; color:var(--gold);
    background:var(--bg-card); padding:0 8px;
}
.form-group select { cursor:pointer; appearance:none }
.form-group select option { background:var(--bg-card) }
.contact-form .btn { margin-top:8px }

/* ===== FOOTER ===== */
.footer { padding:80px 0 0; border-top:1px solid var(--border) }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; margin-bottom:60px }
.footer-brand p { color:var(--text-muted); font-size:.9rem; margin-top:16px; line-height:1.7 }
.footer-col h4 {
    font-family:var(--font-heading); font-size:1rem;
    margin-bottom:20px; color:var(--text);
}
.footer-col a {
    display:block; color:var(--text-muted); font-size:.88rem;
    margin-bottom:12px; transition:var(--transition);
}
.footer-col a:hover { color:var(--gold); padding-left:4px }
.footer-bottom {
    display:flex; justify-content:space-between; padding:24px 0;
    border-top:1px solid var(--border);
}
.footer-bottom p { font-size:.82rem; color:var(--text-dim) }

/* ===== RESPONSIVE ===== */
@media (max-width:1024px) {
    .about-grid, .contact-grid { grid-template-columns:1fr; gap:48px }
    .about-img { height:400px }
    .services-grid { grid-template-columns:repeat(2,1fr) }
    .process-timeline { grid-template-columns:repeat(2,1fr) }
    .process-timeline::before { display:none }
    .footer-grid { grid-template-columns:1fr 1fr }
    .hero-stats { display:none }
}
@media (max-width:768px) {
    body { cursor:auto }
    .cursor, .cursor-follower { display:none }
    .section { padding:80px 0 }
    .nav-links {
        position:fixed; top:0; right:-100%; width:280px; height:100vh;
        background:rgba(10,10,10,.97); backdrop-filter:blur(20px);
        flex-direction:column; padding:100px 40px; gap:24px;
        transition:var(--transition);
    }
    .nav-links.open { right:0 }
    .nav-toggle { display:flex }
    .services-grid { grid-template-columns:1fr }
    .portfolio-grid { grid-template-columns:repeat(2,1fr) }
    .portfolio-filter { flex-wrap:wrap }
    .form-row { grid-template-columns:1fr }
    .footer-grid { grid-template-columns:1fr; gap:32px }
    .footer-bottom { flex-direction:column; gap:8px; text-align:center }
    .hero-title { font-size:clamp(2.4rem,8vw,4rem) }
}
@media (max-width:480px) {
    .portfolio-grid { grid-template-columns:1fr }
    .process-timeline { grid-template-columns:1fr }
    .about-features { grid-template-columns:1fr }
    .contact-form { padding:24px }
    .testimonial-card { padding:28px }
}
