:root { --paper:#f0eee7; --ink:#24392e; --muted:#596459; --line:#c9cfc1; --gold:#c4aa78; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:30px; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.65 Arial,Helvetica,sans-serif; }
img { max-width:100%; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid #ad8952; outline-offset:5px; }
[hidden] { display:none!important; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:Baskerville,'Times New Roman',serif; font-weight:400; }
em { font-weight:400; }
.skip { position:absolute; top:-100px; left:20px; z-index:20; background:var(--paper); padding:12px 20px; }
.skip:focus { top:16px; }
.header { height:104px; display:flex; justify-content:space-between; align-items:center; padding:0 5vw; gap:25px; }
.brand { display:flex; flex-direction:column; align-items:center; width:172px; flex:none; }
.brand img { width:100%; height:auto; display:block; }
.brand span { font-size:8px; letter-spacing:.6em; margin-top:6px; margin-left:.6em; }
.header nav { display:flex; align-items:center; gap:32px; font-size:12px; }
.button { display:inline-flex; justify-content:space-between; align-items:center; gap:32px; border:1px solid currentColor; padding:16px 24px; border-radius:40px; font-size:13px; background:none; color:inherit; cursor:pointer; transition:background .2s,color .2s; }
.button:hover { background:var(--ink); color:var(--paper); }
.button-small { padding:12px 24px; }
.hero { --k-poster:url('assets/hero-poster.webp'); background:#18251d; color:#fffaf0; }
.hero .k-stage { min-height:600px; }
.hero-shade { position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,rgba(8,21,13,.72),rgba(8,21,13,.3) 49%,rgba(8,21,13,.04) 85%),linear-gradient(0deg,rgba(8,21,13,.58),transparent 32%); }
.hero-copy { position:absolute; z-index:2; left:6.8vw; top:20%; width:80%; transform-origin:left center; }
.eyebrow { text-transform:uppercase; letter-spacing:.19em; font-size:10px; line-height:1.8; }
.hero h1 { font-size:clamp(64px,8.2vw,136px); line-height:.97; letter-spacing:-.042em; margin:25px 0 30px; text-shadow:0 2px 22px #10221766; }
.hero-description { font-size:14px; line-height:1.7; }
.hero-cta { margin-top:26px; }
.hero-cta:hover { background:var(--paper); color:var(--ink); }
.hero-footer { position:absolute; z-index:3; left:7vw; right:5vw; bottom:32px; display:flex; justify-content:space-between; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.hero-footer a { display:flex; gap:18px; }
.k-static .k-stage,.k-media-failed .k-stage { min-height:700px; height:calc(100svh - 104px); padding:0; display:block; }
.k-static .hero-copy,.k-media-failed .hero-copy { transform:none!important; }
.section { padding:100px 7vw; }
.section-label { display:flex; gap:20px; align-items:baseline; }
.section-number { color:#798273; font-size:11px; }
.intro { display:grid; grid-template-columns:1fr 2fr; gap:7vw; padding-top:130px; padding-bottom:110px; }
h2 { font-size:clamp(40px,4.7vw,76px); line-height:1.08; letter-spacing:-.035em; }
.intro .lead { font-size:19px; margin:30px 0 15px; max-width:40ch; }
.intro p:not(.lead) { color:var(--muted); max-width:45ch; }
.services { padding-top:0; }
.service-row { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:40px 0; display:grid; grid-template-columns:50px 1fr 1fr; gap:35px; align-items:start; }
.service-index { font-size:11px; color:#65745f; display:block; margin-bottom:20px; }
h3 { font-size:clamp(36px,3.5vw,56px); line-height:1.12; letter-spacing:-.025em; }
.service-row h3 { margin-top:18px; }
.service-row p:not(.eyebrow),.feature p:not(.eyebrow) { color:var(--muted); max-width:38ch; }
.text-link { display:inline-flex; gap:25px; align-items:center; border-bottom:1px solid #8c9783; font-size:12px; padding:6px 0; margin-top:25px; }
.text-link:hover { border-color:var(--ink); }
.feature { display:grid; grid-template-columns:1.35fr 1fr; align-items:center; gap:6vw; margin-top:100px; }
.feature figure { position:relative; }
.feature img { display:block; width:100%; height:560px; object-fit:cover; }
.feature h3 { margin:18px 0 24px; }
.feature.reverse { grid-template-columns:1fr 1.35fr; }
.feature.reverse figure { order:2; }
.feature.reverse .feature-copy { order:1; }
.collection { background:#e4e7dc; display:grid; grid-template-columns:1fr 1.6fr; gap:6vw; }
.collection-intro h2 { font-size:clamp(36px,3.6vw,58px); margin:35px 0 24px; }
.collection-intro p { color:var(--muted); max-width:38ch; }
.small { font-size:11px; line-height:1.7; }
.collection-intro .small { margin-top:18px; }
.collection-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
.collection-grid figure:nth-child(2) { padding-top:85px; }
.collection-grid img { display:block; width:100%; height:auto; }
.collection-grid figcaption { font-size:13px; padding-top:14px; }
.collection-grid figcaption a { display:block; font-size:10px; color:var(--muted); margin-top:6px; text-decoration:underline; text-underline-offset:3px; }
.process { padding-top:110px; padding-bottom:110px; }
.process h2 { margin:30px 0 60px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:5vw; }
.steps article { border-top:1px solid var(--line); padding-top:24px; }
.steps span { font-size:11px; color:var(--muted); }
.steps h3 { font-size:29px; margin:20px 0 15px; }
.steps p { font-size:14px; color:var(--muted); max-width:31ch; }
.contact { background:var(--ink); color:var(--paper); display:grid; grid-template-columns:1fr 1.15fr; gap:8vw; }
.contact h2 { margin:28px 0; font-size:clamp(44px,5vw,80px); }
.contact-intro>p:not(.eyebrow) { color:#d0d8c8; }
.email { display:inline-block; margin:25px 0; font-size:15px; border-bottom:1px solid #8c9c87; }
.contact details { margin-top:35px; max-width:38ch; font-size:12px; border-top:1px solid #72816c; padding-top:20px; }
summary { cursor:pointer; }
.contact details p { margin-top:12px; color:#d0d8c8; }
form { padding-top:5px; }
.form-heading { display:flex; justify-content:space-between; align-items:center; padding-bottom:30px; border-bottom:1px solid #73846d; margin-bottom:30px; }
.form-heading h3 { font-size:32px; }
.form-heading span { font-size:9px; letter-spacing:.15em; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
label { display:block; font-size:11px; line-height:1.5; }
input,select,textarea { display:block; width:100%; min-width:0; background:transparent; color:var(--paper); border:0; border-bottom:1px solid #819078; padding:12px 0; border-radius:0; outline-offset:3px; font-size:14px; }
input::placeholder,textarea::placeholder { color:#b9c5b0; opacity:1; }
select { color-scheme:dark; }
select option { background:#24392e; }
input[type=date] { color-scheme:dark; }
textarea { resize:vertical; margin-bottom:22px; }
form>label { margin-top:24px; }
.consent { display:flex; align-items:flex-start; gap:10px; color:#d3dbcd; }
.consent input { width:16px; height:16px; margin:2px 0 0; accent-color:#d1c092; flex:none; }
.consent a { text-decoration:underline; text-underline-offset:3px; }
.submit { width:100%; margin-top:26px; background:var(--paper); color:var(--ink); border-color:var(--paper); }
.submit:hover { background:#dbe2d2; color:var(--ink); }
.submit:disabled { opacity:.6; cursor:wait; }
[data-k-sent],[data-k-error],.preview-note { margin-top:20px; font-size:12px; background:#ffffff10; border-left:2px solid var(--gold); padding:12px 15px; }
.footer { padding:50px 7vw; display:flex; justify-content:space-between; gap:35px; align-items:start; }
.footer .brand { width:155px; }
.footer p { margin-top:16px; font-size:12px; }
.footer>div:nth-child(2) { display:flex; gap:26px; font-size:12px; }
.footer .small { font-size:10px; color:var(--muted); margin:0; }
.legal { max-width:900px; margin:auto; padding:80px 7vw; }
.legal h1 { font-size:60px; line-height:1.1; margin-bottom:35px; }
.legal h2 { font-size:28px; margin:35px 0 12px; }
.legal a { text-decoration:underline; }
@media(min-width:1800px) { .section,.footer { padding-left:max(7vw,calc((100vw - 1600px)/2)); padding-right:max(7vw,calc((100vw - 1600px)/2)); } }
@media(max-width:900px) { .header nav { gap:18px; } .nav-detail { display:none; } .intro { grid-template-columns:1fr 2fr; gap:30px; } .feature { gap:35px; } .feature img { height:440px; } .collection { grid-template-columns:1fr; } .collection-intro p { max-width:65ch; } .collection-grid { max-width:650px; } .contact { gap:40px; } }
@media(max-width:720px) {
 .header { height:80px; padding:0 6vw; gap:15px; } .brand { width:126px; } .brand span { font-size:6px; } .button-small { font-size:11px; padding:10px 16px; gap:15px; }
 .hero { --k-poster:url('assets/hero-phone-poster.webp'); } .hero .k-stage { min-height:570px; }
 .hero-copy { left:7vw; top:23%; width:86%; } .hero h1 { font-size:clamp(53px,15.5vw,100px); margin:22px 0; line-height:1.02; }
 .hero-description { font-size:13px; } .hero-cta { font-size:12px; padding:13px 20px; }
 .hero-shade { background:linear-gradient(90deg,#071d13a6,#071d1340),linear-gradient(0deg,#071d1370,transparent 65%); }
 .hero-footer { left:7vw; right:7vw; bottom:25px; font-size:8px; gap:10px; } .hero-footer a { gap:8px; }
 .k-static .k-stage,.k-media-failed .k-stage { min-height:640px; height:calc(100svh - 80px); }
 .section { padding:65px 7vw; } .intro { display:block; } .intro h2 { margin-top:30px; font-size:44px; } .intro .lead { font-size:17px; }
 .services { padding-top:0; } .service-row { grid-template-columns:24px 1fr; gap:20px; } .service-row>div:last-child { grid-column:2; } .service-row h3 { font-size:36px; } .service-row p:not(.eyebrow) { font-size:14px; }
 .feature,.feature.reverse { grid-template-columns:1fr; gap:30px; margin-top:60px; } .feature.reverse figure,.feature.reverse .feature-copy { order:initial; } .feature img { height:350px; } .feature h3 { font-size:40px; } .feature p { font-size:14px; } .feature .service-index { margin-bottom:12px; }
 .collection-intro h2 { font-size:43px; } .collection-grid { gap:16px; } .collection-grid figure:nth-child(2) { padding-top:48px; } .collection-grid figcaption { font-size:11px; } .collection-grid figcaption a { font-size:9px; }
 .process h2 { font-size:42px; margin-bottom:35px; } .steps { grid-template-columns:1fr; gap:30px; } .steps h3 { margin:12px 0; } .steps p { max-width:40ch; }
 .contact { grid-template-columns:1fr; gap:55px; } .contact h2 { font-size:58px; } .form-grid { gap:20px 16px; } input,select,textarea { font-size:16px; } .form-heading h3 { font-size:30px; }
 .footer { padding:40px 7vw; flex-wrap:wrap; } .footer>div:nth-child(2) { flex-direction:column; gap:14px; } .footer>.small { width:100%; }
 .legal h1 { font-size:44px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } .hero-copy { transform:none!important; } }

/* Shared pages and navigation. Native disclosures keep the FAQ and phone menu usable without scripts. */
.mobile-menu { display:none; }
.footer>nav { display:flex; flex-wrap:wrap; gap:14px 24px; max-width:390px; font-size:12px; }
.home-story { padding-top:0; padding-bottom:95px; max-width:1250px; }
.home-story h2 { font-size:clamp(36px,3.7vw,58px); margin:24px 0; }
.home-story>p:not(.eyebrow) { max-width:65ch; color:var(--muted); }
.page-intro { padding-top:85px; padding-bottom:95px; }
.page-intro h1 { font-size:clamp(62px,7.2vw,112px); line-height:1.02; letter-spacing:-.045em; margin:24px 0 30px; }
.page-intro .lead { font-size:19px; max-width:49ch; }
.about-intro { display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:7vw; border-bottom:1px solid var(--line); }
.about-opening { padding-bottom:36px; }
.about-opening>p { margin-top:25px; color:var(--muted); }
.about-opening .lead { color:var(--ink); }
.chapter-mark { font:400 112px/.9 Baskerville,'Times New Roman',serif; letter-spacing:-.06em; display:flex; align-items:center; gap:24px; }
.chapter-mark span { font:10px/1.8 Arial,sans-serif; text-transform:uppercase; letter-spacing:.17em; max-width:12ch; }
.heritage-heading { display:grid; grid-template-columns:1.5fr 1fr; align-items:end; gap:8vw; margin:35px 0 60px; }
.heritage-heading h2 { font-size:clamp(36px,4vw,64px); }
.heritage-heading p { color:var(--muted); max-width:42ch; }
.venture-grid { display:grid; grid-template-columns:1fr 1fr; gap:7vw; }
.venture { display:grid; grid-template-columns:minmax(130px,.8fr) 1fr; gap:28px; align-items:start; }
.venture img { width:100%; height:auto; display:block; }
.venture figcaption { font-size:9px; margin-top:10px; color:var(--muted); }
.venture h3 { font-size:37px; margin:16px 0; }
.venture p:not(.eyebrow) { font-size:14px; color:var(--muted); }
.venture p.venture-subtitle { color:var(--ink); font-size:12px; margin:-7px 0 20px; }
.venture .text-link { font-size:11px; gap:15px; }
.about-promise { background:#e4e7dc; }
.about-promise h2 { margin:28px 0 38px; max-width:26ch; }
.promise-grid { display:grid; grid-template-columns:1fr 1fr; gap:7vw; max-width:900px; color:var(--muted); }
.about-promise .button { margin-top:35px; }
.page-ending { background:var(--ink); color:var(--paper); display:flex; align-items:center; justify-content:space-between; gap:45px; }
.page-ending h2 { margin:20px 0; font-size:clamp(38px,4.5vw,68px); }
.page-ending p:not(.eyebrow) { font-size:14px; color:#d0d8c8; }
.page-ending p a { text-decoration:underline; text-underline-offset:4px; }
.page-ending .button:hover { background:var(--paper); color:var(--ink); }
.faq-intro { padding-bottom:55px; }
.faq-intro .lead { color:var(--muted); }
.faq-jump { display:flex; flex-wrap:wrap; gap:15px 35px; margin-top:42px; font-size:12px; }
.faq-jump a { border-bottom:1px solid var(--line); padding-bottom:8px; display:flex; gap:30px; }
.faq-sections { padding-top:0; }
.faq-group { display:grid; grid-template-columns:1fr 2fr; gap:7vw; border-top:1px solid var(--line); padding-top:45px; margin-top:45px; scroll-margin-top:35px; }
.faq-group h2 { font-size:36px; }
.faq-group details { border-bottom:1px solid var(--line); }
.faq-group summary { display:flex; justify-content:space-between; gap:25px; padding:21px 0; font-size:16px; line-height:1.5; list-style:none; }
.faq-group summary::-webkit-details-marker { display:none; }
.faq-symbol { flex:none; font-size:22px; line-height:1.1; transition:transform .2s; }
.faq-group details[open] .faq-symbol { transform:rotate(45deg); }
.faq-group details p { padding:0 35px 24px 0; color:var(--muted); font-size:14px; max-width:66ch; }
.faq-group details a { text-decoration:underline; text-underline-offset:4px; }
.not-found { display:grid; grid-template-columns:1fr 1.1fr; gap:7vw; align-items:center; min-height:calc(100svh - 104px); padding-top:70px; padding-bottom:90px; }
.error-number { font:400 clamp(150px,25vw,410px)/.9 Baskerville,'Times New Roman',serif; letter-spacing:-.09em; color:#9eac99; }
.error-copy h1 { font-size:clamp(48px,5vw,80px); letter-spacing:-.035em; line-height:1.05; margin:23px 0; }
.error-copy>p:not(.eyebrow) { max-width:43ch; color:var(--muted); }
.error-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:30px; }
.error-actions .text-link { margin:0; }
.error-links { display:flex; flex-wrap:wrap; gap:22px; margin-top:35px; font-size:11px; }
.error-links a { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:1100px) { .venture { grid-template-columns:1fr; } .venture figure { max-width:280px; } }
@media(max-width:720px) {
 .header .desktop-nav { display:none; }
 .mobile-menu { display:block; position:relative; font-size:12px; z-index:20; }
 .mobile-menu>summary { display:flex; align-items:center; gap:20px; padding:12px 0 12px 18px; list-style:none; }
 .mobile-menu>summary::-webkit-details-marker { display:none; }
 .mobile-menu>summary span { font-size:22px; }
 .mobile-menu[open]>summary span { transform:rotate(45deg); }
 .mobile-menu nav { position:absolute; right:-6vw; top:100%; width:min(300px,100vw); padding:25px; background:var(--paper); box-shadow:0 12px 22px #15291c21; border-top:1px solid var(--line); display:grid; gap:20px; }
 .mobile-menu nav a { font-size:15px; }
 .footer>nav { max-width:180px; gap:15px 20px; }
 .home-story { padding-top:0; padding-bottom:60px; }
 .home-story h2 { font-size:36px; }
 .page-intro { padding-top:50px; padding-bottom:60px; }
 .page-intro h1 { font-size:clamp(48px,12.8vw,78px); }
 .about-intro,.heritage-heading,.promise-grid { grid-template-columns:1fr; gap:32px; }
 .about-opening { padding:0; }
 .chapter-mark { font-size:90px; }
 .about-opening .lead { font-size:18px; }
 .heritage-heading { margin:28px 0 40px; }
 .heritage-heading h2 { font-size:38px; }
 .venture-grid { grid-template-columns:1fr; gap:55px; }
 .venture { grid-template-columns:minmax(110px,.85fr) 1fr; gap:22px; }
 .venture h3 { font-size:32px; }
 .venture p:not(.eyebrow) { font-size:13px; }
 .venture .eyebrow { font-size:8px; }
 .venture .text-link { font-size:10px; }
 .about-promise h2 { font-size:39px; }
 .page-ending { flex-direction:column; align-items:start; gap:20px; }
 .faq-jump { gap:18px; }
 .faq-jump a { font-size:11px; gap:15px; }
 .faq-group { grid-template-columns:1fr; gap:20px; padding-top:30px; margin-top:30px; }
 .faq-group h2 { font-size:31px; }
 .faq-group summary { font-size:15px; }
 .faq-group details p { padding-right:15px; }
 .not-found { grid-template-columns:1fr; gap:30px; min-height:0; padding-top:55px; }
 .error-number { font-size:145px; }
 .error-copy h1 { font-size:49px; }
 .error-actions { align-items:start; flex-direction:column; }
}
@media(max-width:380px) { .venture { grid-template-columns:1fr; } .venture figure { max-width:220px; } }

/* The project scrubber uses direct frame seeks; shared scene layout stays unchanged. */
.k-media-ready .k-stage > .coroa-film { opacity:1; }
.hero.coroa-static { height:auto!important; }
.hero.coroa-static .k-stage { min-height:700px; height:calc(100svh - 104px); }
.hero.coroa-static .hero-copy { transform:none!important; }
@media(max-width:720px) { .hero.coroa-static .k-stage { min-height:640px; height:calc(100svh - 80px); } }
