:root{
  --ox:#421416; --ox-deep:#2A0C0E; --bg:#F7F6F4;
  --ink:#231E1F; --vein:#726B68; --rule:#DCD8D4; --on-ox:#FFFFFF; --on-ox-soft:rgba(255,255,255,.76);
  --font:Calibri,"Segoe UI",Arial,sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --bg:#1A1617; --ink:#EEEAE8; --vein:#A79E9B; --rule:#3A3133; }
}
:root[data-theme="dark"]{ --bg:#1A1617; --ink:#EEEAE8; --vein:#A79E9B; --rule:#3A3133; }
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(78px + env(safe-area-inset-top,0px));-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-weight:400;font-size:17px;line-height:1.65}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
a:focus-visible{outline:2px solid var(--ox);outline-offset:3px}
.wrap{max-width:1140px;margin:0 auto;padding:0 26px}
h1,h2,h3,h4{font-family:var(--font);font-weight:700;margin:0;line-height:1.2}
p{margin:0}
.lead{font-size:clamp(17px,2vw,19px);line-height:1.6;max-width:60ch}
.soft{color:var(--vein)}

html.intro-lock,html.intro-lock body{overflow:hidden;height:100%}
#intro-blind{position:fixed;inset:0;z-index:9999;background:var(--ox);display:flex;align-items:center;justify-content:center;transition:transform .8s cubic-bezier(.65,0,.35,1);will-change:transform}
#intro-blind img{width:min(86vw,680px);height:min(86vw,680px);object-fit:contain}
#intro-blind.lift{transform:translateY(-100%)}
html.no-blind #intro-blind{display:none}

header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--ox);color:var(--on-ox)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:76px;gap:20px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand img{width:56px;height:56px}
nav.links{display:flex;gap:24px}
nav.links a{font-size:13.5px;text-decoration:none;color:var(--on-ox-soft);padding:4px 0;border-bottom:1px solid transparent}
nav.links a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.6)}

.hero{background:var(--ox);color:var(--on-ox);padding:60px 0 52px}
.hero h1{font-size:clamp(30px,4.6vw,50px);line-height:1.15;font-weight:700;max-width:16ch}
.hero .intro{margin-top:20px;font-size:clamp(15.5px,1.7vw,18px);color:var(--on-ox-soft);max-width:56ch}

figure{margin:0}
.band img{width:100%;max-height:400px;object-fit:cover;display:block}
.band figcaption{background:var(--ox-deep);color:rgba(255,255,255,.62);font-size:13px;padding:10px 26px}

section{padding:80px 0}
section + section{border-top:1px solid var(--rule)}
.head{margin-bottom:44px;max-width:64ch}
.head h2,.head h1{font-size:clamp(25px,3.2vw,32px);margin-bottom:12px}
.kicker{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ox);margin-bottom:14px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .kicker{color:#D9A9A2}}
:root[data-theme="dark"] .kicker{color:#D9A9A2}

.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.tiers > div{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:26px}
.tiers h3{font-size:19px;margin-bottom:10px}
.tiers .items{font-size:14px;font-weight:700;color:var(--ox);margin-bottom:10px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .tiers .items{color:#D9A9A2}}
:root[data-theme="dark"] .tiers .items{color:#D9A9A2}
.tiers p{font-size:15px;color:var(--vein)}
@media(max-width:860px){.tiers{grid-template-columns:1fr}}

.tier{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:center;padding:34px 0}
.tier + .tier{border-top:1px solid var(--rule)}
.tier.flip figure{order:2}
.tier img{width:100%;aspect-ratio:4/5;object-fit:cover}
.tier h3{font-size:clamp(22px,2.6vw,28px);margin-bottom:10px}
.tier .items{font-size:14.5px;font-weight:700;color:var(--ox);margin-bottom:14px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .tier .items{color:#D9A9A2}}
:root[data-theme="dark"] .tier .items{color:#D9A9A2}
.tier p + p{margin-top:12px}
.note{margin-top:20px;padding:16px 18px;background:var(--bg);border:1px solid var(--rule);border-left:3px solid var(--ox);font-size:14.5px}
.note strong{font-weight:700}
@media(max-width:860px){.tier{grid-template-columns:1fr;gap:20px}.tier.flip figure{order:0}}

ol.method{list-style:none;margin:0;padding:0;counter-reset:m;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
ol.method li{counter-increment:m;padding:24px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
ol.method li::before{content:counter(m);display:block;font-size:34px;font-weight:700;color:var(--ox);line-height:1;margin-bottom:14px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) ol.method li::before{color:#D9A9A2}}
:root[data-theme="dark"] ol.method li::before{color:#D9A9A2}
ol.method h4{font-size:17px;margin-bottom:6px}
ol.method p{font-size:14.5px;color:var(--vein)}
@media(max-width:900px){ol.method{grid-template-columns:1fr}}
.after{margin-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:30px;font-size:14.5px}
.after h4{font-size:16px;margin-bottom:6px}
@media(max-width:840px){.after{grid-template-columns:1fr}}

.statement{background:var(--ox);color:var(--on-ox);border-top:none!important}
.statement .grid{display:grid;grid-template-columns:1fr 1.2fr;gap:44px;align-items:start}
.statement h2{text-wrap:balance;font-size:clamp(30px,4.4vw,52px);line-height:1.08}
.statement p{color:var(--on-ox-soft);font-size:16px}
.statement p + p{margin-top:12px}
@media(max-width:840px){.statement .grid{grid-template-columns:1fr;gap:20px}}

.proj{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.proj article img{width:100%;aspect-ratio:3/2;object-fit:cover;margin-bottom:16px}
.proj h3{font-size:22px;margin-bottom:8px}
.proj .tag{font-size:12px;font-weight:700;color:var(--vein);margin-bottom:10px}
dl.facts{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:0;font-size:15px}
dl.facts dt{font-weight:700;color:var(--vein);font-size:12.5px;text-transform:uppercase;padding-top:2px}
dl.facts dd{margin:0}
@media(max-width:840px){.proj{grid-template-columns:1fr;gap:44px}}

.record{display:grid;grid-template-columns:1fr 1fr;gap:44px;margin-top:6px}
.record h3{font-size:18px;margin-bottom:12px}
.record ul{list-style:none;margin:0;padding:0;font-size:15.5px}
.record li{padding:8px 0;border-bottom:1px solid var(--rule)}
.record li span{display:block;font-size:13px;color:var(--vein);font-style:italic}
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:44px}
.strip img{width:100%;aspect-ratio:1/1;object-fit:cover}
.strip figcaption{font-size:12.5px;color:var(--vein);margin-top:8px}
@media(max-width:840px){.record{grid-template-columns:1fr;gap:26px}.strip{grid-template-columns:1fr}}

.refnote{font-size:13.5px;color:var(--vein);margin:28px 0 20px;padding-top:20px;border-top:1px solid var(--rule)}
.refgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.refgrid article img{width:100%;aspect-ratio:3/2;object-fit:cover;margin-bottom:12px}
.reftag{display:block;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--vein);margin-bottom:6px}
.refgrid h4{font-size:15.5px;margin-bottom:2px}
.refgrid .loc{font-size:13px;color:var(--vein)}
@media(max-width:840px){.refgrid{grid-template-columns:1fr 1fr;gap:20px}}
@media(max-width:560px){.refgrid{grid-template-columns:1fr}}

.team{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.team article{display:flex;gap:16px}
.team img{width:78px;height:78px;object-fit:cover;flex:none}
.team h3{font-size:16px;margin-bottom:3px}
.team .role{font-size:12.5px;font-weight:700;color:var(--ox);margin-bottom:8px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .team .role{color:#D9A9A2}}
:root[data-theme="dark"] .team .role{color:#D9A9A2}
.team p{font-size:13.5px;color:var(--vein)}
@media(max-width:840px){.team{grid-template-columns:1fr}}

.contact{display:grid;grid-template-columns:1fr 1fr;gap:44px}
.contact dl{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;margin:0}
.contact dt{font-weight:700;color:var(--vein);font-size:12.5px;text-transform:uppercase;padding-top:3px}
.contact dd{margin:0}
.contact a{text-decoration:none;border-bottom:1px solid var(--rule)}
.contact a:hover{border-bottom-color:var(--ox)}
.btn{display:inline-block;margin-top:24px;font-size:14.5px;font-weight:700;text-decoration:none;padding:13px 24px;background:var(--ox);color:#fff!important;border:none!important;cursor:pointer;font-family:var(--font)}

.confirm-backdrop{position:fixed;inset:0;z-index:200;background:rgba(20,12,12,.55);display:none;align-items:center;justify-content:center;padding:20px}
.confirm-backdrop.open{display:flex}
.confirm-box{background:var(--bg);color:var(--ink);max-width:400px;width:100%;padding:30px 28px 26px;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.confirm-box p{font-size:16px;line-height:1.5;margin:0 0 22px}
.confirm-box .addr{font-weight:700}
.confirm-actions{display:flex;gap:12px;flex-wrap:wrap}
.confirm-actions button{font-family:var(--font);font-size:14px;font-weight:700;padding:11px 20px;cursor:pointer;border:none}
.confirm-send{background:var(--ox);color:#fff}
.confirm-send:hover{background:var(--ox-deep)}
.confirm-cancel{background:transparent;color:var(--ink);border:1px solid var(--rule)!important}
.confirm-cancel:hover{border-color:var(--ox)!important}
.btn:hover{background:var(--ox-deep)}
@media(max-width:840px){.contact{grid-template-columns:1fr;gap:26px}}

footer{background:var(--ox-deep);color:rgba(255,255,255,.66);padding:34px 0;font-size:13px}
footer .f{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}
/* hero marble-vein animation */
.hero{position:relative;overflow:hidden}
.hero .wrap{position:relative;z-index:1}
.veins{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.veins path{fill:none;stroke:#fff;stroke-linecap:round;vector-effect:non-scaling-stroke}
.veins .v1{stroke-width:1.4;opacity:.20}.veins .v2{stroke-width:1;opacity:.14}.veins .v3{stroke-width:.8;opacity:.10}
.js-anim .veins path{stroke-dasharray:1;stroke-dashoffset:1}
.js-anim.hero-go .veins path{animation:vein 5.5s cubic-bezier(.45,.05,.2,1) forwards}
.js-anim.hero-go .veins .v2{animation-delay:.5s;animation-duration:6.5s}
.js-anim.hero-go .veins .v3{animation-delay:1s;animation-duration:7.5s}
.js-anim.hero-go .veins{animation:drift 26s ease-in-out 5s infinite alternate}
@keyframes vein{to{stroke-dashoffset:0}}
@keyframes drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-14px,8px,0)}}
.js-anim .hero h1,.js-anim .hero .intro{opacity:0;transform:translateY(14px)}
.js-anim.hero-go .hero h1{animation:rise .9s ease .1s forwards}
.js-anim.hero-go .hero .intro{animation:rise .9s ease .5s forwards}
@keyframes rise{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.js-anim .veins path{stroke-dashoffset:0;animation:none!important}.js-anim .hero h1,.js-anim .hero .intro{opacity:1;transform:none;animation:none!important}.veins{animation:none!important}}

/* navigation */
nav.links a.m-only{display:none}
.statement + .next{border-top:1px solid rgba(255,255,255,.2)}
nav.links{align-items:center}
nav.links a[aria-current="page"]{color:#fff;border-bottom-color:#fff}
.nav-right{display:flex;align-items:center;gap:22px}
a.nav-cta{font-size:13.5px;text-decoration:none;color:#fff;border:1px solid rgba(255,255,255,.7);padding:8px 16px}
a.nav-cta:hover,a.nav-cta[aria-current="page"]{background:#fff;color:var(--ox)}
.menu-btn{display:none;background:none;border:1px solid rgba(255,255,255,.6);color:#fff;font:inherit;font-size:13.5px;padding:8px 14px;cursor:pointer}
@media(max-width:900px){
  .menu-btn{display:block}
  a.nav-cta{display:none}
  nav.links{display:none;position:absolute;left:0;right:0;top:100%;background:var(--ox);flex-direction:column;align-items:stretch;gap:0;padding:6px 26px 18px;border-top:1px solid rgba(255,255,255,.18);box-shadow:0 14px 24px rgba(0,0,0,.25)}
  nav.links.open{display:flex}
  nav.links a{padding:14px 0;font-size:16px;border-bottom:1px solid rgba(255,255,255,.14)}
  nav.links a.m-only{display:block}
}
/* home explore + next-step band */
.explore{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule);margin-top:10px}
.explore a{display:block;padding:24px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);text-decoration:none}
.explore a:hover{background:rgba(66,20,22,.05)}
.explore h3{font-size:18px;margin-bottom:6px}
.explore p{font-size:14.5px;color:var(--vein)}
.explore span{display:block;margin-top:12px;font-size:13px;font-weight:700;color:var(--ox)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .explore span{color:#D9A9A2}}
:root[data-theme="dark"] .explore span{color:#D9A9A2}
@media(max-width:900px){.explore{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.explore{grid-template-columns:1fr}}
.next{background:var(--ox);color:var(--on-ox);padding:44px 0}
.next .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.next p{font-size:clamp(19px,2.4vw,24px);font-weight:700;max-width:34ch;line-height:1.25}
.next a{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.7);padding:12px 22px;font-size:15px}
.next a:hover{background:#fff;color:var(--ox)}
