:root {
  --primary: #111111;
  --accent: #D4AF37;
  --accent-rgb: 212,175,55;
  --secondary: #6B7280;
  --bg: #F7F7F5;
  --text: #1A1A1A;
  --text-rgb: 26,26,26;
  --bg-dark: #0E0E0C;
  --bg-mid: #EDEDE9;
  --bg-card: #FFFFFF;
  --border: rgba(26,26,26,0.1);
  --border-light: rgba(212,175,55,0.2);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased;}
body::-webkit-scrollbar{width:6px;}
body::-webkit-scrollbar-track{background:var(--bg);}
body::-webkit-scrollbar-thumb{background:var(--accent);border-radius:3px;}

@keyframes fadeUp{from{opacity:0;transform:translateY(32px);}to{opacity:1;transform:translateY(0);}}
@keyframes float{0%,100%{transform:translate(0,0) scale(1);}33%{transform:translate(18px,-28px) scale(1.08);}66%{transform:translate(-12px,18px) scale(0.94);}}
@keyframes drawSig{to{stroke-dashoffset:0;}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.5;transform:scale(1.5);}}
@keyframes marqueeScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@keyframes scaleIn{from{opacity:0;transform:scale(0.92);}to{opacity:1;transform:scale(1);}}

.container{max-width:1280px;margin:0 auto;padding:0 48px;}
.accent-bar{height:3px;background:linear-gradient(90deg,var(--primary),var(--accent),var(--secondary));}
.section-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.section-eyebrow .line{width:28px;height:2px;background:var(--accent);}
.section-eyebrow span{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--secondary);}
.gradient-text{background:linear-gradient(135deg,var(--accent),#e8c87a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.btn-primary{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--accent),#b8954f);color:var(--primary);font-family:'DM Sans',sans-serif;font-weight:700;font-size:15px;padding:15px 32px;border-radius:4px;letter-spacing:0.3px;text-decoration:none;box-shadow:0 8px 32px rgba(var(--accent-rgb),0.35);transition:transform .25s ease,box-shadow .25s ease;border:none;cursor:pointer;}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(var(--accent-rgb),0.5);}
.btn-outline{display:inline-flex;align-items:center;gap:10px;background:transparent;color:var(--bg);font-family:'DM Sans',sans-serif;font-weight:600;font-size:15px;padding:14px 32px;border-radius:4px;letter-spacing:0.3px;text-decoration:none;border:1.5px solid rgba(247,247,245,0.35);transition:border-color .25s ease,background .25s ease;cursor:pointer;}
.btn-outline:hover{border-color:var(--accent);background:rgba(var(--accent-rgb),0.1);}
nav{display:flex;align-items:center;justify-content:space-between;height:84px;}
.nav-links{display:flex;align-items:center;gap:36px;list-style:none;}
.nav-links a{font-size:13px;font-weight:500;color:rgba(247,247,245,0.7);text-decoration:none;letter-spacing:0.06em;text-transform:uppercase;transition:color .2s ease;position:relative;}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transition:transform .25s ease;}
.nav-links a:hover,.nav-links a.active{color:var(--accent);}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;}
.nav-hamburger span{display:block;width:24px;height:2px;background:var(--bg);transition:transform .3s;}

/* HERO */
.about-hero{position:relative;min-height:80vh;background:var(--bg-dark);display:grid;grid-template-columns:1.1fr 1fr;align-items:stretch;overflow:hidden;}
.about-hero::before{content:'ABOUT';position:absolute;left:-20px;top:50%;transform:translateY(-50%);font-family:'Playfair Display',serif;font-size:220px;font-weight:900;color:transparent;-webkit-text-stroke:1px rgba(212,175,55,0.06);pointer-events:none;white-space:nowrap;z-index:0;}
.about-hero-left{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:160px 64px 100px max(48px,calc((100vw - 1280px)/2 + 48px));}
.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:7px 18px;border-radius:999px;background:rgba(212,175,55,0.12);border:1px solid rgba(212,175,55,0.35);margin-bottom:28px;width:fit-content;}
.hero-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 1.8s ease-in-out infinite;}
.hero-badge span{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);}
.about-hero h1{font-family:'Playfair Display',serif;font-size:clamp(52px,5.5vw,88px);font-weight:900;line-height:0.96;color:var(--bg);margin-bottom:24px;}
.about-hero-sub{font-size:17px;line-height:1.75;color:rgba(247,247,245,0.75);max-width:440px;margin-bottom:44px;font-weight:300;}
.about-hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
.about-hero-right{position:relative;z-index:2;overflow:hidden;}
.about-hero-right img{width:100%;height:100%;object-fit:cover;display:block;}
.about-hero-right::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,rgba(14,14,12,0.6),transparent);pointer-events:none;}
.hero-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:0.2;pointer-events:none;animation:float 9s ease-in-out infinite;}
.orb-h1{width:420px;height:420px;background:radial-gradient(circle,var(--accent),transparent);top:-100px;left:10%;animation-delay:-2s;}
.orb-h2{width:280px;height:280px;background:radial-gradient(circle,#3a2e1a,transparent);bottom:60px;right:10%;animation-delay:-5s;}

/* MARQUEE */
.marquee-strip{background:var(--accent);padding:14px 0;overflow:hidden;display:flex;white-space:nowrap;}
.marquee-inner{display:flex;gap:0;animation:marqueeScroll 28s linear infinite;}
.marquee-item{display:inline-flex;align-items:center;gap:20px;padding:0 32px;font-family:'DM Mono',monospace;font-size:12px;font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--primary);}
.marquee-sep{width:5px;height:5px;border-radius:50%;background:var(--primary);opacity:0.4;flex-shrink:0;}

/* ORIGIN STORY */
.origin{padding:140px 0 100px;background:var(--bg);}
.origin-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:100px;align-items:center;}
.origin-img-col{position:relative;}
.origin-img-col img{width:100%;border-radius:6px;display:block;object-fit:cover;aspect-ratio:4/5;}
.origin-year-badge{position:absolute;right:-20px;bottom:60px;z-index:3;background:var(--accent);color:var(--primary);border-radius:8px;padding:18px 22px;box-shadow:0 12px 40px rgba(var(--accent-rgb),0.45);animation:float 8s ease-in-out infinite;}
.origin-year-badge .num{font-family:'Playfair Display',serif;font-size:36px;font-weight:900;line-height:1;}
.origin-year-badge .lbl{font-size:11px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;margin-top:2px;opacity:0.75;}
.origin-text h2{font-family:'Playfair Display',serif;font-size:clamp(34px,3vw,52px);font-weight:900;color:var(--text);line-height:1.1;margin-bottom:28px;}
.origin-text p{font-size:16px;line-height:1.85;color:rgba(26,26,26,0.7);margin-bottom:20px;font-weight:300;}
.origin-text p strong{color:var(--text);font-weight:600;}

/* PHILOSOPHY */
.philosophy{padding:120px 0;background:var(--bg-dark);position:relative;overflow:hidden;}
.philosophy::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(212,175,55,0.05) 1px,transparent 1.5px);background-size:28px 28px;mask-image:radial-gradient(ellipse at center,black 30%,transparent 75%);}
.philosophy-inner{position:relative;z-index:1;}
.pillars-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid rgba(212,175,55,0.12);border-radius:6px;overflow:hidden;}
.pillar{padding:44px 32px;border-right:1px solid rgba(212,175,55,0.12);position:relative;transition:background .3s;}
.pillar:last-child{border-right:none;}
.pillar::after{content:'';position:absolute;bottom:0;left:32px;right:32px;height:2px;background:var(--accent);transform:scaleX(0);transition:transform .35s ease;transform-origin:left;}
.pillar:hover{background:rgba(212,175,55,0.04);}
.pillar:hover::after{transform:scaleX(1);}
.pillar-num{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:0.18em;color:rgba(212,175,55,0.35);margin-bottom:20px;}
.pillar-icon{width:48px;height:48px;margin-bottom:20px;}
.pillar-title{font-family:'Playfair Display',serif;font-size:19px;font-weight:700;color:var(--bg);margin-bottom:12px;}
.pillar-desc{font-size:14px;line-height:1.75;color:rgba(247,247,245,0.5);}

/* STATS */
.stats{padding:0;background:var(--primary);}
.stats-inner{display:grid;grid-template-columns:repeat(4,1fr);}
.stat-block{padding:72px 48px;border-right:1px solid rgba(212,175,55,0.12);position:relative;text-align:center;transition:background .3s;}
.stat-block:last-child{border-right:none;}
.stat-block:hover{background:rgba(212,175,55,0.05);}
.stat-block::before{content:attr(data-n);position:absolute;top:20px;left:50%;transform:translateX(-50%);font-family:'DM Mono',monospace;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(212,175,55,0.35);}
.stat-num{font-family:'Playfair Display',serif;font-size:58px;font-weight:900;color:var(--accent);line-height:1;}
.stat-label{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(247,247,245,0.45);margin-top:10px;}

/* GALLERY / PORTFOLIO */
.gallery{padding:120px 0;background:var(--bg-mid);}
.gallery-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:280px 280px;gap:16px;}
.gallery-tile{position:relative;overflow:hidden;border-radius:6px;cursor:pointer;}
.gallery-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.gallery-tile:hover img{transform:scale(1.05);}
.gallery-tile::after{content:'';position:absolute;inset:0;background:rgba(14,14,12,0);transition:background .3s;}
.gallery-tile:hover::after{background:rgba(14,14,12,0.2);}
.gallery-tile-tall{grid-row:span 2;}
.gallery-tile-label{position:absolute;bottom:16px;left:16px;font-family:'DM Mono',monospace;font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(247,247,245,0.7);opacity:0;transition:opacity .3s;}
.gallery-tile:hover .gallery-tile-label{opacity:1;}

/* PROCESS / SERVICES */
.process{padding:120px 0;background:var(--bg);}
.process-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
.process-step{position:relative;padding:40px 36px;border:1px solid var(--border);border-radius:6px;transition:box-shadow .3s,border-color .3s;}
.process-step:hover{box-shadow:0 16px 48px rgba(0,0,0,0.07);border-color:rgba(212,175,55,0.3);}
.process-step::before{content:attr(data-step);position:absolute;top:-16px;left:32px;font-family:'Playfair Display',serif;font-size:60px;font-weight:900;color:transparent;-webkit-text-stroke:1px rgba(212,175,55,0.15);line-height:1;pointer-events:none;}
.step-icon{width:52px;height:52px;margin-bottom:24px;}
.step-title{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--text);margin-bottom:12px;}
.step-desc{font-size:14px;line-height:1.75;color:rgba(26,26,26,0.6);}
.process-step-4th{grid-column:span 3;display:flex;flex-direction:row;gap:0;align-items:stretch;padding:0;border:1px solid var(--border);border-radius:6px;border-left:3px solid var(--accent);overflow:hidden;}
.step-4th-left{flex:1;padding:40px 48px;display:flex;flex-direction:column;justify-content:center;}
.step-4th-label{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;}
.step-4th-title{font-family:'Playfair Display',serif;font-size:28px;font-weight:900;color:var(--text);margin-bottom:16px;}
.step-4th-text{font-size:15px;line-height:1.8;color:rgba(26,26,26,0.65);}

/* TESTIMONIALS */
.testimonials{padding:120px 0;background:var(--bg-dark);position:relative;}
.sf-testimonial-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:20px;align-items:start;}
.sf-testimonial-item{background:rgba(247,247,245,0.04);border:1px solid rgba(212,175,55,0.1);border-radius:8px;padding:36px 32px;position:relative;transition:border-color .3s,background .3s;}
.sf-testimonial-item:hover{border-color:rgba(212,175,55,0.3);background:rgba(212,175,55,0.04);}
.sf-testimonial-item:first-child{padding:44px 40px;}
.sf-testimonial-stars{color:var(--accent);font-size:14px;letter-spacing:2px;margin-bottom:18px;}
.sf-testimonial-quote{font-size:16px;line-height:1.75;color:rgba(247,247,245,0.8);margin-bottom:28px;font-style:italic;font-weight:300;}
.sf-testimonial-item:first-child .sf-testimonial-quote{font-size:18px;}
.sf-testimonial-author{display:flex;align-items:center;gap:14px;}
.sf-testimonial-avatar{width:48px;height:48px;border-radius:50%;flex-shrink:0;object-fit:cover;}
.sf-testimonial-name{font-weight:700;font-size:14px;color:var(--bg);}
.sf-testimonial-role{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(247,247,245,0.4);margin-top:2px;}
.quote-mark{position:absolute;top:20px;right:28px;font-family:'Playfair Display',serif;font-size:80px;line-height:1;color:rgba(212,175,55,0.1);pointer-events:none;}

/* CTA */
.cta-banner{padding:120px 0;background:var(--bg-mid);position:relative;overflow:hidden;text-align:center;}
.cta-banner::before{content:'KRYPT';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:'Playfair Display',serif;font-size:300px;font-weight:900;color:transparent;-webkit-text-stroke:1px rgba(26,26,26,0.04);pointer-events:none;white-space:nowrap;}
.cta-inner{position:relative;z-index:2;}
.cta-banner h2{font-family:'Playfair Display',serif;font-size:clamp(38px,4vw,68px);font-weight:900;color:var(--text);line-height:1.05;margin-bottom:20px;}
.cta-banner p{font-size:18px;color:rgba(26,26,26,0.6);max-width:480px;margin:0 auto 44px;font-weight:300;line-height:1.7;}
.cta-banner-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta-banner .btn-outline{color:var(--primary);border-color:rgba(26,26,26,0.3);}
.cta-banner .btn-outline:hover{border-color:var(--accent);background:rgba(var(--accent-rgb),0.08);}

/* CONTACT */
.contact{padding:120px 0;background:var(--bg);}
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start;}
.contact-info h2{font-family:'Playfair Display',serif;font-size:clamp(32px,3vw,48px);font-weight:900;color:var(--text);line-height:1.1;margin-bottom:24px;}
.contact-info p{font-size:15px;color:rgba(26,26,26,0.65);line-height:1.75;margin-bottom:36px;font-weight:300;}
.contact-detail{display:flex;align-items:flex-start;gap:14px;margin-bottom:22px;}
.contact-detail-icon{width:36px;height:36px;background:rgba(212,175,55,0.12);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.contact-detail-text strong{display:block;font-size:13px;font-weight:700;color:var(--text);margin-bottom:2px;}
.contact-detail-text span{font-size:13px;color:rgba(26,26,26,0.6);}
.location-map{width:100%;min-height:360px;border-radius:8px;overflow:hidden;border:1px solid var(--border);}
.contact-form-wrapper{background:var(--bg-card);border-radius:8px;padding:44px 40px;border:1px solid rgba(26,26,26,0.08);box-shadow:0 8px 32px rgba(0,0,0,0.06);}
.contact-form-wrapper h3{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--text);margin-bottom:28px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{margin-bottom:18px;}
.form-group label{display:block;font-size:12px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:rgba(26,26,26,0.55);margin-bottom:8px;}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:13px 16px;font-family:'DM Sans',sans-serif;font-size:15px;background:var(--bg);border:1.5px solid rgba(26,26,26,0.12);border-radius:5px;color:var(--text);outline:none;transition:border-color .25s;}
.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);}
.form-group textarea{resize:vertical;min-height:120px;}
form .btn-primary{width:100%;justify-content:center;margin-top:8px;}

/* FOOTER */
footer{background:var(--bg-dark);padding:80px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1fr;gap:48px;padding-bottom:56px;border-bottom:1px solid rgba(212,175,55,0.1);}
.footer-logo-img{height:60px;width:auto;display:block;margin-bottom:18px;}
.footer-about{font-size:14px;color:rgba(247,247,245,0.5);line-height:1.75;max-width:300px;margin-bottom:28px;font-weight:300;}
.footer-socials{display:flex;gap:12px;}
.footer-social{width:38px;height:38px;border-radius:6px;border:1px solid rgba(212,175,55,0.2);display:flex;align-items:center;justify-content:center;color:rgba(247,247,245,0.6);text-decoration:none;transition:border-color .2s,background .2s,color .2s;}
.footer-social:hover{border-color:var(--accent);background:rgba(212,175,55,0.1);color:var(--accent);}
.footer-col h4{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent);margin-bottom:20px;}
.footer-col ul{list-style:none;}
.footer-col ul li{margin-bottom:12px;}
.footer-col ul li a{font-size:14px;color:rgba(247,247,245,0.55);text-decoration:none;transition:color .2s;}
.footer-col ul li a:hover{color:var(--bg);}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding:24px 0;}
.footer-copy{font-size:13px;color:rgba(247,247,245,0.35);}
.footer-copy strong{color:rgba(247,247,245,0.55);}
.footer-legal{display:flex;gap:24px;}
.footer-legal a{font-size:13px;color:rgba(247,247,245,0.35);text-decoration:none;transition:color .2s;}
.footer-legal a:hover{color:rgba(247,247,245,0.7);}

@media(max-width:1024px){
  .container{padding:0 32px;}
  .about-hero{grid-template-columns:1fr;}
  .about-hero-right{display:none;}
  .about-hero-left{padding:160px 0 100px;}
  .origin-grid{grid-template-columns:1fr;gap:60px;}
  .origin-img-col{max-width:500px;}
  .pillars-grid{grid-template-columns:repeat(2,1fr);}
  .pillar{border-bottom:1px solid rgba(212,175,55,0.12);}
  .stats-inner{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;}
  .gallery-tile-tall{grid-row:auto;}
  .process-steps{grid-template-columns:1fr 1fr;}
  .process-step-4th{grid-column:span 2;}
  .step-4th-left{padding:36px 40px;}
  .sf-testimonial-grid{grid-template-columns:1fr 1fr;}
  .sf-testimonial-item:first-child{grid-column:span 2;}
  .contact-grid{grid-template-columns:1fr;}
  .gallery-header{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;gap:36px;}
}
@media(max-width:768px){
  .container{padding:0 20px;}
  .nav-links{display:none;}
  .nav-hamburger{display:flex;}
  .about-hero-left{padding:140px 0 80px;}
  .about-hero h1{font-size:clamp(40px,11vw,64px);}
  .pillars-grid{grid-template-columns:1fr;}
  .stats-inner{grid-template-columns:1fr 1fr;}
  .stat-num{font-size:42px;}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto;}
  .process-steps{grid-template-columns:1fr;}
  .process-step-4th{grid-column:span 1;flex-direction:column;}
  .step-4th-left{padding:32px 28px;}
  .sf-testimonial-grid{grid-template-columns:1fr;}
  .sf-testimonial-item:first-child{grid-column:auto;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;gap:14px;text-align:center;}
  .form-row{grid-template-columns:1fr;}
  .origin-year-badge{right:16px;}
}

/* sf-form-color-reset */
.contact-form-wrapper { color: var(--text, #111); }
.contact-form-wrapper input::placeholder, .contact-form-wrapper textarea::placeholder { color: var(--muted, #6b7280); }
.panel-dark .contact-form-wrapper, .section.dark .contact-form-wrapper, .section-dark .contact-form-wrapper, .dark .contact-form-wrapper, .bg-dark .contact-form-wrapper, .bg-black .contact-form-wrapper, [class*="panel-dark"] .contact-form-wrapper { color: var(--text-on-dark, #f0f0f0); }

/* sf:shell-css-sync — begin */
.container { max-width:1280px; margin:0 auto; padding:0 48px; }
.accent-bar { height:3px; background:linear-gradient(90deg,var(--primary),var(--accent),var(--secondary)); }
nav { display:flex; align-items:center; justify-content:space-between; height:72px; }
.nav-links { display:flex; align-items:center; gap:36px; list-style:none; }
.nav-links a {
  font-size:13px; font-weight:500; color:rgba(247,247,245,0.7);
  text-decoration:none; letter-spacing:0.06em; text-transform:uppercase;
  transition:color .2s ease; position:relative;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-4px; left:0; right:0; height:1px;
  background:var(--accent); transform:scaleX(0); transition:transform .25s ease;
}
.nav-links a:hover, .nav-links a.active { color:var(--accent); }
.nav-links a:hover::after, .nav-links a.active::after { transform:scaleX(1); }
.nav-hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
.nav-hamburger span { display:block; width:24px; height:2px; background:var(--bg); transition:transform .3s; }
nav { height:84px; }
footer { background:var(--bg-dark); padding:80px 0 0; }
.footer-grid { display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr; gap:48px; padding-bottom:56px; border-bottom:1px solid rgba(199,167,108,0.1); }
.footer-about { font-size:14px; color:rgba(247,247,245,0.5); line-height:1.75; max-width:300px; margin-bottom:28px; font-weight:300; }
.footer-socials { display:flex; gap:12px; }
.footer-social {
  width:38px; height:38px; border-radius:6px;
  border:1px solid rgba(199,167,108,0.2);
  display:flex; align-items:center; justify-content:center;
  color:rgba(247,247,245,0.6); text-decoration:none;
  transition:border-color .2s, background .2s, color .2s;
}
.footer-social:hover { border-color:var(--accent); background:rgba(199,167,108,0.1); color:var(--accent); }
.footer-col h4 { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent); margin-bottom:20px; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:12px; }
.footer-col ul li a { font-size:14px; color:rgba(247,247,245,0.55); text-decoration:none; transition:color .2s; }
.footer-col ul li a:hover { color:var(--bg); }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; padding:24px 0; }
.footer-copy { font-size:13px; color:rgba(247,247,245,0.35); }
.footer-copy strong { color:rgba(247,247,245,0.55); }
.footer-legal { display:flex; gap:24px; }
.footer-legal a { font-size:13px; color:rgba(247,247,245,0.35); text-decoration:none; transition:color .2s; }
.footer-legal a:hover { color:rgba(247,247,245,0.7); }
@media(max-width:1024px) {
.container{padding:0 32px;}
.footer-grid{grid-template-columns:1fr 1fr;gap:36px;}
}
@media(max-width:768px) {
.container{padding:0 20px;}
.nav-logo-img { height:56px; }
.nav-links{display:none;}
.nav-hamburger{display:flex;}
.footer-grid{grid-template-columns:1fr;}
.footer-bottom{flex-direction:column;gap:14px;text-align:center;}
}
@media (max-width: 900px) {
nav .nav-links, nav ul.nav-links, nav ol.nav-links { display: none !important; }
nav.nav-links > a:not(.nav-logo):not(.nav-cta),
  nav.nav-links > li,
  nav.nav-links > ul > li { display: none !important; }
}
/* sf:shell-css-sync — end */

@media (min-width: 1025px) {
  /* sf-orphan-grid: 4-item, 1/3 last row */
  .process-steps:has(> :nth-child(4):last-child) > :nth-last-child(1) { grid-column-start: 2; }
}

/* sf-card-text-contrast: dark card needs light text */
.about-hero,
.about-hero h1, .about-hero h2, .about-hero h3, .about-hero h4, .about-hero h5, .about-hero h6, .about-hero p, .about-hero li, .about-hero a:not([class*="btn"]), .about-hero span, .about-hero strong, .about-hero em, .about-hero blockquote, .about-hero dt, .about-hero dd, .about-hero small, .about-hero figcaption { color: #f0f0f0; }
.about-hero .btn-outline { color: #f0f0f0; border-color: #f0f0f0; }
.about-hero .btn-ghost { color: #f0f0f0; border-color: #f0f0f0; }
.about-hero .btn-link { color: #f0f0f0; border-color: #f0f0f0; }
.about-hero .btn-secondary { color: #f0f0f0; border-color: #f0f0f0; }
/* sf-card-text-contrast: dark card needs light text */
.philosophy,
.philosophy h1, .philosophy h2, .philosophy h3, .philosophy h4, .philosophy h5, .philosophy h6, .philosophy p, .philosophy li, .philosophy a:not([class*="btn"]), .philosophy span, .philosophy strong, .philosophy em, .philosophy blockquote, .philosophy dt, .philosophy dd, .philosophy small, .philosophy figcaption { color: #f0f0f0; }
.philosophy .btn-outline { color: #f0f0f0; border-color: #f0f0f0; }
.philosophy .btn-ghost { color: #f0f0f0; border-color: #f0f0f0; }
.philosophy .btn-link { color: #f0f0f0; border-color: #f0f0f0; }
.philosophy .btn-secondary { color: #f0f0f0; border-color: #f0f0f0; }
/* sf-card-text-contrast: dark card needs light text */
.stats,
.stats h1, .stats h2, .stats h3, .stats h4, .stats h5, .stats h6, .stats p, .stats li, .stats a:not([class*="btn"]), .stats span, .stats strong, .stats em, .stats blockquote, .stats dt, .stats dd, .stats small, .stats figcaption { color: #f0f0f0; }
.stats .btn-outline { color: #f0f0f0; border-color: #f0f0f0; }
.stats .btn-ghost { color: #f0f0f0; border-color: #f0f0f0; }
.stats .btn-link { color: #f0f0f0; border-color: #f0f0f0; }
.stats .btn-secondary { color: #f0f0f0; border-color: #f0f0f0; }
/* sf-card-text-contrast: dark card needs light text */
.testimonials,
.testimonials h1, .testimonials h2, .testimonials h3, .testimonials h4, .testimonials h5, .testimonials h6, .testimonials p, .testimonials li, .testimonials a:not([class*="btn"]), .testimonials span, .testimonials strong, .testimonials em, .testimonials blockquote, .testimonials dt, .testimonials dd, .testimonials small, .testimonials figcaption { color: #f0f0f0; }
.testimonials .btn-outline { color: #f0f0f0; border-color: #f0f0f0; }
.testimonials .btn-ghost { color: #f0f0f0; border-color: #f0f0f0; }
.testimonials .btn-link { color: #f0f0f0; border-color: #f0f0f0; }
.testimonials .btn-secondary { color: #f0f0f0; border-color: #f0f0f0; }

/* Mobile overflow guard — kills horizontal scroll on narrow viewports.
   overflow-x:clip is stricter than overflow-x:hidden and cannot be
   subverted by descendant sticky/fixed ancestors establishing scroll
   containers. */
html { overflow-x: clip !important; max-width: 100vw !important; }
body { overflow-x: clip !important; max-width: 100vw !important; }
/* Fallback for browsers without overflow-x: clip support. */
@supports not (overflow-x: clip) {
  html, body { overflow-x: hidden !important; }
}
/* Decorative shapes commonly extend past viewport on mobile. Their
   parent contexts (.hero / .hero-bg / sections with shape backgrounds)
   should clip — visual loses nothing on mobile, mobile gains a usable
   layout. */
.hero, .hero-bg, .hero-visual, [class*="hero-section"],
section [class*="decorative"], section [class*="float-shape"],
section [class*="abstract-bg"] {
  overflow-x: clip !important;
}
@supports not (overflow-x: clip) {
  .hero, .hero-bg, .hero-visual, [class*="hero-section"],
  section [class*="decorative"], section [class*="float-shape"],
  section [class*="abstract-bg"] {
    overflow-x: hidden !important;
  }
}
/* Force card-grid stacking on narrow viewports so portfolio/blog/
   product/team grids don't extend past the viewport horizontally. */
@media (max-width: 600px) {
  .sf-portfolio-grid,
  .sf-blog-grid,
  .sf-products-grid,
  .sf-team-grid,
  [class*="portfolio-grid"],
  [class*="blog-grid"],
  [class*="products-grid"],
  [class*="team-grid"] {
    grid-template-columns: 1fr !important;
  }
}
/* Hamburger toggle — sf-ui.js APPENDS a fully-independent <aside class="sf-mobnav">
   at the END of <body>. Outside any Claude-emitted stacking context. We don't
   touch the original .nav-links at all (hide on mobile via CSS); the mobile
   menu is a wholly separate component with its own click handlers. */
.hamburger { display: none; background: none; border: 0; cursor: pointer; padding: 8px; -webkit-tap-highlight-color: transparent; }
.hamburger span { display: block; width: 24px; height: 2px; background: currentColor; margin: 5px 0; transition: transform .2s, opacity .2s; }
.sf-mobnav {
  position: fixed; top: 0; right: 0;
  height: 100%; height: 100dvh;
  width: min(86vw, 320px);
  background: #fff; color: #1f2937;
  box-shadow: -8px 0 32px rgba(0,0,0,0.18);
  transform: translateX(100%);
  transition: transform .25s ease-out;
  z-index: 2147483646;
  display: flex; flex-direction: column;
  padding: 72px 24px 32px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  visibility: hidden;
}
.sf-mobnav.sf-mobnav-open { transform: translateX(0) !important; visibility: visible !important; }
.sf-mobnav a {
  display: block; padding: 14px 4px; font-size: 17px; line-height: 1.4;
  color: #1f2937; text-decoration: none; border-bottom: 1px solid #e5e7eb;
  -webkit-tap-highlight-color: rgba(0,0,0,.05);
}
.sf-mobnav a:active { background: rgba(0,0,0,0.04); }
.sf-mobnav-close {
  position: absolute; top: 12px; right: 12px;
  width: 44px; height: 44px;
  background: transparent; border: 0; cursor: pointer;
  font-size: 28px; line-height: 1; color: inherit;
  -webkit-tap-highlight-color: rgba(0,0,0,.05);
}
.sf-mobnav-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,0.45);
  opacity: 0; pointer-events: none;
  transition: opacity .25s ease-out;
  z-index: 2147483645;
}
.sf-mobnav-backdrop.sf-mobnav-open { opacity: 1 !important; pointer-events: auto !important; }
body.sf-mobnav-locked { overflow: hidden !important; }
@media (max-width: 900px) {
  .hamburger { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; z-index: 2147483647; position: relative; }
  nav .nav-links, nav ul.nav-links, nav ol.nav-links { display: none !important; }
  /* Covers the case where Stage 1 puts .nav-links on the <nav style="z-index:2147483647 !important;"> itself
     instead of on a child <ul>/<div>. Direct anchor + list-item children
     of the nav get hidden; the hamburger is a <button>, not an <a>/<li>,
     so it stays visible. */
  nav.nav-links > a:not(.nav-logo):not(.nav-cta),
  nav.nav-links > li,
  nav.nav-links > ul > li { display: none !important; }
}
@media (min-width: 901px) {
  .sf-mobnav, .sf-mobnav-backdrop { display: none !important; }
}

/* V61-fix */ .marquee-item { max-width:100vw !important; overflow-x:hidden !important; }
/* V61-fix */ .marquee-sep { max-width:100vw !important; overflow-x:hidden !important; }
/* V61-fix-base */ html, body { overflow-x:hidden !important; } img, video, iframe { max-width:100% !important; }
section.hero h1, section.hero h2, section.hero p, section[class*="hero"] h1, section[class*="hero"] h2, section[class*="hero"] p { text-shadow: 0 2px 12px rgba(0,0,0,0.55); color:#fff !important; }
/* V69-fix: force inline emphasis tags inside hero headings to inherit so accent-colored <span>s don't stay silver/gold on a dark overlay and become unreadable. */
section.hero h1 span, section.hero h1 em, section.hero h1 strong, section.hero h2 span, section.hero h2 em, section.hero h2 strong, section[class*="hero"] h1 span, section[class*="hero"] h1 em, section[class*="hero"] h1 strong, section[class*="hero"] h2 span, section[class*="hero"] h2 em, section[class*="hero"] h2 strong { color:inherit !important; }
/* V70-fix — 5 items, last row 2/3 */
div.gallery-grid:has(> :nth-child(5):last-child) { justify-items: stretch; }
div.gallery-grid:has(> :nth-child(5):last-child) > :nth-last-child(2) { grid-column-start: 1; }
.nav-logo {
  font-family:'Playfair Display',serif; font-size:22px; font-weight:900;
  color:var(--bg); text-decoration:none; letter-spacing:0.12em; text-transform:uppercase;
  display:flex; align-items:center;
}
.nav-logo{
  font-family:'Playfair Display',serif; font-size:22px; font-weight:900;
  color:var(--bg); text-decoration:none; letter-spacing:0.12em; text-transform:uppercase;
  display:flex; align-items:center;
}
.nav-logo-img{
  height:72px;
  width:auto;
  filter:none;
  transition:transform .3s ease;
}
.nav-logo:hover .nav-logo-img{
  filter:none;
  transform:scale(1.06);
}
.nav-logo span{ color:var(--accent); }
.collections-header{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; margin-bottom:64px; }
.collections-header h2{
  font-family:'Playfair Display',serif; font-size:clamp(36px,3.5vw,58px);
  font-weight:900; line-height:1.06; color:var(--text);
}
.collections-header p{ font-size:16px; line-height:1.75; color:rgba(26,26,26,0.6); max-width:380px; }
.products-header{ text-align:center; margin-bottom:64px; }
.products-header h2{ font-family:'Playfair Display',serif; font-size:clamp(36px,3.5vw,58px); font-weight:900; color:var(--text); line-height:1.06; margin-bottom:16px; }
.products-header p{ font-size:16px; color:rgba(26,26,26,0.6); max-width:480px; margin:0 auto; }
.services-header{ text-align:center; margin-bottom:64px; }
.services-header h2{ font-family:'Playfair Display',serif; font-size:clamp(36px,3.5vw,58px); font-weight:900; color:var(--text); line-height:1.06; margin-bottom:14px; }
.testimonials-header{ margin-bottom:64px; }
.testimonials-header h2{ font-family:'Playfair Display',serif; font-size:clamp(36px,3.5vw,58px); font-weight:900; color:var(--text); line-height:1.06; }
.blog-header{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:52px; }
.blog-header h2{ font-family:'Playfair Display',serif; font-size:clamp(34px,3vw,50px); font-weight:900; color:var(--text); line-height:1.1; }
/* SiteForge nav sync END */