/* ============================================================
   Inventiv Brands — Desert Modern design system
   Palette: warm bone/sand + ink + Canyon Rust accent
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@400;500;600;700;800&family=Source+Sans+3:wght@400;500;600&display=swap');

:root{
  --bone:#FBF8F3; --sand:#EFE6D9; --ink:#181310; --ink2:#211A15; --text:#2A241F;
  --rust:#B4472E; --rust-d:#9d3c25; --amber:#D98A3D; --gray:#8A7F72; --line:#E7DCCB;
  --display:'Lexend',sans-serif; --body:'Source Sans 3',sans-serif; --mono:ui-monospace,'SF Mono',Menlo,monospace;
  --max:1300px; --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--body); color:var(--text); background:var(--bone); line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
h1,h2,h3,h4{font-family:var(--display); font-weight:800; line-height:1.02; letter-spacing:-0.03em; color:var(--ink); text-wrap:balance;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 2.5rem;}
.eyebrow{font-family:var(--mono); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--rust);}
.rule{height:2px; width:64px; background:var(--rust);}

/* ---------- motion primitives ---------- */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .85s var(--ease), transform .85s var(--ease); transition-delay:calc(var(--i,0)*80ms);}
.reveal.in{opacity:1; transform:none;}
/* contour draw-in divider */
.cdraw path{stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 1.6s var(--ease); transition-delay:calc(var(--i,0)*120ms);}
.cdraw.in path{stroke-dashoffset:0;}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important; transition:none!important;}
  .reveal{opacity:1!important; transform:none!important;}
  .cdraw path{stroke-dashoffset:0!important;}
  html{scroll-behavior:auto;}
}

/* ---------- buttons & links ---------- */
.btn{display:inline-flex; align-items:center; gap:.6rem; padding:1rem 1.9rem; border-radius:2px; font-family:var(--display); font-weight:600; font-size:.95rem; cursor:pointer; transition:transform .18s var(--ease), background-color .2s, color .2s, box-shadow .2s; border:2px solid transparent; will-change:transform;}
.btn:active{transform:scale(.97)!important;}
.btn-rust{background:var(--rust); color:#fff;}
.btn-rust:hover{background:var(--rust-d); box-shadow:0 10px 26px rgba(180,71,46,.32);}
.btn-lightout{border-color:rgba(255,255,255,.4); color:#fff;}
.btn-lightout:hover{border-color:#fff; background:rgba(255,255,255,.08);}
.btn-inkout{border-color:var(--ink); color:var(--ink);}
.btn-inkout:hover{background:var(--ink); color:var(--bone);}
.arrow{display:inline-flex; align-items:center; gap:.5rem; font-family:var(--display); font-weight:600; font-size:.95rem; color:var(--rust);}
.arrow .a{transition:transform .2s var(--ease);}
.arrow:hover .a{transform:translateX(6px);}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--rust); outline-offset:3px;}

/* underline sweep for nav/text links */
.uline{position:relative;}
.uline::after{content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:var(--rust); transform:scaleX(0); transform-origin:left; transition:transform .25s var(--ease);}
.uline:hover::after{transform:scaleX(1);}

/* ---------- nav ---------- */
nav.site{position:fixed; inset:0 0 auto 0; z-index:100; transition:background-color .3s,border-color .3s; border-bottom:1px solid transparent;}
nav.site .wrap{display:flex; align-items:center; justify-content:space-between; height:76px;}
nav.site .logo img{height:20px; transition:filter .3s;}
nav.site .links{display:flex; align-items:center; gap:2.4rem;}
nav.site .links a{font-family:var(--display); font-weight:500; font-size:.95rem;}
/* dark variant (over imagery/ink) */
nav.site.on-dark .logo img{filter:brightness(0) invert(1);}
nav.site.on-dark .links a{color:#fff; opacity:.9;}
nav.site.on-dark .links a:hover{opacity:1;}
nav.site.on-dark.scrolled{background:rgba(24,19,16,.9); backdrop-filter:blur(10px); border-bottom-color:rgba(255,255,255,.1);}
/* light variant (over bone) */
nav.site.on-light .logo img{filter:none;}
nav.site.on-light .links a{color:var(--ink); opacity:.85;}
nav.site.on-light .links a:hover{opacity:1; color:var(--rust);}
nav.site.on-light.scrolled{background:rgba(251,248,243,.92); backdrop-filter:blur(10px); border-bottom-color:var(--line);}
@media (max-width:820px){ nav.site .links a:not(.cta){display:none;} }

/* ---------- footer ---------- */
footer.site{background:var(--ink); color:#b7ab9c;}
footer.site .wrap{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:2.5rem; padding-top:4.5rem; padding-bottom:2.5rem;}
footer.site .brandcol img{height:22px; filter:brightness(0) invert(1); opacity:.92; margin-bottom:1.2rem;}
footer.site .brandcol p{font-size:.95rem; max-width:26ch; color:#a99d8e;}
footer.site h4{color:#fff; font-family:var(--mono); font-size:.68rem; font-weight:400; letter-spacing:.12em; text-transform:uppercase; margin-bottom:1.1rem;}
footer.site ul{list-style:none;}
footer.site li{margin-bottom:.6rem;}
footer.site li a{font-size:.95rem; transition:color .2s;}
footer.site li a:hover{color:#fff;}
footer.site .base{border-top:1px solid rgba(255,255,255,.1);}
footer.site .base .wrap{display:flex; justify-content:space-between; padding:1.5rem 2.5rem; grid-template-columns:none; font-size:.85rem;}
@media (max-width:760px){ footer.site .wrap{grid-template-columns:1fr 1fr;} footer.site .brandcol{grid-column:1/-1;} }

/* ---------- hero (home) ---------- */
.hero{position:relative; min-height:100vh; display:flex; align-items:center; color:#fff; overflow:hidden;}
.hero .bg{position:absolute; inset:-3%; z-index:0; will-change:transform;}
.hero .bg img{width:100%; height:100%; object-fit:cover; transform:scale(1.07); transition:transform 1.6s var(--ease);}
.hero.in .bg img{transform:scale(1.02);}
.hero .bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(20,15,12,.86) 0%, rgba(20,15,12,.5) 48%, rgba(20,15,12,.2) 100%);}
.hero .wrap{position:relative; z-index:1; padding-top:6rem; width:100%;}
.hero .eyebrow{color:#EBB9A6;}
.hero h1{color:#fff; font-size:clamp(3rem,7.5vw,6.4rem); max-width:14ch; margin-top:1.4rem; letter-spacing:-0.04em;}
.hero h1 span{color:var(--rust);}
.hero p{font-size:1.25rem; color:#E7DED5; max-width:32rem; margin-top:1.7rem;}
.hero .cta-row{display:flex; align-items:center; gap:1.2rem; margin-top:2.6rem; flex-wrap:wrap;}
.hero .scrollcue{position:absolute; left:50%; bottom:1.6rem; transform:translateX(-50%); z-index:1; color:rgba(255,255,255,.65); font-family:var(--mono); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; animation:cue 2.6s var(--ease) infinite;}
@keyframes cue{0%,100%{transform:translate(-50%,0);}50%{transform:translate(-50%,7px);}}

/* ---------- brand hero (subpages) ---------- */
.bhero{position:relative; padding:11rem 0 5rem; overflow:hidden;}
.bhero.ink{background:var(--ink); color:#EDE6DE;}
.bhero.sand{background:var(--sand);}
.bhero .topo{position:absolute; top:-10%; bottom:-10%; right:-6%; width:52%; background:url(../contours/contour-rings-rust.svg) center/contain no-repeat; opacity:.12; z-index:0; pointer-events:none;}
.bhero .wrap{position:relative; z-index:1;}
.bhero .crumb{font-family:var(--mono); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom:2.2rem; display:flex; gap:.8rem; align-items:center;}
.bhero.ink .crumb{color:#9c8f80;} .bhero.sand .crumb{color:var(--gray);}
.bhero .crumb a:hover{color:var(--rust);}
.bhero .lock{display:block;}
.bhero .lock img{max-height:88px; width:auto;}
.bhero.ink .lock img{filter:brightness(0) invert(1);}
.bhero .lock .wl{font-family:var(--display); font-weight:800; font-size:clamp(2.6rem,5.4vw,4rem); letter-spacing:-.03em;}
.bhero .tag{font-size:clamp(1.3rem,2.4vw,1.8rem); font-family:var(--display); font-weight:600; margin-top:1.6rem; max-width:24ch; line-height:1.2;}
.bhero.ink .tag{color:#fff;}
.bhero p.sub{margin-top:1.2rem; max-width:52ch; font-size:1.12rem;}
.bhero.ink p.sub{color:#c9bdb0;} .bhero.sand p.sub{color:var(--gray);}
.bhero .cta-row{display:flex; gap:1.2rem; margin-top:2.2rem; flex-wrap:wrap; align-items:center;}

/* ---------- browser mockup ---------- */
.browser{position:relative; border-radius:10px; overflow:hidden; background:#fff; box-shadow:0 34px 80px rgba(24,19,16,.28), 0 6px 18px rgba(24,19,16,.14); border:1px solid rgba(24,19,16,.08); transform-style:preserve-3d; will-change:transform;}
.browser .bar{display:flex; align-items:center; gap:.9rem; background:#EDE7DD; padding:.7rem 1rem; border-bottom:1px solid #E0D8CA;}
.browser .dots{display:flex; gap:.42rem;}
.browser .dots i{width:11px; height:11px; border-radius:50%; display:block;}
.browser .dots i:nth-child(1){background:#E8695A;} .browser .dots i:nth-child(2){background:#EFBB4F;} .browser .dots i:nth-child(3){background:#5FC26D;}
.browser .url{flex:1; background:#fff; border-radius:6px; font-family:var(--mono); font-size:.72rem; color:var(--gray); padding:.34rem .9rem; border:1px solid #E0D8CA; letter-spacing:.03em;}
.browser .shot{position:relative; overflow:hidden;}
.browser .shot img{width:100%; transition:transform .5s var(--ease);}
.browser:hover .shot img{transform:scale(1.015);}

/* ---------- sections ---------- */
.sec{padding:6.5rem 0;}
.sec.tight{padding:4.5rem 0;}
.head-block h2{font-size:clamp(2.2rem,4.5vw,3.6rem);}
.head-block p{color:var(--gray); font-size:1.1rem; max-width:44ch; margin-top:.9rem;}
.head-block .rule{margin-bottom:1.1rem;}

/* home brand bands */
.band{position:relative; overflow:hidden;}
.band .wrap{display:grid; grid-template-columns:1.05fr 1fr; gap:3rem; align-items:center; padding-top:6rem; padding-bottom:6rem;}
.band .lock{display:block;}
.band .lock img{width:auto; max-height:96px;}
.band .lock .wl{font-family:var(--display); font-weight:800; font-size:clamp(2.4rem,5vw,3.6rem); letter-spacing:-.03em;}
.band .cnum{font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--rust); margin-bottom:1.4rem;}
.band .txt h3{font-size:clamp(1.5rem,2.6vw,2rem); margin:.4rem 0 1rem; font-weight:700;}
.band .txt p{font-size:1.08rem; margin-bottom:1.6rem;}
.band.ink{background:var(--ink); color:#EDE6DE;}
.band.ink h3{color:#fff;}
.band.ink .lock img{filter:brightness(0) invert(1);}
.band.ink .txt p{color:#c9bdb0;}
.band.sand{background:var(--sand);}
.band.sand .txt p{color:var(--gray);}
.band .topo{position:absolute; top:0; bottom:0; right:-5%; width:44%; background:url(../contours/contour-rings-rust.svg) center/contain no-repeat; opacity:.12; z-index:0;}
.band .wrap>*{position:relative; z-index:1;}
@media (max-width:820px){ .band .wrap{grid-template-columns:1fr; gap:1.8rem; padding-top:4rem; padding-bottom:4rem;} }

/* tiltable card base (JS adds rotation) */
.tilt{transform-style:preserve-3d; will-change:transform; transition:transform .35s var(--ease), box-shadow .35s var(--ease);}

/* paired small brands */
.pair .wrap{display:grid; grid-template-columns:1fr 1fr; padding-left:0; padding-right:0;}
.pair .cell{padding:4.5rem 2.5rem; position:relative; overflow:hidden;}
.pair .cell:first-child{border-right:1px solid var(--line);}
.pair .cell .htopo{position:absolute; inset:0; background:url(../contours/contour-band-gray.svg) center/cover no-repeat; opacity:0; transition:opacity .45s; z-index:0;}
.pair .cell:hover .htopo{opacity:.35;}
.pair .cell>*{position:relative; z-index:1;}
.pair .cnum{font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--rust); margin-bottom:1rem;}
.pair .lock{min-height:56px; display:flex; align-items:center; margin-bottom:1rem;}
.pair .lock img{max-height:40px;}
.pair .lock .wl{font-family:var(--display); font-weight:800; font-size:1.8rem;}
.pair p{color:var(--gray); margin-bottom:1.2rem; max-width:34ch;}
@media (max-width:760px){ .pair .wrap{grid-template-columns:1fr;} .pair .cell:first-child{border-right:0; border-bottom:1px solid var(--line);} }

/* ethos */
.ethos{background:var(--ink2); color:#EDE6DE; text-align:center; position:relative; overflow:hidden;}
.ethos .etopo{position:absolute; inset:0; background:url(../contours/contour-band-bone.svg) center/cover no-repeat; opacity:.06; z-index:0;}
.ethos .wrap{padding-top:6.5rem; padding-bottom:6.5rem; position:relative; z-index:1;}
.ethos .rule{margin:0 auto 2rem;}
.ethos h2{color:#fff; font-size:clamp(2rem,4.4vw,3.4rem); max-width:20ch; margin:0 auto;}
.ethos .pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:2.4rem; margin-top:3.5rem; text-align:left; max-width:64rem; margin-left:auto; margin-right:auto;}
.ethos .pillar{padding:1.4rem; border:1px solid transparent; border-radius:6px; transition:border-color .3s, background-color .3s, transform .3s var(--ease);}
.ethos .pillar:hover{border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.03); transform:translateY(-4px);}
.ethos .pillar .n{font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; color:var(--rust);}
.ethos .pillar h3{color:#fff; font-size:1.25rem; margin:.6rem 0 .5rem; font-weight:700;}
.ethos .pillar p{color:#c9bdb0; font-size:1rem;}
@media (max-width:760px){ .ethos .pillars{grid-template-columns:1fr; gap:1.4rem;} }

/* channels */
.chan{text-align:center; padding:5rem 0;}
.chan .lbl{font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); margin-bottom:1.6rem;}
.chan .row{display:flex; justify-content:center; gap:2.5rem; flex-wrap:wrap; align-items:center;}
.chan .row a,.chan .row span.mk{font-family:var(--display); font-weight:800; font-size:clamp(1.3rem,2.4vw,1.9rem); color:var(--ink); opacity:.34; transition:opacity .2s,color .2s,transform .2s var(--ease); display:inline-block;}
.chan .row a:hover,.chan .row span.mk:hover{opacity:1; color:var(--rust); transform:translateY(-3px);}
.chan .ph{margin-top:1.2rem; font-family:var(--mono); font-size:.62rem; letter-spacing:.1em; color:var(--gray);}

/* monochrome, tintable marketplace logos (mask + currentColor) */
.mklogo{display:inline-block; background-color:currentColor; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain;}
.mklogo.amazon{-webkit-mask-image:url(../marketplace/amazon.svg); mask-image:url(../marketplace/amazon.svg);}
.mklogo.ebay{-webkit-mask-image:url(../marketplace/ebay.svg); mask-image:url(../marketplace/ebay.svg);}
.mklogo.walmart{-webkit-mask-image:url(../marketplace/walmart.svg); mask-image:url(../marketplace/walmart.svg);}
.mklogo.newegg{-webkit-mask-image:url(../marketplace/newegg.svg); mask-image:url(../marketplace/newegg.svg);}

/* where-to-buy cards (brand pages) */
.buy{display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem;}
.buy .store{border:1px solid var(--line); background:#fff; border-radius:6px; padding:1.8rem 1.2rem; text-align:center; font-family:var(--display); font-weight:700; font-size:1.05rem; color:var(--ink); transition:transform .25s var(--ease), border-color .25s, box-shadow .25s, color .25s; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.75rem; min-height:132px;}
.buy .store:hover{transform:translateY(-4px); border-color:var(--rust); box-shadow:0 14px 34px rgba(24,19,16,.10); color:var(--rust);}
.buy .store .mklogo{height:30px; width:104px; opacity:.62; transition:opacity .2s;}
.buy .store:hover .mklogo{opacity:1;}
.buy .store .s{display:block; font-family:var(--mono); font-weight:400; font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gray);}
.buy .store.direct{background:var(--ink); color:#fff; border-color:transparent;}
.buy .store.direct:hover{color:#fff; box-shadow:0 16px 38px rgba(24,19,16,.28);}
.buy .store.direct .s{color:#b7ab9c;}
@media (max-width:760px){ .buy{grid-template-columns:repeat(2,1fr);} }

/* home channels — same card treatment as the brand-page where-to-buy cards */
.chan .buy{max-width:900px; margin:0 auto;}
.chan .buy .store{min-height:110px;}

/* single-CTA "visit the store" band (brand pages) */
.visit-cta{position:relative; background:var(--ink); color:#EDE6DE; overflow:hidden; padding:5.5rem 0; text-align:center;}
.visit-cta .topo{position:absolute; inset:-15%; background:url(../contours/contour-rings-rust.svg) center/contain no-repeat; opacity:.14; z-index:0; pointer-events:none;}
.visit-cta .wrap{position:relative; z-index:1;}
.visit-cta .vc-eyebrow{font-family:var(--mono); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--rust); margin-bottom:1.2rem; display:block;}
.visit-cta h2{color:#fff; font-size:clamp(1.8rem,3.6vw,2.8rem); max-width:22ch; margin:0 auto 1rem;}
.visit-cta p{color:#c9bdb0; font-size:1.1rem; max-width:46ch; margin:0 auto 2.6rem;}
.visit-cta .vc-link{display:inline-flex; align-items:center; gap:1.1rem; background:var(--rust); color:#fff; padding:1.3rem 2.6rem; border-radius:999px; font-family:var(--mono); font-size:1.15rem; letter-spacing:.02em; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background-color .25s;}
.visit-cta .vc-link:hover{background:var(--rust-d); transform:translateY(-3px) scale(1.02); box-shadow:0 18px 40px rgba(180,71,46,.4);}
.visit-cta .vc-link .vc-arrow{transition:transform .25s var(--ease); font-family:var(--display); font-weight:700;}
.visit-cta .vc-link:hover .vc-arrow{transform:translateX(6px);}
@media (max-width:640px){ .visit-cta{padding:4rem 0;} .visit-cta .vc-link{padding:1.1rem 1.8rem; font-size:1rem; gap:.7rem;} }

/* Denali feature (iVUE) */
.denali-feature{display:grid; grid-template-columns:1.5fr 1fr; gap:1.5rem; align-items:stretch;}
.denali-feature .lifestyle{position:relative; border-radius:10px; overflow:hidden; min-height:440px; box-shadow:0 24px 60px rgba(24,19,16,.22); transform-style:preserve-3d; will-change:transform;}
.denali-feature .lifestyle img{width:100%; height:100%; object-fit:cover; transform:scale(1.02); transition:transform .6s var(--ease);}
.denali-feature .lifestyle:hover img{transform:scale(1.06);}
.denali-feature .lifestyle figcaption{position:absolute; left:0; right:0; bottom:0; padding:2.4rem 1.6rem 1.2rem; background:linear-gradient(180deg,transparent,rgba(24,19,16,.75)); color:#fff; font-family:var(--mono); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;}
.denali-feature .products{display:grid; grid-template-rows:1fr 1fr; gap:1.5rem;}
.denali-feature .pshot{position:relative; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; display:flex; align-items:center; justify-content:center; padding:1.4rem; transition:transform .25s var(--ease), border-color .25s, box-shadow .25s;}
.denali-feature .pshot:hover{transform:translateY(-3px); border-color:var(--rust); box-shadow:0 14px 34px rgba(24,19,16,.10);}
.denali-feature .pshot img{width:100%; height:100%; object-fit:contain; max-height:200px;}
.denali-feature .pshot .lbl{position:absolute; left:1rem; bottom:.8rem; font-family:var(--mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gray);}
@media (max-width:820px){ .denali-feature{grid-template-columns:1fr;} .denali-feature .products{grid-template-columns:1fr 1fr; grid-template-rows:none;} .denali-feature .lifestyle{min-height:340px;} }

/* POV gallery (iVUE) */
.pov{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem;}
.pov figure{position:relative; border-radius:8px; overflow:hidden; aspect-ratio:4/3; cursor:pointer;}
.pov img{width:100%; height:100%; object-fit:cover; transform:scale(1.01); transition:transform .6s var(--ease);}
.pov figure:hover img{transform:scale(1.07);}
.pov figcaption{position:absolute; left:0; right:0; bottom:0; padding:2rem 1.2rem .9rem; background:linear-gradient(180deg,transparent,rgba(24,19,16,.72)); color:#fff; font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; opacity:0; transform:translateY(8px); transition:opacity .35s, transform .35s var(--ease);}
.pov figure:hover figcaption{opacity:1; transform:none;}
@media (max-width:760px){ .pov{grid-template-columns:1fr;} .pov figure{aspect-ratio:16/10;} }

/* feature chips (RG categories etc.) */
.feats{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem;}
.feat{border:1px solid var(--line); border-radius:6px; padding:1.9rem 1.6rem; background:#fff; transition:transform .25s var(--ease), border-color .25s, box-shadow .25s;}
.feat:hover{transform:translateY(-4px); border-color:var(--rust); box-shadow:0 14px 34px rgba(24,19,16,.09);}
.feat .n{font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--rust);}
.feat h3{font-size:1.2rem; margin:.6rem 0 .4rem; font-weight:700;}
.feat p{color:var(--gray); font-size:.98rem;}
@media (max-width:760px){ .feats{grid-template-columns:1fr;} }

/* teton band */
.teton{position:relative; min-height:92vh; display:flex; align-items:center; overflow:hidden; background:#0b0b0c;}
.teton .bg{position:absolute; inset:-8% 0; z-index:0; will-change:transform;}
.teton .bg img{width:100%; height:100%; object-fit:cover;}
.teton .bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(11,11,12,.8) 0%, rgba(11,11,12,.35) 60%, rgba(11,11,12,.5) 100%);}
.teton .wrap{position:relative; z-index:1; color:#fff;}
.teton .eyebrow{color:#cbd2d8;}
.teton h2{color:#fff; font-size:clamp(2.2rem,5vw,4rem); max-width:16ch; margin-top:1.2rem;}
.teton h2 span{color:#E7B9A6;}
.teton .cap{margin-top:2rem; font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.68);}
.teton.compact{min-height:64vh;}

/* teton PINNED scroll-scrub cinematic (home) — freeze + drone zoom on scroll */
.teton-pin{position:relative; height:300vh; background:#0b0b0c;}
.teton-stage{position:sticky; top:0; height:100vh; overflow:hidden; display:flex; align-items:center;}
.teton-stage .tbg{position:absolute; inset:0; z-index:0; will-change:transform;}
.teton-stage .tbg img{width:100%; height:100%; object-fit:cover;}
.teton-stage .tveil{position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgba(11,11,12,.72) 0%, rgba(11,11,12,.28) 55%, rgba(11,11,12,.5) 100%); opacity:.5; will-change:opacity;}
.teton-stage .tcontent{position:relative; z-index:2; width:100%; max-width:var(--max); margin:0 auto; padding:0 2.5rem; color:#fff; will-change:transform,opacity;}
.teton-stage .eyebrow{color:#cbd2d8;}
.teton-stage h2{color:#fff; font-size:clamp(2.4rem,5.6vw,4.6rem); max-width:16ch; margin-top:1.2rem;}
.teton-stage h2 span{color:#E7B9A6;}
.teton-stage .cap{margin-top:2rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.7);}
.teton-scrollhint{position:absolute; left:50%; bottom:1.8rem; transform:translateX(-50%); z-index:2; color:rgba(255,255,255,.6); font-family:var(--mono); font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; will-change:opacity;}
@media (prefers-reduced-motion:reduce){
  .teton-pin{height:100vh;}
  .teton-stage{position:relative;}
  .teton-stage .tbg{transform:none!important;}
  .teton-stage .tcontent{transform:none!important; opacity:1!important;}
  .teton-scrollhint{display:none;}
}
@media (max-width:640px){ .teton-pin{height:230vh;} }

/* contact */
.contact-grid{display:grid; grid-template-columns:1fr 1.1fr; gap:4rem; align-items:start;}
.contact-grid .intro h2{font-size:clamp(2rem,4vw,3rem);}
.contact-grid .intro p{color:var(--gray); font-size:1.1rem; margin-top:1.1rem; max-width:44ch;}
.cmeta{margin-top:2.4rem; display:grid; gap:1.4rem;}
.cmeta .item{display:flex; gap:1rem; align-items:baseline;}
.cmeta .k{font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--rust); min-width:92px;}
.cmeta .v{color:var(--text); font-size:1.02rem;}
.cmeta .v a{color:var(--rust); font-weight:600;}
.cform{background:#fff; border:1px solid var(--line); border-radius:8px; padding:2.4rem; box-shadow:0 20px 50px rgba(24,19,16,.07);}
.cform .row{display:grid; grid-template-columns:1fr 1fr; gap:1.1rem;}
.cform label{display:block; font-family:var(--mono); font-size:.66rem; letter-spacing:.13em; text-transform:uppercase; color:var(--gray); margin-bottom:.45rem;}
.cform .field{margin-bottom:1.2rem;}
.cform input,.cform select,.cform textarea{width:100%; padding:.85rem 1rem; font-family:var(--body); font-size:1rem; color:var(--text); background:var(--bone); border:1px solid var(--line); border-radius:4px; transition:border-color .2s, box-shadow .2s;}
.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--rust); box-shadow:0 0 0 3px rgba(180,71,46,.14); outline:none;}
.cform textarea{min-height:140px; resize:vertical;}
.cform .note{font-size:.85rem; color:var(--gray); margin-top:1rem;}
.cform-status{padding:1.7rem 1.9rem; border-radius:8px; font-size:1.02rem; line-height:1.55; box-shadow:0 20px 50px rgba(24,19,16,.07);}
.cform-status.ok{background:#ECF3EA; border:1px solid #C4E0C4; color:#2f5d34;}
.cform-status.err{background:#FBEDE9; border:1px solid #EBC7BC; color:#8a3a26;}
.cform-status a{color:inherit; font-weight:600; text-decoration:underline;}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} .cform .row{grid-template-columns:1fr;} }
@media (max-width:640px){ .cform{padding:1.25rem;} }

/* reusable 2-column split (desktop) -> stacked (mobile) */
.split-grid{display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center;}
.split-grid.ratio-wide{grid-template-columns:1fr 1.3fr; gap:4rem; align-items:start;}
@media (max-width:760px){ .split-grid, .split-grid.ratio-wide{grid-template-columns:1fr; gap:2rem; align-items:start;} }

/* breadcrumb-ish page top spacing for light pages */
.pagetop{padding-top:10rem;}
