:root{
  --ink:#0D0B08;
  --ink-2:#161310;
  --bone:#F2EEE5;
  --bone-2:#E9E3D6;
  --gold:#C9A45C;
  --gold-soft:#E4CB94;
  --bronze:#8F7440;
  --taupe:#4A4238;
  --mut:#A79C8B;
  --mut-d:#6F675A;
  --disp:'Cormorant Garamond',serif;
  --body:'Manrope',sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--bone);font-family:var(--body);font-weight:300;line-height:1.7;overflow-x:hidden;font-size:16px}
::selection{background:var(--gold);color:var(--ink)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,.serif{font-family:var(--disp);font-weight:500;line-height:1.05;letter-spacing:.005em}
.it{font-style:italic;color:var(--gold-soft);font-weight:400}

.wrap{width:min(1240px,92%);margin:0 auto}
.eyebrow{font-size:.68rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);font-weight:500}
.rule{width:56px;height:1px;background:var(--gold);margin:1.2rem 0 1.6rem}

/* reveals */
.rv{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.12s}.d2{transition-delay:.24s}.d3{transition-delay:.36s}

/* curtain image reveal — signature */
.frame{position:relative;overflow:hidden}
.frame img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transition:transform 1.6s var(--ease)}
.frame::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,var(--ink) 0%,var(--gold) 100%);transform:translateX(0);transition:transform 1.1s var(--ease)}
.frame.in::after{transform:translateX(101%)}
.frame.in img{transform:scale(1.02)}
.frame:hover img{transform:scale(1.07)}

/* ---------- nav ---------- */
nav{position:fixed;inset:0 0 auto;z-index:100;transition:.4s}
nav.sc{background:rgba(13,11,8,.9);backdrop-filter:blur(16px);border-bottom:1px solid rgba(201,164,92,.18)}
.nav-in{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 0;transition:padding .4s}
nav.sc .nav-in{padding:.9rem 0}
.brand{display:flex;align-items:center;gap:.7rem}
.brand svg{width:32px;height:24px}
.bn{font-family:var(--disp);font-size:1.25rem;letter-spacing:.22em;font-weight:500}
.bn b{color:var(--gold);font-weight:500}
.links{display:flex;gap:2.6rem;align-items:center}
.links a{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mut);transition:color .3s;position:relative;padding:.25rem 0}
.links a::after{content:"";position:absolute;left:50%;bottom:0;width:0;height:1px;background:var(--gold);transition:.35s var(--ease);transform:translateX(-50%)}
.links a:hover{color:var(--bone)}
.links a:hover::after{width:100%}
.ncta{border:1px solid rgba(201,164,92,.5);color:var(--gold)!important;padding:.6rem 1.4rem!important;transition:.3s!important}
.ncta:hover{background:var(--gold);color:var(--ink)!important}
.ncta::after{display:none!important}
.burger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:6px;z-index:120}
.burger span{width:26px;height:1.5px;background:var(--bone);transition:.3s}

/* ---------- hero ---------- */
.hero{height:100svh;min-height:640px;position:relative;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden}
.hero-bg{position:absolute;inset:-6%;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;animation:ken 18s var(--ease) both;filter:saturate(1.05) contrast(1.04)}
@keyframes ken{from{transform:scale(1.14) translateY(-1.5%)}to{transform:scale(1.0) translateY(0)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:
  linear-gradient(to right,rgba(13,11,8,.85) 0%,rgba(13,11,8,.5) 48%,rgba(13,11,8,.6) 100%),
  linear-gradient(to top,rgba(13,11,8,.97) 0%,rgba(13,11,8,.7) 34%,rgba(13,11,8,.28) 64%,rgba(13,11,8,.72) 100%)}
.hero .eyebrow,.hero h1{text-shadow:0 2px 26px rgba(0,0,0,.6)}
.hero-in{width:min(1240px,92%);margin:0 auto;padding-bottom:7rem;display:grid;grid-template-columns:1.4fr .6fr;gap:3rem;align-items:end}
.hero h1{font-size:clamp(3rem,7.4vw,6.4rem);margin:1.6rem 0 0}
.hero h1 .line{display:block;overflow:hidden}
.hero h1 .line span{display:block;transform:translateY(110%);animation:rise 1.2s var(--ease) forwards}
.hero h1 .line:nth-child(2) span{animation-delay:.15s}
@keyframes rise{to{transform:none}}
.hero-side{border-left:2px solid var(--gold);padding:1.6rem 1.8rem;background:linear-gradient(105deg,rgba(13,11,8,.82),rgba(13,11,8,.55));backdrop-filter:blur(6px)}
.hero-side p{color:#E6DFD2;font-size:.98rem;max-width:34ch}
.hero-actions{display:flex;gap:1rem;margin-top:1.8rem;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:.7rem;font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;font-weight:500;padding:1.05rem 1.9rem;border:1px solid var(--gold);position:relative;isolation:isolate;overflow:hidden;transition:color .35s;cursor:pointer;background:none;color:var(--bone);font-family:var(--body)}
.btn::before{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease);z-index:-1}
.btn:hover{color:var(--ink)}
.btn:hover::before{transform:none}
.btn-solid{background:var(--gold);color:var(--ink)}
.btn-solid::before{background:var(--gold-soft)}
.btn-solid:hover{color:var(--ink)}
.hero-meta{position:absolute;bottom:2rem;left:0;right:0;display:flex;justify-content:space-between;width:min(1240px,92%);margin:0 auto;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:#CFC7B8;text-shadow:0 1px 10px rgba(0,0,0,.7)}
.hero .eyebrow{color:var(--gold-soft)}
.hero-meta .dot{color:var(--gold)}

/* ---------- ticker ---------- */
.tick{border-block:1px solid rgba(201,164,92,.2);overflow:hidden;padding:1.15rem 0;background:var(--ink-2)}
.tick-t{display:flex;gap:0;white-space:nowrap;width:max-content;animation:mx 36s linear infinite}
.tick:hover .tick-t{animation-play-state:paused}
.tick span{font-family:var(--disp);font-size:1.05rem;letter-spacing:.3em;text-transform:uppercase;color:var(--mut);padding-right:3.2rem}
.tick i{font-style:normal;color:var(--gold);padding-right:3.2rem}
@keyframes mx{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
section{padding:7.5rem 0;position:relative}
.shead{max-width:640px;margin-bottom:3.8rem}
.shead h2{font-size:clamp(2.2rem,4.2vw,3.6rem);margin-top:1.1rem}
.shead p{color:var(--mut);margin-top:1.2rem;font-size:.98rem}

/* craft split */
.craft{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
.craft-img{aspect-ratio:4/5;position:relative}
.craft-img .frame{position:absolute;inset:0}
.craft-img::before{content:"";position:absolute;inset:1.6rem -1.6rem -1.6rem 1.6rem;border:1px solid rgba(201,164,92,.4);z-index:-1;transition:inset .6s var(--ease)}
.craft-img:hover::before{inset:.9rem -.9rem -.9rem .9rem}
.craft h2{font-size:clamp(2.1rem,3.8vw,3.2rem);margin-top:1.1rem}
.craft .body{color:var(--mut);margin:1.4rem 0 2rem;max-width:46ch}
.craft-feats{display:grid;gap:0;border-top:1px solid rgba(201,164,92,.22)}
.cf{display:flex;gap:1.4rem;padding:1.3rem 0;border-bottom:1px solid rgba(201,164,92,.22);align-items:baseline;transition:padding-left .4s var(--ease)}
.cf:hover{padding-left:.7rem}
.cf .no{font-family:var(--disp);font-style:italic;color:var(--gold);font-size:1.15rem;min-width:2rem}
.cf h3{font-size:1.25rem;font-weight:500}
.cf p{font-size:.86rem;color:var(--mut);margin-top:.2rem}

/* materials — bone section */
.bone-sec{background:var(--bone);color:var(--ink)}
.bone-sec .eyebrow{color:var(--bronze)}
.bone-sec .shead p{color:var(--mut-d)}
.mat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.mat{background:#fff;border:1px solid #DED6C4;cursor:pointer;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.mat:hover{transform:translateY(-8px);box-shadow:0 34px 60px -28px rgba(23,17,7,.4)}
.mat-face{aspect-ratio:16/11;position:relative;overflow:hidden}
.mat-face img,.mat-face .tex{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.mat:hover .mat-face img,.mat:hover .mat-face .tex{transform:scale(1.07)}
.badge{position:absolute;top:1rem;left:1rem;background:var(--ink);color:var(--gold);font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;padding:.45rem .9rem;font-weight:500;z-index:2}
.mat-info{padding:1.5rem 1.6rem 1.7rem;display:flex;justify-content:space-between;gap:1rem;align-items:baseline}
.mat-info h3{font-size:1.45rem;font-weight:500}
.mat-info .sub{font-size:.8rem;color:#8B8171;margin-top:.25rem}
.price{text-align:right;white-space:nowrap}
.price .now{font-family:var(--disp);font-size:1.25rem;color:var(--bronze);font-weight:600}
.price s{display:block;font-size:.75rem;color:#B4AA92}
.price .u{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#8B8171}
.tex-carrara{background:radial-gradient(140% 100% at 15% 10%,#fff,transparent 50%),linear-gradient(150deg,#FBFAF6,#E7E2D4)}
.tex-nero{background:radial-gradient(120% 100% at 25% 20%,#39352C,transparent 60%),linear-gradient(160deg,#211E18,#0D0B08)}
.tex-grigio{background:radial-gradient(130% 100% at 70% 10%,#EFEDE8,transparent 55%),linear-gradient(170deg,#D6D2C8,#B5B0A3)}
.tex-oro{background:radial-gradient(130% 100% at 20% 15%,#FDFBF4,transparent 55%),linear-gradient(160deg,#F6F0E0,#E5D6B1)}
.tex-onyx{background:radial-gradient(110% 100% at 75% 20%,#2E2A22,transparent 55%),linear-gradient(200deg,#181510,#060503)}
.mat-face svg{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.bone-note{margin-top:2.4rem;font-size:.85rem;color:var(--mut-d);max-width:62ch}

/* parallax band */
.band{height:64vh;min-height:420px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;isolation:isolate}
.band img{position:absolute;inset:-18% 0;width:100%;height:136%;object-fit:cover;z-index:-2;will-change:transform;filter:saturate(1.05)}
.band::before{content:"";position:absolute;inset:0;background:rgba(13,11,8,.62);z-index:-1}
.band blockquote{text-align:center;max-width:820px;padding:0 6%}
.band .q{font-family:var(--disp);font-size:clamp(1.7rem,3.6vw,2.9rem);font-weight:500;line-height:1.25}
.band .a{margin-top:1.4rem;font-size:.68rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(201,164,92,.22)}
.step{padding:2.4rem 2rem 2.6rem 0;border-bottom:1px solid rgba(201,164,92,.22);position:relative}
.step+.step{padding-left:2rem;border-left:1px solid rgba(201,164,92,.22)}
.step .no{font-family:var(--disp);font-style:italic;font-size:2.6rem;color:transparent;-webkit-text-stroke:1px var(--gold);transition:.4s}
.step:hover .no{color:var(--gold);-webkit-text-stroke:1px var(--gold)}
.step h3{font-size:1.35rem;margin:1rem 0 .6rem;font-weight:500}
.step p{font-size:.87rem;color:var(--mut)}
.step .dur{display:inline-block;margin-top:1.1rem;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center;padding:4.5rem 0;border-block:1px solid rgba(201,164,92,.2);background:var(--ink-2)}
.stat .n{font-family:var(--disp);font-size:clamp(2.6rem,5vw,4rem);color:var(--gold-soft);font-weight:500}
.stat .l{font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--mut);margin-top:.4rem}

/* gallery */
.gal{display:grid;grid-template-columns:repeat(12,1fr);gap:1.3rem}
.g{position:relative;overflow:hidden}
.g .cap{position:absolute;left:0;right:0;bottom:0;padding:2.6rem 1.5rem 1.3rem;background:linear-gradient(transparent,rgba(9,7,4,.9));font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-soft);opacity:0;transform:translateY(10px);transition:.5s var(--ease);z-index:2}
.g:hover .cap{opacity:1;transform:none}
.g1{grid-column:span 7;aspect-ratio:16/10}
.g2{grid-column:span 5;aspect-ratio:auto}
.g3{grid-column:span 5;aspect-ratio:16/11}
.g4{grid-column:span 7;aspect-ratio:16/9}

/* contact */
.cta-sec{background:var(--bone);color:var(--ink)}
.cta-sec .eyebrow{color:var(--bronze)}
.cta-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:5rem;align-items:start}
.cta-grid h2{font-size:clamp(2.2rem,4vw,3.4rem);margin-top:1.1rem}
.cta-grid .lead{color:var(--mut-d);margin:1.3rem 0 2.4rem;max-width:44ch}
.clist{display:grid;gap:0;border-top:1px solid #D8CFBB}
.ci{display:flex;gap:1.3rem;align-items:center;padding:1.25rem 0;border-bottom:1px solid #D8CFBB;transition:padding-left .4s var(--ease)}
a.ci:hover{padding-left:.7rem}
.ci .ic{width:36px;height:36px;flex:none;color:var(--bronze)}
.ci .k{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:#8B8171}
.ci .v{font-size:1.02rem;color:var(--ink);margin-top:.1rem;font-weight:400}
.hours{margin-top:1.6rem;font-size:.85rem;color:var(--mut-d)}
.hours b{color:var(--taupe);font-weight:600}
form{display:grid;gap:1.15rem;background:#fff;border:1px solid #DED6C4;padding:2.4rem;box-shadow:0 40px 80px -50px rgba(23,17,7,.35)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}
label{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:#8B8171;display:block;margin-bottom:.45rem;font-weight:500}
input,select,textarea{width:100%;background:var(--bone);border:1px solid #DED6C4;color:var(--ink);font-family:var(--body);font-size:.95rem;padding:.9rem 1.05rem;transition:border-color .3s;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--bronze)}
textarea{resize:vertical;min-height:110px}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238F7440' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
.fnote{font-size:.76rem;color:#9A9080}

/* footer */
footer{padding:3.6rem 0 2.4rem;background:#090704;border-top:1px solid rgba(201,164,92,.2)}
.fg{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.ftag{font-size:.66rem;letter-spacing:.32em;text-transform:uppercase;color:var(--mut-d)}
.flinks{display:flex;gap:1.8rem;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mut)}
.flinks a:hover{color:var(--gold)}

.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%,130%);background:var(--gold);color:var(--ink);padding:1rem 1.9rem;font-size:.84rem;z-index:200;transition:transform .5s var(--ease);font-weight:500}
.toast.show{transform:translate(-50%,0)}

/* responsive */
@media(max-width:1000px){
  .hero-in{grid-template-columns:1fr;gap:2rem}
  .hero-side{border-left:0;padding-left:0;border-top:1px solid rgba(201,164,92,.35);padding-top:1.4rem}
  .craft{grid-template-columns:1fr;gap:3.5rem}
  .craft-img{max-width:520px}
  .mat-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .step+.step{border-left:0;padding-left:0}
  .step:nth-child(even){border-left:1px solid rgba(201,164,92,.22);padding-left:2rem}
  .stats{grid-template-columns:1fr 1fr;gap:2.5rem}
  .cta-grid{grid-template-columns:1fr;gap:3.5rem}
  .g1,.g2,.g3,.g4{grid-column:span 12;aspect-ratio:16/10}
}
@media(max-width:640px){
  section{padding:4.8rem 0}
  .links{position:fixed;inset:0;background:rgba(13,11,8,.97);flex-direction:column;justify-content:center;gap:2.2rem;transform:translateY(-100%);transition:transform .5s var(--ease)}
  .links.open{transform:none}
  .links a{font-size:.95rem}
  .burger{display:flex}
  .burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .burger.open span:nth-child(2){opacity:0}
  .burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
  .mat-grid,.steps,.stats,.frow{grid-template-columns:1fr}
  .step:nth-child(even){border-left:0;padding-left:0}
  form{padding:1.6rem}
  .hero-meta{display:none}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}
  .frame::after{transform:translateX(101%)}
  .frame img{transform:none}
  .hero h1 .line span{transform:none;animation:none}
}
