@font-face{font-family:"Noto Serif Display";src:url("assets/NotoSerifDisplay-Bold.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:"Noto Sans";src:url("assets/NotoSans-Regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Noto Sans";src:url("assets/NotoSans-Bold.ttf") format("truetype");font-weight:700;font-display:swap}

:root{--ink:#171311;--cream:#f5efe4;--paper:#fbf7ef;--red:#a93428;--amber:#d79550;--sage:#b9b7a8;--line:rgba(23,19,17,.18);--rail:min(1240px,calc(100% - 64px));--serif:"Noto Serif Display",Georgia,serif;--sans:"Noto Sans",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink);scroll-padding-top:92px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.55;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
button,a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--amber);outline-offset:4px}
.skip-link{position:fixed;top:10px;left:10px;z-index:1000;padding:12px 16px;background:var(--paper);transform:translateY(-150%)}
.skip-link:focus{transform:none}
.site-header{position:absolute;z-index:20;top:0;left:50%;transform:translateX(-50%);width:var(--rail);height:92px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#fff;border-bottom:1px solid rgba(255,255,255,.32)}
.brand{justify-self:start;display:flex;align-items:baseline;gap:10px;line-height:1}
.brand-script{font-family:var(--serif);font-size:1.75rem;font-style:italic}
.brand-small{font-size:.66rem;text-transform:uppercase;letter-spacing:.18em}
.nav-links{display:flex;gap:28px;font-size:.76rem;text-transform:uppercase;letter-spacing:.13em}
.nav-links a,.header-call{position:relative}
.nav-links a:after,.header-call:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transition:transform .25s ease}
.nav-links a:hover:after,.nav-links a:focus-visible:after,.header-call:hover:after,.header-call:focus-visible:after{transform:scaleX(1)}
.header-call{justify-self:end;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}
.header-call span{font-weight:700}

.hero{position:relative;min-height:96svh;color:#fff;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:-4;width:100%;height:100%;object-fit:cover;object-position:58% 48%;filter:saturate(.78) contrast(1.05)}
.hero-wash{position:absolute;inset:0;z-index:-3;background:linear-gradient(90deg,rgba(16,12,10,.82) 0%,rgba(16,12,10,.35) 45%,rgba(16,12,10,.1) 70%),linear-gradient(0deg,rgba(14,10,8,.7),transparent 55%)}
.hero-grain{position:absolute;inset:0;z-index:-2;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");animation:grain .32s steps(2) infinite}
@keyframes grain{0%{background-position:0 0}25%{background-position:8px -4px}50%{background-position:-4px 8px}75%{background-position:4px 4px}100%{background-position:-8px -4px}}
.hero-content{width:var(--rail);margin:0 auto;padding:148px 0 90px;position:relative}
.hero-place{margin:0 0 14px;font-size:.76rem;text-transform:uppercase;letter-spacing:.17em;color:#f0d8bd}
.hero h1{margin:0;font-family:var(--serif);font-size:clamp(4.7rem,11vw,10.5rem);line-height:.76;letter-spacing:-.07em;text-wrap:balance;max-width:1050px;text-shadow:0 3px 24px rgba(0,0,0,.25)}
.hero h1 span{display:block;font-style:italic;font-size:.72em;margin-left:.55em;color:#fff4e3}
.hero-subtitle{margin:18px 0 0;font-size:clamp(1.25rem,2.2vw,2rem);text-transform:uppercase;letter-spacing:.27em}
.hero-copy{max-width:480px;margin:30px 0 0;font-size:1.05rem;color:rgba(255,255,255,.86)}
.hero-actions{display:flex;align-items:center;gap:28px;margin-top:30px}
.button{display:inline-flex;justify-content:space-between;align-items:center;gap:22px;min-height:52px;padding:0 22px;border:1px solid transparent;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.11em;transition:background .25s,color .25s,border .25s}
.button-primary{background:var(--red);color:#fff}
.button-primary:hover{background:#c14334}
.text-link,.arrow-link{display:inline-flex;gap:12px;align-items:center;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.11em;border-bottom:1px solid currentColor;padding-bottom:5px}
.media-note{position:absolute;right:30px;bottom:24px;margin:0;font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.65);writing-mode:vertical-rl}
.scroll-cue{position:absolute;right:5%;bottom:31%;font-size:.6rem;text-transform:uppercase;letter-spacing:.17em;display:flex;align-items:center;gap:10px;transform:rotate(90deg);transform-origin:right center}
.scroll-cue span{width:42px;height:1px;background:#fff;position:relative;overflow:hidden}
.scroll-cue span:after{content:"";position:absolute;inset:0;background:var(--amber);transform:translateX(-100%);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{50%,100%{transform:translateX(100%)}}

.proof-strip{background:var(--cream);display:grid;grid-template-columns:repeat(3,1fr);padding:22px max(32px,calc((100% - 1240px)/2));border-bottom:1px solid var(--line)}
.proof-strip p{margin:0;padding:0 28px;text-align:center;font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;border-right:1px solid var(--line)}
.proof-strip p:last-child{border-right:0}
.proof-strip strong{font-family:var(--serif);font-size:1rem;text-transform:none;letter-spacing:0;margin-right:5px}
.proof-strip span{color:var(--red);padding:0 5px}

.section-pad{padding:130px max(32px,calc((100% - 1240px)/2))}
.eyebrow{display:flex;gap:12px;align-items:center;margin-bottom:32px;color:#655d55;font-size:.68rem;text-transform:uppercase;letter-spacing:.16em}
.eyebrow span{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid currentColor;border-radius:50%;color:var(--red)}
.eyebrow.light{color:rgba(255,255,255,.68)}
.eyebrow.light span{color:#f0a26f}
.intro{background:var(--paper);position:relative;overflow:hidden}
.intro:after{content:"";position:absolute;right:-120px;top:35px;width:520px;height:280px;border:2px solid rgba(169,52,40,.12);border-radius:50%;transform:rotate(-12deg);pointer-events:none}
.intro-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:8vw;align-items:end;position:relative;z-index:1}
.intro h2,.visit h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,6vw,6.5rem);line-height:.98;letter-spacing:-.055em}
.intro h2 em{color:var(--red);font-weight:700}
.intro-copy{max-width:500px;padding-bottom:9px}
.intro-copy>p:first-child{font-size:1.08rem;line-height:1.75;margin:0 0 30px}
.fine-print{font-size:.72rem;color:#6c645c;line-height:1.55;margin:22px 0 0}

.services{background:var(--ink);color:var(--cream)}
.services-heading{display:grid;grid-template-columns:1fr 2fr;align-items:start;margin-bottom:72px}
.services-heading h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,6vw,6.2rem);line-height:.95;letter-spacing:-.055em}
.service-layout{display:grid;grid-template-columns:1fr .88fr;gap:8vw;align-items:start}
.service-list{list-style:none;padding:0;margin:0;border-top:1px solid rgba(255,255,255,.19)}
.service-list li{display:grid;grid-template-columns:44px 1fr;gap:22px;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.19)}
.service-num{padding-top:7px;font-size:.65rem;color:#dd8b58;letter-spacing:.12em}
.service-list h3{margin:0 0 6px;font-family:var(--serif);font-size:clamp(1.55rem,2.6vw,2.4rem);letter-spacing:-.035em}
.service-list p{margin:0;color:rgba(255,255,255,.6);font-size:.86rem}
.service-visuals{display:grid;grid-template-columns:1fr .65fr;gap:16px;align-items:end}
.color-card{position:relative;display:block;min-height:620px;overflow:hidden}
.color-card img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;filter:saturate(.8) contrast(1.04);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.color-overlay{position:absolute;inset:auto 0 0;padding:80px 26px 28px;color:#fff;background:linear-gradient(transparent,rgba(20,11,9,.9));transform:translateY(42px);transition:transform .35s ease}
.color-overlay>*{display:block}
.overlay-kicker{font-size:.62rem;text-transform:uppercase;letter-spacing:.15em;color:#ffd1b0}
.color-overlay strong{font-family:var(--serif);font-size:1.75rem;line-height:1.08;margin:8px 0 14px}
.overlay-action{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;opacity:0;transition:opacity .25s ease}
.color-card:hover img,.color-card:focus-visible img{transform:scale(1.035)}
.color-card:hover .color-overlay,.color-card:focus-visible .color-overlay{transform:none}
.color-card:hover .overlay-action,.color-card:focus-visible .overlay-action{opacity:1}
.tools-card{margin:0 0 24px;background:#29231f}
.tools-card img{aspect-ratio:.82;object-fit:cover;filter:sepia(.15) saturate(.7)}
.tools-card figcaption{padding:14px;font-family:var(--serif);font-size:.82rem;color:rgba(255,255,255,.72)}

.motion-scene{height:300svh;background:#130f0d;position:relative}
.motion-stage{position:sticky;top:0;height:100svh;overflow:hidden;background:#211913}
.motion-poster,.motion-canvas{position:absolute;inset:0;width:100%;height:100%}
.motion-poster{object-fit:cover;object-position:center 48%}
.motion-canvas{opacity:0;transition:opacity .2s ease}
.motion-scene[data-scroll-state="enhanced"] .motion-canvas{opacity:1}
.motion-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,10,8,.76),rgba(15,10,8,.22) 56%,rgba(15,10,8,.44)),linear-gradient(0deg,rgba(15,10,8,.45),transparent 45%)}
.motion-copy{position:relative;height:100%;width:var(--rail);margin:0 auto;color:#fff}
.motion-label{position:absolute;top:32px;left:0;margin:0;font-size:.62rem;text-transform:uppercase;letter-spacing:.15em;color:rgba(255,255,255,.66)}
.motion-beat{position:absolute;left:0;bottom:12%;max-width:720px;opacity:0;transform:translateY(22px);transition:none;pointer-events:none}
.motion-beat.is-active{opacity:1;transform:none}
.motion-beat span{display:block;font-family:var(--serif);font-size:clamp(5rem,12vw,11rem);line-height:.76;letter-spacing:-.07em}
.motion-beat p{max-width:410px;font-size:1rem;margin:28px 0 0;color:rgba(255,255,255,.78)}
.motion-progress{position:absolute;right:0;top:50%;width:2px;height:160px;background:rgba(255,255,255,.28);transform:translateY(-50%)}
.motion-progress i{display:block;width:100%;height:100%;background:#fff;transform:scaleY(0);transform-origin:top}

.visit{background:var(--cream)}
.visit-top{display:grid;grid-template-columns:1.35fr .65fr;gap:8vw;align-items:end;margin-bottom:78px}
.visit-cta{max-width:440px;padding-bottom:10px}
.visit-cta p{margin:0 0 24px;line-height:1.7}
.button-dark{background:var(--ink);color:#fff}
.button-dark:hover{background:var(--red)}
.visit-grid{display:grid;grid-template-columns:.78fr 1.22fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.visit-card{padding:44px}
.visit-card:first-child{border-right:1px solid var(--line)}
.card-label{margin:0 0 32px;font-size:.65rem;text-transform:uppercase;letter-spacing:.15em;color:#6a6157}
.visit-card h3{font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.8rem);line-height:1.18;margin:0 0 34px;letter-spacing:-.04em}
.hours-card dl{margin:0}
.hours-card dl div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.hours-card dt{font-weight:700}
.hours-card dd{margin:0;text-align:right}

.footer{padding:90px max(32px,calc((100% - 1240px)/2)) 50px;background:var(--ink);color:var(--cream);display:grid;grid-template-columns:1.4fr .6fr;gap:40px}
.footer-wordmark{font-family:var(--serif);font-size:clamp(3.8rem,8vw,8rem);line-height:.8;letter-spacing:-.065em}
.footer-wordmark span{display:block;font-style:italic;margin-left:.35em;color:#efd7bb}
.footer-meta{text-align:right;align-self:end}
.footer-meta p{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.6)}
.footer-meta a{font-family:var(--serif);font-size:1.45rem;border-bottom:1px solid currentColor}
.demo-disclosure,.credits{grid-column:1/-1;margin:32px 0 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.16);font-size:.68rem;color:rgba(255,255,255,.52);max-width:820px}
.credits{margin:0;padding-top:0;border:0}
.mobile-callbar{display:none}

@media (max-width:900px){
  :root{--rail:min(100% - 40px,760px)}
  .site-header{grid-template-columns:1fr auto}.nav-links{display:none}.header-call{grid-column:2}.brand-small{display:none}
  .hero h1{font-size:clamp(4.2rem,15vw,7.5rem)}
  .intro-grid,.service-layout,.visit-top{grid-template-columns:1fr;gap:54px}
  .services-heading{grid-template-columns:1fr;margin-bottom:50px}.services-heading .eyebrow{margin-bottom:26px}
  .service-visuals{max-width:680px;margin-left:auto;width:86%}
  .visit-grid{grid-template-columns:1fr}.visit-card:first-child{border-right:0;border-bottom:1px solid var(--line)}
  .proof-strip{grid-template-columns:1fr;padding:18px 20px}.proof-strip p{border-right:0;border-bottom:1px solid var(--line);padding:12px}.proof-strip p:last-child{border-bottom:0}
}

@media (max-width:700px){
  :root{--rail:calc(100% - 32px)}
  body{padding-bottom:62px}.site-header{height:72px}.brand-script{font-size:1.45rem}.header-call{font-size:0}.header-call:before{content:"Call";font-size:.72rem}
  .hero{min-height:88svh}.hero-content{padding:120px 0 72px}.hero-media{object-position:62% center}.hero-wash{background:linear-gradient(90deg,rgba(16,12,10,.82),rgba(16,12,10,.24)),linear-gradient(0deg,rgba(14,10,8,.72),transparent 62%)}
  .hero h1{font-size:clamp(3.8rem,19vw,5.8rem);line-height:.78}.hero h1 span{margin-left:.25em}.hero-subtitle{font-size:1rem}.hero-copy{font-size:.92rem;max-width:315px;margin-top:22px}.hero-actions{align-items:flex-start;flex-direction:column;gap:20px;margin-top:24px}.scroll-cue{display:none}.media-note{right:8px;bottom:16px;font-size:.5rem}
  .section-pad{padding:88px 18px}.intro:after{display:none}.intro h2,.visit h2,.services-heading h2{font-size:clamp(2.8rem,13vw,4.7rem)}
  .service-layout{gap:54px}.service-visuals{width:100%;grid-template-columns:1fr}.color-card{min-height:520px}.color-overlay{transform:none}.overlay-action{opacity:1}.tools-card{width:72%;margin:16px 0 0 auto;position:relative;z-index:2;box-shadow:-10px 10px 0 var(--red)}
  .motion-scene{height:auto}.motion-stage{position:relative;height:auto;min-height:86svh}.motion-canvas{display:none}.motion-copy{min-height:86svh;padding:110px 0 56px;display:flex;flex-direction:column;justify-content:flex-end;gap:22px}.motion-label{top:25px}.motion-beat{position:relative;left:auto;bottom:auto;opacity:1;transform:none;max-width:100%;padding-top:18px;border-top:1px solid rgba(255,255,255,.28)}.motion-beat span{font-size:3.2rem}.motion-beat p{font-size:.82rem;margin:8px 0 0}.motion-progress{display:none}
  .visit-top{margin-bottom:55px}.visit-card{padding:32px 20px}.hours-card dl div{align-items:flex-start;flex-direction:column;gap:2px}.hours-card dd{text-align:left}
  .footer{grid-template-columns:1fr;padding:72px 20px 36px}.footer-wordmark{font-size:clamp(3.2rem,17vw,5.4rem)}.footer-meta{text-align:left}.demo-disclosure,.credits{grid-column:1}
  .mobile-callbar{position:fixed;z-index:50;display:block;left:0;right:0;bottom:0;background:var(--red);color:#fff;padding:0 16px}.mobile-callbar a{height:62px;display:flex;justify-content:space-between;align-items:center;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.11em}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.hero-grain,.scroll-cue span:after{animation:none}.color-card img,.color-overlay,.overlay-action,.motion-beat{transition:none}
  .motion-scene{height:auto}.motion-stage{position:relative;height:auto;min-height:90svh}.motion-canvas{display:none}.motion-copy{min-height:90svh;padding:120px 0 56px;display:flex;flex-direction:column;justify-content:flex-end;gap:22px}.motion-beat{position:relative;left:auto;bottom:auto;opacity:1;transform:none;padding-top:18px;border-top:1px solid rgba(255,255,255,.28)}.motion-beat span{font-size:clamp(2.7rem,8vw,5rem)}.motion-beat p{margin:8px 0 0}.motion-progress{display:none}
}
