:root {
  --forest-950:#0b1a15;
  --forest-900:#10271f;
  --forest-800:#17362b;
  --forest-700:#214537;
  --bronze:#b78a4b;
  --bronze-light:#d6b878;
  --cream:#f1eee5;
  --paper:#faf8f2;
  --ink:#111712;
  --muted:#657068;
  --line:rgba(16,39,31,.17);
  --white:#fff;
  --shadow:0 28px 70px rgba(8,23,17,.18);
  --max:1360px;
  --header-h:78px;
  --ease:cubic-bezier(.16,1,.3,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 22px)}
body{margin:0;color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%}
a{color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
::selection{background:var(--bronze-light);color:var(--forest-950)}

.skip-link{position:fixed;left:18px;top:12px;z-index:9999;padding:11px 15px;background:var(--paper);color:var(--forest-950);transform:translateY(-160%);transition:transform .2s ease;text-decoration:none;font-weight:700;border:2px solid var(--forest-950)}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:3px solid var(--bronze-light);outline-offset:4px}

.site-loader{position:fixed;inset:0;z-index:9990;display:grid;place-items:center;background:var(--forest-950);animation:loader-away .46s var(--ease) 1.05s forwards;pointer-events:none}
.loader-mark{display:flex;gap:8px;align-items:flex-end;height:46px}
.loader-mark span{display:block;width:5px;background:var(--bronze-light);animation:loader-bars .75s var(--ease) infinite alternate}
.loader-mark span:nth-child(1){height:20px}.loader-mark span:nth-child(2){height:42px;animation-delay:.12s}.loader-mark span:nth-child(3){height:29px;animation-delay:.24s}
@keyframes loader-bars{to{transform:scaleY(.35);opacity:.4}}
@keyframes loader-away{to{opacity:0;visibility:hidden}}

.site-header{position:sticky;top:0;z-index:1000;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:10px clamp(18px,4vw,58px);background:rgba(250,248,242,.91);backdrop-filter:blur(18px);border-bottom:1px solid rgba(16,39,31,.08);transition:box-shadow .35s ease,background .35s ease}
.site-header.is-scrolled{box-shadow:0 16px 50px rgba(16,39,31,.09);background:rgba(250,248,242,.97)}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-weight:750;letter-spacing:-.02em;font-size:.94rem}
.brand img{width:48px;height:48px;object-fit:contain;border-radius:11px}
.desktop-nav{display:none;align-items:center;gap:26px;font-size:.81rem;font-weight:700;letter-spacing:.035em}
.desktop-nav a,.site-footer nav a{position:relative;text-decoration:none}
.desktop-nav a::after,.site-footer nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:currentColor;transition:right .32s var(--ease)}
.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after,.site-footer nav a:hover::after,.site-footer nav a:focus-visible::after{right:0}
.mobile-nav{position:relative}
.mobile-nav summary{list-style:none;width:48px;height:48px;border:1px solid var(--line);display:grid;place-content:center;gap:7px;cursor:pointer;background:rgba(255,255,255,.45)}
.mobile-nav summary::-webkit-details-marker{display:none}
.mobile-nav summary span{width:20px;height:1.5px;background:var(--forest-950);transition:transform .3s var(--ease)}
.mobile-nav[open] summary span:first-child{transform:translateY(4.25px) rotate(45deg)}
.mobile-nav[open] summary span:last-child{transform:translateY(-4.25px) rotate(-45deg)}
.mobile-nav nav{position:absolute;right:0;top:58px;width:min(310px,calc(100vw - 28px));padding:18px;background:var(--forest-950);color:var(--cream);box-shadow:var(--shadow);display:grid;gap:4px}
.mobile-nav nav a{padding:13px 12px;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08);font-weight:650}

.hero{position:relative;min-height:calc(100svh - var(--header-h));overflow:hidden;background:var(--cream);display:grid;grid-template-columns:1fr;align-items:end;padding:clamp(34px,7vw,96px) clamp(18px,4vw,58px)}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0 43%,rgba(183,138,75,.12) 43% 43.2%,transparent 43.2%);pointer-events:none}
.hero-copy{position:relative;z-index:4;max-width:850px;padding-bottom:38px}
.hero-index,.section-kicker{margin:0 0 20px;font-size:.7rem;font-weight:800;letter-spacing:.32em;color:var(--bronze);font-variant-numeric:tabular-nums}
.hero h1{margin:0;max-width:10ch;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.45rem,12vw,9.3rem);line-height:.82;letter-spacing:-.075em;color:var(--forest-950);overflow-wrap:anywhere}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}
.button{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 22px;text-decoration:none;font-size:.82rem;font-weight:800;letter-spacing:.04em;border:1px solid transparent;transition:transform .32s var(--ease),box-shadow .32s var(--ease),background .32s ease,color .32s ease}
.button:hover{transform:translateY(-3px)}
.button-primary{background:var(--forest-950);color:var(--cream);box-shadow:0 16px 30px rgba(11,26,21,.18)}
.button-primary:hover{background:var(--forest-700);box-shadow:0 22px 42px rgba(11,26,21,.22)}
.button-quiet{background:transparent;border-color:rgba(16,39,31,.28);color:var(--forest-950)}
.button-quiet:hover{background:rgba(255,255,255,.54)}
.ripple{position:absolute;border-radius:999px;background:rgba(255,255,255,.34);transform:scale(0);animation:ripple .62s ease-out;pointer-events:none;z-index:-1}
@keyframes ripple{to{transform:scale(3.3);opacity:0}}

.hero-visual{position:relative;z-index:2;width:min(100%,840px);height:clamp(280px,44vw,620px);margin:0 0 0 auto;overflow:hidden;clip-path:polygon(8% 0,100% 0,100% 100%,0 100%,0 11%);box-shadow:var(--shadow)}
.kinetic-image img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .7s ease;will-change:transform}
.kinetic-image:hover img{transform:scale(1.035)}
.hero-frame{position:absolute;inset:18px;border:1px solid rgba(255,255,255,.7);pointer-events:none}
.hero-logo{position:absolute;z-index:5;right:clamp(18px,4vw,58px);bottom:clamp(24px,4vw,52px);width:clamp(72px,11vw,145px);filter:drop-shadow(0 20px 28px rgba(0,0,0,.2))}
.hero-logo img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:22%}
.hero-architecture{position:absolute;left:0;top:0;bottom:0;width:44%;pointer-events:none;opacity:.45}
.hero-architecture span{position:absolute;background:rgba(16,39,31,.11)}
.hero-architecture span:nth-child(1){left:8%;top:5%;width:1px;height:82%}.hero-architecture span:nth-child(2){left:22%;top:22%;width:1px;height:74%}.hero-architecture span:nth-child(3){left:0;top:42%;width:42%;height:1px}

.section{position:relative;padding:clamp(78px,11vw,160px) clamp(18px,4vw,58px)}
.section-heading-wrap{max-width:var(--max);margin:0 auto 50px;display:flex;align-items:flex-end;gap:28px}
.section h2,.contact-section h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.2rem,9vw,8rem);line-height:.87;letter-spacing:-.06em;color:var(--forest-950)}
.title-rule{height:1px;background:var(--line);flex:1;margin-bottom:10px}
.about-section{background:var(--paper)}
.about-section>.section-kicker{max-width:var(--max);margin-left:auto;margin-right:auto}
.about-collage{position:relative;max-width:var(--max);min-height:720px;margin:0 auto}
.about-main{position:absolute;left:0;top:0;width:min(62%,730px);height:620px;margin:0;overflow:hidden;clip-path:polygon(0 0,88% 0,100% 16%,100% 100%,0 100%);box-shadow:var(--shadow)}
.about-inset{position:absolute;right:2%;bottom:0;width:min(36%,420px);height:430px;margin:0;overflow:hidden;border:16px solid var(--paper);box-shadow:0 28px 80px rgba(12,31,23,.16);z-index:2}
.about-grid{position:absolute;right:0;top:22px;width:42%;height:420px;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:36px 36px;opacity:.62;mask-image:linear-gradient(to left,#000,transparent)}

.services-section{background:var(--forest-950);color:var(--cream);overflow:hidden}
.services-section::before{content:"";position:absolute;inset:-30% 58% -30% -18%;background:radial-gradient(circle,rgba(183,138,75,.14),transparent 63%);pointer-events:none}
.services-head{max-width:var(--max);margin:0 auto 56px;display:flex;align-items:flex-end;justify-content:space-between;gap:25px}
.services-section h2{color:var(--cream);text-align:right}
.services-stage{position:relative;max-width:var(--max);height:720px;margin:0 auto}
.services-blueprint{position:absolute;left:0;top:18%;width:52%;height:64%;margin:0;overflow:hidden;filter:saturate(.55) sepia(.12)}
.services-build{position:absolute;right:0;top:0;width:43%;height:88%;margin:0;overflow:hidden;clip-path:polygon(0 0,100% 8%,100% 100%,12% 100%);box-shadow:0 32px 70px rgba(0,0,0,.35)}
.services-line{position:absolute;left:47%;top:-8%;bottom:-8%;width:1px;background:linear-gradient(transparent,var(--bronze),transparent);transform:rotate(12deg);transform-origin:center}

.features-section{background:var(--cream);overflow:hidden}
.features-title{max-width:var(--max);margin:0 auto 56px;display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.features-title h2{text-align:right;max-width:8ch}
.features-panorama{position:relative;max-width:var(--max);height:min(68vw,680px);min-height:420px;margin:0 auto;overflow:hidden;clip-path:polygon(0 7%,86% 0,100% 18%,96% 92%,18% 100%,0 82%);box-shadow:var(--shadow)}
.features-panorama img{object-position:center 35%}
.cut-line{position:absolute;top:0;bottom:0;width:1px;background:rgba(255,255,255,.55);box-shadow:0 0 0 12px rgba(255,255,255,.045);pointer-events:none}
.cut-one{left:33%;transform:rotate(7deg)}.cut-two{left:70%;transform:rotate(-5deg)}

.why-section{background:#181b18;color:var(--cream);display:grid;gap:38px;overflow:hidden}
.why-copy{position:relative;z-index:2;display:flex;min-height:520px;flex-direction:column;justify-content:center;align-items:flex-start}
.why-copy h2{color:var(--cream);max-width:8ch}
.why-emblem{position:absolute;left:48%;bottom:-8%;width:min(42vw,390px);opacity:.08;filter:grayscale(1) brightness(2);transform:rotate(-7deg);object-fit:contain}
.why-visual{height:650px;margin:0;overflow:hidden;clip-path:polygon(10% 0,100% 0,100% 88%,86% 100%,0 100%,0 13%)}
.why-visual img{filter:saturate(.65) contrast(1.08)}

.contact-section{position:relative;display:grid;gap:48px;padding:clamp(86px,11vw,160px) clamp(18px,4vw,58px);background:var(--paper);overflow:hidden}
.contact-rule{position:absolute;left:4vw;right:4vw;top:0;height:1px;background:var(--line)}
.contact-content{position:relative;z-index:2}
.contact-content p{margin:34px 0 10px;font-weight:800;font-size:clamp(1rem,2vw,1.35rem)}
.contact-email{display:inline-block;max-width:100%;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.35rem,4.3vw,3.5rem);line-height:1.08;text-decoration-thickness:1px;text-underline-offset:8px;overflow-wrap:anywhere}
.button-contact{margin-top:28px;background:var(--bronze);color:var(--forest-950);min-width:138px}
.contact-logo{width:min(70vw,390px);justify-self:end;align-self:center;transform:rotate(2deg)}
.contact-logo img{width:100%;object-fit:contain;filter:drop-shadow(0 28px 44px rgba(16,39,31,.2))}

.site-footer{display:grid;gap:28px;padding:48px clamp(18px,4vw,58px) 54px;background:var(--forest-950);color:var(--cream);border-top:1px solid rgba(255,255,255,.08)}
.footer-brand{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.7rem,4vw,3rem);overflow-wrap:anywhere}
.site-footer nav{display:flex;flex-wrap:wrap;gap:16px 24px;font-size:.8rem;font-weight:700}
.footer-email,.photo-credit{width:max-content;max-width:100%;font-size:.8rem;overflow-wrap:anywhere}
.photo-credit{color:rgba(241,238,229,.62)}

.scroll-top{position:fixed;right:18px;bottom:18px;z-index:900;width:48px;height:48px;border:0;background:var(--bronze);color:var(--forest-950);display:grid;place-items:center;cursor:pointer;box-shadow:0 14px 36px rgba(11,26,21,.22);opacity:0;pointer-events:none;transform:translateY(14px);transition:opacity .3s ease,transform .3s var(--ease);overflow:hidden}
.scroll-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.scroll-top span{font-size:1.2rem;line-height:1}

/* Privacy policy — intentionally no table of contents. */
.policy-page{background:#e8e5dc;color:#172018}
.policy-page .site-header{position:sticky}
.policy-shell{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:1fr;min-height:100vh}
.policy-visual{position:relative;padding:clamp(42px,7vw,92px) clamp(22px,5vw,72px);background:var(--forest-950);overflow:hidden;display:grid;place-items:center}
.policy-visual::before,.policy-visual::after{content:"";position:absolute;border:1px solid rgba(214,184,120,.22);width:70%;aspect-ratio:1;transform:rotate(45deg)}
.policy-visual::before{left:-32%;top:8%}.policy-visual::after{right:-36%;bottom:-20%}
.policy-visual img{position:relative;z-index:2;width:min(68vw,320px);height:auto;object-fit:contain;filter:drop-shadow(0 34px 52px rgba(0,0,0,.34))}
.policy-document{background:var(--paper);padding:clamp(44px,7vw,96px) clamp(20px,6vw,90px);min-width:0}
.policy-article{max-width:850px;margin:0 auto;font-size:1rem;line-height:1.78;word-break:normal;overflow-wrap:anywhere}
.policy-article h1{margin:0 0 14px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,8vw,6.9rem);line-height:.88;letter-spacing:-.06em;color:var(--forest-950)}
.policy-effective{margin:0 0 42px;color:var(--forest-700);font-weight:750}
.policy-meta{display:grid;grid-template-columns:minmax(120px,.45fr) minmax(0,1fr);gap:9px 20px;padding:24px 0 30px;margin:0 0 44px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.policy-meta dt{font-weight:800}.policy-meta dd{margin:0;overflow-wrap:anywhere}.policy-meta a,.policy-article a{color:var(--forest-700);text-underline-offset:4px}
.policy-section{padding:34px 0;border-top:1px solid var(--line)}
.policy-section h2{margin:0 0 18px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.55rem,3.3vw,2.35rem);line-height:1.15;letter-spacing:-.025em;color:var(--forest-950)}
.policy-section p{margin:0 0 18px}.policy-section p:last-child{margin-bottom:0}
.policy-section ul{margin:10px 0 22px;padding:0;list-style:none;display:grid;gap:7px}
.policy-section li{position:relative;padding-left:20px}
.policy-section li::before{content:"";position:absolute;left:1px;top:.82em;width:7px;height:1px;background:var(--bronze)}
.policy-contact-lines{display:grid;gap:5px;margin-top:8px}
.policy-contact-lines p{margin:0}
.policy-footer{background:#121c16}
.policy-footer .footer-brand{font-size:1.35rem}

@media (min-width:760px){
  .contact-section{grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);align-items:center}
  .site-footer{grid-template-columns:1.25fr 1.6fr;align-items:start}
  .footer-email,.photo-credit{justify-self:end}
  .policy-shell{grid-template-columns:minmax(300px,38vw) minmax(0,1fr)}
  .policy-visual{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));align-self:start}
  .policy-visual img{width:min(23vw,340px)}
}

@media (min-width:980px){
  .desktop-nav{display:flex}
  .mobile-nav{display:none}
  .hero{grid-template-columns:minmax(360px,.78fr) minmax(0,1.22fr);align-items:center;gap:clamp(30px,5vw,78px)}
  .hero-copy{padding:0 0 7vh}
  .hero-visual{height:min(68vh,680px)}
  .hero-logo{bottom:9vh}
  .why-section{grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);padding-right:0}
  .why-visual{height:760px}
  .site-footer{grid-template-columns:1.15fr 1.8fr .8fr .9fr;align-items:end}
  .footer-email,.photo-credit{justify-self:end}
}

@media (max-width:759px){
  :root{--header-h:68px}
  .brand img{width:44px;height:44px}.brand span{font-size:.82rem}
  .hero{padding-top:48px;gap:30px}.hero h1{font-size:clamp(3.1rem,18vw,5.3rem)}
  .hero-visual{order:-1;height:46vh;min-height:310px}.hero-copy{padding-bottom:66px}
  .hero-logo{bottom:22px;width:76px}
  .about-collage{min-height:570px}.about-main{width:82%;height:450px}.about-inset{width:48%;height:280px;border-width:10px}.about-grid{width:58%;height:300px}
  .services-stage{height:560px}.services-blueprint{width:66%;height:55%;top:34%}.services-build{width:62%;height:70%}.services-head{align-items:flex-start;flex-direction:column}.services-section h2{text-align:left}
  .features-title{flex-direction:column}.features-title h2{text-align:left}.features-panorama{height:520px}
  .why-copy{min-height:340px}.why-visual{height:520px}.why-emblem{left:52%;width:58vw}
  .contact-logo{justify-self:start;width:min(58vw,280px)}
  .policy-meta{grid-template-columns:1fr}.policy-meta dd{margin-bottom:8px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .site-loader{display:none}
}
