:root{--ivory:#faf7f2;--stone:#efe9df;--ink:#24211d;--muted:#6d665c;--gold:#a8874f;--slate:#2f3a45;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--ivory);line-height:1.7;font-size:17px}
img{display:block;max-width:100%}a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15}
h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:1rem}h3{font-size:1.6rem;margin-bottom:.5rem}
em{font-style:italic;color:var(--gold)}
.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:.75rem;color:var(--gold);font-weight:500;margin-bottom:1rem}
.center{text-align:center}
section{padding:110px 0}
.btn{display:inline-block;background:var(--gold);color:#fff;text-decoration:none;padding:15px 34px;letter-spacing:.15em;text-transform:uppercase;font-size:.8rem;font-weight:500;border:1px solid var(--gold);transition:.3s;cursor:pointer;font-family:var(--sans)}
.btn:hover{background:#8f7140}.btn-ghost{background:transparent;border-color:#fff}.btn-ghost:hover{background:#fff;color:var(--ink)}
.btn-sm{padding:9px 20px;color:#fff!important}
/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:20px 40px;transition:.35s;color:#fff}
.nav.solid{background:rgba(250,247,242,.96);color:var(--ink);padding:12px 40px;box-shadow:0 1px 20px rgba(0,0,0,.06)}
.brand{font-family:var(--serif);font-size:1.6rem;text-decoration:none;letter-spacing:.03em}
.links{display:flex;gap:30px;align-items:center}.links a{text-decoration:none;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase}
.links a:not(.btn):hover{color:var(--gold)}
.burger{display:none;background:none;border:0;width:30px;cursor:pointer}.burger span{display:block;height:2px;background:currentColor;margin:7px 0}
/* hero: low-res photo constrained, blurred backdrop + overlay */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;padding:0;background:var(--slate)}
.hero::before{content:"";position:absolute;inset:-40px;background:url(images/aerial-front.jpg) center/cover;filter:blur(28px) brightness(.7);transform:scale(1.1)}
.hero-img{position:absolute;inset:0;max-width:1400px;margin:0 auto}
.hero-img img{width:100%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,22,28,.55),rgba(20,22,28,.35) 45%,rgba(20,22,28,.7))}
.hero-copy{position:relative;z-index:2;padding:0 24px;max-width:900px;animation:rise 1.2s ease both}
.hero .eyebrow{color:#e8d7b5}.hero h1{font-size:clamp(2.6rem,6.5vw,5.2rem);margin-bottom:1.2rem}.hero h1 em{color:#e8d7b5}
.lede{font-size:1.15rem;max-width:560px;margin:0 auto 2.2rem;opacity:.92}.cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
@keyframes rise{from{opacity:0;transform:translateY(30px)}}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.45s}
body{transition:opacity .35s ease}body.fade-out{opacity:0}body.fade-in{opacity:0}
.links a[aria-current]{color:var(--gold)}
.nav.solid .links a[aria-current]{color:var(--gold)}
.banner{position:relative;min-height:min(62vh,560px);display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden;background:var(--slate);padding:120px 0 70px}
.banner::before{content:"";position:absolute;inset:-40px;background:var(--bg,none) center/cover;filter:blur(28px) brightness(.6)}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,22,28,.6),rgba(20,22,28,.55))}
.banner .hero-img img{width:100%;height:100%;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent);mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent)}
.banner .eyebrow{color:#e8d7b5}.banner h1{font-size:clamp(2.4rem,5.5vw,4.2rem);margin-bottom:.8rem}.banner h1 em{color:#e8d7b5}
.banner .lede{margin-bottom:0}
/* ===== Editorial redesign (below hero) ===== */
:root{--bone:#f6f2eb;--paper:#fbf9f5;--char:#1d1c1a;--soft:#7a736a;--rule:#d9d2c6;--champ:#a8874f;--label:'Jost',system-ui,sans-serif}
body{background:var(--paper)}
main>section:not(.hero):not(.banner){padding:0}
.lbl{font-family:var(--label);font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;font-weight:400;color:var(--soft)}
.lbl b{color:var(--champ);font-weight:400;margin-right:.9em}
.x{max-width:1320px;margin:0 auto;padding:0 clamp(22px,5vw,64px)}
.d{font-family:var(--serif);font-weight:300;letter-spacing:-.015em;line-height:1.02;color:var(--char)}
.d em{color:var(--champ);font-weight:300}
.d-xl{font-size:clamp(2.8rem,7.4vw,7rem)}.d-l{font-size:clamp(2.3rem,5vw,4.6rem)}.d-m{font-size:clamp(1.8rem,3.2vw,2.8rem);line-height:1.1}
.body{font-size:1.02rem;line-height:1.85;color:#4a463f;max-width:34em}
.body+.body{margin-top:1.1em}
.ul{position:relative;text-decoration:none;font-family:var(--label);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--char);padding-bottom:6px;display:inline-block}
.ul::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:right;transform:scaleX(.35);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.ul:hover::after{transform:scaleX(1);transform-origin:left}
.btn-line{display:inline-block;font-family:var(--label);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--char);border:1px solid var(--char);padding:18px 38px;text-decoration:none;background:none;cursor:pointer;transition:background .4s,color .4s}
.btn-line:hover{background:var(--char);color:var(--paper)}
.btn-line.light{color:var(--paper);border-color:rgba(255,255,255,.5)}.btn-line.light:hover{background:var(--paper);color:var(--char)}
/* photos: muted, framed, grain to soften low-res */
.ph{position:relative;overflow:hidden;background:#d8d1c4}
.ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(.96) brightness(1.02);transform:scale(1.06);transition:transform 2.4s cubic-bezier(.2,.7,.2,1)}
.in .ph img,.ph.in img{transform:scale(1)}
.ph::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;mix-blend-mode:overlay;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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.cap{font-family:var(--serif);font-style:italic;font-size:.98rem;color:var(--soft);margin-top:14px}
.cap span{font-family:var(--label);font-style:normal;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;margin-right:12px;color:var(--champ)}
/* chapter header */
.chap{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px;border-top:1px solid var(--rule);padding-top:22px;margin-bottom:clamp(50px,7vw,100px)}
.chap .lbl:first-child{grid-column:1/4}.chap .lbl:last-child{grid-column:10/13;text-align:right}
/* opening statement */
.open{padding:clamp(110px,14vw,200px) 0 clamp(90px,10vw,150px)!important}
.open .g12{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.open .lbl{grid-column:1/3;padding-top:1.4em}
.open .d{grid-column:3/12}
.open .body{grid-column:7/12;margin-top:50px}
/* editorial rows */
.ed{padding-bottom:clamp(110px,13vw,190px)!important}
.g{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end}
.ed-a .ph{grid-column:1/8;aspect-ratio:16/10.5}
.ed-a .txt{grid-column:9/13;padding-bottom:10px}
.ed-b .ph{grid-column:6/13;grid-row:1;aspect-ratio:4/3}
.ed-b .txt{grid-column:1/5;grid-row:1;padding-bottom:10px}
.txt .d{margin:18px 0 26px}.txt .ul{margin-top:34px}
.arch{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);margin-top:70px}
.arch div{padding:28px 28px 0 0}.arch div+div{padding-left:28px;border-left:1px solid var(--rule)}
.arch h4{font-family:var(--serif);font-weight:300;font-size:1.7rem;color:var(--char);margin-bottom:8px}
.arch p{font-size:.92rem;color:var(--soft);line-height:1.7}
/* pull quote */
.pull{background:var(--bone);padding:clamp(110px,13vw,180px) 0!important;text-align:center}
.pull blockquote{font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(2.2rem,5.4vw,5rem);line-height:1.08;letter-spacing:-.015em;color:var(--char);max-width:15em;margin:0 auto}
.pull blockquote::before{content:"“";display:block;font-size:1.4em;line-height:.6;color:var(--champ);margin-bottom:.2em}
.pull cite{display:block;margin-top:42px}
/* story teaser */
.story2 .g{align-items:start}
.story2 .ph{grid-column:1/6;aspect-ratio:3/4}
.story2 .txt{grid-column:7/12;padding-top:8vw}
.facts{display:grid;grid-template-columns:repeat(3,auto);gap:0 50px;justify-content:start;margin-top:46px;padding-top:26px;border-top:1px solid var(--rule)}
.facts strong{display:block;font-family:var(--serif);font-weight:300;font-size:2.6rem;color:var(--char);line-height:1}
.facts span{font-family:var(--label);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--soft)}
/* chambers duo */
.duo{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.duo article{padding:60px 50px 64px 0}.duo article+article{padding-left:50px;border-left:1px solid var(--rule)}
.duo .d{margin:16px 0 20px}
/* events list */
.dark{background:var(--char);color:#e9e4da;padding:clamp(110px,13vw,180px) 0!important}
.dark .d{color:#f4efe6}.dark .body{color:#b5aea2}.dark .chap{border-color:#3a3833}.dark .lbl{color:#9d968a}
.ev-intro{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;margin-bottom:80px}
.ev-intro .d{grid-column:1/8}.ev-intro .body{grid-column:9/13;align-self:end}
.ev{border-top:1px solid #3a3833}
.ev a,.ev div.row{display:grid;grid-template-columns:80px 1fr 1.1fr 40px;gap:24px;align-items:baseline;padding:34px 0;border-bottom:1px solid #3a3833;text-decoration:none;color:inherit;transition:padding .5s}
.ev a:hover{padding-left:14px}
.ev .n{font-family:var(--label);font-size:.68rem;letter-spacing:.3em;color:var(--champ)}
.ev h3{font-family:var(--serif);font-weight:300;font-size:clamp(1.8rem,3.4vw,3rem);color:#f4efe6;line-height:1}
.ev p{color:#a9a296;font-size:.95rem;line-height:1.7}
.ev .ar{font-size:1.3rem;color:var(--champ);transition:transform .5s}.ev a:hover .ar{transform:translateX(6px)}
/* gallery: asymmetric */
.gal{padding:clamp(110px,13vw,180px) 0!important}
.gal-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(80px,8vw,120px);gap:24px}
.gal-grid a{display:block;text-decoration:none;color:inherit}
.gal-grid a .ph{height:100%}
.gi1{grid-column:1/8;grid-row:span 5}.gi2{grid-column:9/13;grid-row:2/span 3}.gi3{grid-column:9/13;grid-row:6/span 3}.gi4{grid-column:2/6;grid-row:7/span 3}.gi5{grid-column:6/9;grid-row:7/span 3}
.lightbox{position:fixed;inset:0;background:rgba(18,17,15,.95);z-index:100;display:flex;align-items:center;justify-content:center;padding:40px}
.lightbox[hidden]{display:none}.lightbox img{max-height:82vh;max-width:min(90vw,980px)}
.lightbox button{position:absolute;top:24px;right:34px;background:none;border:0;color:#fff;font-size:2.2rem;font-weight:200;cursor:pointer}
/* CTA */
.cta2{padding:clamp(120px,14vw,200px) 0!important;text-align:center;border-top:1px solid var(--rule)}
.cta2 .d{margin:22px auto 30px;max-width:12em}.cta2 .body{margin:0 auto 46px;color:var(--soft)}
/* reviews page */
.rv-feat{padding:clamp(100px,12vw,170px) 0 clamp(80px,9vw,130px)!important}
.rv-feat .g{align-items:start}
.rv-feat blockquote{grid-column:3/12;font-family:var(--serif);font-weight:300;font-size:clamp(1.9rem,3.6vw,3.3rem);line-height:1.18;letter-spacing:-.01em;color:var(--char)}
.rv-feat .lbl.side{grid-column:1/3;padding-top:.8em}
.rv-feat cite{display:block;margin-top:40px;font-style:normal}
.rv-list{padding-bottom:clamp(110px,13vw,180px)!important}
.rv-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 80px;border-top:1px solid var(--rule)}
.rv-item{padding:44px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:52px 1fr;gap:18px}
.rv-item .n{font-family:var(--label);font-size:.66rem;letter-spacing:.3em;color:var(--champ);padding-top:.7em}
.rv-item p{font-family:var(--serif);font-weight:300;font-size:clamp(1.35rem,2vw,1.75rem);line-height:1.32;color:var(--char)}
.rv-item cite{display:block;margin-top:16px;font-style:normal}
/* contact */
.ct{padding:clamp(100px,12vw,170px) 0!important}
.ct .g{align-items:start}
.ct-info{grid-column:1/5;position:sticky;top:120px}
.ct-info address{font-style:normal;font-family:var(--serif);font-weight:300;font-size:2rem;line-height:1.25;color:var(--char);margin:22px 0 26px}
.ct-info .tel{font-family:var(--serif);font-weight:300;font-size:2rem;color:var(--champ);text-decoration:none}
.ct-info .body{margin-top:24px;color:var(--soft);font-size:.95rem}
.ct-info .map{width:100%;height:240px;border:0;margin-top:40px;filter:grayscale(1) contrast(.9) opacity(.85)}
.ct-forms{grid-column:6/13;display:grid;gap:110px}
.f .d{margin:16px 0 46px}
.f .fr{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.f label{display:block;position:relative;margin-bottom:34px}
.f label>span{display:block;font-family:var(--label);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--soft);margin-bottom:6px}
.f input,.f select,.f textarea{width:100%;font-family:var(--serif);font-size:1.35rem;font-weight:300;color:var(--char);background:transparent;border:0;border-bottom:1px solid var(--rule);padding:8px 0 12px;outline:none;border-radius:0;-webkit-appearance:none;appearance:none;transition:border-color .4s}
.f select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237a736a'/%3E%3C/svg%3E") right 4px center no-repeat}
.f textarea{resize:vertical;min-height:110px}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--char)}
.f .invalid{border-color:#a5533e}
.f .form-msg{font-family:var(--serif);font-size:1.15rem;color:#a5533e;margin-top:18px}
.f .form-msg.ok{font-weight:300;font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.3;color:var(--char);border-top:1px solid var(--rule);padding-top:30px;margin-top:0}
.f.done>*:not(.form-msg):not(.lbl):not(.d){display:none}
.slots{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 34px}
.slots input{position:absolute;opacity:0;pointer-events:none}
.slots label{margin:0}.slots label span{display:block;font-family:var(--label);font-size:.72rem;letter-spacing:.18em;color:var(--char);border:1px solid var(--rule);padding:12px 18px;cursor:pointer;transition:.3s;margin:0;text-transform:none}
.slots input:checked+span{background:var(--char);color:var(--paper);border-color:var(--char)}
.slots.invalid span{border-color:#a5533e}
/* about page */
.ab-open .g{align-items:start}
.ab-open .d{grid-column:1/9}
.ab-open .side{grid-column:10/13;padding-top:1.2em}
.letter{grid-column:2/7;margin-top:80px}
.letter .ph{aspect-ratio:4/5}
.letter-txt{grid-column:8/12;margin-top:80px;align-self:center}
.letter-txt .note{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.2;color:var(--char);margin-bottom:34px}
.tl{border-top:1px solid var(--rule)}
.tl div{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding:40px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.tl strong{grid-column:1/4;font-family:var(--serif);font-weight:300;font-size:clamp(2.2rem,4vw,3.6rem);color:var(--char);line-height:1}
.tl h4{grid-column:4/8;font-family:var(--serif);font-weight:300;font-size:1.7rem;color:var(--char)}
.tl p{grid-column:8/13;color:var(--soft);font-size:.95rem;line-height:1.75}
/* footer */
.ft{background:var(--char);color:#a9a296;padding:110px 0 40px;font-size:.88rem}
.ft-top{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;padding-bottom:90px}
.ft-mark{grid-column:1/6;font-family:var(--serif);font-weight:300;font-size:clamp(3rem,7vw,6.4rem);line-height:.95;letter-spacing:-.02em;color:#f4efe6;text-decoration:none}
.ft-mark em{color:var(--champ);font-weight:300}
.ft-col{grid-column:span 2}.ft-col:first-of-type{grid-column:7/9}
.ft-col .lbl{display:block;margin-bottom:18px;color:#6f695f}
.ft-col a{display:block;text-decoration:none;color:#d8d2c7;margin-bottom:8px;width:max-content}
.ft-col a:hover{color:#fff}
.ft-col p{color:#d8d2c7;line-height:1.7}
.ft-bot{display:flex;justify-content:space-between;border-top:1px solid #3a3833;padding-top:26px;font-family:var(--label);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:#6f695f}
/* reveal w/ stagger */
.rv-up{opacity:0;transform:translateY(34px);transition:opacity 1.2s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*110ms)}
.rv-up.in{opacity:1;transform:none}
/* mobile full-screen menu */
@media (max-width:960px){
 .burger{display:block;position:relative;z-index:60}.nav,.nav.solid{padding:14px 22px}
 .links{position:fixed;inset:0;height:100vh;height:100dvh;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:0 34px;background:var(--char);color:#f4efe6;opacity:0;visibility:hidden;transform:none;transition:opacity .5s,visibility .5s;box-shadow:none}
 .links.open{opacity:1;visibility:visible}
 .links a:not(.btn){font-family:var(--serif);font-weight:300;font-size:2.8rem;letter-spacing:-.01em;text-transform:none;line-height:1.3;opacity:0;transform:translateY(16px);transition:.6s cubic-bezier(.2,.7,.2,1)}
 .links.open a:not(.btn){opacity:1;transform:none}
 .links.open a:nth-child(2){transition-delay:.06s}.links.open a:nth-child(3){transition-delay:.12s}.links.open a:nth-child(4){transition-delay:.18s}
 .links .btn{margin-top:30px}
 body.menu-open{overflow:hidden}body.menu-open .nav{color:#f4efe6;background:transparent;box-shadow:none}body.menu-open .brand{position:relative;z-index:60}
 .g,.open .g12,.ev-intro,.ft-top{grid-template-columns:1fr}
 .g>*,.open .g12>*,.ev-intro>*,.ft-top>*{grid-column:1/-1!important;grid-row:auto!important}
 .open .body{margin-top:30px}.ed-b .ph{order:0}.txt{padding-top:34px!important}
 .arch{grid-template-columns:1fr}.arch div,.arch div+div{padding:24px 0;border-left:0;border-bottom:1px solid var(--rule)}
 .duo{grid-template-columns:1fr}.duo article,.duo article+article{padding:44px 0;border-left:0}.duo article+article{border-top:1px solid var(--rule)}
 .ev a,.ev div.row{grid-template-columns:44px 1fr;gap:6px 14px}.ev p{grid-column:2}.ev .ar{display:none}
 .gal-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px;gap:12px}.gi1{grid-column:1/3!important;grid-row:span 2!important}.gal-grid a{grid-column:auto;grid-row:span 1}
 .gal-grid>a{grid-column:auto;grid-row:auto}.gi4,.gi5{grid-row:auto!important}
 .rv-cols{grid-template-columns:1fr}.ct-info{position:static}.ct-forms{gap:80px}
 .chap .lbl:first-child{grid-column:1/8}.chap .lbl:last-child{grid-column:8/13}
 .letter,.letter-txt{margin-top:50px}
 .tl div{grid-template-columns:1fr;gap:8px}.tl div>*{grid-column:1!important}
 .ft-col,.ft-col:first-of-type{grid-column:1/-1}.ft-top{gap:40px}
}
@media (max-width:600px){.f .fr{grid-template-columns:1fr}.facts{gap:0 26px}.facts strong{font-size:2rem}.ft-bot{flex-direction:column;gap:10px}.pull blockquote{font-size:2rem}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.rv-up{opacity:1;transform:none}.ph img{transform:none}}
/* ===== Storybook ===== */
.progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:70;pointer-events:none}
.progress span{display:block;height:100%;background:var(--champ);transform-origin:left;transform:scaleX(var(--p,0))}
.prologue{padding:clamp(130px,16vw,230px) 0 clamp(100px,11vw,160px)!important;text-align:center}
.prologue .d{max-width:11em;margin:26px auto 50px}
.prologue .body{margin:0 auto;text-align:left;max-width:36em;font-size:1.1rem}
.dropcap::first-letter{float:left;font-family:var(--serif);font-weight:300;font-size:5.4em;line-height:.78;padding:.06em .1em 0 0;color:var(--champ)}
.scroll-cue{display:inline-flex;flex-direction:column;align-items:center;gap:14px;margin-top:80px;font-family:var(--label);font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;color:var(--soft)}
.scroll-cue::after{content:"";width:1px;height:60px;background:linear-gradient(var(--soft),transparent);animation:cue 2.4s ease-in-out infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.book{border-top:1px solid var(--rule)}
.book-in{display:grid;grid-template-columns:1.15fr 1fr;max-width:1500px;margin:0 auto}
.stage{position:sticky;top:0;height:100vh;height:100svh;padding:90px 0 50px clamp(22px,4vw,56px);overflow:hidden}
.st-img{position:absolute;inset:90px 0 50px clamp(22px,4vw,56px);clip-path:inset(0 0 100% 0);transition:clip-path 1.3s cubic-bezier(.7,0,.2,1)}
.st-img.on{clip-path:inset(0 0 0 0);z-index:2}.st-img.was{clip-path:inset(0);z-index:1}
.st-img .ph{height:100%}.st-img img{transform:scale(1.12) translateY(var(--py,0));transition:transform 2.6s cubic-bezier(.2,.7,.2,1)}
.st-img.on img{transform:scale(1.04) translateY(var(--py,0))}
.st-num{position:absolute;right:24px;bottom:66px;z-index:5;font-family:var(--label);font-size:.66rem;letter-spacing:.3em;color:#fff;mix-blend-mode:difference}
.st-num span{font-family:var(--serif);font-size:2.2rem;letter-spacing:0;vertical-align:-.15em}
.pages{padding:0 clamp(22px,5vw,90px)}
.pg{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:12vh 0;border-bottom:1px solid var(--rule)}
.pg:last-child{border-bottom:0}
.pg-ph{display:none}
.pg-t{font-family:var(--serif);font-weight:300;font-size:clamp(3rem,6vw,5.8rem);line-height:.95;letter-spacing:-.025em;color:var(--char);margin:26px 0 22px}
.pg-h{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.3rem,1.9vw,1.7rem);color:var(--champ);margin-bottom:34px;line-height:1.3}
.pg .body{max-width:30em}
.pg>*{opacity:.18;transform:translateY(18px);transition:opacity 1s,transform 1s cubic-bezier(.2,.7,.2,1)}
.pg.act>*{opacity:1;transform:none}.pg.act>*:nth-child(3){transition-delay:.08s}.pg.act>*:nth-child(4){transition-delay:.16s}.pg.act>*:nth-child(5){transition-delay:.24s}.pg.act>*:nth-child(6){transition-delay:.32s}
.duo2{display:grid;grid-template-columns:1fr 1fr;margin-top:46px;border-top:1px solid var(--rule)}
.duo2>div{padding:24px 20px 0 0}.duo2>div+div{padding-left:24px;border-left:1px solid var(--rule)}
.duo2 h4{font-family:var(--serif);font-weight:300;font-size:1.65rem;color:var(--char);margin-top:8px;line-height:1.1}
.clip{clip-path:inset(12% 0 12% 0);transition:clip-path 1.4s cubic-bezier(.7,0,.2,1)}.clip.in{clip-path:inset(0)}
.home-rv{border-top:1px solid var(--rule)}
.rv-feat blockquote cite{margin-top:34px}
@media (max-width:960px){
 .book-in{grid-template-columns:1fr}.stage{display:none}
 .pages{padding:0 22px}.pg{min-height:auto;padding:70px 0}
 .pg-ph{display:block;aspect-ratio:4/3;margin-bottom:34px}
 .pg>*{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){.st-img,.clip{transition:none!important}.clip{clip-path:none}.pg>*{opacity:1;transform:none}.scroll-cue::after{animation:none}}
/* ===================== V3 · Glass & steel inside stone ===================== */
:root{--sans:'Inter Tight',system-ui,sans-serif;--serif:'Inter Tight',system-ui,sans-serif;--label:'JetBrains Mono',ui-monospace,monospace;
 --paper:#ece4d6;--bone:#e3d8c5;--stone:#d9ccb5;--char:#141310;--ink:#141310;--soft:#6b6253;--rule:#141310;--champ:#c9862f;--gold:#c9862f;--glow:#ffd9a0;--ivory:#ece4d6}
body{background:var(--paper);font-family:var(--sans);font-weight:400;letter-spacing:-.005em;
 background-image:radial-gradient(1200px 600px at 85% -10%,rgba(255,200,130,.22),transparent 60%),repeating-linear-gradient(0deg,transparent 0 119px,rgba(20,19,16,.035) 119px 120px);background-attachment:fixed}
h1,h2,h3,h4,.d,.pg-t,.ft-mark,.pull blockquote,.rv-item p,.rv-feat blockquote,address,.tel,.phone,.letter-txt .note{font-family:var(--sans)!important;font-style:normal!important}
.d,.pg-t,.ft-mark{font-weight:300;letter-spacing:-.045em;line-height:.96}
.d em,.pg-t em,.ft-mark em,h1 em{font-style:normal!important;color:var(--champ);font-weight:300}
.lbl,.cap span,.ev .n,.rv-item .n,.st-num,.ul,.btn-line,.f label>span,.scroll-cue,.ft-bot,.facts span,.eyebrow{font-family:var(--label)!important;letter-spacing:.08em!important;text-transform:uppercase}
.lbl{font-size:.66rem;color:var(--soft)}.lbl b{color:var(--char);font-weight:400;border:1px solid var(--char);padding:2px 6px;margin-right:12px}
.body{color:#3d3830;font-size:1rem;line-height:1.7}
/* hero: keep layout, refresh type + warm glow */
.hero h1{font-weight:300;letter-spacing:-.045em;line-height:.98}.hero h1 em{color:var(--glow)}
.hero .eyebrow,.banner .eyebrow{color:var(--glow);font-size:.7rem}
.hero::after{background:linear-gradient(180deg,rgba(14,12,9,.55),rgba(14,12,9,.25) 45%,rgba(14,12,9,.75)),radial-gradient(60% 50% at 50% 60%,rgba(255,190,110,.18),transparent 70%)}
.hero-img img{animation:kb 30s ease-in-out infinite alternate}@keyframes kb{to{transform:scale(1.08)}}
.banner h1{font-weight:300;letter-spacing:-.04em}.banner h1 em{color:var(--glow)}
.btn{background:var(--glow);color:var(--char);border:1px solid var(--glow);border-radius:0;font-family:var(--label);letter-spacing:.08em;box-shadow:0 0 40px rgba(255,200,130,.35)}
.btn:hover{background:#fff;border-color:#fff}.btn-ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.6);backdrop-filter:blur(10px);box-shadow:none}
.btn-sm{color:var(--char)!important}
.nav .brand,.brand{font-family:var(--sans);font-weight:500;letter-spacing:-.03em}.brand em{font-style:normal;font-weight:300}
.links a{font-family:var(--label);font-size:.72rem;letter-spacing:.08em}
.nav.solid{background:rgba(236,228,214,.72);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);box-shadow:none;border-bottom:1px solid rgba(20,19,16,.85)}
/* frames */
.ph{border:1px solid var(--char);background:var(--stone)}
.ph img{filter:saturate(.85) contrast(1.02) sepia(.12)}
.ph::before{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.55);z-index:2;pointer-events:none}
.cap{font-family:var(--label);font-style:normal;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);display:flex;justify-content:space-between;border-bottom:1px solid var(--char);padding:10px 0;margin-top:0}
.chap{border-top:1px solid var(--char)}.chap .lbl b{margin-right:10px}
.x{max-width:1560px}
/* prologue */
.prologue{text-align:left}.prologue .d{margin:30px 0 50px;max-width:12em}.prologue .body{margin:0 0 0 auto;max-width:30em;border-left:1px solid var(--char);padding-left:28px}
.scroll-cue{margin-top:70px;flex-direction:row}.scroll-cue::after{width:80px;height:1px;background:var(--char);animation:cue2 2.4s ease-in-out infinite;transform-origin:left}
@keyframes cue2{0%{transform:scaleX(0)}60%{transform:scaleX(1)}100%{transform:scaleX(1);opacity:0}}
/* storybook → architectural */
.book{border-top:1px solid var(--char);border-bottom:1px solid var(--char)}
.book-in{max-width:none;grid-template-columns:1.25fr 1fr}
.stage{padding:84px 0 28px 28px;border-right:1px solid var(--char)}
.st-img{inset:84px 28px 28px 28px;clip-path:inset(0 100% 0 0)}
.st-img.on{clip-path:inset(0)}
.st-num{right:52px;bottom:52px;font-size:.7rem;color:var(--char);mix-blend-mode:normal;background:rgba(236,228,214,.6);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--char);padding:10px 14px}
.st-num span{font-family:var(--label);font-size:.7rem;vertical-align:0}
.pages{padding:0 clamp(22px,4vw,72px)}
.pg{border-bottom:1px solid var(--char)}
.pg-t{font-size:clamp(3rem,6.2vw,6.4rem);margin:20px 0 18px}
.pg-h{font-family:var(--sans);font-style:normal;font-weight:400;font-size:1.15rem;color:var(--champ)}
.pg>*{opacity:.12;transform:translateX(-14px)}.pg.act>*{opacity:1;transform:none}
.duo2,.duo,.arch,.facts{border-color:var(--char)}.duo2>div+div,.duo article+article,.arch div+div{border-color:var(--char)}
.duo2 h4{font-family:var(--sans);font-weight:400;letter-spacing:-.02em}
/* glass panels */
.glass,.st-num,.f,.ct-info{background:rgba(255,250,240,.42);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid rgba(20,19,16,.9)}
.f{padding:clamp(26px,3.5vw,52px)}.ct-info{padding:34px}
/* pull */
.pull{background:transparent;border-top:1px solid var(--char);border-bottom:1px solid var(--char);text-align:left}
.pull blockquote{font-weight:300;letter-spacing:-.04em;line-height:1;max-width:16em;margin:0}
.pull blockquote::before{content:"";display:block;width:56px;height:1px;background:var(--champ);box-shadow:0 0 18px var(--glow);margin-bottom:40px}
/* events: dark steel */
.dark{background:#141310;background-image:radial-gradient(800px 400px at 15% 0%,rgba(255,180,90,.14),transparent 70%)}
.dark .chap,.ev,.ev a{border-color:#3b362e!important}.ev h3{font-family:var(--sans);font-weight:300;letter-spacing:-.035em}
.ev a:hover{background:linear-gradient(90deg,rgba(255,200,130,.07),transparent)}
.dark .lbl b{color:#f2e8d8;border-color:#f2e8d8}
/* gallery */
.gal-grid{gap:0;border:1px solid var(--char);grid-auto-rows:clamp(80px,8vw,120px)}
.gal-grid .ph{border:0;outline:1px solid var(--char)}
/* reviews */
.rv-feat blockquote{font-weight:300;letter-spacing:-.035em}.rv-cols{border-top:1px solid var(--char);gap:0}
.rv-item{border-bottom:1px solid var(--char);padding:40px 30px}.rv-cols>.rv-item:nth-child(odd){border-right:1px solid var(--char)}
.rv-item p{font-weight:300;letter-spacing:-.02em;font-size:clamp(1.25rem,1.8vw,1.6rem)}
/* about */
.tl,.tl div{border-color:var(--char)}.tl strong,.tl h4{font-family:var(--sans);font-weight:300;letter-spacing:-.04em}
.letter-txt .note{font-weight:300;letter-spacing:-.03em}
/* forms */
.f input,.f select,.f textarea{font-family:var(--sans);font-size:1.15rem;border-bottom:1px solid rgba(20,19,16,.4)}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--champ);box-shadow:0 1px 0 var(--champ)}
.slots label span{font-family:var(--label);border-color:var(--char);background:rgba(255,255,255,.25)}
.slots input:checked+span{background:var(--char);color:var(--glow)}
.f .form-msg.ok{font-family:var(--sans);border-color:var(--char)}
.btn-line{border-color:var(--char);font-size:.72rem}.btn-line:hover{background:var(--char);color:var(--glow);box-shadow:0 0 30px rgba(255,200,130,.35)}
.ct-info address{font-weight:300;letter-spacing:-.03em}.ct-info .tel{font-weight:400}
.ct-info .map{border:1px solid var(--char);filter:grayscale(1) sepia(.25) contrast(.95)}
/* footer */
.ft{background:#141310;background-image:radial-gradient(900px 400px at 90% 100%,rgba(255,180,90,.12),transparent 70%)}
.ft-mark{font-weight:300}.ft-mark em{color:var(--glow)}.ft-bot{border-color:#3b362e}
.cta2{border-top:1px solid var(--char);text-align:left}.cta2 .d{margin:22px 0 30px}.cta2 .body{margin:0 0 46px}
/* mobile menu */
@media (max-width:960px){.links{background:rgba(20,19,16,.92);backdrop-filter:blur(20px)}.links a:not(.btn){font-family:var(--sans);font-weight:300;letter-spacing:-.04em}
 .stage{border:0}.rv-cols>.rv-item:nth-child(odd){border-right:0}.rv-item{padding:34px 0}.prologue .body{margin:0}}
@media (prefers-reduced-motion:reduce){.hero-img img{animation:none}}
.hero h1{line-height:1.02}.pg .body{font-size:1.08rem;max-width:32em}.pg-h{font-size:1.25rem}
@media (max-width:600px){.hero h1{font-size:2.6rem}}
/* ===== V3 fill: outline trace + detail panel (active only with the pinned 2-column story ≥761px) ===== */
.fx{display:none}
@media (min-width:761px) and (max-width:960px){
 .book-in{grid-template-columns:1.1fr 1fr}.stage{display:block;padding:76px 0 22px 18px}.st-img{inset:76px 18px 22px 18px}
 .pages{padding:0 28px}.pg{min-height:100vh;min-height:100svh;padding:12vh 0}.pg-ph{display:none}
 .pg>*{opacity:.12;transform:translateX(-14px)}.pg.act>*{opacity:1;transform:none}
}
@media (min-width:761px){
 .pages{position:relative}.pg{position:relative;z-index:1}
 .fx{display:block;position:sticky;top:0;height:100vh;height:100svh;margin-bottom:-100vh;margin-bottom:-100svh;pointer-events:none;z-index:0}
 .fx-trace{position:absolute;left:0;right:0;bottom:4vh}
 .fx-lbl{display:block;font-family:var(--label);font-size:.6rem;letter-spacing:.1em;color:var(--soft);border-top:1px solid var(--char);padding-top:8px;margin-bottom:6px;opacity:.7}
 .fx-svg{display:block;width:100%;height:auto;max-height:30vh;overflow:visible}
 .fx-svg path{stroke:var(--champ);stroke-width:1.1;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:var(--o,1);vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px rgba(255,190,110,.55))}
 .fx-svg path:first-child{stroke:var(--char);opacity:.7;filter:none}
 .fx-det{position:absolute;top:96px;right:0;width:132px;margin:0;transition:opacity .5s}
 .fx-det.dim{opacity:.12}
 .fx-frame{position:relative;aspect-ratio:4/5;border:1px solid var(--char);background:var(--stone);overflow:hidden;box-shadow:0 0 30px rgba(255,200,130,.25)}
 .fx-frame::after{content:"";position:absolute;inset:6px;border:1px solid rgba(255,255,255,.55)}
 .fx-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease;filter:saturate(.85) sepia(.12)}
 .fx-frame img.on{opacity:1}
 .fx-det figcaption{font-family:var(--label);font-size:.56rem;letter-spacing:.06em;text-transform:uppercase;color:var(--soft);border-bottom:1px solid var(--char);padding:7px 0;display:flex;flex-direction:column;gap:3px}
 .fx-det figcaption em{font-style:normal;color:var(--char)}
}
@media (min-width:1200px){.fx-det{width:156px}}
@media (max-width:760px){.fx{display:none!important}}
@media (prefers-reduced-motion:reduce){.fx-svg path{stroke-dashoffset:0!important;transition:none}.fx-frame img{transition:none}}
@media (min-width:761px){.fx-trace{transition:opacity .5s}.fx-trace.dim{opacity:.22}}
/* ===== Fold fix + lanes + parallax ===== */
/* root cause fix: the unconditional V3 `.book-in{grid-template-columns:1.25fr 1fr}` overrode the stacked rule; re-assert stacking below 761px */
@media (max-width:760px){.book-in{grid-template-columns:1fr}.stage{display:none}.pg-ph{display:block}}
@media (min-width:761px){
 .pg{display:block;min-height:135vh;min-height:135svh;padding:0}
 .pg-in{position:sticky;top:clamp(84px,13vh,130px);padding:4vh 0 6vh}
 .pg:first-of-type .pg-in{padding-top:10vh}
 .pg>.pg-in>*{opacity:.12;transform:translateX(-14px);transition:opacity 1s,transform 1s cubic-bezier(.2,.7,.2,1)}
 .pg.act>.pg-in>*{opacity:1;transform:none}
 .pg>*{opacity:1!important;transform:none!important}
 .pg-t{font-size:clamp(2.6rem,5.2vw,5.6rem)}
 /* lower art lane */
 .fx-trace{left:0;right:34%;bottom:5vh;will-change:transform}
 .fx-svg{max-height:26vh}
 .fx-det{top:auto;bottom:5vh;right:0;width:clamp(110px,26%,156px);will-change:transform;perspective:600px}
 .fx-frame{transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,-6deg));transition:transform .6s cubic-bezier(.2,.7,.2,1)}
 .fx-det .float{animation:float 7s ease-in-out infinite}
 .fx-det.dim{opacity:.55}.fx-trace.dim{opacity:.5}
}
@media (min-width:761px) and (max-width:960px){.pg-t{font-size:3rem}.pg .body{font-size:.98rem}.pg-h{font-size:1.05rem;margin-bottom:18px}.fx-svg{max-height:22vh}}
@keyframes float{50%{translate:0 -6px}}
@media (prefers-reduced-motion:reduce){.fx-det .float{animation:none}.fx-frame{transform:none!important}.fx-trace,.fx-det{transform:none!important}}
/* ===================== SAGA · five cinematic scenes ===================== */
.saga{position:relative;overflow:hidden}
.sc{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:clamp(70px,9vh,120px) clamp(22px,5vw,72px)}
.sc-in{position:relative;width:100%;max-width:1440px;margin:0 auto;opacity:var(--o,1);transition:opacity .25s linear}
.sc-k{font-family:var(--label);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--champ);margin-bottom:18px;display:block}
.sc-t{font-weight:300;letter-spacing:-.05em;line-height:.92;font-size:clamp(2.8rem,6.4vw,6.6rem);color:var(--char);margin-bottom:26px}
.sc-t em,.sc4-t em{font-style:normal;color:var(--champ)}
.sc .body{max-width:30em;font-size:1.06rem}
[data-par]{will-change:transform}
/* unframed photo: warm duotone-ish grade, grain, soft masked edges */
.sc-ph{position:relative;isolation:isolate}
.sc-ph img{display:block;width:100%;height:auto;filter:sepia(.22) saturate(.85) contrast(1.04) brightness(1.02)}
.sc-ph::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:multiply;opacity:.55;
 background:linear-gradient(rgba(201,134,47,.18),rgba(201,134,47,.18)),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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .45 0 0 0 0 .38 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* 1 — giant 1200s behind photo */
.sc1 .sc-in{display:grid;grid-template-columns:repeat(12,1fr);align-items:center;min-height:72vh}
.sc-giant{position:absolute;left:-1.5vw;top:-6vh;font-weight:200;letter-spacing:-.07em;line-height:1;font-size:clamp(9rem,31vw,30rem);color:transparent;-webkit-text-stroke:1.5px rgba(201,134,47,.7);background:linear-gradient(180deg,rgba(201,134,47,.38),rgba(201,134,47,.04) 85%);-webkit-background-clip:text;background-clip:text;z-index:0;user-select:none;white-space:nowrap}
.sc1-ph{grid-column:5/13;grid-row:1;z-index:1;max-width:900px;margin-top:8vh;justify-self:end;width:100%;
 -webkit-mask-image:radial-gradient(closest-side,#000 62%,transparent 100%);mask-image:radial-gradient(closest-side,#000 62%,transparent 100%)}
.sc1-tx{grid-column:1/6;grid-row:1;z-index:2;padding-top:30vh}
/* 2 — panorama dissolving left, text right */
.sc2 .sc-in{min-height:70vh;display:flex;align-items:center}
.sc2-ph{position:absolute;left:calc(-1*clamp(22px,5vw,72px));top:50%;width:min(76vw,1180px);transform:translateY(-50%);
 -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%,#000 62%,transparent 100%),linear-gradient(0deg,transparent,#000 22%,#000 78%,transparent);-webkit-mask-composite:source-in;
 mask-image:linear-gradient(90deg,transparent 0,#000 30%,#000 62%,transparent 100%),linear-gradient(0deg,transparent,#000 22%,#000 78%,transparent);mask-composite:intersect}
.sc2-ph{transform:none;margin-top:calc(min(76vw,1180px)*-.2285)}
.sc2-tx{position:relative;margin-left:auto;width:min(44%,560px);z-index:2}
.sc2-tx .sc-t{margin-left:-14vw;text-shadow:0 0 30px rgba(236,228,214,.95),0 0 60px rgba(236,228,214,.8)}
.sc-coord{position:absolute;left:0;bottom:-6vh;font-family:var(--label);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
/* 3 — two photos overlapping at offsets, text between */
.sc3 .sc-in{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto auto;min-height:80vh;align-content:center}
.sc3-a{grid-column:1/8;grid-row:1/3;align-self:start;max-width:860px;z-index:1;
 -webkit-mask-image:linear-gradient(90deg,transparent,#000 15%,#000 55%,transparent),linear-gradient(0deg,transparent,#000 25%,#000 80%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 15%,#000 55%,transparent),linear-gradient(0deg,transparent,#000 25%,#000 80%,transparent);mask-composite:intersect}
.sc3-tx{grid-column:7/13;grid-row:1;z-index:3;padding:2vh 0 4vh 2vw}
.sc3-b{grid-column:5/10;grid-row:2;margin-top:-4vh;z-index:2;max-width:620px;
 -webkit-mask-image:radial-gradient(closest-side,#000 58%,transparent);mask-image:radial-gradient(closest-side,#000 58%,transparent)}
/* 4 — statement on plain stone with amber glow */
.sc4 .sc-in{text-align:center;display:flex;flex-direction:column;align-items:center}
.sc4-glow{position:absolute;left:50%;top:50%;width:min(110vw,1300px);aspect-ratio:1.6;margin:calc(min(110vw,1300px)/-3.2) 0 0 calc(min(110vw,1300px)/-2);background:radial-gradient(closest-side,rgba(255,200,120,.75),rgba(255,190,110,.28) 45%,transparent 75%);z-index:-1;pointer-events:none}
.sc4-t{font-weight:300;letter-spacing:-.05em;line-height:.98;font-size:clamp(2.4rem,5.8vw,6rem);max-width:13em;color:var(--char)}
.sc4-b{margin-top:34px}
/* 5 — winter photo low, text above */
.sc5{align-items:flex-end;padding-bottom:0}
.sc5 .sc-in{display:flex;flex-direction:column;align-items:center;text-align:center}
.sc5-tx{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.sc5-tx .sc-t{font-size:clamp(3.2rem,7.6vw,8rem);margin-bottom:18px}
.sc5-duo{display:flex;gap:clamp(30px,6vw,90px);margin-top:20px}
.sc5-duo h3{font-weight:300;letter-spacing:-.03em;font-size:clamp(1.4rem,2.2vw,2rem)}
.sc5-duo .sc-k{margin-bottom:6px}
.sc5-ph{width:min(740px,92vw);margin-top:-6vh;z-index:1;
 -webkit-mask-image:radial-gradient(closest-side,#000 60%,transparent);mask-image:radial-gradient(closest-side,#000 60%,transparent)}
@media (min-width:761px) and (max-width:1100px){
 .sc1-ph{grid-column:4/13;margin-top:-4vh;align-self:start}.sc1-tx{grid-column:1/9;padding-top:46vh}.sc1 .sc-in{min-height:80vh}
 .sc2 .sc-in{flex-direction:column;align-items:flex-start}
 .sc2 .sc2-ph{position:relative;left:auto;width:calc(100% + 2*clamp(22px,5vw,72px));margin:0 calc(-1*clamp(22px,5vw,72px))}
 .sc2-tx{width:70%;margin:-9vw 0 0 auto}.sc2-tx .sc-t{margin-left:0}.sc-coord{bottom:auto;top:0}
 .sc3-a{grid-column:1/10;grid-row:1}.sc3-tx{grid-column:4/13;grid-row:2;margin-top:3vw;padding:0}.sc3-b{grid-column:8/13;grid-row:1;align-self:end;margin:0 -4vw -1vw 0;width:46vw;max-width:none}
 .sc5-ph{width:min(600px,80vw)}
}

@media (max-width:760px){
 .sc{min-height:auto;padding:70px 22px}
 .sc-t{font-size:clamp(2.5rem,12vw,3.6rem)}
 .sc1 .sc-in,.sc3 .sc-in{display:flex;flex-direction:column;min-height:0}
 .sc-giant{top:2%;margin:0;font-size:38vw;left:-3vw}
 .sc1-ph{width:112%;margin:13vw -6% 0}.sc1-tx{padding-top:0;margin-top:-6vw}
 .sc2 .sc-in{flex-direction:column;min-height:0}
 .sc2 .sc2-ph{position:relative;left:auto;width:118%;margin-left:-22px}
 .sc2-tx{width:100%;margin:-8vw 0 0}.sc2-tx .sc-t{margin-left:0}.sc-coord{position:static;margin-top:22px}
 .sc3-a{width:108%;margin-left:-22px}.sc3-tx{padding:0;margin-top:-6vw}.sc3-b{width:80%;align-self:flex-end;margin:10px -10px 0 0}
 [data-par]{transform:none!important}
 .sc1-tx,.sc2-tx,.sc3-tx{margin-top:4px!important}.sc1-ph{margin-top:16vw}.sc-giant{top:0}
 .sc3-b{margin-top:-4vw}.sc3-tx{order:-1;margin-bottom:10px}
 .sc4{padding:90px 22px}.sc4-glow{width:150vw;margin:-47vw 0 0 -75vw}.sc4-t{font-size:2.5rem}
 .sc5{padding-bottom:0}.sc5-duo{flex-direction:column;gap:16px}.sc5-ph{width:110%}
}
@media (prefers-reduced-motion:reduce){.sc-in{opacity:1!important;transition:none}[data-par]{transform:none!important}}
/* scene 4: slow light drift */
.sc4{position:relative;overflow:hidden}
.sc4-glow::before,.sc4-glow::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none}
.sc4-glow::before{background:radial-gradient(closest-side,rgba(255,215,150,.45),transparent 70%);transform:translate(-18%,-6%) scale(.6);animation:sc4drift 26s ease-in-out infinite alternate}
.sc4-glow::after{background:radial-gradient(closest-side,rgba(255,180,100,.3),transparent 70%);transform:translate(20%,8%) scale(.5);animation:sc4drift2 34s ease-in-out infinite alternate}
.sc4-glow{animation:sc4breathe 18s ease-in-out infinite alternate}
@keyframes sc4drift{to{transform:translate(16%,6%) scale(.7)}}
@keyframes sc4drift2{to{transform:translate(-14%,-8%) scale(.62)}}
@keyframes sc4breathe{from{opacity:.85}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.sc4-glow,.sc4-glow::before,.sc4-glow::after{animation:none}}
/* scene spacing: more breathing room between scenes */
.sc{padding-top:clamp(90px,12vh,150px);padding-bottom:clamp(90px,12vh,150px)}
.sc5{padding-bottom:0}
@media (max-width:760px){
 .sc{padding-top:112px;padding-bottom:112px}
 .sc4{padding-top:130px;padding-bottom:130px}
 .sc5{padding-bottom:0}
}
/* break between last story scene and events */
.saga{position:relative;padding-bottom:clamp(90px,12vh,150px)}
.saga::after{content:"";position:absolute;left:50%;bottom:clamp(44px,6vh,72px);width:72px;height:1px;margin-left:-36px;background:var(--champ);box-shadow:0 0 18px var(--glow)}
@media (max-width:760px){.saga{padding-bottom:100px}.saga::after{bottom:48px}}
/* ===================== ABOUT · layered scenes ===================== */
body.ab .nav:not(.solid){color:var(--char)}
.abx{position:relative;overflow:hidden}
.abx .sc-k{display:block}
.abx em{font-style:normal;color:var(--champ)}
/* 1 opener: ~70svh, offset masked panorama, huge type overlapping onto stone */
.abx .ab1{min-height:72vh;min-height:72svh;padding-top:clamp(110px,14vh,150px);padding-bottom:clamp(40px,6vh,70px);align-items:flex-end}
.ab1 .sc-in{display:grid;grid-template-columns:repeat(12,1fr);align-items:end}
.ab1-k{grid-column:1/13;grid-row:1;align-self:start;z-index:3}
.ab1-ph{grid-column:5/13;grid-row:1/3;justify-self:end;width:100%;max-width:1180px;
 -webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 55%,transparent 100%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 55%,transparent 100%)}
.ab1-t{grid-column:1/11;grid-row:2;z-index:2;font-weight:300;letter-spacing:-.055em;line-height:.88;font-size:clamp(3.4rem,9vw,9.4rem);color:var(--char);margin-bottom:-.06em;text-shadow:0 0 40px rgba(236,228,214,.9)}
.ab1-s{grid-column:1/13;grid-row:3;display:flex;justify-content:space-between;margin-top:34px;padding-top:14px;border-top:1px solid rgba(20,19,16,.35);font-family:var(--label);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
/* manifesto */
.abx .ab-man{padding:clamp(90px,14vh,170px) clamp(22px,5vw,72px)}
.ab-man-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:3fr 9fr;gap:40px}
.ab-man-t{font-weight:300;letter-spacing:-.035em;line-height:1.12;font-size:clamp(1.7rem,3.4vw,3.3rem);color:var(--char);text-indent:2.2em}
/* 2 hilltop: big photo left, text overlapping its right edge */
.ab2 .sc-in{display:grid;grid-template-columns:repeat(12,1fr);align-items:center}
.ab2-ph{grid-column:1/9;grid-row:1;max-width:1150px;margin-left:calc(-1*clamp(22px,5vw,72px));
 -webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 58%,transparent),linear-gradient(0deg,transparent,#000 20%,#000 80%,transparent);-webkit-mask-composite:source-in;
 mask-image:linear-gradient(90deg,transparent,#000 18%,#000 58%,transparent),linear-gradient(0deg,transparent,#000 20%,#000 80%,transparent);mask-composite:intersect}
.ab2-tx{grid-column:7/13;grid-row:1;z-index:2}
.ab2-tx .sc-t{text-shadow:0 0 30px rgba(236,228,214,.95),0 0 60px rgba(236,228,214,.8)}
/* 3 architecture: text left with numbered list, photo rising right */
.ab3 .sc-in{display:grid;grid-template-columns:repeat(12,1fr);align-items:center;gap:0}
.ab3-tx{grid-column:1/7;grid-row:1;z-index:2}
.ab3-tx .sc-t{font-size:clamp(3rem,7.4vw,7.6rem)}
.ab3-l{list-style:none;margin-top:10px;max-width:30em}
.ab3-l li{display:flex;gap:22px;align-items:baseline;padding:14px 0;border-top:1px solid rgba(20,19,16,.22);font-size:1.12rem;letter-spacing:-.01em}
.ab3-l li:last-child{border-bottom:1px solid rgba(20,19,16,.22)}
.ab3-l span{font-family:var(--label);font-size:.66rem;letter-spacing:.14em;color:var(--champ)}
.ab3-ph{grid-column:6/13;grid-row:1;justify-self:end;width:100%;max-width:740px;margin-top:16vh;
 -webkit-mask-image:radial-gradient(closest-side,#000 58%,transparent 100%);mask-image:radial-gradient(closest-side,#000 58%,transparent 100%)}
/* 4 interior: glow + type */
.ab4{overflow:hidden}.ab4 .sc-in{text-align:center;display:flex;flex-direction:column;align-items:center}
.ab4-t{font-weight:300;letter-spacing:-.05em;line-height:.98;font-size:clamp(2.4rem,5.8vw,6rem);max-width:12em;color:var(--char)}
.ab4-b{margin-top:34px}
/* 5 chambers: photo dissolving right, details sequence */
.ab5 .sc-in{display:grid;grid-template-columns:repeat(12,1fr);align-items:center}
.ab5-ph{grid-column:6/13;grid-row:1;justify-self:end;width:100%;max-width:720px;margin-right:calc(-1*clamp(22px,5vw,72px));
 -webkit-mask-image:linear-gradient(270deg,transparent,#000 22%,#000 70%,transparent),linear-gradient(0deg,transparent,#000 18%,#000 82%,transparent);-webkit-mask-composite:source-in;
 mask-image:linear-gradient(270deg,transparent,#000 22%,#000 70%,transparent),linear-gradient(0deg,transparent,#000 18%,#000 82%,transparent);mask-composite:intersect}
.ab5-tx{grid-column:1/8;grid-row:1;z-index:2}
.ab5-tx .sc-t{text-shadow:0 0 30px rgba(236,228,214,.95)}
.ab5-d{display:grid;grid-template-columns:110px 1fr;column-gap:24px;padding:26px 0;border-top:1px solid rgba(20,19,16,.25);max-width:36em}
.ab5-d .sc-k{grid-row:1/3;margin:6px 0 0}
.ab5-d h3{font-family:var(--sans);font-weight:300;letter-spacing:-.035em;font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1;margin-bottom:10px}
/* events: one flowing typographic line, no cards */
.abx .ab-ev{padding:clamp(90px,14vh,170px) clamp(22px,5vw,72px)}
.ab-ev-in{max-width:1300px;margin:0 auto}
.ab-ev-h{font-family:var(--sans);font-weight:300;letter-spacing:-.045em;line-height:1.02;font-size:clamp(2.2rem,5.2vw,5.4rem);color:var(--char);margin:8px 0 34px}
.ab-ev-h i{font-style:normal;color:var(--champ);opacity:.6;font-weight:200}
/* cta */
.abx .ab-cta{position:relative;overflow:hidden;padding:clamp(110px,18vh,200px) clamp(22px,5vw,72px);text-align:center}
.ab-cta-in{position:relative;max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center;isolation:isolate}
.ab-cta-t{font-family:var(--sans);font-weight:300;letter-spacing:-.055em;line-height:.9;font-size:clamp(3.2rem,9vw,9rem);color:var(--char);margin-bottom:26px}
.ab-btn{margin-top:34px;display:inline-flex;gap:14px;align-items:center;font-family:var(--label);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--char);padding:18px 34px;border:1px solid var(--char);border-radius:999px;transition:.3s}
.ab-btn:hover{background:var(--char);color:var(--paper);box-shadow:0 0 40px var(--glow)}
@media (max-width:760px){
 .abx .ab1{min-height:0;padding-top:104px;padding-bottom:30px}
 .ab1-ph{grid-column:1/13;grid-row:2;margin:10px -22px 0;width:calc(100% + 44px)}
 .ab1-t{grid-column:1/13;grid-row:3;margin-top:-.5em;font-size:clamp(3rem,15vw,4.6rem)}
 .ab1-s{grid-row:4;flex-direction:column;gap:6px}
 .ab-man-in{grid-template-columns:1fr;gap:6px}.ab-man-t{text-indent:0;font-size:1.65rem}
 .ab2 .sc-in,.ab3 .sc-in,.ab5 .sc-in{display:flex;flex-direction:column;align-items:stretch}
 .ab2-ph,.ab5-ph{margin:0 -22px;width:calc(100% + 44px);max-width:none}
 .ab2-tx,.ab5-tx{margin-top:-14vw}
 .ab3-ph{order:-1;margin:0 -22px 0;width:calc(100% + 44px);max-width:none}
 .ab3-tx{margin-top:-10vw}
 .ab4-glow,.ab4 .sc4-glow{width:150vw;margin:-47vw 0 0 -75vw}.ab4-t{font-size:2.5rem}
 .ab5-d{grid-template-columns:1fr}.ab5-d .sc-k{grid-row:auto;margin-bottom:8px}
 .ab-ev-h{font-size:2.3rem}
}
.ab1-ph{-webkit-mask-image:radial-gradient(closest-side,#000 45%,transparent 100%);mask-image:radial-gradient(closest-side,#000 45%,transparent 100%)}
.ab3-ph{-webkit-mask-image:radial-gradient(closest-side,#000 42%,transparent 100%);mask-image:radial-gradient(closest-side,#000 42%,transparent 100%)}
.ab2-tx .body,.ab5-tx .body{text-shadow:0 0 18px rgba(236,228,214,1),0 0 30px rgba(236,228,214,.9)}
/* ===================== REVIEWS · opener ===================== */
body.rvp .nav:not(.solid){color:var(--char)}
.rvo{position:relative;overflow:hidden;min-height:66vh;min-height:66svh;padding:clamp(110px,14vh,150px) clamp(22px,5vw,72px) clamp(30px,5vh,60px)!important;display:flex;align-items:flex-end}
.rvo-in{position:relative;width:100%;max-width:1440px;margin:0 auto;display:grid;grid-template-columns:repeat(12,1fr);align-items:end}
.rvo-ph{grid-column:7/13;grid-row:1/4;align-self:center;justify-self:end;width:100%;max-width:720px;margin-right:calc(-1*clamp(22px,5vw,72px));
 -webkit-mask-image:radial-gradient(closest-side,#000 40%,transparent 100%);mask-image:radial-gradient(closest-side,#000 40%,transparent 100%)}
.rvo-ph img{animation:rvodrift 28s ease-in-out infinite alternate}
@keyframes rvodrift{from{transform:translate3d(-1.5%,0,0) scale(1)}to{transform:translate3d(1.5%,-1.5%,0) scale(1.04)}}
.rvo-glow{position:absolute;right:8%;top:10%;width:min(70vw,900px);aspect-ratio:1.4;background:radial-gradient(closest-side,rgba(255,200,120,.5),transparent 72%);z-index:-1;pointer-events:none;animation:sc4drift 26s ease-in-out infinite alternate}
.rvo-k{grid-column:1/13;grid-row:1;align-self:start;margin-bottom:6vh!important;display:block}
.rvo-t{grid-column:1/9;grid-row:2;z-index:2;font-weight:300;letter-spacing:-.06em;line-height:.85;font-size:clamp(4rem,12vw,12.5rem);color:var(--char);text-shadow:0 0 40px rgba(236,228,214,.9)}
.rvo-t em{font-style:normal;color:var(--champ)}
.rvo-q{grid-column:1/10;grid-row:3;z-index:2;position:relative;display:grid;margin-top:28px;padding-top:18px;border-top:1px solid rgba(20,19,16,.35)}
.rvo-q blockquote{grid-area:1/1;font-family:var(--sans);font-weight:300;letter-spacing:-.04em;line-height:1.02;font-size:clamp(1.9rem,4.2vw,4.2rem);color:var(--char);opacity:0;transition:opacity 1.4s ease;text-shadow:0 0 24px rgba(236,228,214,.95)}
.rvo-q blockquote.on{opacity:1}
.rvo-q b{font-weight:300;color:var(--champ);text-shadow:0 0 28px var(--glow)}
.rvo-q .w{display:inline-block;opacity:0;transform:translateY(.4em);filter:blur(6px);transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.7,.2,1),filter .9s ease;transition-delay:calc(var(--k)*70ms)}
.rvo-q blockquote.on .w{opacity:1;transform:none;filter:none}
.rvo-who{grid-row:2;display:flex;gap:22px;margin-top:20px;font-family:var(--label);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.rvo-who cite{font-style:normal;color:var(--char)}.rvo-n{color:var(--champ)}
body.rvp .rv-feat{padding-top:clamp(60px,8vw,110px)!important}
/* list: no boxes, hairlines only */
body.rvp .rv-cols{border-top:0;gap:0 clamp(40px,6vw,100px)}
body.rvp .rv-item,body.rvp .rv-cols>.rv-item:nth-child(odd){border:0;border-top:1px solid rgba(20,19,16,.22);padding:36px 0}
body.rvp .rv-item .n{color:var(--champ)}
@media (max-width:760px){
 .rvo{min-height:0;padding-top:100px!important}
 .rvo-ph{grid-column:1/13;grid-row:2;margin:0 -22px;width:calc(100% + 44px);max-width:none}
 .rvo-k{margin-bottom:10px!important}
 .rvo-t{grid-column:1/13;grid-row:3;margin-top:-.45em;font-size:clamp(3.6rem,20vw,5.4rem)}
 .rvo-q{grid-column:1/13;grid-row:4;margin-top:20px}
 .rvo-q blockquote{font-size:1.9rem}
}
@media (prefers-reduced-motion:reduce){.rvo-ph img,.rvo-glow{animation:none}.rvo-q .w{opacity:1;transform:none;filter:none}}
/* About fixes: softer opener edge; nav button stays readable */
.ab1-ph{-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 28%,rgba(0,0,0,.55) 62%,transparent 96%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 28%,rgba(0,0,0,.55) 62%,transparent 96%)}
body.ab .nav:not(.solid) .btn-sm,body.rvp .nav:not(.solid) .btn-sm{color:var(--char)!important;opacity:1}
/* ===================== CONTACT ===================== */
body.ctp .nav:not(.solid){color:var(--char)}
body.ctp .nav:not(.solid) .btn-sm{color:var(--char)!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.ctp em{font-style:normal;color:var(--champ)}
body.ctp .sc-k{display:block}
.cto{position:relative;overflow:hidden;min-height:65vh;min-height:65svh;padding:clamp(110px,14vh,150px) clamp(22px,5vw,72px) clamp(30px,5vh,60px)!important;display:flex;align-items:flex-end}
.cto-in{position:relative;width:100%;max-width:1440px;margin:0 auto;display:grid;grid-template-columns:repeat(12,1fr);align-items:end}
.cto-ph{grid-column:1/8;grid-row:1/3;align-self:center;width:100%;max-width:740px;margin-left:calc(-1*clamp(22px,5vw,72px));
 -webkit-mask-image:radial-gradient(closest-side,#000 38%,transparent 100%);mask-image:radial-gradient(closest-side,#000 38%,transparent 100%)}
.cto-ph img{animation:rvodrift 30s ease-in-out infinite alternate}
.cto-glow{position:absolute;left:20%;top:0;width:min(70vw,900px);aspect-ratio:1.4;background:radial-gradient(closest-side,rgba(255,200,120,.5),transparent 72%);z-index:-1;animation:sc4drift 26s ease-in-out infinite alternate}
.cto-k{grid-column:1/13;grid-row:1;align-self:start;justify-self:end;text-align:right}
.cto-t{grid-column:4/13;grid-row:2;z-index:2;font-weight:300;letter-spacing:-.06em;line-height:.86;font-size:clamp(3.6rem,10.4vw,11rem);color:var(--char);text-align:right;text-shadow:0 0 40px rgba(236,228,214,.9)}
.ctx{padding:clamp(80px,12vh,150px) clamp(22px,5vw,72px)!important}
.ctx-in{max-width:1300px;margin:0 auto;display:grid;grid-template-columns:7fr 5fr;gap:clamp(30px,5vw,80px);align-items:end}
.ctx address{font-style:normal;font-weight:300;letter-spacing:-.045em;line-height:.98;font-size:clamp(2.4rem,5.2vw,5.4rem);color:var(--char)}
.ctx address span{color:var(--champ)}
.ctx-p a{display:inline-block;font-weight:300;letter-spacing:-.05em;line-height:1;font-size:clamp(2.4rem,4.6vw,4.8rem);color:var(--champ);text-decoration:none;text-shadow:0 0 30px var(--glow);margin-bottom:22px;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s}
.ctx-p a:hover,.ctx-p a:focus-visible{background-size:100% 1px}
.ctm{position:relative;padding:0 clamp(22px,5vw,72px)!important}
.ctm-map{max-width:1300px;margin:0 auto;height:clamp(320px,52vh,560px);-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 45%,transparent 100%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 45%,transparent 100%)}
.ctm-map iframe{width:100%;height:100%;border:0;filter:grayscale(1) sepia(.35) contrast(.95) brightness(1.02)}
.ctm-c{text-align:center;margin-top:-20px!important;color:var(--soft)!important}
.ctf{padding:clamp(100px,14vh,170px) clamp(22px,5vw,72px)!important;position:relative}
.ctf-in{max-width:1240px;margin:0 auto}
.ctf-h{font-family:var(--sans);font-weight:300;letter-spacing:-.05em;line-height:.95;font-size:clamp(2.6rem,6vw,6rem);color:var(--char);margin:6px 0 clamp(40px,6vh,70px)}
.ctf-h-s{font-size:clamp(2.2rem,4.4vw,4.4rem)}
.ml-s{font-weight:300;letter-spacing:-.035em;line-height:1.5;font-size:clamp(1.6rem,3.3vw,3.2rem);color:var(--char);margin-bottom:.15em}
.ml-sm .ml-s{font-size:clamp(1.4rem,2.4vw,2.3rem)}
.ml-f{display:inline-block;position:relative}
.ml-f input,.ml-f select{font:inherit;letter-spacing:inherit;color:var(--champ);background:transparent;border:0;border-bottom:1.5px solid rgba(20,19,16,.45);border-radius:0;padding:0 .1em;outline:0;max-width:100%;-webkit-appearance:none;appearance:none;transition:border-color .3s,box-shadow .3s,text-shadow .3s}
.ml-f input{width:auto;min-width:4ch}.ml-n input{width:3.2ch;-moz-appearance:textfield}.ml-n input::-webkit-inner-spin-button{-webkit-appearance:none}
.ml-f input[type=date]{width:7.4em}
.ml-f select{cursor:pointer;padding-right:.1em}
.ml-f input::placeholder{color:rgba(20,19,16,.3)}
.ml-f input:focus,.ml-f select:focus{border-bottom-color:var(--champ);box-shadow:0 10px 18px -12px var(--glow);text-shadow:0 0 22px var(--glow)}
.ml-f .invalid,.ml-ta .invalid{border-bottom-color:#b4442c}
.ml-ta{display:block;margin-top:30px;max-width:900px}
.ml-ta textarea{display:block;width:100%;font:inherit;font-weight:300;font-size:1.3rem;letter-spacing:-.02em;color:var(--char);background:transparent;border:0;border-bottom:1.5px solid rgba(20,19,16,.45);padding:10px 0;outline:0;resize:vertical}
.ml-ta textarea:focus{border-bottom-color:var(--champ)}
.ml-go{display:flex;align-items:center;gap:30px;flex-wrap:wrap;margin-top:clamp(40px,6vh,70px)}
.ml-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:22px;cursor:pointer;border:0;border-radius:999px;padding:24px 44px;font-family:var(--sans);font-weight:400;letter-spacing:-.02em;font-size:clamp(1.2rem,1.8vw,1.6rem);color:var(--char);
 background:linear-gradient(110deg,#d99a45,#ffd9a0 45%,#c9862f 70%,#e8b06a);background-size:220% 100%;box-shadow:0 0 0 rgba(255,200,120,0);animation:mlsheen 6s ease-in-out infinite;transition:box-shadow .4s,transform .4s}
.ml-btn i{font-style:normal;transition:transform .4s}
.ml-btn:hover,.ml-btn:focus-visible{box-shadow:0 0 50px rgba(255,190,110,.75);transform:translateY(-2px)}.ml-btn:hover i{transform:translateX(6px)}
.ml-btn-s{padding:18px 34px;font-size:1.15rem}
@keyframes mlsheen{50%{background-position:100% 0}}
.ml-msg{font-family:var(--label);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#b4442c}
.ml-done{outline:0}
.ml-big{font-weight:300;letter-spacing:-.055em;line-height:.95;font-size:clamp(3rem,8vw,8.6rem);color:var(--char);margin:10px 0 30px}
.ml-big-s{font-size:clamp(2.4rem,5vw,5rem)}
.ml-big b{font-weight:300;color:var(--champ);text-shadow:0 0 34px var(--glow)}
.ml-big .w{display:inline-block;opacity:0;transform:translateY(.5em);filter:blur(8px);animation:mlw 1s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--k)*90ms)}
@keyframes mlw{to{opacity:1;transform:none;filter:none}}
.ctf-s{padding-top:0!important}
.ctf-s .ctf-in{border-top:1px solid rgba(20,19,16,.25);padding-top:clamp(70px,10vh,120px)}
@media (max-width:760px){
 .cto{min-height:0;padding-top:96px!important}
 .cto-k{justify-self:start;text-align:left;margin-bottom:6px}
 .cto-ph{grid-column:1/13;grid-row:2;margin:0 -22px;width:calc(100% + 44px);max-width:none}
 .cto-t{grid-column:1/13;grid-row:3;text-align:left;margin-top:-.5em;font-size:clamp(3.2rem,16vw,5rem)}
 .ctx-in{grid-template-columns:1fr;gap:50px}
 .ctm{padding:0!important}.ctm-map{height:340px}
 .ml-s{font-size:1.55rem;line-height:1.75}
 .ml-btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.cto-ph img,.cto-glow,.ml-btn{animation:none}.ml-big .w{animation:none;opacity:1;transform:none;filter:none}}
/* contact map: natural colors, no mask/overlay */
.ctm-map{-webkit-mask-image:none;mask-image:none}
.ctm-map iframe{filter:none}
.ctm-c{margin-top:18px!important;position:relative;z-index:0}
.ctx-p a{font-size:clamp(2.4rem,5.2vw,5.4rem);letter-spacing:-.045em;line-height:.98;color:var(--char);text-shadow:none}
