/* Neutral paper and precise ink, with color reserved for the opening folio. */
:root{--paper:#f7f8fa;--ink:#252d3b;--muted:#596473;--line:#d2d9e2;--accent:#0862c7;--blue:#0f80ff;--coral:#ff4b3f}
body{background:var(--paper)}
.legal-links{display:flex;gap:24px;flex-wrap:wrap;margin-top:22px;font-size:12px}.legal-links a,.contact-privacy a{text-decoration:underline;text-underline-offset:4px}
.hero{background:#f7f8fa;background-image:none;color:var(--ink);isolation:isolate}
.hero .hero-art{inset:0;transform:none}
.hero .hero-art canvas{filter:none!important;width:100%;height:100%}
.hero:after{display:none}.hero:before{z-index:1;opacity:.16;mix-blend-mode:multiply}
.hero h1,.hero h1 em{color:#292c32;text-shadow:none}
.hero h1{z-index:2;bottom:clamp(60px,8vh,110px)}
.header{color:#292c32}.header nav a:hover{color:#205bba}
.header::before{background:rgba(247,248,250,.83)}
.perspective,.investments,.approach,.lens,.contact,.footer{position:relative;isolation:isolate}
.perspective:before,.investments:before,.approach:before,.lens:before,.contact:before,.footer:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url('grain.svg');opacity:.075;mix-blend-mode:multiply}
.perspective,.lens{background:#f7f8fa}.investments{background:#eef2f8}.footer{background:#e9eef5}
.perspective{overflow:hidden}.belief-line{position:relative}
.architecture{background-image:url('grain.svg');background-size:180px}.map-paper{fill:#eeebe5;opacity:.9}
.map-parcels{fill:#d6d6d6;stroke:#b0b7c0}.map-contours{stroke:#aeb7c5;opacity:.7}
.map-water{stroke:#9ab3cf;opacity:.65}.map-roads{stroke:#f6f3ed}
.enterprise-sketch{color:#3b424e}
.enterprise-sketch svg .pen-building{fill:none;stroke:#424751;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.pen-building path:not(:first-child){stroke-width:.7}
.pen-building .pen-side{fill:#344a6510;stroke-width:.85}.pen-building .pen-shade{opacity:.25}.pen-building .pen-loose{stroke-width:.45;opacity:.4}
.pen-ground,.pen-hatch{fill:none;stroke:#565b65;stroke-width:.55;opacity:.6}
.pen-link{stroke:#5c789b;stroke-width:1}
.enterprise-sketch svg text{fill:#4f5661}
.approach{background:#edf1f7;color:#292c32;overflow:hidden}
.approach .small-note,.approach-intro>p,.principles p,.principles article>span{color:#676970}
.approach .section-heading,.principles article{border-color:#ccc8c2}
.approach-layout{grid-template-columns:1fr 1fr;row-gap:0;align-items:start}
.principles{grid-column:2;grid-row:1}
.approach-watermark{display:none}
.approach-intro>p{font-size:18px;max-width:360px}
.contact{background:#232a35}.contact:before{mix-blend-mode:screen;opacity:.045}
.contact .section-heading{border-color:#606876}.contact .small-note,.contact .form-note,.contact-privacy{color:#d1d5dd}
.contact .submit{background:#f6f3ed;color:#232a35}
/* Full field boundaries, with labels above and a quiet all-edge focus state. */
.contact input,.contact textarea,.contact select{border:1px solid #8290a2;border-radius:3px;background:#ffffff04;padding:12px 14px;min-height:48px;margin-top:8px;box-shadow:none}
.contact textarea{min-height:130px}
.contact #intro-form label{text-transform:uppercase;letter-spacing:.9px}
.contact #intro-form input,.contact #intro-form textarea{text-transform:none;letter-spacing:normal}
.contact textarea::placeholder{color:#aeb9d3;opacity:.82;transition:opacity .18s ease}
.contact textarea:focus::placeholder{opacity:0}
.contact label[for="inquiry"]{margin-bottom:8px}
.contact select{margin-top:0}
.contact input:focus,.contact textarea:focus,.contact select:focus{outline:none;border-color:#b9d2f2;box-shadow:0 0 0 1px #b9d2f2}
.contact input[name="email"][aria-invalid="true"]{border-color:#8290a2;box-shadow:none}
.contact input[name="email"][aria-invalid="true"]:focus{border-color:#b9d2f2;box-shadow:0 0 0 1px #b9d2f2}
@media(max-width:600px), (max-width:1100px) and (orientation:portrait){.contact input,.contact textarea,.contact select{font-size:16px}}
.menu-texture{background-image:repeating-linear-gradient(118deg,transparent 0 11px,#326cc028 11px 12px,transparent 12px 22px)!important;background-color:#eeebe6!important;background-blend-mode:normal!important;filter:none!important;background-size:auto!important}
.header #navigation.open{background:#f7f8fa}
.lens .risk-list summary svg{stroke:#7f899a}.risk-list .lens-new{stroke:#406ea1}
@media(max-width:600px), (max-width:1100px) and (orientation:portrait){
 .hero .hero-art{inset:0}.hero h1,.hero h1 em{color:#292c32}
 .hero h1{bottom:70px;font-size:clamp(51px,9vw,100px)}
 .approach-layout{grid-template-columns:1fr;gap:38px}.approach-intro,.principles{grid-column:1;grid-row:auto}
 .enterprise-sketch svg text{font-size:14px}
}
@media(max-height:500px){.hero h1{font-size:clamp(28px,min(8.6vw,16dvh),90px);bottom:28px}}

/* Concrete location context, with a single unmistakable subject property. */
.architecture.property-context{background-image:none}
.property-context svg .context-question{font:28px var(--serif);fill:#303947;letter-spacing:0}
.property-context svg .context-heading{font:20px var(--serif);fill:#303947;letter-spacing:0}
.property-context svg .context-note{font:12px var(--sans);fill:#616c7c;letter-spacing:0}
.context-streets{fill:none;stroke:#c3c7ce;stroke-width:10;opacity:.45}
.context-neighborhood,.context-employers{fill:none;stroke:#687485;stroke-width:1.15}
.property-context svg text{stroke:none}
.context-access{fill:none;stroke:#617b9c;stroke-width:1.2}
.context-connection{stroke:#326c9d;stroke-width:1.7}
.context-property{fill:#f3f0eb;stroke:#354b67;stroke-width:1.5}
.context-property path:not(:first-child){fill:none;stroke-width:1}
.approach-layout{grid-template-columns:1fr 1fr;row-gap:30px;align-items:start}
.approach-intro{grid-column:1;grid-row:1}.principles{grid-column:2;grid-row:1/3}
.principles h3 button{appearance:none;display:block;background:transparent;color:inherit;border:0;padding:0;text-align:left;font:inherit;cursor:pointer}
.principles h3 button:focus-visible{outline:2px solid #326c9d;outline-offset:6px}
.principles article{transition:border-color .3s}.principles .current-step{border-color:#326c9d}
.principles .current-step h3{color:#245c84}
.approach-notebook{grid-column:1;grid-row:2;margin:0;align-self:start}
.notebook-sheet{padding:24px 26px;background:#f8f5f0;border:1px solid #d0cbc4;position:relative}
.notebook-sheet:before{content:'';position:absolute;inset:0;pointer-events:none;background:url('grain.svg');opacity:.07}
.notebook-top{display:flex;justify-content:space-between;gap:16px;font:9px/1.6 var(--sans);letter-spacing:1px;color:#6f747d;border-bottom:1px solid #d7d2ca;padding-bottom:15px}
.notebook-page{white-space:nowrap}.notebook-sheet h3{font:32px/1.1 var(--serif);margin:23px 0;color:#303b4d;min-height:2.2em}
.notebook-nav{display:flex;gap:22px;margin-top:20px}.notebook-nav button{background:none;border:0;border-bottom:1px solid transparent;color:#676970;font:12px var(--sans);padding:8px 0;cursor:pointer}.notebook-nav button[aria-pressed=true]{color:#245c84;border-color:currentColor}.notebook-nav button:focus-visible{outline:2px solid #326c9d;outline-offset:4px}
.notebook-lines{list-style:none;padding:0;margin:0;min-height:180px;counter-reset:work}
.notebook-lines li{counter-increment:work;position:relative;padding:12px 0 12px 30px;border-bottom:1px solid #d9d4cd;font:14px/1.55 var(--sans);color:#4b586a}
.notebook-lines li:before{content:'0' counter(work);position:absolute;left:0;top:14px;font:10px var(--sans);color:#7b879b}
.notebook-sheet .notebook-note{font:italic 22px/1.2 var(--serif);color:#476c9b;margin:24px 0 0;min-height:2.4em;max-width:none}
.notebook-enter .notebook-lines li{animation:notebook-write .8s var(--line-delay) both}
@keyframes notebook-write{from{opacity:.15;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}
@media(max-width:600px), (max-width:1100px) and (orientation:portrait){
 .approach-layout{grid-template-columns:1fr;gap:30px}.approach-intro,.principles,.approach-notebook{grid-column:1;grid-row:auto}
 .principles{grid-row:2}.approach-notebook{grid-row:3;width:100%;max-width:600px;margin:auto}
 .property-context svg .context-note{font-size:13px}.property-context svg .context-heading{font-size:22px}
 .notebook-sheet{padding:20px}.notebook-lines{min-height:190px}
}
@media(prefers-reduced-motion:reduce){.notebook-enter .notebook-lines li{animation:none}}
@media(max-width:600px){.property-context svg .context-note{display:none}.property-context svg .context-heading{font-size:25px}.property-context svg .context-question{font-size:30px}}

/* A fresh hero composition: typed editorial title above the analytical drawing. */
.hero #hero-title{position:absolute;top:clamp(116px,15vh,180px);bottom:auto;left:4%;right:4%;margin:0;text-align:center;font-size:clamp(66px,7.5vw,128px);line-height:.98;letter-spacing:-.035em}
.hero #hero-title .type-line{display:block;width:max-content;max-width:100%;margin:0 auto;padding:0;white-space:pre}
.hero #hero-title em{margin-top:8px}
.hero-typing .typing-char{position:relative;opacity:0}.hero-typing .typing-char.is-shown{opacity:1}
.typing-char.has-caret:after{content:'';position:absolute;right:-.055em;top:.12em;height:.8em;border-right:1px solid currentColor}
@media(max-width:600px), (max-width:1100px) and (orientation:portrait){.hero #hero-title{top:clamp(125px,18vh,205px);font-size:clamp(44px,9vw,92px)}}
@media(max-height:500px){.hero #hero-title{top:85px;font-size:clamp(30px,9vh,48px)}}
@media(prefers-reduced-motion:reduce){.hero-typing .typing-char{opacity:1}.typing-char.has-caret:after{display:none}}

/* Carry the logo palette through the editorial surfaces, without tinting body text. */
.hero:before{opacity:.04}.hero #hero-title em{color:#0862c7}
.belief-line span:before,.section-heading .eyebrow{color:#0862c7}
.text-link{color:#0862c7}.text-link:hover{color:#cc342d}
.approach em{color:#0862c7}.principles .current-step{border-color:#0f80ff}
.principles .current-step h3,.notebook-nav button[aria-pressed=true]{color:#0862c7}
.notebook-sheet{background:#fafbfd;border-color:#cbd5e3}
.notebook-top,.notebook-lines li{border-color:#d3dce8}
.notebook-sheet .notebook-note{color:#0862c7}
.contact{background:#202c43}.contact em{color:#6fb6ff}
.contact .submit{background:#0862c7;color:#fff}.contact .submit:hover{background:#074fa3}
.context-connection,.context-access,.pen-link{stroke:#0f80ff}
.context-property{fill:#f7f8fa;stroke:#0862c7}.lens .risk-list .lens-new{stroke:#0f80ff}
.menu-texture{background-color:#eef2f8!important;background-image:repeating-linear-gradient(135deg,transparent 0 22px,#0f80ff44 22px 34px,transparent 34px 55px,#ff4b3f33 55px 62px)!important}
.hero .hero-art{pointer-events:auto}.hero #landscape{touch-action:pan-y;cursor:crosshair;-webkit-user-select:none;user-select:none}.hero #landscape[data-mode="graph"]{cursor:grab}.hero #landscape.dragging{cursor:grabbing}
.hero #hero-title{pointer-events:none}.hero #landscape:focus-visible{outline:2px solid #0862c7;outline-offset:-4px}
.hero-controls{position:absolute;z-index:3;bottom:22px;left:5%;right:5%;display:flex;align-items:center;justify-content:center;gap:20px;font:11px var(--sans);color:#43536a}
.hero-controls[hidden],.hero-controls [hidden]{display:none}.hero-controls button{font:inherit;border:0;border-bottom:1px solid #0862c7;background:#f7f8fad9;color:#075abc;padding:7px 2px;cursor:pointer}.hero-controls button:focus-visible{outline:2px solid #0862c7;outline-offset:4px}.hero-controls button:disabled{display:none}
.hero-hint{background:#f7f8fad9;padding:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){.hero-controls{flex-wrap:wrap;gap:8px 20px;bottom:18px}.hero-hint{flex-basis:100%;text-align:center}}
