/* Logo-blue leads; coral marks opportunity, violet connects ideas. */
:root{--paper:#f6f8fc;--ink:#202d44;--accent:#0965d3;--blue:#0f80ff;--coral:#ff4b3f;--line:#cbd7e8}
.section-label{position:relative;display:inline-block;padding-top:20px}
.section-label:before{content:'';position:absolute;top:0;left:0;width:88px;height:3px;background:linear-gradient(90deg,#0f80ff 0 44%,#202d44 44% 69%,#ff4b3f 69% 100%)}
.contact .section-label{color:#edf5ff}
.contact .section-label:before{background:linear-gradient(90deg,#0f80ff 0 44%,#edf5ff 44% 69%,#ff4b3f 69% 100%)}
.hero{background:radial-gradient(ellipse at 12% 84%,#084da063,transparent 60%),radial-gradient(ellipse at 87% 58%,#6640bc40,transparent 55%),#08162d;color:#edf5ff}
.hero #hero-title,.hero #hero-title em{color:#f3f7ff;text-shadow:0 2px 28px #08162d80}.hero #hero-title em{color:#8ec8ff}
.header:not(.scrolled){color:#eef6ff}.menu-open .header{color:#202d44}.header.scrolled{color:#202d44}
.hero #landscape[data-mode=graph]{cursor:grab}.hero #landscape.dragging{cursor:grabbing}
.hero #landscape:focus-visible{outline-color:#83bdff}
.perspective,.lens{background:#f6f8fc}.investments{background:#edf3fc}.approach{background:#f0f3fb}
.investment-copy h3 em,.approach em{color:#0965d3}.belief-line{position:relative}.belief-line:after{content:'';position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,#0f80ff,#8175dc,#ff786b);opacity:.7}
.belief-line span:before{color:#0f80ff}.belief-line span:last-child:before{color:#ff4b3f}
.section-story{background:none!important;border:0;position:relative}.section-story svg,.process-study svg{overflow:visible;width:100%;height:auto;display:block}
/* Location intelligence: cartography, signal density and a rotating analytical sweep. */
.geo-streets{fill:none;stroke:#afbed1;stroke-width:8;opacity:.34}.geo-streets path+path{stroke:#f8fbff;stroke-width:3;opacity:.85}
.geo-parcels{fill:#e7eef8;stroke:#b9c8da;stroke-width:.8}.geo-contours{fill:none;stroke:#4b88c8;stroke-width:1.15;opacity:.46}
.geo-density{mix-blend-mode:multiply}.geo-density circle{fill:url('#demand-blue');opacity:.46}.geo-density.jobs circle{fill:url('#demand-coral');opacity:.42}
.geo-access{fill:none;stroke:#806bd8;stroke-width:14;opacity:.12}.geo-access-flow{fill:none;stroke:url('#access-flow');stroke-width:3;stroke-dasharray:10 18}
.geo-site{fill:#f7fbff;stroke:#0864ce;stroke-width:1.8;stroke-linejoin:round}.geo-site>circle{fill:none}.geo-site>circle:first-child{stroke:#168bff;opacity:.25;stroke-dasharray:2 5}
.geo-sweep{fill:#1a84ee0c;stroke:#168bff;stroke-width:.7;opacity:.68;transform-box:view-box;transform-origin:320px 274px}
.investment-visual svg .geo-label{font:10px var(--sans);letter-spacing:1.8px;fill:#4d6683;stroke:none}
.story-enter .geo-contours path{stroke-dasharray:1;stroke-dashoffset:1;animation:geo-draw 2.4s calc(var(--order,0)*.25s) both;animation-play-state:var(--drawing-play,paused)}
.story-enter .geo-contours path:nth-child(2){--order:1}.story-enter .geo-contours path:nth-child(3){--order:2}
.story-enter .geo-density circle{animation:geo-breathe 4.8s ease-in-out infinite alternate;animation-play-state:var(--drawing-play,paused)}
.story-enter .geo-density circle+circle{animation-delay:1.1s}.story-enter .geo-access-flow{animation:access-flow 4s linear infinite;animation-play-state:var(--drawing-play,paused)}
.story-enter .geo-sweep{animation:geo-sweep 8s linear infinite;animation-play-state:var(--drawing-play,paused)}
/* Operating companies: a distinct operating flywheel, not another knowledge graph. */
.businesses-text-only{position:relative;display:grid;grid-template-columns:minmax(320px,.9fr) minmax(360px,1fr);gap:9%;align-items:center;min-height:620px;margin-top:100px;padding:90px 4% 85px;border-top:1px solid #bfd0e6;border-bottom:1px solid #bfd0e6;overflow:hidden}
.businesses-text-only .investment-copy{position:relative;z-index:1;width:100%;margin-left:0}
.businesses-text-only .investment-copy h3{font-size:clamp(54px,6.4vw,94px);letter-spacing:-.025em}
.businesses-text-only .investment-copy p{max-width:520px;font-size:15px}
.operating-flywheel{position:relative;z-index:1;width:100%;max-width:570px;margin:auto;color:#1a5fb8}
.operating-flywheel svg{display:block;width:100%;height:auto;overflow:visible}
.operating-guides{fill:none;stroke:#9eb4cc;stroke-width:.7;opacity:.32}.operating-guides path{stroke-dasharray:3 7}
.operating-track{fill:none;stroke:#b8c8da;stroke-width:13;opacity:.34}
.operating-arc{fill:none;stroke:url('#operating-ring');stroke-width:14;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.operating-lever circle{fill:#f8f9ff;stroke:#277fd7;stroke-width:3}.operating-lever text,.operating-caption{font:600 11px var(--sans);letter-spacing:1.45px;fill:#536b84;text-anchor:middle}.lever-customers text{text-anchor:start}.lever-technology text{text-anchor:end}
.operating-core circle:first-child{fill:#0f80ff12;stroke:#4a91d8;stroke-width:1}.operating-core circle:nth-child(2){fill:#f8f9ff;stroke:#245f9c;stroke-width:1.5}.operating-core text{font:600 14px var(--sans);letter-spacing:1.8px;fill:#234f7d;text-anchor:middle}
.operating-momentum{fill:none;stroke:#ff6659;stroke-width:2.5;stroke-dasharray:1;stroke-dashoffset:1}.operating-arrow{fill:none;stroke:#ff6659;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.operating-caption{fill:#9a4960;text-anchor:start}
.story-enter .operating-arc{animation:operating-draw 1.8s var(--delay,0s) both;animation-play-state:var(--drawing-play,paused)}.story-enter .operating-arc-b{--delay:.35s}.story-enter .operating-arc-c{--delay:.7s}.story-enter .operating-arc-d{--delay:1.05s}
.story-enter .operating-lever,.story-enter .operating-core{transform-box:fill-box;transform-origin:center;animation:operating-arrive .8s var(--delay,1.2s) both;animation-play-state:var(--drawing-play,paused)}.story-enter .lever-customers{--delay:1.45s}.story-enter .lever-operations{--delay:1.7s}.story-enter .lever-technology{--delay:1.95s}.story-enter .operating-core{--delay:2.15s}
.story-enter .operating-momentum{animation:operating-draw 1.7s 2.5s both;animation-play-state:var(--drawing-play,paused)}.story-enter .operating-arrow,.story-enter .operating-caption{animation:operating-arrive .8s 3.8s both;animation-play-state:var(--drawing-play,paused)}
/* Approach: a working surface that changes character at each phase. */
.process-study .notebook-sheet{background:transparent;padding:0;border:0}.process-study .notebook-sheet:before{display:none}.process-study svg{margin-top:12px}
.process-study .notebook-sheet h3{font-size:30px;min-height:0;margin:4px 0 12px}.process-study .notebook-sheet .notebook-note{font:14px/1.6 var(--sans);color:#596b85;min-height:3.2em;margin:0;max-width:430px}
.process-study .notebook-nav{margin-top:0;gap:28px;border-bottom:1px solid #cbd7e8}.process-study .notebook-nav button{padding:10px 0;color:#526881}.process-study .notebook-nav button[aria-pressed=true]{color:#0965d3;border-bottom:2px solid #0f80ff}
.process-label{font:10px var(--sans);letter-spacing:1.5px;fill:#526983}.review-ledger{fill:#f8fbff;stroke:#aebed1;stroke-width:.8}.review-ledger path{opacity:.5}.review-data{fill:none;stroke:#667e99;stroke-width:2}.review-focus{fill:#168bff0c;stroke:#168bff;stroke-width:1.3}.review-scan{fill:url('#none');stroke:none;opacity:0}
.process-enter .review-data path{stroke-dasharray:1;stroke-dashoffset:1;animation:process-write 1.7s both;animation-play-state:var(--drawing-play,paused)}.process-enter .review-data path:nth-child(even){animation-delay:.4s}
.process-enter .review-focus{animation:focus-breathe 2.5s 1.2s both;animation-play-state:var(--drawing-play,paused)}
.plan-frame{fill:none;stroke:#9eafc5;stroke-width:1}.plan-priority rect{stroke-width:1.1}.priority-a rect{fill:#ff66591a;stroke:#e4594d}.priority-b rect{fill:#168bff1d;stroke:#168bff}.priority-c rect{fill:#806bd81c;stroke:#806bd8}.plan-priority path{fill:none;stroke:#5d7390;stroke-width:1}
.plan-horizon{fill:none;stroke:#b4c0d0;stroke-width:1}.plan-rise{fill:none;stroke:#096fdc;stroke-width:2.4}
.process-enter .plan-priority{animation:plan-lift 1.15s both;animation-play-state:var(--drawing-play,paused);transform-box:fill-box;transform-origin:bottom}.process-enter .priority-b{animation-delay:.4s}.process-enter .priority-c{animation-delay:.8s}.process-enter .plan-rise{stroke-dasharray:1;stroke-dashoffset:1;animation:process-write 2.3s 1.2s both;animation-play-state:var(--drawing-play,paused)}
.execute-track{fill:none;stroke:#b9c5d6;stroke-width:.8}.execute-bars rect{fill:#168bff2c;stroke:#187dd8;stroke-width:1}.execute-bars rect:nth-child(3n){fill:#806bd82c;stroke:#806bd8}.execute-bars rect:nth-child(4n){fill:#ff665926;stroke:#e75b50}
.execute-curve{fill:none;stroke:#0864ce;stroke-width:2.5}.execute-pulse{fill:none;stroke:#ff6659;stroke-width:2}
.process-enter .execute-bars rect{animation:execute-rise 1.1s var(--delay) both;animation-play-state:var(--drawing-play,paused);transform-box:fill-box;transform-origin:bottom}.process-enter .execute-curve{stroke-dasharray:1;stroke-dashoffset:1;animation:process-write 2.4s .8s both;animation-play-state:var(--drawing-play,paused)}.process-enter .execute-pulse{animation:glint-pulse 2.6s 2.4s infinite;animation-play-state:var(--drawing-play,paused)}
/* Investment lens: outcome profiles widen while every profile stays inside one frame. */
.lens .risk-list .risk-profile-viz{stroke:none}.risk-frame{fill:none;stroke:#afbdcf;stroke-width:.8}.risk-band{fill:#168bff12;stroke:none}.risk-shadow{fill:none;stroke:#7d91aa;stroke-width:1}.risk-line{fill:none;stroke:#0b73dc;stroke-width:2}.risk-list details:nth-child(2) .risk-band{fill:#ff665914}.risk-list details:nth-child(3) .risk-band,.risk-list details:nth-child(4) .risk-band{fill:#806bd814}.risk-list details:nth-child(3) .risk-line,.risk-list details:nth-child(4) .risk-line{stroke:#745ed0}
.story-enter .risk-line,.story-enter .risk-shadow{stroke-dasharray:1;stroke-dashoffset:1;animation:risk-draw 1.4s both;animation-play-state:var(--drawing-play,paused)}.story-enter .risk-shadow{animation-delay:.18s}.risk-list details[open] .risk-band,.risk-list details:hover .risk-band{animation:risk-band 1.8s ease-in-out infinite alternate}
.contact{background:#112543}.contact .submit{background:#147aea}.contact .submit:hover{background:#0860c4}.contact em{color:#84bfff}.footer{background:#eaf0f9}
.contact-intro{position:relative;min-height:390px}.contact-intro-copy{transition:opacity .45s,transform .55s cubic-bezier(.22,.8,.22,1)}
.contact-confirmation{position:absolute;inset:-20px 0 0;opacity:0;visibility:hidden;overflow:visible;transform:translateY(12px);transition:opacity .45s,transform .55s cubic-bezier(.22,.8,.22,1),visibility 0s .55s;pointer-events:auto}
.contact-confirmation canvas{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;min-height:390px;touch-action:pan-y;cursor:crosshair;-webkit-user-select:none;user-select:none}
.contact-confirmation-copy{position:absolute;inset:0;z-index:2;display:grid;place-content:center;text-align:center;pointer-events:none;opacity:0;transform:scale(.975);transition:opacity .6s .2s,transform .8s .2s cubic-bezier(.22,.8,.22,1)}
.contact .contact-confirmation .contact-confirmation-copy h2{margin:0 0 24px;color:#f8fbff;font:500 clamp(54px,7vw,78px)/.95 "Instrument Serif",Georgia,serif;letter-spacing:-.025em}
.contact .contact-confirmation .contact-confirmation-copy p{max-width:none;margin:0;color:#eaf3ff;font:500 clamp(16px,1.65vw,21px)/1.55 "DM Sans",Arial,sans-serif;letter-spacing:-.01em}
.contact.submission-confirmed .contact-intro-copy{opacity:0;transform:translateY(-14px)}.contact.submission-confirmed .contact-confirmation{opacity:1;visibility:visible;transform:none;transition:opacity .45s,transform .55s cubic-bezier(.22,.8,.22,1),visibility 0s}
.contact.submission-confirmed .contact-confirmation-copy{opacity:1;transform:none}
.menu-texture{background-image:radial-gradient(circle at 24% 34%,#ff7569 0 4px,transparent 5px),radial-gradient(circle at 65% 64%,#0f80ff 0 6px,transparent 7px),radial-gradient(circle at 87% 25%,#8d7ae4 0 3px,transparent 4px),linear-gradient(30deg,transparent 49.8%,#0f80ff35 50%,transparent 50.3%),linear-gradient(-35deg,transparent 49.8%,#8970df35 50%,transparent 50.3%)!important;background-size:180px 130px!important}
@keyframes geo-draw{to{stroke-dashoffset:0}}
@keyframes geo-breathe{from{opacity:.22;transform:scale(.92)}to{opacity:.58;transform:scale(1.05)}}
@keyframes access-flow{to{stroke-dashoffset:-56}}
@keyframes geo-sweep{to{transform:rotate(360deg)}}
@keyframes glint-pulse{0%,100%{opacity:0;transform:scale(.8)}45%,65%{opacity:1;transform:scale(1.12)}}
@keyframes process-write{to{stroke-dashoffset:0}}
@keyframes focus-breathe{from{opacity:0;transform:scale(.94);transform-origin:center}to{opacity:1;transform:scale(1);transform-origin:center}}
@keyframes plan-lift{from{opacity:0;transform:scaleY(.15)}to{opacity:1;transform:scaleY(1)}}
@keyframes execute-rise{from{opacity:.1;transform:scaleY(.08)}to{opacity:1;transform:scaleY(1)}}
@keyframes risk-draw{to{stroke-dashoffset:0}}@keyframes risk-band{from{opacity:.28}to{opacity:1}}@keyframes operating-draw{to{stroke-dashoffset:0}}@keyframes operating-arrive{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}
@media(max-width:600px){.investment-visual svg .geo-label{font-size:13px}.process-label{font-size:13px}}
@media(max-width:600px), (max-width:1100px) and (orientation:portrait){.section-label:before{width:76px}.businesses-text-only{grid-template-columns:1fr;gap:34px;min-height:0;margin-top:72px;padding:82px 0 72px}.businesses-text-only .investment-copy{width:100%;margin:0}.businesses-text-only .investment-copy h3{font-size:clamp(49px,11vw,76px)}.operating-flywheel{max-width:520px;order:2}.contact-intro{min-height:330px}.contact-confirmation{inset:0}.contact-confirmation canvas{min-height:330px}.contact .contact-confirmation .contact-confirmation-copy h2{font-size:clamp(50px,13vw,72px)}.contact .contact-confirmation .contact-confirmation-copy p{font-size:17px}.approach-layout .process-study{grid-row:2}.approach-layout .principles{grid-row:3}}
@media(prefers-reduced-motion:reduce){.section-story *,.process-study *,.risk-profile-viz *{animation:none!important}.contact-confirmation{transition:none}.contact-intro-copy{transition:none}}
