:root{--ground:#110f0d;--surface:#1d1a16;--ink:#f0ece6;--muted:#c2b8a3;--accent:#cfab59;--on-accent:#111111;--accent-2:#a48246;--on-accent-2:#111111;--line:#463c2a;--font-display:"Rubik",sans-serif;--font-text:"Heebo",sans-serif;--h1-weight:900;--h2-weight:800;--h1:clamp(2.8rem,8vw,7rem);--h1-lh:1;--h1-track:-0.03em;--r-sm:2px;--r-md:4px;--r-lg:6px;--r-btn:4px;--border:1px solid var(--line);--shadow:0 1px 2px rgba(0,0,0,.08);--ease:cubic-bezier(.16,.84,.24,1);--dur:1200ms;--section-pad:clamp(88px,14vw,176px);--body:clamp(17px,.35vw + 16px,20px);--body-lh:1.75;--gap:clamp(28px,5vw,72px)}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-text);font-size:var(--body);line-height:var(--body-lh);overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2{font-family:var(--font-display);margin:0;text-wrap:balance}
.label{font-size:.85rem;color:var(--muted);letter-spacing:.06em;margin:0 0 10px}
.muted{color:var(--muted)}

/* grain texture */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.07;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}

.js .rv{opacity:0;transform:translateY(16px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
.js .rv.in{opacity:1;transform:none}
.js .rv-img{transform:scale(1.08);transition:transform 1700ms var(--ease)}
.js .in .rv-img,.js header .rv-img{transform:none}
@media (prefers-reduced-motion:reduce){.js .rv,.js .rv-img{opacity:1!important;transform:none!important;transition:none!important}}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:var(--r-btn);font-weight:600;font-size:1rem;border:1px solid transparent;transition:transform .2s var(--ease),filter .2s}
.btn:hover{transform:translateY(-2px)}
.btn--accent{background:var(--accent);color:var(--on-accent)}
.btn--accent:hover{filter:brightness(1.08)}
.btn--ghost{border-color:rgba(255,255,255,.7);color:#fff}
.btn--xl{padding:18px 40px;font-size:1.15rem}

.floatwa{position:fixed;z-index:70;left:18px;bottom:18px;width:56px;height:56px;border-radius:50%;background:var(--accent-2);color:var(--on-accent-2);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}

/* overlap-layers: each panel sticks to the top and the next one slides over it, like a stacked deck */
.panel{position:sticky;top:0;min-height:100vh;min-height:100svh;overflow:hidden;color:#fff}
.hero{display:grid;align-items:end;z-index:1}
.about{display:flex;flex-direction:column;justify-content:space-between;z-index:2;background:var(--ground)}
.svc--1{display:grid;align-items:center;z-index:3}
.svc--2{display:grid;align-items:center;z-index:4}
.svc--3{display:grid;align-items:center;z-index:5}
.order{display:flex;align-items:center;justify-content:center;text-align:center;z-index:6;background:var(--ground)}

.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(10,8,6,.82) 0%,rgba(10,8,6,.3) 55%,rgba(10,8,6,.5) 100%)}
.hero__nav{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:22px clamp(20px,5vw,56px)}
.brand{font-family:var(--font-display);font-weight:var(--h2-weight);font-size:1.3rem}
.nav__phone{font-weight:600;border:1px solid rgba(255,255,255,.6);border-radius:var(--r-btn);padding:8px 16px}
.hero__text{position:relative;z-index:2;padding:0 clamp(20px,5vw,56px) clamp(60px,8vw,110px)}
.kicker{font-size:.95rem;letter-spacing:.04em;opacity:.9;margin:0 0 14px}
.hero h1{font-size:var(--h1);line-height:var(--h1-lh);font-weight:var(--h1-weight);letter-spacing:var(--h1-track)}
.hero__lead{max-width:34ch;font-size:1.15rem;opacity:.95;margin:18px 0 28px}
.hero__cta{display:flex;gap:14px;flex-wrap:wrap}
.scrolldown{position:absolute;z-index:2;bottom:18px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;color:#fff;font-size:.8rem;opacity:.85}
.scrolldown span{width:1px;height:28px;background:#fff;animation:sd 1.8s infinite var(--ease)}
@keyframes sd{0%{transform:scaleY(0);opacity:0}40%{transform:scaleY(1);opacity:1}100%{transform:scaleY(0);opacity:0;transform-origin:top}}

/* about + gallery, stacked in one panel */
.about__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(110deg,rgba(10,8,6,.8) 35%,rgba(10,8,6,.3) 100%)}
.about__text{position:relative;z-index:2;max-width:620px;padding:clamp(60px,10vw,110px) clamp(20px,6vw,80px) 0}
.statement{font-family:var(--font-display);font-size:clamp(1.6rem,3.6vw,2.6rem);line-height:1.3;font-weight:var(--h2-weight);margin:0}

.gallery{position:relative;z-index:2;padding:0 0 clamp(28px,5vw,56px)}
.gallery__head{padding:0 clamp(20px,6vw,56px);margin-bottom:20px}
.gallery__row{display:flex;gap:var(--gap);overflow-x:auto;padding:0 clamp(20px,6vw,56px) 10px;scroll-snap-type:x proximity}
.gallery__row figure{flex:0 0 clamp(150px,20vw,210px);margin:0;scroll-snap-align:start}
.gallery__row img{width:100%;height:clamp(150px,20vw,210px);object-fit:cover;border-radius:var(--r-lg)}
.gallery__row figcaption{margin-top:10px;color:var(--ink);opacity:.85;font-size:.9rem}

/* services */
.svc__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svc__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(10,8,6,.78) 30%,rgba(10,8,6,.2) 100%)}
.svc__text{position:relative;z-index:2;max-width:520px;padding:0 clamp(20px,6vw,80px)}
.svc__text h2{font-size:clamp(2rem,4vw,3.2rem);font-weight:var(--h2-weight);margin-bottom:14px}
.svc__text p{font-size:1.1rem;margin-bottom:24px;opacity:.95}

/* order/footer */
.order__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.order__shade{position:absolute;inset:0;z-index:1;background:rgba(8,6,5,.78)}
.order__inner{position:relative;z-index:2;max-width:560px;padding:40px clamp(20px,6vw,40px)}
.order h2{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:var(--h1-weight);margin-bottom:28px}
.order__meta{margin:30px 0 20px;line-height:1.8}
.order__meta a{text-decoration:underline}
.legal{font-size:.78rem;opacity:.75;margin-top:20px;line-height:1.6}
.legal a{text-decoration:underline}

/* simple 404 page (no image panel) */
.nf{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding:20px;background:var(--ground);color:var(--ink)}
.nf h1{font-size:clamp(1.8rem,5vw,3rem);font-weight:var(--h1-weight)}

@media (max-width:640px){
  .hero__cta{flex-direction:column;align-items:stretch}
  .about{min-height:auto}
  .gallery__row figure{flex-basis:130px}
  .gallery__row img{height:130px}
}
