@font-face{font-family:Instrument;src:url('assets/instrument-sans.woff2') format('woff2');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:GeistMono;src:url('assets/geist-mono.woff2') format('woff2');font-style:normal;font-weight:400 500;font-display:swap}
:root{--paper:#f3f1e8;--ink:#292b27;--muted:#62655d;--rule:#bfc0b5;--faint:#dcdcd1;--purple:#a89fe0;--purple-dark:#574a8b;--header:58px;--gutter:28px;--frame:8px;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 8px)}body{margin:0;color:var(--ink);background:var(--paper);font:400 16px/1.4 Instrument,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:transparent;border:0}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600;letter-spacing:-.055em;line-height:.98}button:focus-visible,a:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--purple-dark);outline-offset:4px}[hidden]{display:none!important}::selection{color:var(--ink);background:var(--purple)}.technical,.eyebrow{font:400 11px/1.4 GeistMono,monospace;text-transform:uppercase;letter-spacing:-.025em}.eyebrow{display:block;margin-bottom:26px;color:var(--muted)}.skip-link{position:fixed;left:20px;top:-100px;padding:14px 20px;background:var(--ink);color:var(--paper);z-index:130}.skip-link:focus{top:12px}.paper-grain{pointer-events:none;position:fixed;inset:0;opacity:.035;z-index:90;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.55' d='M0 0h150v150H0z'/%3E%3C/svg%3E")}.site-shell{max-width:2200px;margin:var(--frame) auto 0;border:1px solid var(--rule);width:calc(100% - var(--frame)*2);overflow:clip}.site-header{height:var(--header);display:flex;position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--rule);z-index:40}.brand{width:46%;display:flex;align-items:center;padding:6px 24px;gap:22px}.brand img{width:60px;height:46px;object-fit:contain;mix-blend-mode:multiply}.brand>span{font:500 10px/1.25 GeistMono,monospace;letter-spacing:-.03em}.site-header nav{flex:1;display:grid;grid-template-columns:repeat(4,1fr)}.site-header nav a{position:relative;border-left:1px solid var(--rule);font:400 11px/1.3 GeistMono,monospace;text-transform:uppercase;padding:12px 12px 8px;transition:color .2s,background .2s}.site-header nav a i{position:absolute;bottom:7px;right:9px;font-style:normal;font-size:17px;transition:transform .35s var(--ease)}.site-header nav a:hover{background:#dedad13d}.site-header nav a:hover i{transform:translate(2px,-2px)}.site-header nav .nav-contact{color:var(--purple-dark)}.menu-toggle{display:none}.drafted-canvas{position:relative}.section-border{border-top:1px solid var(--rule)}.hero-canvas{height:clamp(440px,calc(100svh - 217px),820px);overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-illustration{position:relative;width:100%;height:100%;max-width:1800px;flex:none}.hero-vector,.hero-etch{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.hero-vector svg{width:100%;height:100%;overflow:visible}.hero-etch{mix-blend-mode:multiply;filter:grayscale(1) brightness(1.035) contrast(1.06)}.hero-vector{visibility:hidden}.hero-illustration.image-failed .hero-vector{visibility:visible}.hero-illustration.image-failed .hero-etch{display:none}.hero-meta,.hero-bottom{position:absolute;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:20px;z-index:3}.hero-meta{top:25px;font-size:10px;color:var(--muted)}.hero-meta span:first-child:before{content:'';display:inline-block;width:5px;height:5px;margin-right:10px;background:var(--purple-dark)}.hero-bottom{bottom:20px;font-size:10px}.hero-bottom button{padding:8px 0;font:inherit;text-transform:uppercase}.hero-bottom button>span{margin-right:7px;font-size:14px}.hero-bottom button:hover{color:var(--purple-dark)}.concept-label{color:var(--muted)}.canvas-ruler{position:absolute;left:18px;right:18px;height:6px;z-index:2;opacity:.36;background:repeating-linear-gradient(90deg,var(--muted) 0 1px,transparent 1px 9px)}.ruler-top{top:8px}.ruler-bottom{bottom:8px}.cross{position:absolute;font:14px/1 GeistMono,monospace;z-index:3;color:var(--muted)}.cross-tl{left:6px;top:5px}.cross-tr{right:6px;top:5px}.cross-bl{left:6px;bottom:5px}.cross-br{right:6px;bottom:5px}.hero-inspection{position:absolute;inset:0;pointer-events:none}.hero-marker{position:absolute;pointer-events:auto;display:flex;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:4px;font:10px GeistMono,monospace}.hero-marker>span:first-child{display:grid;place-items:center;width:23px;height:23px;background:var(--purple-dark);color:var(--paper);transition:transform .3s var(--ease)}.hero-marker:hover>span:first-child{transform:scale(1.12)}.marker-label{padding:7px 10px;border:1px solid var(--rule);background:var(--paper);opacity:0;transform:translateX(-5px);transition:.25s}.is-inspecting .marker-label,.hero-marker:hover .marker-label,.hero-marker:focus-visible .marker-label{opacity:1;transform:none}.marker-context{left:23%;top:61%}.marker-entry{left:49%;top:68%}.marker-home{left:74%;top:58%}.drawing-note{position:absolute;width:290px;padding:25px;background:var(--paper);border:1px solid var(--purple-dark);box-shadow:6px 6px 0 #292b2710;z-index:12}.hero-canvas>.drawing-note{right:8%;top:20%}.drawing-note .technical{color:var(--purple-dark);display:block;margin-bottom:18px;font-size:10px}.drawing-note h3{font-size:25px;line-height:1.03;margin-bottom:13px}.drawing-note p{font-size:14px;line-height:1.5}.note-close{position:absolute;right:0;top:0;width:38px;height:38px;font-size:23px}.hero-band{display:grid;grid-template-columns:58% 42%;min-height:125px;border-block:1px solid var(--rule)}.hero-band h1{font-size:clamp(36px,3.65vw,73px);padding:18px var(--gutter) 17px;display:flex;flex-direction:column;justify-content:center;letter-spacing:-.06em}.hero-summary{border-left:1px solid var(--rule);display:grid;grid-template-columns:1fr 150px}.hero-summary p{font-size:15px;line-height:1.32;padding:18px 16px}.text-action{display:flex;justify-content:space-between;align-items:center;gap:20px;font:11px/1.3 GeistMono,monospace;text-transform:uppercase}.text-action i{font-style:normal;font-size:22px;transition:transform .35s var(--ease)}.text-action:hover i{transform:translate(2px,-2px)}.hero-summary>.text-action{padding:14px;border-left:1px solid var(--rule);color:var(--purple-dark);flex-direction:column;align-items:stretch}.hero-summary>.text-action i{align-self:flex-end}.hero-index{display:grid;grid-template-columns:repeat(4,1fr);height:32px;font-size:9px;color:var(--muted)}.hero-index span{display:flex;align-items:center;justify-content:center;gap:12px;border-right:1px solid var(--rule)}.hero-index span:last-child{border-right:0}.hero-index b{font-weight:400;color:var(--purple-dark)}
.approach{display:grid;grid-template-columns:1fr 1fr;min-height:720px}.approach-art{overflow:hidden;border-right:1px solid var(--rule);display:grid;place-items:center}.art-index{position:absolute;top:28px;left:28px;color:var(--muted);font-size:10px}.axonometric-art{width:100%;padding:40px 20px}.axonometric-art svg{width:100%;height:auto}.art-caption{position:absolute;bottom:27px;left:28px;font-size:10px;color:var(--muted)}.approach-content{padding:58px 0 0;display:flex;flex-direction:column}.approach-content>.eyebrow,.approach-content>h2,.approach-lead{margin-left:17%;margin-right:10%}.approach-content>h2{font-size:clamp(34px,3vw,56px);letter-spacing:-.06em}.approach-lead{font-size:17px;line-height:1.45;margin-top:25px;margin-bottom:35px}.route-list{margin-top:auto;border-top:1px solid var(--rule)}.route-list>a,.route-list>button{position:relative;display:block;width:100%;text-align:left;padding:22px 65px 22px 17%;border-bottom:1px solid var(--rule);transition:background .3s}.route-list>:last-child{border-bottom:0}.route-list>a:hover,.route-list>button:hover{background:#a89fe015}.route-list .technical{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}.route-list strong{display:block;font-weight:500;font-size:25px;letter-spacing:-.05em;margin-bottom:6px}.route-list p,.route-description{display:block;font-size:14px;line-height:1.4;max-width:350px}.route-list i{position:absolute;right:24px;top:50%;font-style:normal;color:var(--purple-dark);font-size:24px}
.project-story{height:390svh;position:relative;border-top:1px solid var(--rule)}.story-stage{height:calc(100svh - var(--header));min-height:600px;position:sticky;top:var(--header);overflow:hidden}.story-stage:before{content:'';position:absolute;inset:11px;border:1px solid #bfc0b563;pointer-events:none}.story-top{position:absolute;left:28px;right:28px;top:28px;display:flex;justify-content:space-between;color:var(--muted);z-index:4;font-size:10px}.story-stage-label{color:var(--purple-dark)}.story-intro{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:3;pointer-events:none}.story-intro>.technical{color:var(--muted);font-size:11px;margin-bottom:23px}.story-intro p{font-size:clamp(40px,4.7vw,90px);font-weight:500;letter-spacing:-.065em;line-height:1}.story-intro .story-scroll{position:absolute;bottom:23%;font-size:10px;display:flex;gap:18px;align-items:center}.story-scroll i{font-size:20px;font-style:normal;color:var(--purple-dark)}.story-geometry{position:absolute;inset:7% 18% 14%;transform-origin:center;will-change:transform;pointer-events:none}.story-geometry>svg{width:100%;height:100%;overflow:visible}.story-cards article{position:absolute;right:3%;width:29%;top:26%;opacity:0;visibility:hidden}.story-cards article:first-child{opacity:1;visibility:visible}.story-cards .eyebrow{font-size:10px;margin-bottom:24px;color:var(--purple-dark)}.story-cards h2{font-size:clamp(32px,3.5vw,64px);letter-spacing:-.055em}.story-cards p{font-size:16px;line-height:1.4;margin-top:24px;max-width:320px}.story-considerations{margin-top:25px;border-top:1px solid var(--rule)}.story-considerations span{display:block;padding:11px 0;border-bottom:1px solid var(--rule);font-size:13px}.story-considerations span:after{content:'+';float:right;color:var(--purple-dark);font-family:GeistMono,monospace}.story-annotations{position:absolute;inset:0;pointer-events:none}.story-marker{position:absolute;display:flex;align-items:center;gap:8px;font:10px/1.3 GeistMono,monospace;min-height:44px;padding:5px;pointer-events:auto;opacity:0}.story-marker>span:first-child{width:23px;height:23px;display:grid;place-items:center;color:var(--paper);background:var(--purple-dark)}.story-marker>span:last-child{opacity:0;padding:7px;background:var(--paper);border:1px solid var(--rule);transition:opacity .2s}.story-marker:hover>span:last-child,.story-marker:focus-visible>span:last-child{opacity:1}.story-marker[data-marker=private]{left:28%;top:35%}.story-marker[data-marker=living]{left:47%;top:50%}.story-marker[data-marker=support]{left:38%;top:27%}.story-detail-panel{left:24%;top:32%;max-width:320px}.story-bottom{position:absolute;bottom:0;left:0;right:0;z-index:5;background:var(--paper)}.story-controls{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--rule)}.story-controls button{display:flex;align-items:center;gap:22px;min-height:56px;padding:15px 28px;border-right:1px solid var(--rule);text-align:left;font:11px/1.3 GeistMono,monospace;text-transform:uppercase;transition:color .25s,background .25s}.story-controls button:last-child{border-right:0}.story-controls button>span{font-size:10px;color:var(--purple-dark)}.story-controls button:hover{background:#a89fe024}.story-controls button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.story-controls button[aria-pressed=true]>span{color:var(--purple)}.plan-caption{padding:10px 28px;display:flex;justify-content:space-between;color:var(--muted);font-size:8px}.project-story:is([data-story-mode=static],[data-story-mode=compact]){height:auto}.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-stage{position:relative;top:auto;min-height:760px;height:80svh}.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-intro{display:none}.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-marker{opacity:1}
.contact{display:grid;grid-template-columns:1fr 1fr;min-height:650px}.contact-copy{padding:60px 40px;display:flex;align-items:flex-start;flex-direction:column;border-right:1px solid var(--rule)}.contact h2{font-size:clamp(38px,4.6vw,78px);letter-spacing:-.06em}.contact-copy>p{font-size:17px;line-height:1.45;margin-top:28px;margin-bottom:35px}.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto}.button-fill,.button-line{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:16px 18px;min-height:52px;font:11px/1.3 GeistMono,monospace;text-transform:uppercase}.button-fill{background:var(--purple);border:1px solid var(--purple);color:var(--ink);transition:background .25s}.button-fill:hover{background:#b6acec}.button-line{border:1px solid var(--rule);transition:border-color .25s}.button-line:hover{border-color:var(--ink)}.button-fill i,.button-line i{font-style:normal;font-size:20px;transition:transform .3s var(--ease)}.button-fill:hover i,.button-line:hover i{transform:translate(2px,-2px)}.contact-art{display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.contact-art-inner{width:95%;max-width:600px}.contact-art-inner svg{width:100%;height:auto}.contact-art>.technical{position:absolute;bottom:25px;left:28px;color:var(--muted);font-size:10px}.site-footer{border-top:1px solid var(--rule)}.footer-top{display:grid;grid-template-columns:17% 33% 30% 20%;min-height:132px;align-items:stretch;border-bottom:1px solid var(--rule)}.footer-top>*{padding:28px;border-right:1px solid var(--rule);display:flex;align-items:center;justify-content:center}.footer-top>:last-child{border:0}.footer-brand img{width:80px;height:65px;object-fit:contain;mix-blend-mode:multiply}.footer-top p{font-size:16px;justify-content:flex-start}.footer-top .text-action{justify-content:space-between}.footer-top>button{font:10px/1.3 GeistMono,monospace;text-transform:uppercase;gap:10px}.motion-indicator{width:8px;height:8px;border:1px solid var(--muted);border-radius:50%}.footer-top>button[aria-pressed=true] .motion-indicator{background:var(--purple-dark);border-color:var(--purple-dark)}.footer-drawing{position:relative;padding:15px 15px 18px;overflow:hidden}.footer-drawing>span{font-size:15.1vw;font-weight:500;line-height:1.06;letter-spacing:-.075em;color:transparent;-webkit-text-stroke:.7px var(--ink);display:block}.footer-datum{position:absolute;left:15px;right:15px;top:50%;border-top:1px dashed #a7aa9b55}.footer-datum:before,.footer-datum:after{content:'+';position:absolute;top:-10px;font:16px GeistMono,monospace;color:var(--muted)}.footer-datum:before{left:0}.footer-datum:after{right:0}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding:15px 28px;font-size:9px;border-top:1px solid var(--rule);color:var(--muted)}
.opening{position:fixed;inset:0;background:var(--paper);z-index:100;overflow:hidden}.opening-frame{position:absolute;inset:8px;border:1px solid var(--rule)}.opening-art{position:absolute;inset:0;width:100%;height:100%;transform-origin:top left}.opening-linework,.opening-etch{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.opening-linework>svg{width:100%;height:100%}.opening-linework [id*=elevation-shade]{opacity:0}.opening-linework [id*=elevation-structure] *,.opening-linework [id*=elevation-detail] *{fill-opacity:0}.opening-etch{opacity:0;mix-blend-mode:multiply;filter:grayscale(1) brightness(1.035) contrast(1.06)}.opening-rule{position:absolute;left:8px;right:8px;border-top:1px solid var(--purple);z-index:2}.opening-rule-top{top:50%}.opening-rule-bottom{bottom:8px;opacity:0}.opening-metadata{position:absolute;left:34px;right:34px;bottom:28px;display:grid;grid-template-columns:1fr 1fr auto;gap:35px;align-items:end}.opening-metadata>p{font-size:32px;line-height:1;letter-spacing:-.055em;font-weight:500}.opening-metadata>.technical{display:flex;flex-direction:column;gap:8px;font-size:10px;color:var(--muted)}.opening-metadata>.technical span:last-child{color:var(--purple-dark);margin-top:10px}.opening-metadata>button{font:11px GeistMono,monospace;text-transform:uppercase;display:flex;gap:35px;min-height:44px;align-items:center}.opening-metadata>button>span{font-size:20px;color:var(--purple-dark)}.is-opening{overflow:hidden}.is-opening .site-header,.is-opening .hero-band,.is-opening .hero-index{visibility:hidden}
dialog{max-width:620px;width:calc(100% - 32px);max-height:calc(100svh - 40px);overflow:auto;background:var(--paper);border:1px solid var(--ink);padding:42px;color:var(--ink)}dialog::backdrop{background:#22251fd1;backdrop-filter:blur(4px)}.dialog-close{position:absolute;top:4px;right:7px;width:44px;height:44px;font-size:28px}dialog h2{font-size:40px;margin-bottom:22px}.enquiry-intro{font-size:16px;line-height:1.45;margin-bottom:25px}dialog label{display:block;font-size:14px;line-height:1.4;margin-bottom:18px}dialog select,dialog textarea{display:block;width:100%;border:1px solid var(--rule);background:transparent;border-radius:0;padding:12px;margin-top:8px;font-size:16px}dialog textarea{resize:vertical;min-height:100px}.enquiry-disclosure{font-size:13px;color:var(--muted);margin:20px 0;line-height:1.5}.enquiry-result{margin-top:20px;padding:15px;border-left:2px solid var(--purple-dark);font-size:15px}.motion-reduced{scroll-behavior:auto!important}.motion-reduced *{scroll-behavior:auto!important}.motion-reduced .paper-grain{opacity:.025}
@media(min-width:2200px){.footer-drawing>span{font-size:332px}}
@media(max-width:1050px){:root{--gutter:22px}.brand{width:34%}.brand>span{display:none}.hero-summary{grid-template-columns:1fr}.hero-summary>.text-action{border-left:0;border-top:1px solid var(--rule);flex-direction:row;align-items:center}.hero-summary>.text-action i{align-self:center}.hero-band h1{font-size:3.8vw}.approach-content>.eyebrow,.approach-content>h2,.approach-lead{margin-left:10%;margin-right:8%}.route-list>a,.route-list>button{padding-left:10%}.story-cards h2{font-size:3.5vw}.story-cards p{font-size:15px}.story-considerations span{font-size:12px}.contact-copy{padding:45px 28px}.footer-top>*{padding:22px}.footer-top p{font-size:14px}}
@media(max-width:759px){:root{--frame:6px;--header:54px;--gutter:18px}.site-shell{width:calc(100% - 12px)}.site-header{height:var(--header)}.brand{width:60%;padding:5px 12px;gap:12px}.brand img{width:52px;height:42px}.brand>span{display:block;font-size:8px}.menu-toggle{display:flex;align-items:center;justify-content:space-between;width:40%;padding:14px;border-left:1px solid var(--rule);font:11px GeistMono,monospace;text-transform:uppercase}.menu-symbol{font-size:20px;color:var(--purple-dark)}.site-header nav{display:none;position:absolute;left:0;right:0;top:var(--header);background:var(--paper);border-bottom:1px solid var(--rule);grid-template-columns:1fr 1fr}.site-header.menu-open nav{display:grid}.site-header nav a{height:62px;border-top:1px solid var(--rule);padding:16px;font-size:12px}.site-header nav a:nth-child(odd){border-left:0}.hero-canvas{height:360px;min-height:0}.hero-illustration{width:160%;height:100%;margin-top:0}.hero-meta{top:22px;font-size:8px;gap:12px}.hero-meta>span:last-child{display:none}.hero-bottom{bottom:17px;left:14px;right:14px;font-size:9px;gap:15px;flex-wrap:wrap}.hero-bottom .concept-label{display:none}.hero-marker{font-size:9px;min-width:44px;min-height:44px}.hero-marker>span:first-child{width:21px;height:21px}.marker-context{left:8%;top:56%}.marker-entry{left:47%;top:65%}.marker-home{left:80%;top:57%}.marker-label{display:none}.hero-canvas>.drawing-note{left:12px;right:12px;top:55px;width:auto;max-width:330px}.drawing-note{padding:24px}.drawing-note h3{font-size:23px}.drawing-note p{font-size:14px}.hero-band{display:flex;flex-direction:column;min-height:0}.hero-band h1{font-size:clamp(28px,8.4vw,59px);line-height:1;padding:20px 15px;letter-spacing:-.055em}.hero-summary{border-left:0;border-top:1px solid var(--rule);display:grid;grid-template-columns:1fr}.hero-summary p{font-size:16px;line-height:1.35;padding:18px 15px}.hero-summary>.text-action{font-size:10px;padding:13px 15px;min-height:49px}.hero-index{height:35px;font-size:8px;grid-template-columns:repeat(4,1fr)}.hero-index span{gap:6px}.hero-index b{display:none}.approach{display:flex;flex-direction:column;min-height:0}.approach-art{min-height:400px;border-right:0;border-bottom:1px solid var(--rule)}.art-index{left:18px;top:20px;font-size:9px}.art-caption{left:18px;bottom:18px;font-size:9px}.axonometric-art{width:110%;padding:20px 0}.approach-content{padding-top:36px}.approach-content>.eyebrow,.approach-content>h2,.approach-lead{margin-left:22px;margin-right:22px}.approach-content>.eyebrow{font-size:10px;margin-bottom:20px}.approach-content>h2{font-size:clamp(34px,9.9vw,58px)}.approach-lead{font-size:17px;margin-top:22px;margin-bottom:30px}.route-list>a,.route-list>button{padding:24px 55px 24px 22px}.route-list .technical{font-size:10px}.route-list strong{font-size:26px}.route-list p,.route-description{font-size:16px}.project-story{height:285svh}.story-stage{top:var(--header);height:calc(100svh - var(--header));min-height:680px}.story-stage:before{inset:8px}.story-top{top:21px;left:18px;right:18px;font-size:9px}.story-top>span:first-child{max-width:60%}.story-intro p{font-size:11.3vw}.story-intro>.technical{font-size:10px;max-width:280px}.story-intro .story-scroll{bottom:24%;font-size:9px}.story-geometry{inset:7% 1% 40%;}.story-cards article{top:auto;bottom:16%;left:22px;right:22px;width:auto;height:24%}.story-cards .eyebrow{font-size:9px;margin-bottom:12px}.story-cards h2{font-size:clamp(27px,7.7vw,39px);line-height:.98}.story-cards h2 br{display:none}.story-cards h2 br:after{content:' '}.story-cards p{font-size:16px;line-height:1.35;margin-top:13px;max-width:440px}.story-considerations{display:none}.story-bottom{bottom:0}.story-controls button{padding:13px 9px;min-height:64px;flex-direction:column;align-items:flex-start;gap:7px;font-size:10px}.story-controls button>span{font-size:9px}.plan-caption{padding:9px 12px;font-size:8px;line-height:1.4;gap:10px}.plan-caption>span:first-child{display:none}.story-marker[data-marker=private]{left:27%;top:27%}.story-marker[data-marker=living]{left:67%;top:31%}.story-marker[data-marker=support]{left:48%;top:21%}.story-marker>span:last-child{display:none}.story-marker>span:first-child{width:22px;height:22px}.story-detail-panel{top:15%;left:16px;width:calc(100% - 32px);max-width:none}.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-stage{height:780px;min-height:780px}.contact{display:flex;flex-direction:column;min-height:0}.contact-copy{padding:40px 22px;border-right:0;border-bottom:1px solid var(--rule)}.contact-copy>.eyebrow{font-size:10px;margin-bottom:24px}.contact h2{font-size:clamp(36px,10.5vw,59px)}.contact-copy>p{font-size:17px;margin-top:25px;margin-bottom:28px}.contact-actions{gap:10px;flex-direction:column;width:100%;max-width:440px}.contact-actions>button{font-size:11px;padding:16px;gap:15px;width:100%}.contact-art{height:380px}.contact-art-inner{width:105%;max-width:480px}.contact-art>.technical{left:18px;bottom:18px;font-size:9px}.footer-top{grid-template-columns:1fr 1fr;min-height:0}.footer-top>*{padding:22px 18px;border-bottom:1px solid var(--rule)}.footer-top>:nth-child(even){border-right:0}.footer-top>:nth-child(n+3){border-bottom:0;min-height:84px}.footer-top p{font-size:14px}.footer-top .text-action{font-size:10px}.footer-top>button{font-size:9px}.footer-drawing{padding:22px 8px}.footer-drawing>span{font-size:14.8vw;letter-spacing:-.065em}.footer-bottom{padding:14px;font-size:8px;flex-wrap:wrap;gap:14px}.footer-bottom>span:nth-child(2){display:none}.opening-metadata{left:22px;right:22px;bottom:24px;grid-template-columns:1fr auto;gap:24px}.opening-metadata>p{font-size:28px}.opening-metadata>.technical{grid-column:1/-1;grid-row:2;font-size:9px;gap:4px}.opening-metadata>.technical span:last-child{margin-top:6px}.opening-metadata>button{font-size:10px;gap:15px}.opening-art{width:160%;left:-30%;top:-9%;height:100%}.opening-rule-top{top:48%}.opening-frame{inset:6px}dialog{padding:38px 22px 28px}dialog h2{font-size:34px}}
@media(max-width:350px){.brand>span{display:none}.hero-canvas{height:310px}.hero-band h1{font-size:8.3vw}.hero-meta{font-size:8px}.hero-bottom{font-size:8px}.hero-index{font-size:7px}.approach-content>h2{font-size:9.8vw}.story-controls button{font-size:9px;gap:6px}.story-cards p{font-size:15px}.story-cards h2{font-size:27px}.opening-metadata>p{font-size:24px}}
@media(min-width:760px) and (max-height:730px){.story-stage{min-height:510px}.story-top{top:20px}.story-cards article{top:21%}.story-cards h2{font-size:36px}.story-cards p{font-size:14px;margin-top:17px}.story-considerations{margin-top:16px}.story-considerations span{padding:8px 0;font-size:12px}.story-controls button{min-height:48px;padding-block:10px}.story-geometry{inset:6% 18% 15%}.hero-canvas{min-height:400px}.hero-band h1{font-size:3.45vw}.hero-band{min-height:120px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}.opening{display:none!important}}
/* Keep all architectural views in the same ink-and-paper family. */
.axonometric-art,.contact-art-inner{filter:grayscale(1) contrast(1.23);mix-blend-mode:multiply}
h1,h2,h3{letter-spacing:-.035em}.hero-band h1{letter-spacing:-.045em}.story-intro p{letter-spacing:-.045em}.story-cards h2{letter-spacing:-.035em}
.hero-inspection .marker-context{left:16%;top:56%}.hero-inspection .marker-entry{left:49%;top:68%}.hero-inspection .marker-home{left:73%;top:58%}
@media(max-width:759px){.hero-inspection .marker-context{left:9%;top:51%}.hero-inspection .marker-home{left:76%;top:51%}.hero-inspection .marker-entry{left:49%;top:58%}}
/* Readable content if the animation module cannot run. */
html:not(.js-ready) .project-story{height:auto}
html:not(.js-ready) .story-stage{height:auto;min-height:0;padding:70px 24px 24px;overflow:visible}
html:not(.js-ready) .story-geometry{position:relative;inset:auto;height:540px}
html:not(.js-ready) .story-cards{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:25px}
html:not(.js-ready) .story-cards article{position:static;opacity:1;visibility:visible;width:auto;height:auto}
html:not(.js-ready) .story-intro,html:not(.js-ready) .story-bottom,html:not(.js-ready) .story-annotations{display:none}
.noscript-note{padding:15px 22px;font-size:15px;border-bottom:1px solid var(--rule)}
@media(max-width:759px){
 .story-controls button{font-size:12px}.hero-bottom{font-size:11px}.menu-toggle{font-size:12px}
 .footer-top>button,.footer-top .text-action{font-size:11px}
 html:not(.js-ready) .menu-toggle{display:none}
 html:not(.js-ready) .site-header{height:auto;flex-wrap:wrap}
 html:not(.js-ready) .site-header nav{display:grid;position:static;width:100%;flex-basis:100%}
 html:not(.js-ready) .story-cards{display:block;padding:0}
 html:not(.js-ready) .story-cards article{margin-bottom:45px}
 html:not(.js-ready) .story-geometry{height:390px}
}
h1,h2,h3,.hero-band h1,.story-cards h2,.story-intro p{letter-spacing:-.025em;word-spacing:.065em}
.axonometric-art,.contact-art-inner{filter:grayscale(1) contrast(1.42)}
.axonometric-art :is(path,polygon,polyline,line,rect,circle,ellipse),.contact-art-inner :is(path,polygon,polyline,line,rect,circle,ellipse){vector-effect:non-scaling-stroke}

/* Two equally prominent services: development and consulting. */
.hero-index{grid-template-columns:1fr 1fr;height:auto;min-height:48px;font-size:11px}
.hero-index>a{display:flex;align-items:center;gap:16px;padding:13px 28px;border-right:1px solid var(--rule);transition:background .2s;color:var(--ink)}
.hero-index>a:last-child{border-right:0}.hero-index>a:hover{background:var(--purple-light)}
.hero-index>a>span{display:block;border:0}.hero-index>a>i{margin-left:auto;font-style:normal;font-size:20px;color:var(--purple-dark)}
.hero-index>a>b{font-weight:400;color:var(--purple-dark)}
.consulting{background:#eae6f0}
.consulting-intro{display:grid;grid-template-columns:46% 54%;min-height:740px;border-bottom:1px solid var(--rule)}
.consulting-copy{padding:82px 12% 68px 10%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;border-right:1px solid var(--rule)}
.consulting-copy .eyebrow{color:var(--purple-dark);margin-bottom:42px}
.consulting-copy h2{font-size:clamp(48px,5.5vw,92px);line-height:.96}
.consulting-copy .consulting-lead{font-size:22px;line-height:1.3;margin-top:35px;max-width:440px}
.consulting-copy>p:not(.consulting-lead){font-size:17px;line-height:1.5;margin-top:22px;max-width:420px}
.consulting-discover{margin-top:38px;gap:25px;width:100%;max-width:420px;padding-top:20px;border-top:1px solid #9c95b0;color:var(--purple-dark)}
.consulting-art{min-width:0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--paper)}
.consulting-art:before{content:'';position:absolute;inset:12px;border:1px solid #777b7138;pointer-events:none}
.consulting-art>.art-index{position:absolute;top:28px;left:28px;color:var(--muted);font-size:10px}
.consulting-art>.art-caption{position:absolute;bottom:28px;left:28px;color:var(--muted);font-size:10px}
.consulting-drawing{width:100%;max-width:950px;mix-blend-mode:multiply}
.consulting-drawing>svg{width:100%;height:auto}
.consulting-topics{display:grid;grid-template-columns:46% 54%;padding:85px 0 95px;scroll-margin-top:var(--header);border-bottom:1px solid var(--rule);background:var(--paper)}
.topics-heading{padding:8px 12% 10px 10%;position:relative}
.topics-heading h2{font-size:clamp(40px,4.6vw,77px)}
.topics-heading>.eyebrow{max-width:350px;line-height:1.5;color:var(--purple-dark)}
.topics-heading>p{font-size:17px;line-height:1.5;max-width:350px;margin-top:27px}
.topics-datum{display:flex;align-items:center;gap:25px;width:100%;margin-top:65px;max-width:330px;color:var(--purple-dark)}
.topics-datum i{height:1px;background:var(--purple);width:100%;position:relative}.topics-datum i:before,.topics-datum i:after{content:'';position:absolute;top:-5px;height:11px;border-left:1px solid var(--purple)}.topics-datum i:after{right:0}
.topics-datum b{font:400 54px Instrument,sans-serif;border:1px solid var(--purple);width:82px;height:82px;flex:none;display:grid;place-items:center;border-radius:50%}
.topic-list{padding-right:8%;border-left:1px solid var(--rule)}
.consult-topic{border-bottom:1px solid var(--rule)}.consult-topic:first-child{border-top:1px solid var(--rule)}
.consult-topic summary{list-style:none;display:grid;grid-template-columns:32px 1fr 30px;gap:17px;align-items:center;padding:26px 22px;cursor:pointer;min-height:86px;transition:background .2s}
.consult-topic summary::-webkit-details-marker{display:none}.consult-topic summary::marker{content:''}
.consult-topic summary:hover{background:#e9e5f161}.consult-topic summary:focus-visible{outline:2px solid var(--purple-dark);outline-offset:-4px}
.consult-topic summary>.technical{color:var(--purple-dark);font-size:11px}.consult-topic h3{font-size:25px;line-height:1.08;letter-spacing:-.025em;word-spacing:0}
.topic-symbol{font:400 24px GeistMono,monospace;justify-self:end;transition:transform .3s var(--ease);color:var(--purple-dark)}
.consult-topic[open] .topic-symbol{transform:rotate(45deg)}
.topic-body{padding:0 26px 27px 71px}.topic-body p{font-size:17px;line-height:1.5;max-width:500px}.topic-body ul{list-style:none;padding:0;margin:20px 0 28px;font-size:14px;line-height:1.5}.topic-body li{padding:7px 0;border-bottom:1px solid #a7a39359}.topic-body li:before{content:'↗';display:inline-block;color:var(--purple-dark);margin-right:10px}
.topic-body .text-action{font-size:11px;width:100%;color:var(--purple-dark);text-align:left;padding:10px 0}
.consultation-meeting{padding:75px 5% 0;min-height:720px}
.meeting-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:22px 40px}.meeting-heading>.eyebrow{grid-column:1/-1;color:var(--purple-dark);margin:0}
.meeting-heading h2{font-size:clamp(34px,4.2vw,70px)}.meeting-heading>p{font-size:21px;line-height:1.4;justify-self:end;padding-right:8%;margin-bottom:5px}
.meeting-steps{position:relative;display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;margin:62px 0 45px;gap:5%;--step-progress:1}
.meeting-steps:before{content:'';position:absolute;left:0;right:0;top:23px;border-top:1px solid #b3abc9;transform:scaleX(var(--step-progress));transform-origin:left}
.meeting-steps li{position:relative}.meeting-number{position:relative;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--purple-dark);background:#eae6f0;font:12px GeistMono,monospace;color:var(--purple-dark);margin-bottom:30px}
.meeting-steps h3{font-size:25px;line-height:1.1;margin-bottom:17px}
.meeting-steps p{font-size:16px;line-height:1.5;max-width:335px}
.meeting-invitation{border-top:1px solid #a19aaf;display:flex;justify-content:space-between;align-items:center;padding:28px 0 32px;gap:30px}.meeting-invitation>p{font-size:23px;line-height:1.12;letter-spacing:-.025em}.meeting-invitation>.button-fill{background:var(--purple-dark);color:var(--paper);min-width:260px;justify-content:space-between}
.contact-actions>button{flex:1;text-align:left}.contact-actions .button-fill{background:var(--ink);color:var(--paper)}
@media(min-width:1900px){.consulting-intro{min-height:870px}.consulting-topics{padding-top:120px;padding-bottom:120px}.consultation-meeting{min-height:860px;padding-top:100px}}
@media(max-width:1050px){
 .consulting-copy{padding:55px 8%}.consulting-copy .eyebrow{margin-bottom:28px}.consulting-copy h2{font-size:5.8vw}
 .consulting-copy .consulting-lead{font-size:20px}.consulting-copy>p:not(.consulting-lead){font-size:16px}
 .consulting-intro{min-height:680px}.topics-heading{padding-left:8%;padding-right:8%}.topic-list{padding-right:5%}
 .consult-topic summary{padding-inline:18px;gap:12px;grid-template-columns:24px 1fr 24px}.consult-topic h3{font-size:22px}.topic-body{padding-left:54px;padding-right:18px}.topic-body p{font-size:16px}
 .meeting-heading>p{font-size:18px;padding-right:0}.meeting-steps h3{font-size:22px}
}
@media(max-width:759px){
 .hero-index{min-height:66px;font-size:10px}.hero-index>a{gap:10px;align-items:flex-start;padding:14px 13px}.hero-index>a>span{line-height:1.45}.hero-index>a>i{font-size:17px;align-self:flex-end}
 .project-story{height:285svh}
 .consulting-intro{display:flex;flex-direction:column;min-height:0}
 .consulting-copy{padding:48px 24px 42px;border-right:0;border-bottom:1px solid var(--rule)}
 .consulting-copy h2{font-size:clamp(38px,11.5vw,70px)}.consulting-copy .eyebrow{font-size:11px;margin-bottom:28px}
 .consulting-copy .consulting-lead{font-size:21px;margin-top:26px}.consulting-copy>p:not(.consulting-lead){font-size:16px;margin-top:19px}
 .consulting-discover{margin-top:26px;font-size:11px;min-height:48px;padding-top:15px}
 .consulting-art{min-height:390px}.consulting-drawing{width:100%;max-width:600px}.consulting-art>.art-index{top:20px;left:20px;font-size:9px}.consulting-art>.art-caption{bottom:18px;left:20px;font-size:9px}
 .consulting-topics{display:block;padding:42px 0 0}
 .topics-heading{padding:0 24px 32px}.topics-heading>.eyebrow{font-size:10px;margin-bottom:24px}.topics-heading h2{font-size:clamp(37px,10.5vw,60px)}.topics-heading>p{font-size:16px;line-height:1.5;max-width:480px;margin-top:23px}.topics-datum{display:none}
 .topic-list{padding:0;border-left:0}.consult-topic summary{padding:22px 21px;min-height:82px;gap:10px;grid-template-columns:22px 1fr 22px}.consult-topic h3{font-size:22px;max-width:390px}.consult-topic summary>.technical{font-size:10px}.topic-body{padding:0 23px 27px 53px}.topic-body ul{font-size:14px;margin-bottom:18px}.topic-body .text-action{font-size:11px;line-height:1.5;gap:18px}
 .consultation-meeting{padding:45px 24px 0;min-height:0}.meeting-heading{display:block}.meeting-heading>.eyebrow{font-size:10px;margin-bottom:25px}.meeting-heading h2{font-size:clamp(32px,8.6vw,48px)}.meeting-heading>p{font-size:18px;margin-top:22px}
 .meeting-steps{display:block;margin:38px 0}.meeting-steps:before{left:22px;right:auto;top:0;bottom:0;border-top:0;border-left:1px solid #b3abc9;transform:scaleY(var(--step-progress));transform-origin:top}
 .meeting-steps li{padding-left:68px;min-height:155px;padding-bottom:30px}.meeting-steps li:last-child{padding-bottom:0;min-height:0}.meeting-number{position:absolute;top:0;left:0;margin:0}.meeting-steps h3{font-size:24px;line-height:1.1;padding-top:5px;margin-bottom:13px}.meeting-steps p{font-size:16px;line-height:1.5;max-width:470px}
 .meeting-invitation{display:block;padding:26px 0 35px}.meeting-invitation>p{font-size:21px;margin-bottom:24px}.meeting-invitation>.button-fill{width:100%;font-size:12px;min-height:54px;min-width:0}
}
@media(max-width:350px){.hero-index{font-size:9px}.hero-index>a{gap:6px;padding-inline:10px}.hero-index>a>i{display:none}.consulting-copy,.topics-heading{padding-left:20px;padding-right:20px}.consult-topic summary{padding-inline:17px}.consult-topic h3{font-size:20px}.topic-body{padding-left:49px;padding-right:20px}.meeting-steps li{padding-left:58px}.meeting-steps h3{font-size:21px}.consultation-meeting{padding-inline:20px}}
.project-story{height:clamp(2100px,270svh,2700px)}
.contact.contact-balanced{display:block;min-height:0}
.contact-heading{padding:42px 5% 38px;border-bottom:1px solid var(--rule);display:flex;align-items:center;justify-content:space-between;gap:40px}
.contact-heading>.eyebrow{margin:0;color:var(--purple-dark)}.contact-heading h2{font-size:clamp(28px,3.2vw,52px)}
.contact-options{display:grid;grid-template-columns:1fr 1fr}
.contact-options>article{padding:55px 10%;display:flex;flex-direction:column;align-items:flex-start;border-right:1px solid var(--rule)}.contact-options>article:last-child{border-right:0}
.contact-options .eyebrow{color:var(--purple-dark)}.contact-options h3{font-size:clamp(30px,3.9vw,63px);line-height:1.04}.contact-options p{font-size:17px;line-height:1.5;max-width:420px;margin:24px 0 35px}.contact-options .button-fill{width:100%;justify-content:space-between;margin-top:auto;font-size:12px;max-width:420px;min-height:56px}
@media(max-width:759px){.project-story{height:285svh}.contact-heading{padding:34px 24px;display:block}.contact-heading .eyebrow{margin-bottom:20px;font-size:10px}.contact-heading h2{font-size:35px}.contact-options{display:block}.contact-options>article{padding:36px 24px;border-right:0;border-bottom:1px solid var(--rule)}.contact-options>article:last-child{border-bottom:0}.contact-options h3{font-size:36px}.contact-options p{font-size:16px;margin:22px 0 26px}.contact-options .eyebrow{font-size:11px;margin-bottom:23px}}

/* A single, full-size brand signature; navigation is secondary to the mark. */
:root{--header:120px;--purple-light:#d4d0f4}
.site-header{align-items:center;padding-inline:clamp(20px,3vw,64px);gap:32px}
.site-header .brand{width:auto;flex:none;padding:0;gap:0;min-width:0;align-self:stretch}
.brand .brand-mark{display:flex;height:100%;align-items:center;padding:5px 0}
.brand .brand-mark img{width:146px;height:109px;object-fit:contain;mix-blend-mode:multiply;transition:transform .35s var(--ease)}
.site-header nav{flex:0 1 auto;margin-left:auto;display:flex;gap:clamp(22px,3vw,52px);align-items:center}
.site-header nav a{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px 0;border:0;font-size:12px;white-space:nowrap;overflow:visible}
.site-header nav a i{position:static;flex:none;font-size:18px}
.site-header nav a:after{content:'';position:absolute;height:1px;background:var(--purple-dark);left:0;right:0;bottom:5px;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.site-header nav a:hover{background:transparent}
.site-header nav a:focus-visible:after{transform:scaleX(1)}
.site-header nav .nav-contact{background:var(--purple-dark);color:var(--paper);padding:16px 20px;min-height:50px}
.site-header nav .nav-contact:after{display:none}
.footer-brand img{width:140px;height:104px;object-fit:contain}
@media(hover:hover) and (pointer:fine){.brand:hover .brand-mark img{transform:translateY(-2px)}.site-header nav a:hover:after{transform:scaleX(1)}.site-header nav .nav-contact:hover{background:#473975}}
@media(min-width:1600px){:root{--header:132px}.brand .brand-mark img{width:160px;height:119px}}
@media(max-width:999px){
 :root{--header:96px}
 .site-header{padding-inline:22px;gap:20px}
 .brand .brand-mark img{width:116px;height:86px}
 .site-header .menu-toggle{display:flex;width:auto;min-width:96px;min-height:48px;margin-left:auto;align-items:center;justify-content:space-between;padding:12px 0 12px 18px;border:0;gap:20px;font:12px GeistMono,monospace;text-transform:uppercase}
 .menu-symbol{font-size:24px;color:var(--purple-dark)}
 .site-header nav{display:none;position:absolute;left:0;right:0;top:100%;max-height:calc(100dvh - var(--header));overflow-y:auto;margin:0;gap:0;background:var(--paper);border-block:1px solid var(--rule);grid-template-columns:1fr 1fr}
 .site-header.menu-open nav{display:grid}
 .site-header nav a{height:auto;min-height:72px;padding:20px 22px;border-bottom:1px solid var(--rule);white-space:normal;justify-content:space-between}
 .site-header nav a:nth-child(odd){border-right:1px solid var(--rule)}
 .site-header nav a:nth-last-child(-n+2){border-bottom:0}
 .site-header nav a:after{left:22px;right:22px;bottom:12px}
 .site-header nav .nav-contact{background:#eae6f0;color:var(--purple-dark);padding:20px 22px}
 html:not(.js-ready) .site-header{height:auto;flex-wrap:wrap;padding-top:4px}
 html:not(.js-ready) .menu-toggle{display:none}
 html:not(.js-ready) .site-header nav{display:grid;position:static;flex-basis:100%;max-height:none}
}
@media(max-width:759px){:root{--header:92px}.site-header{padding-inline:18px}.brand .brand-mark img{width:110px;height:82px}.site-header nav a{font-size:12px}.footer-brand img{width:120px;height:89px}}
@media(max-height:500px) and (min-width:600px){:root{--header:76px}.brand .brand-mark img{width:88px;height:66px}}
.motion-reduced .brand img,.motion-reduced .site-header nav a:after{transition:none!important;transform:none!important}
@media(min-width:760px){.hero-canvas{height:clamp(360px,calc(100svh - var(--header) - 220px),820px);min-height:0}}

/* Reflow content independently of the width of the animated illustration. */
.site-header,.hero-summary,.approach-content,.consulting-copy,.topics-heading,.topic-list,.meeting-heading>*,.meeting-steps>li,.contact-options>article{min-width:0}
.hero-band h1,.approach-content>h2,.consulting-copy h2,.topics-heading h2,.meeting-heading h2,.contact-options h3{overflow-wrap:normal}
@media(min-width:760px) and (max-width:1050px){
 .approach-content>h2{font-size:clamp(29px,3.4vw,36px)}
 .story-cards article{right:4%;width:32%}
 .story-cards h2{font-size:clamp(25px,3.3vw,35px)}
 .consulting-copy h2{font-size:clamp(36px,5.2vw,54px)}
 .footer-top{grid-template-columns:22% 28% 28% 22%}
 .footer-top>*{padding:20px 16px}
}
/* Short screens use a scrollable document chapter, with controls before copy. */
.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-stage{height:auto;min-height:0;padding:66px 0 0;overflow:visible;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center}
.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-geometry{position:relative;inset:auto;height:440px;grid-column:1;grid-row:2;margin:0 20px}
.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-cards{grid-column:2;grid-row:2;padding:30px 10% 30px 0}
.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-cards article{position:relative;inset:auto;width:auto;height:auto}
.project-story[data-story-mode=static] .story-cards article[aria-hidden=true]{display:none}
.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-cards h2{font-size:clamp(28px,3.1vw,55px)}
.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-bottom{position:relative;inset:auto;grid-column:1/-1;grid-row:1}
.project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-detail-panel{top:75px;max-height:calc(100% - 175px);overflow:auto}
@media(max-width:759px){
 .project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-stage{display:flex;flex-direction:column;align-items:stretch;padding-top:58px}
 .project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-geometry{height:300px;flex:none;margin:0 6px}
 .project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-bottom{order:1}
 .project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-cards{order:2;padding:28px 22px 36px;min-height:280px}
 .project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-cards h2{font-size:clamp(27px,7.7vw,39px)}
 .project-story:is([data-story-mode=static],[data-story-mode=compact]) .story-cards p{max-width:540px}
 .story-controls button{min-height:68px;line-height:1.3}
 .hero-bottom button{min-height:44px}
 .hero-bottom{bottom:10px}
 dialog{width:calc(100% - 24px);max-width:600px;padding:44px 20px 24px;max-height:calc(100dvh - 24px)}
 dialog h2{font-size:clamp(27px,8.5vw,34px);overflow-wrap:anywhere}
 .dialog-close,.note-close{width:44px;height:44px}
 .footer-top>button{gap:9px}
}
dialog select,dialog textarea{font-size:16px;max-width:100%;min-width:0}
dialog{overscroll-behavior:contain}
@media(max-width:380px){.hero-band h1{font-size:8vw}.contact-heading h2{font-size:30px}.contact-options h3{font-size:31px}.footer-top>*{padding-inline:14px}.footer-top .text-action{gap:12px}}

.story-marker{min-width:44px}
.footer-bottom>a{display:inline-flex;align-items:center;min-height:44px}

.enquiry-address{font-size:14px;line-height:1.5;margin-top:20px;overflow-wrap:anywhere}.enquiry-address a{text-decoration:underline;text-underline-offset:3px}

/* Explicit line artwork avoids platform-dependent emoji presentation. */
.ui-icon{display:inline-block;width:18px;height:18px;flex:none;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.menu-symbol .ui-icon,.topic-symbol .ui-icon{width:20px;height:20px}
.topic-symbol{display:grid;place-items:center}
.note-close .ui-icon,.dialog-close .ui-icon{width:22px;height:22px}
.hero-bottom button{display:inline-flex;align-items:center;gap:7px}
.hero-bottom button>span{display:flex;margin-right:0}
.footer-bottom>a{gap:8px}
.topic-body li:before{content:'';width:8px;height:8px;border-top:1px solid var(--purple-dark);border-right:1px solid var(--purple-dark);vertical-align:1px}
.story-considerations span:after{content:'';width:10px;height:10px;margin-top:4px;background:linear-gradient(var(--purple-dark),var(--purple-dark)) center/100% 1px no-repeat,linear-gradient(var(--purple-dark),var(--purple-dark)) center/1px 100% no-repeat}
@media(max-width:759px){
 .hero-canvas{height:clamp(240px,65vw,390px)}
 .hero-illustration{width:calc(100% - 28px);height:100%;margin:0}
 .opening-art{left:16px;right:auto;top:9%;width:calc(100% - 32px);height:60%}
 .hero-inspection .marker-context{left:18%;top:48%}
 .hero-inspection .marker-home{left:73%;top:48%}
 .hero-inspection .marker-entry{left:48%;top:57%}
 .hero-bottom{left:14px;right:14px;gap:8px}
 .hero-bottom button{font-size:10px;gap:5px}
 .hero-bottom .ui-icon{width:14px;height:14px}
}

/* Stable chapter dimensions: browser chrome must not reflow the next section. */
.project-story[data-story-mode=animated]{height:clamp(2400px,calc(var(--story-viewport,100svh) * 3.3),3400px)}
.project-story[data-story-mode=animated] .story-stage{height:calc(var(--story-viewport,100svh) - var(--header));min-height:0}
.project-story[data-story-mode=compact] .story-cards{display:grid;align-items:start}
.project-story[data-story-mode=compact] .story-cards article{grid-area:1/1;display:block}
.project-story[data-story-mode=compact] .story-annotations{overflow:hidden}
@media(max-width:759px){
 .project-story[data-story-mode=animated]{height:calc(var(--story-viewport,100svh) * 3.6)}
 .project-story[data-story-mode=animated] .story-geometry{inset:7% 1% 46%}
 .project-story[data-story-mode=animated] .story-cards article{top:53%;bottom:auto;height:auto;left:20px;right:20px}
 .project-story[data-story-mode=animated] .story-cards h2{font-size:clamp(25px,7.2vw,36px)}
 .project-story[data-story-mode=animated] .story-cards .eyebrow{margin-bottom:10px}
 .project-story[data-story-mode=animated] .story-cards p{font-size:15px;line-height:1.35;margin-top:12px}
 .project-story[data-story-mode=animated] .story-top{top:18px}
 .project-story[data-story-mode=animated] .story-controls button{min-height:58px;padding:10px 8px;font-size:9px}
 .project-story[data-story-mode=animated] .plan-caption{padding:7px 10px;font-size:7px}
}
