:root { --ink:#340404; --deep:#260202; --paper:#e1d1e4; --cream:#fbe7e3; --orange:#e22001; --olive:#8e7c49; --gray:#8d6c73; --line:rgba(52,4,4,.17); --mono:'DM Mono', monospace; --sans:'Manrope', sans-serif; --serif:'Playfair Display', Georgia, serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.5; }
a { color:inherit; text-decoration:none; }
button, input, textarea { font:inherit; }
button { cursor:pointer; }
.site-shell { overflow:hidden; }
.sr-only { clip:rect(0,0,0,0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
.skip-link { position:fixed; z-index:100; top:-60px; left:16px; background:var(--orange); color:#fff; padding:10px 14px; font-weight:700; }
.skip-link:focus { top:16px; }
.site-header { width:100%; max-width:1500px; min-height:94px; margin:0 auto; padding:0 5.5vw; display:flex; align-items:center; justify-content:space-between; position:relative; z-index:20; }
.header-dark { position:absolute; inset:0 0 auto; color:var(--cream); }
.brand { display:inline-flex; align-items:center; gap:11px; font:500 13px/1 var(--mono); letter-spacing:-.05em; }
.brand > span:last-child { display:flex; gap:0; }
.brand > span:last-child span { color:var(--orange); }
.brand-mark { width:21px; height:21px; border:1px solid currentColor; border-radius:50%; display:inline-flex; justify-content:center; align-items:center; gap:2px; transform:rotate(-18deg); }
.brand-mark i { display:block; width:3px; height:10px; background:var(--orange); border-radius:3px; }
.brand-mark i:last-child { background:currentColor; height:6px; }
.site-nav { display:flex; align-items:center; gap:30px; font-size:12px; font-weight:700; letter-spacing:.02em; }
.site-nav a { transition:color .2s ease; }
.site-nav a:hover { color:var(--orange); }
.nav-contact { border:1px solid rgba(251,248,241,.45); border-radius:99px; padding:10px 15px; }
.nav-contact span { color:var(--orange); margin-left:5px; }
.nav-toggle { display:none; background:transparent; border:0; padding:8px 0; color:inherit; }
.nav-toggle span { display:block; width:24px; height:1px; background:currentColor; margin:5px 0; }
.hero { min-height:745px; position:relative; padding:171px 5.5vw 42px; color:var(--cream); background:var(--ink); display:grid; grid-template-columns:minmax(300px,.85fr) minmax(390px,1.15fr); gap:6vw; overflow:hidden; }
.hero:after { content:''; position:absolute; width:38vw; height:38vw; min-width:450px; min-height:450px; border:1px solid rgba(255,255,255,.08); border-radius:50%; left:-18vw; bottom:-23vw; }
.hero-copy { position:relative; z-index:3; align-self:center; max-width:610px; }
.eyebrow { display:flex; gap:9px; align-items:center; margin:0; text-transform:uppercase; color:var(--olive); font:500 10px/1.3 var(--mono); letter-spacing:.1em; }
.eyebrow span { width:20px; height:1px; background:currentColor; }
.eyebrow-light { color:#c6c5bd; }
h1, h2, h3, p { margin-top:0; }
.hero h1 { margin:24px 0 24px; font-size:clamp(3.65rem,6.1vw,6.65rem); letter-spacing:-.075em; line-height:.96; font-weight:700; }
h1 em, h2 em { font-family:var(--serif); font-weight:500; }
.hero-intro { width:min(100%,445px); color:#c8c8c1; font-size:15px; line-height:1.7; }
.text-link { display:inline-flex; gap:13px; align-items:center; margin-top:15px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.045em; border-bottom:1px solid currentColor; padding-bottom:7px; transition:color .2s ease, gap .2s ease; }
.text-link:hover { color:var(--orange); gap:19px; }
.text-link-light { color:var(--cream); }
.hero-visual { align-self:center; height:min(38vw,500px); min-height:405px; position:relative; z-index:2; }
.hero-image-frame { position:absolute; inset:0 0 0 7%; overflow:hidden; clip-path:polygon(8% 0,100% 0,100% 91%,89% 100%,0 100%,0 9%); background:#4a1516; }
.hero-image-frame:after { content:''; position:absolute; inset:0; background:linear-gradient(100deg,rgba(17,19,17,.12),rgba(17,19,17,0)); mix-blend-mode:multiply; }
.hero-image-frame img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; filter:saturate(.82) contrast(1.07); }
.hero-caption { position:absolute; left:-1.2vw; bottom:8%; display:flex; align-items:end; gap:12px; background:var(--orange); color:var(--ink); padding:14px 18px; min-width:160px; }
.hero-caption span { font:500 10px var(--mono); }
.hero-caption p { margin:0; font-size:11px; line-height:1.3; font-weight:800; }
.hero-signal { position:absolute; width:108px; height:108px; right:-47px; top:-35px; border:1px solid var(--orange); border-radius:50%; }
.hero-signal:before, .hero-signal:after { content:''; position:absolute; border-radius:50%; border:1px solid var(--orange); }
.hero-signal:before { inset:14px; }.hero-signal:after { inset:33px; background:var(--orange); }
.hero-bottom-line { grid-column:1/-1; position:relative; z-index:3; border-top:1px solid rgba(255,255,255,.23); align-self:end; padding-top:13px; display:flex; justify-content:space-between; color:#aaa9a2; font:10px var(--mono); letter-spacing:.05em; }
.section-pad { padding:125px 5.5vw; max-width:1500px; margin:0 auto; }
.section-label { display:flex; gap:13px; color:var(--gray); font:500 10px var(--mono); text-transform:uppercase; letter-spacing:.1em; }
.section-label span { color:var(--orange); }
.section-label p { margin:0; }
.statement { min-height:580px; display:grid; grid-template-columns:19% 1fr; }
.statement-content { opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.statement-content.is-visible { opacity:1; transform:none; }
.statement h2 { margin:0; max-width:860px; font-size:clamp(2.7rem,5vw,5.6rem); letter-spacing:-.068em; line-height:1; }
.statement-note { display:flex; align-items:start; gap:15px; max-width:330px; margin:66px 0 0 35%; font-size:13px; line-height:1.75; }
.note-rule { display:block; flex:0 0 27px; height:1px; margin-top:9px; background:var(--orange); }
.statement-note p { margin:0; }
.services { max-width:none; color:var(--cream); background:var(--deep); padding-left:max(5.5vw,calc((100vw - 1500px)/2 + 5.5vw)); padding-right:max(5.5vw,calc((100vw - 1500px)/2 + 5.5vw)); }
.services-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin:64px 0 54px 19%; }
.services-heading h2 { margin:0; color:var(--cream); font-size:clamp(2.5rem,4vw,4.7rem); letter-spacing:-.065em; line-height:1; }
.services-heading p { width:205px; margin:0 3vw 9px 0; color:#b7b7af; font-size:13px; line-height:1.7; }
.service-list { margin-left:19%; border-top:1px solid rgba(255,255,255,.25); }
.service-item { min-height:142px; display:grid; grid-template-columns:64px 1fr 46px; align-items:center; column-gap:22px; border-bottom:1px solid rgba(255,255,255,.25); opacity:0; transform:translateY(15px); transition:opacity .6s ease, transform .6s ease; }
.service-item.is-visible { opacity:1; transform:none; }
.service-num { color:var(--orange); font:500 10px var(--mono); align-self:start; margin-top:33px; }
.service-item h3 { margin:0 0 8px; color:var(--cream); font-size:21px; letter-spacing:-.04em; }
.service-item p { max-width:530px; margin:0; color:#b7b7af; font-size:13px; line-height:1.65; }
.service-open { width:40px; height:40px; border:1px solid rgba(255,255,255,.4); border-radius:50%; color:var(--cream); background:transparent; font-size:16px; transition:all .2s ease; }
.service-open:hover { color:var(--ink); background:var(--orange); border-color:var(--orange); transform:rotate(45deg); }
.insight-band { min-height:410px; position:relative; overflow:hidden; background:var(--orange); padding:80px 5.5vw; display:flex; align-items:center; justify-content:center; color:var(--ink); }
.insight-band p { position:relative; z-index:2; margin:0; text-align:center; font-size:clamp(2.7rem,5.1vw,5.55rem); font-weight:700; line-height:.98; letter-spacing:-.07em; }
.insight-band em { font-family:var(--serif); font-weight:500; }
.band-orbit { position:absolute; border:1px solid rgba(52,4,4,.42); border-radius:50%; }
.orbit-one { width:630px; height:630px; top:-345px; left:-38px; }.orbit-two { width:490px; height:490px; bottom:-390px; right:8%; }
.band-stamp { position:absolute; right:5.5vw; bottom:33px; font:500 10px/1.35 var(--mono); letter-spacing:.06em; }
.approach { display:grid; grid-template-columns:19% 1fr; }
.approach-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:7vw; }
.approach-intro h2 { margin:0; font-size:clamp(2.3rem,3.8vw,4.35rem); letter-spacing:-.065em; line-height:1.02; }
.approach-steps { padding-top:10px; }
.approach-steps article { display:grid; grid-template-columns:45px 1fr; gap:13px; padding:0 0 28px; margin:0 0 28px; border-bottom:1px solid var(--line); opacity:0; transform:translateY(15px); transition:opacity .6s ease, transform .6s ease; }
.approach-steps article.is-visible { opacity:1; transform:none; }
.approach-steps > article:last-child { margin:0; }
.approach-steps span { color:var(--orange); font:500 10px var(--mono); padding-top:7px; }
.approach-steps h3 { margin:0 0 8px; font-size:18px; letter-spacing:-.04em; }.approach-steps p { margin:0; max-width:330px; font-size:13px; line-height:1.75; }
.contact-section { padding:100px 5.5vw 0; background:var(--ink); color:var(--cream); }
.contact-kicker { display:flex; gap:13px; color:#c4c3ba; font:500 10px var(--mono); text-transform:uppercase; letter-spacing:.1em; }.contact-kicker span { color:var(--orange); }.contact-kicker p{margin:0;}
.contact-layout { max-width:1250px; margin:55px auto 0; padding:0 0 108px 19%; display:grid; grid-template-columns:1fr 1fr; gap:7vw; }
.contact-intro h2 { margin:0 0 22px; font-size:clamp(2.3rem,3.9vw,4.3rem); line-height:1; letter-spacing:-.07em; }.contact-intro > p { color:#babbb2; font-size:14px; line-height:1.72; max-width:370px; }.contact-details { margin-top:45px; display:flex; flex-direction:column; gap:9px; font-size:12px; }.contact-details a { color:var(--orange); font-weight:800; }.contact-details span { color:#aaa9a2; }
.contact-form { padding-top:6px; }.form-row { position:relative; padding:0 0 14px; margin-bottom:21px; border-bottom:1px solid rgba(255,255,255,.28); }.form-row label { display:block; margin-bottom:6px; color:#aaa9a2; font:500 10px var(--mono); text-transform:uppercase; letter-spacing:.08em; }.form-row input,.form-row textarea { width:100%; padding:0; border:0; outline:0; resize:vertical; color:var(--cream); background:transparent; font-size:15px; }.form-row input:focus,.form-row textarea:focus { color:#fff; }.button { display:inline-flex; gap:23px; align-items:center; justify-content:center; border:0; padding:14px 19px; font-size:11px; font-weight:800; letter-spacing:.03em; text-transform:uppercase; transition:transform .2s ease,background .2s ease; }.button:hover { transform:translateY(-2px); }.button-orange { background:var(--orange); color:var(--ink); }.form-status { min-height:22px; margin:15px 0 0; color:#c9c9c0; font-size:12px; line-height:1.45; }.form-status.is-error { color:#ff9674; }
.site-footer { min-height:260px; background:var(--ink); color:var(--cream); padding:43px 5.5vw 28px; border-top:1px solid rgba(255,255,255,.23); display:grid; grid-template-columns:1.2fr 1fr 1fr; grid-template-rows:auto auto; gap:55px 30px; }.footer-brand { display:flex; align-items:center; gap:10px; font:500 13px var(--mono); letter-spacing:-.05em; }.brand-mark-small{width:18px;height:18px;}.brand-mark-small i{height:8px;width:2px;}.brand-mark-small i:last-child{height:5px;}.site-footer>p{margin:0;color:#adada5;font-size:12px;line-height:1.6;}.footer-links{display:flex;gap:16px;justify-content:flex-end;font-size:11px;font-weight:700;}.footer-links a:hover{color:var(--orange);}.site-footer small{grid-column:1/-1;color:#765d61;font:10px var(--mono);letter-spacing:.04em;}
.service-dialog { display:flex; align-items:center; justify-content:center; position:fixed; z-index:50; inset:0; padding:22px; background:rgba(52,4,4,.76); opacity:0; pointer-events:none; transition:opacity .2s ease; }.service-dialog[aria-hidden="false"] { opacity:1; pointer-events:auto; }.dialog-panel { position:relative; width:min(100%,590px); padding:58px; background:var(--cream); transform:translateY(12px); transition:transform .2s ease; }.service-dialog[aria-hidden="false"] .dialog-panel { transform:none; }.dialog-panel h2{margin:26px 0 15px;font-size:clamp(2.1rem,4vw,3.8rem);line-height:1;letter-spacing:-.06em;}.dialog-panel>p:not(.eyebrow){max-width:420px;font-size:15px;line-height:1.75;}.dialog-close{position:absolute;top:17px;right:19px;border:0;background:transparent;font-size:29px;line-height:1;color:var(--ink);}.dialog-contact{color:var(--ink);}.dialog-open{overflow:hidden;}
.policy-page { background:var(--cream); }.policy-header { max-width:1500px; min-height:96px; }.policy-header .back-home { color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:4px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }.policy-hero { max-width:1500px; margin:0 auto; min-height:530px; padding:75px 5.5vw 78px; display:grid; grid-template-columns:19% 1fr; grid-template-rows:auto 1fr auto; background:var(--cream); }.policy-hero .eyebrow{grid-column:1/-1;grid-row:1;align-self:start;}.policy-hero h1 { grid-column:2;grid-row:2;align-self:end; margin:0; font-size:clamp(4rem,7.2vw,7.6rem); line-height:.89; letter-spacing:-.08em; }.policy-hero>div { grid-column:2;grid-row:3;display:flex;align-items:baseline;gap:30px;padding-top:28px; }.policy-hero>div p{margin:0;font-size:15px;max-width:265px;line-height:1.6;}.policy-hero>div span { color:#765d61; font:10px var(--mono); text-transform:uppercase; letter-spacing:.05em; }.policy-content { max-width:1500px; margin:0 auto; padding:73px 5.5vw 130px; display:grid; grid-template-columns:19% 1fr; background:var(--paper); }.policy-aside { position:sticky; align-self:start; top:22px; display:flex; flex-direction:column; gap:12px; padding-top:4px; }.policy-aside p{margin:0 0 9px;color:var(--gray);font:500 10px var(--mono);text-transform:uppercase;letter-spacing:.1em;}.policy-aside a{width:max-content;font-size:12px;line-height:1.4;border-bottom:1px solid transparent;}.policy-aside a:hover{border-color:var(--orange);color:var(--orange);}.policy-content article { max-width:745px; }.policy-callout { display:grid; grid-template-columns:61px 1fr; gap:17px; margin:0 0 82px; padding:18px 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }.policy-callout span,.policy-number { color:var(--orange); font:500 10px var(--mono); text-transform:uppercase; letter-spacing:.08em; }.policy-callout p { margin:0; font-size:12px; line-height:1.65; }.policy-content article section { padding:0 0 48px; margin:0 0 48px; border-bottom:1px solid var(--line); opacity:0; transform:translateY(10px); transition:opacity .55s ease,transform .55s ease; }.policy-content article section.is-visible{opacity:1;transform:none;}.policy-number { margin:0 0 15px; }.policy-content h2 { margin:0 0 18px; font-size:clamp(1.95rem,3vw,3.15rem); letter-spacing:-.065em; line-height:1; }.policy-content article section>p:not(.policy-number) { max-width:660px; margin-bottom:15px; font-size:14px; line-height:1.82; }.policy-content article a { color:var(--orange); font-weight:800; border-bottom:1px solid currentColor; }.policy-footer { background:var(--paper); color:var(--ink); border-top:1px solid var(--line); }.policy-footer .footer-links a:hover{color:var(--orange);}.policy-footer small{color:#765d61;}
@media (max-width: 820px) { .site-header{min-height:77px;padding:0 22px;}.nav-toggle{display:block;position:relative;z-index:22;}.site-nav{position:fixed;inset:0;padding:120px 26px 30px;background:var(--ink);color:var(--cream);display:flex;align-items:flex-start;flex-direction:column;gap:30px;transform:translateX(100%);transition:transform .25s ease;}.menu-open .site-nav{transform:none;}.menu-open .nav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg);}.menu-open .nav-toggle span:nth-child(2){opacity:0;}.menu-open .nav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}.nav-contact{font-size:14px;padding:12px 17px;}.hero{min-height:auto;padding:130px 22px 25px;display:block;}.hero h1{font-size:clamp(3.25rem,14vw,5rem);}.hero-intro{font-size:14px;}.hero-visual{height:350px;min-height:0;margin:55px 0 55px;}.hero-image-frame{left:5%;}.hero-caption{left:-10px;bottom:-17px;}.hero-signal{width:78px;height:78px;right:-28px;top:-26px;}.hero-signal:before{inset:10px;}.hero-signal:after{inset:24px;}.section-pad{padding:82px 22px;}.statement,.approach{display:block;}.section-label{margin-bottom:45px;}.statement h2{font-size:clamp(2.6rem,11vw,4rem);}.statement-note{margin:46px 0 0;}.services{padding-left:22px;padding-right:22px;}.services-heading{display:block;margin:45px 0 35px;}.services-heading h2{font-size:clamp(2.55rem,11vw,4rem);}.services-heading p{margin:21px 0 0;}.service-list{margin:0;}.service-item{min-height:0;padding:25px 0;grid-template-columns:31px 1fr 38px;gap:7px;}.service-num{margin-top:5px;}.service-item h3{font-size:17px;}.service-item p{font-size:12px;}.service-open{width:34px;height:34px;}.insight-band{min-height:300px;padding:45px 22px;}.insight-band p{font-size:clamp(2.45rem,10vw,3.9rem);}.band-stamp{right:22px;bottom:20px;}.approach-grid{display:block;}.approach-intro h2{font-size:clamp(2.45rem,10vw,3.7rem);}.approach-steps{margin-top:54px;}.contact-section{padding:74px 22px 0;}.contact-layout{display:block;margin:45px 0 0;padding:0 0 75px;}.contact-intro h2{font-size:clamp(2.35rem,10vw,3.7rem);}.contact-form{margin-top:55px;}.site-footer{min-height:0;padding:34px 22px 25px;display:flex;flex-direction:column;gap:24px;}.footer-links{justify-content:flex-start;flex-wrap:wrap;}.site-footer small{margin-top:20px;}.dialog-panel{padding:48px 28px 30px;}.policy-header{padding:0 22px;}.policy-hero{min-height:430px;padding:53px 22px 67px;display:block;}.policy-hero h1{font-size:clamp(4rem,17vw,5.9rem);margin:86px 0 35px;}.policy-hero>div{display:block;padding-top:0;}.policy-hero>div p{margin:0 0 16px;font-size:14px;}.policy-content{padding:62px 22px 80px;display:block;}.policy-aside{position:static;display:none;}.policy-callout{margin-bottom:58px;grid-template-columns:45px 1fr;gap:9px;}.policy-content article section{padding-bottom:34px;margin-bottom:34px;}.policy-content h2{font-size:2.2rem;}.policy-content article section>p:not(.policy-number){font-size:13px;}.policy-footer{display:flex;}.policy-footer .footer-brand{order:0;}.policy-footer .footer-links{order:1;}.policy-footer small{order:2;} }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;} }
