/* Designer-led narrative. Existing concept/pricing controls retain their contracts. */
:root{--story-ink:#262923;--story-paper:#f4f2ec;--story-accent:#7c6749;--story-muted:#62635c;--story-line:#d7d8cf}
#vision,#selected-works,#team,#platform{scroll-margin-top:110px}
.section-label{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid var(--story-line);font-size:10px;letter-spacing:.09em;color:var(--story-muted)}
.design-direction{padding-block:100px 70px}
.design-profile{display:grid;grid-template-columns:.65fr 1fr;gap:clamp(45px,7vw,110px);align-items:center;padding:45px 0 55px}
.joseph-portrait{margin:0;max-width:355px;justify-self:center;width:100%;background:#efeee9;padding:28px 28px 0}
.joseph-portrait img{display:block;width:100%;height:auto;filter:grayscale(1)}
.joseph-portrait figcaption{display:flex;justify-content:space-between;gap:15px;padding:23px 0;font-size:12px;letter-spacing:.06em}
.joseph-portrait figcaption span{font-size:11px;color:#6d6b65;letter-spacing:.15em}
.design-profile-copy h2{font-size:clamp(35px,4vw,54px);font-weight:400;letter-spacing:-.05em;line-height:1.45;margin:15px 0 24px}
.design-profile-copy>p:not(.eyebrow){max-width:570px;font-size:14px;line-height:2;color:var(--story-muted)}
.design-profile-copy>p.design-lead{font-size:17px;color:var(--story-ink);margin-bottom:14px}
.design-profile-copy .text-link{margin-top:12px}
.source-note,.design-profile-copy>p.source-note{font-size:11px;line-height:1.9;color:#73736b;margin-top:24px}
.design-principles{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;border-top:1px solid var(--story-line);padding-top:28px}
.design-principles article>span{font-size:10px;letter-spacing:.08em;color:#77786c}
.design-principles h3{font-size:20px;font-weight:500;letter-spacing:-.02em;margin:15px 0 12px}
.design-principles p{font-size:13px;color:var(--story-muted);line-height:1.9;max-width:330px}
.selected-works{padding-block:25px 95px}
.works-grid{display:grid;grid-template-columns:1.3fr .8fr;grid-template-rows:330px 330px;gap:25px}
.portfolio-open{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:#edece6;text-align:left;overflow:hidden;cursor:zoom-in;color:white}
.portfolio-open img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.portfolio-open:hover img{transform:scale(1.035)}
.work-tall{grid-column:2;grid-row:1 / 3}
.work-tall img{object-position:center}
.work-caption{display:flex;align-items:end;justify-content:space-between;gap:20px;position:absolute;bottom:0;left:0;right:0;padding:54px 28px 24px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff}
.work-caption strong{display:block;font-size:23px;font-weight:400;letter-spacing:.03em}
.work-caption small{display:block;font-size:10px;margin-top:8px;letter-spacing:.06em}
.work-caption>span:last-child{font-size:25px}
.gallery-disclosure a{margin-left:14px;border-bottom:1px solid #aaa}
.portfolio-hero .gallery-slide:nth-child(3n+2) img{object-position:center 43%}
.human-team{background:var(--story-ink);color:#f8f7f2;padding:65px 0 60px}
.human-team .section-label{border-color:#565b4d;color:#c3c8b8}
.human-team .section-heading{margin:26px 0 45px;align-items:end}
.human-team .section-heading>p{color:#c3c8b8;line-height:2}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px}
.team-grid article{border-top:1px solid #565b4d;padding-top:26px}
.team-index{font-size:10px;letter-spacing:.12em;color:#c1c8b2}
.team-grid h3{font-size:38px;font-weight:400;letter-spacing:-.04em;margin:22px 0 20px;display:flex;align-items:baseline;gap:13px;flex-wrap:wrap}
.team-grid h3 span{font-size:12px;font-weight:400;color:#d0d5c4;letter-spacing:.04em}
.team-grid p{font-size:13px;line-height:2;color:#c2c7b8;max-width:340px}
.team-grid p.team-function{font-size:13px;color:#f4f4e9;margin-bottom:17px}
.team-grid a{display:inline-block;font-size:12px;color:#f4f4e9;border-bottom:1px solid #8f9a7f;line-height:2.4;margin-top:20px}
.team-note{font-size:10px;line-height:1.9;color:#acb39e;margin:44px 0 0}
.platform-section{padding-block:95px 70px}
.platform-section .section-heading{margin-top:25px;align-items:end}
.journey-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-bottom:1px solid var(--story-line);margin-top:50px}
.journey-steps button{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;padding:22px 10px;border:0;background:transparent;font-size:13px;transition:background .25s,color .25s;color:var(--story-muted);min-height:65px}
.journey-steps button span{font-size:10px;color:#87897d}
.journey-steps button::after{content:"";height:3px;background:var(--story-ink);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0);transition:transform .3s}
.journey-steps button[aria-pressed="true"]{color:var(--story-ink);background:#f3f4ee}
.journey-steps button[aria-pressed="true"]::after{transform:scaleX(1)}
.journey-steps button:hover{background:#f6f6f1}
.platform-explorer{display:grid;grid-template-columns:1.35fr 1fr;background:var(--story-paper)}
.platform-map{position:relative;height:480px;min-width:0;background-image:radial-gradient(#d9d9ce 1px,transparent 1px);background-size:20px 20px;overflow:hidden}
.map-caption{position:absolute;top:23px;left:24px;right:24px;display:flex;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:.09em;color:#75786b}
.map-caption>span{letter-spacing:0}
.map-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.map-lines path{fill:none;stroke:#c6cabb;stroke-width:1.5;stroke-dasharray:5 7;transition:stroke .25s,stroke-width .25s}
.map-lines path.is-active{stroke:#73815a;stroke-width:3;stroke-dasharray:8 8;animation:journey-line 1.5s ease-out}
.map-orbit{fill:none;stroke:#e1e2d7;stroke-width:1}
.map-node{position:absolute;transform:translate(-50%,-50%);background:#fafaf5;border:1px solid #d7dace;padding:15px 10px;min-width:116px;text-align:center;transition:background .3s,border-color .3s,box-shadow .3s}
.map-node>span{display:block;font-size:8px;letter-spacing:.1em;color:#757a6a;margin-bottom:7px}
.map-node strong{font-size:13px;display:block;font-weight:500;line-height:1.7;white-space:nowrap}
.map-node small{display:block;font-size:10px;color:#757a6a;margin-top:6px}
.node-resident{left:15.7%;top:50%}
.node-design{left:50%;top:21.7%}
.node-supply{left:84.3%;top:50%}
.node-delivery{left:50%;top:79.3%;min-width:145px}
.node-platform{left:50%;top:50%;padding:23px 14px;min-width:160px;background:#e9ecdf;border-color:#a9b39a}
.node-platform strong{font-size:15px;letter-spacing:.03em}
.map-node.is-current{border-color:#7b8968;box-shadow:0 5px 18px #59604412;background:#e3ead6}
.node-platform.is-current{background:#343d2b;color:#fff;border-color:#343d2b}
.node-platform.is-current>span,.node-platform.is-current small{color:#d1dbc2}
.map-footnote{position:absolute;bottom:10px;left:12px;right:12px;text-align:center;font-size:9px;letter-spacing:.03em;color:#767b6b}
.journey-detail{padding:38px 38px 25px;background:#e9ecdf;min-height:480px}
.journey-number{font-size:13px;letter-spacing:.1em;color:#6f795f}
.journey-detail h3{font-size:30px;line-height:1.6;font-weight:400;letter-spacing:-.03em;margin:10px 0 17px}
.journey-detail>p{font-size:13px;color:#535c46;line-height:1.9;margin-bottom:24px;min-height:50px}
.journey-detail dl{margin:0}
.journey-detail dl>div{border-top:1px solid #cad1bd;padding:13px 0;display:grid;grid-template-columns:80px 1fr;gap:12px}
.journey-detail dt{font-size:10px;color:#667254;line-height:1.9}
.journey-detail dd{margin:0;font-size:12px;line-height:1.8;color:#343d2b}
.journey-controls{display:flex;justify-content:space-between;gap:25px;align-items:center;padding-top:18px}
.journey-controls>p{font-size:10px;color:#73776b;margin:0}
.journey-controls>div{display:flex;align-items:center;gap:10px}
.journey-controls #journey-progress{font-size:11px;letter-spacing:.1em;margin-right:18px;white-space:nowrap}
.journey-controls button{width:42px;height:42px;border:1px solid #b4bbab;border-radius:50%;background:white;color:#353d2c;font-size:18px}
.journey-controls button:disabled{opacity:.3;cursor:default}
.journey-controls button:not(:disabled):hover{background:#e9ecdf}
.platform-proof{display:grid;grid-template-columns:1fr 1fr auto;gap:36px;align-items:center;border-bottom:1px solid var(--story-line);padding:40px 0}
.platform-proof strong{font-size:14px;font-weight:500}.platform-proof p{font-size:12px;line-height:1.9;color:#72766a;margin:10px 0 0}
.platform-proof a{white-space:nowrap;font-size:12px}
.concept-transition{padding-block:25px 55px;text-align:center}
.concept-transition h2{font-size:40px;font-weight:400;letter-spacing:-.04em;margin:18px 0}
.concept-transition>p:not(.eyebrow){font-size:12px;color:#72766a;line-height:1.9}
.investor-team-story{background:#f0f1e9;padding:38px 42px;margin:35px 0 50px}
.investor-team-story h2{font-size:31px;font-weight:400;letter-spacing:-.03em;margin:20px 0 35px}
.investor-people{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}
.investor-people>div{border-top:1px solid #c6ceba;padding-top:20px}
.investor-people span{font-size:11px;color:#637150}.investor-people h3{font-size:19px;font-weight:500;margin:16px 0}.investor-people p{font-size:13px;line-height:1.9;color:#626855}
.investor-story-links{display:flex;gap:30px;margin-top:25px;font-size:12px;flex-wrap:wrap}.investor-story-links a{border-bottom:1px solid #7e8c6b;line-height:2.2}
.portfolio-dialog{position:fixed;inset:0;margin:auto;width:min(1100px,94vw);max-width:94vw;max-height:94dvh;border:0;padding:50px 24px 20px;background:#f4f3ee;box-shadow:0 25px 100px #0006;overflow:auto;color:#262923}
.portfolio-dialog::backdrop{background:#151811dc;backdrop-filter:blur(5px)}
.portfolio-dialog img{display:block;width:100%;height:min(70dvh,780px);object-fit:contain}
.portfolio-dialog p{font-size:12px;line-height:1.8;max-width:850px;margin:20px auto 0}
#portfolio-close{position:absolute;top:8px;right:16px;width:38px;height:38px;border:1px solid #b9bdae;border-radius:50%;background:transparent;font-size:28px;line-height:1}
.portfolio-open:focus-visible,.journey-steps button:focus-visible,.journey-controls button:focus-visible{outline:3px solid #9c7442;outline-offset:4px}
@keyframes journey-line{to{stroke-dashoffset:-160}}
@media(max-width:1100px){.design-profile{gap:50px;grid-template-columns:.7fr 1fr}.design-profile-copy h2{font-size:40px}.works-grid{grid-template-rows:290px 290px}.platform-explorer{grid-template-columns:1.2fr 1fr}.map-node{min-width:95px;padding:13px 6px}.map-node strong{font-size:11px}.node-platform{min-width:134px}.node-platform strong{font-size:13px}.node-delivery{min-width:130px}.journey-detail{padding:32px 28px}.journey-detail h3{font-size:27px}.team-grid{gap:25px}.platform-proof{gap:25px}.platform-proof a{font-size:11px}}
@media(max-width:820px){.design-direction{padding-top:75px}.design-profile{gap:35px}.joseph-portrait{padding:20px 20px 0}.joseph-portrait figcaption{font-size:9px;flex-wrap:wrap;padding-block:18px;gap:8px}.design-profile-copy h2{font-size:34px}.design-profile-copy>p:not(.eyebrow){font-size:12px}.design-profile-copy>p.design-lead{font-size:15px}.design-principles{gap:25px}.design-principles h3{font-size:18px}.design-principles p{font-size:12px}.works-grid{grid-template-rows:250px 250px;gap:18px}.work-caption{padding:45px 20px 20px}.work-caption strong{font-size:20px}.human-team{padding-block:45px}.team-grid h3{font-size:31px;gap:10px}.team-grid p{font-size:12px}.team-grid p.team-function{font-size:11px}.platform-explorer{grid-template-columns:1fr}.platform-map{height:430px}.map-node{min-width:124px;padding:15px 12px}.map-node strong{font-size:13px}.node-platform{min-width:165px}.node-platform strong{font-size:16px}.node-delivery{min-width:160px}.journey-detail{min-height:0;padding:30px 35px}.journey-detail dl>div{grid-template-columns:100px 1fr}.journey-detail>p{min-height:0}.journey-steps button{font-size:11px;gap:8px;padding-inline:5px}.platform-proof{grid-template-columns:1fr 1fr}.platform-proof a{grid-column:1/-1;justify-self:start}.investor-team-story{padding:30px}.investor-team-story h2{font-size:27px}.investor-people{gap:23px}.investor-people h3{font-size:17px}.investor-people p{font-size:12px}}
@media(max-width:620px){#vision,#selected-works,#team,#platform{scroll-margin-top:85px}.section-label{font-size:8px;gap:12px;letter-spacing:.025em;padding-block:17px}.design-direction{padding-top:60px;padding-bottom:45px}.design-profile{grid-template-columns:1fr;gap:30px;padding:25px 0 35px}.joseph-portrait{max-width:230px;justify-self:start;padding:18px 18px 0}.joseph-portrait figcaption{font-size:9px;flex-wrap:nowrap}.joseph-portrait figcaption span{font-size:10px}.design-profile-copy h2{font-size:35px;line-height:1.45;margin-top:12px}.design-profile-copy>p:not(.eyebrow){font-size:13px;line-height:1.95}.design-profile-copy>p.design-lead{font-size:16px}.design-profile-copy>p.source-note{font-size:10px}.design-principles{grid-template-columns:1fr;gap:0;padding-top:0;border:0}.design-principles article{padding-block:22px;border-top:1px solid var(--story-line);display:grid;grid-template-columns:80px 1fr;column-gap:18px}.design-principles article>span{grid-row:1/3;margin-top:5px;font-size:8px}.design-principles h3{font-size:18px;margin:0 0 10px}.design-principles p{font-size:12px;margin:0;grid-column:2;max-width:none}.selected-works{padding:0 0 55px}.works-grid{grid-template-columns:1fr;grid-template-rows:auto;gap:18px}.work-wide{height:280px}.work-tall{grid-column:auto;grid-row:auto;height:390px}.work-caption{padding:50px 22px 20px}.work-caption strong{font-size:22px}.selected-works .source-note{font-size:10px}.human-team{padding:38px 0}.human-team .section-heading{margin:16px 0 28px}.human-team .section-heading>p{font-size:12px}.team-grid{grid-template-columns:1fr;gap:28px}.team-grid article{padding-top:22px}.team-grid h3{font-size:34px;margin:15px 0}.team-grid h3 span{font-size:12px}.team-grid p{max-width:none;font-size:13px}.team-grid p.team-function{font-size:12px;margin-bottom:12px}.team-grid a{margin-top:10px}.team-note{margin-top:30px;font-size:10px}.platform-section{padding-block:55px 35px}.platform-section .section-heading{margin-top:18px}.journey-steps{margin-top:25px;grid-template-columns:repeat(5,minmax(0,1fr))}.journey-steps button{flex-direction:column;gap:8px;font-size:10px;line-height:1.6;padding:15px 2px;min-height:75px}.journey-steps button span{font-size:9px}.platform-map{height:365px}.map-caption{font-size:7px;top:18px;left:12px;right:12px}.map-node{min-width:0;width:88px;padding:13px 5px}.map-node strong{font-size:10px;line-height:1.7;white-space:normal}.map-node>span{font-size:7px;letter-spacing:.03em;margin-bottom:5px}.map-node small{font-size:8px;margin-top:4px}.node-resident{left:14%}.node-supply{left:86%}.node-platform{min-width:0;width:117px;padding:20px 5px}.node-platform strong{font-size:12px}.node-delivery{width:150px}.node-delivery strong{font-size:12px}.map-footnote{font-size:8px;bottom:4px}.journey-detail{padding:24px 22px}.journey-detail h3{font-size:28px;margin:8px 0 12px}.journey-detail>p{font-size:12px;margin-bottom:20px}.journey-detail dl>div{grid-template-columns:70px 1fr;gap:10px}.journey-detail dd{font-size:12px}.journey-controls{gap:12px;align-items:start}.journey-controls>p{font-size:9px;max-width:180px;line-height:1.8}.journey-controls #journey-progress{font-size:10px;margin-right:4px}.journey-controls button{width:35px;height:35px;font-size:16px}.journey-controls>div{gap:5px}.platform-proof{grid-template-columns:1fr;gap:22px;padding-block:30px}.platform-proof strong{font-size:14px}.platform-proof p{margin-top:8px;font-size:12px}.concept-transition{padding:12px 0 35px}.concept-transition h2{font-size:34px}.concept-transition>p:not(.eyebrow){font-size:11px}.concept-transition br{display:none}.gallery-disclosure a{display:block;margin-left:0;border:0;text-decoration:underline;margin-top:5px}.investor-team-story{padding:26px 23px;margin-block:25px 35px}.investor-team-story h2{font-size:25px;margin-bottom:25px}.investor-people{grid-template-columns:1fr;gap:20px}.investor-people h3{font-size:18px;margin:12px 0}.investor-people p{font-size:12px}.investor-story-links{gap:16px;font-size:11px}.investor-team-story .source-note{font-size:10px}.portfolio-dialog{padding:50px 14px 18px}.portfolio-dialog img{height:65dvh}.portfolio-dialog p{font-size:11px}}
@media(max-width:360px){.map-node{width:78px}.node-platform{width:103px}.node-platform strong{font-size:11px}.node-delivery{width:138px}.journey-controls>p{max-width:140px}}
@media(prefers-reduced-motion:reduce){.map-lines path.is-active{animation:none}.portfolio-open img{transition:none}.journey-steps button::after{transition:none}}
/* The existing html scroll-padding already clears the sticky header. */
#vision,#selected-works,#team,#platform{scroll-margin-top:0}
