@font-face{font-family:Manrope;src:url('assets/Manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{--ink:#13201f;--ground:#f3f5f2;--mist:#e2e8e4;--muted:#4a5a57;--accent:#2438a6;--pad:clamp(24px,5vw,80px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--ground);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer}button:disabled{cursor:wait}img{display:block;max-width:100%}button{border:0;background:none}h1,h2,h3,p{margin:0}h1,h2{font-weight:500;letter-spacing:-.055em;line-height:1.08}h2{font-size:clamp(42px,4.8vw,76px)}h3{font-size:27px;font-weight:500;letter-spacing:-.025em}p+p{margin-top:22px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:6px}.skip{position:fixed;top:-100px;left:24px;padding:12px 20px;background:white;z-index:100}.skip:focus{top:12px}.section{padding:110px var(--pad);max-width:1760px;margin:auto}.header{height:92px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--ground);position:relative;z-index:20}.brand{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;font:700 26px Arial,sans-serif;letter-spacing:-.7px}.brand img{width:44px;height:44px;object-fit:contain}.header nav{display:flex;align-items:center;gap:34px;font-size:14px}.header nav a{padding:10px 0}.header nav .nav-cta{border-bottom:1px solid var(--ink)}.menu-button{display:none}
.hero{position:relative;min-height:620px;height:calc(100svh - 92px);max-height:1100px;overflow:hidden;background:var(--ink);color:white}.hero-image{width:100%;height:100%;object-fit:cover;object-position:center 40%;position:absolute;inset:0}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,15,.27),transparent 38%,rgba(10,20,15,.70) 100%)}.hero-top{position:absolute;top:30px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;font-size:14px}.hero-copy{position:absolute;bottom:80px;left:var(--pad);right:var(--pad)}h1{font-size:clamp(60px,6.8vw,108px);font-weight:500;max-width:1300px}.hero-bottom{margin-top:32px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.hero-bottom p{font-size:17px;line-height:1.6}.light-link{border-bottom:1px solid rgba(255,255,255,.7);padding:10px 0;font-size:16px}.light-link span{margin-left:24px;font-size:25px}.image-note{position:absolute;bottom:20px;right:var(--pad);font-size:11px;color:#fff}
.intro{display:grid;grid-template-columns:1fr 2fr;gap:80px;padding-top:140px;padding-bottom:145px}.intro-aside img{width:90px;height:90px;margin-bottom:35px}.intro-aside p{font-size:14px}.large-copy{font-size:clamp(23px,2vw,30px);line-height:1.55;letter-spacing:-.02em;margin-top:32px;max-width:780px}.body-copy{font-size:17px;color:var(--muted);max-width:630px;margin-top:26px}.collections{padding-top:0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:64px}.section-heading p{color:var(--muted);font-size:15px;max-width:330px}.collection-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:64px 48px;align-items:start}.collection-open{padding:0;width:100%;text-align:left;display:block}.image-wrap{position:relative;overflow:hidden;background:var(--mist)}.image-wrap img{width:100%;height:100%;object-fit:cover;transition:scale .9s cubic-bezier(.2,.7,.2,1)}.collection-open:hover img{scale:1.04}.botanical .image-wrap{aspect-ratio:4/5}.fold{margin-top:160px}.fold .image-wrap{aspect-ratio:1/1}.tide .image-wrap{aspect-ratio:5/4}.flight{margin-top:100px}.flight .image-wrap{aspect-ratio:5/4}.flight img{object-position:60% center}.image-tag{position:absolute;top:24px;left:24px;color:white;font-size:12px;background:rgba(19,32,31,.75);padding:6px 12px}.image-action{position:absolute;bottom:20px;right:20px;width:40px;height:40px;border-radius:50%;background:white;display:grid;place-items:center;font-size:22px;transition:transform .5s cubic-bezier(.2,.7,.2,1),background .3s,color .3s}.collection-open:hover .image-action,.collection-open:focus-visible .image-action{transform:rotate(90deg) scale(1.12);background:var(--accent);color:white}.collection-caption{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-top:20px}.collection-caption p{font-size:13px;color:var(--muted)}.gallery-note{font-size:12px;color:var(--muted);margin-top:52px}
.making{height:260vh;background:var(--mist);position:relative}.making-sticky{position:sticky;top:0;height:100svh;min-height:650px;display:grid;grid-template-columns:40% 60%;align-items:center;overflow:hidden}.making-copy{padding:50px 0 50px var(--pad);position:relative;z-index:3}.process-label{font-size:13px;display:block;margin-bottom:26px}.making h2{font-size:clamp(40px,4.1vw,66px)}.making-copy>p{font-size:16px;max-width:350px;color:var(--muted);margin-top:26px}.process-steps{margin-top:35px}.step{font-size:16px;padding:10px 0;opacity:.48;transition:opacity .3s,transform .6s cubic-bezier(.2,.7,.2,1)}.step.active{transform:translateX(12px)}.step span{transition:color .3s}.step.active span{color:var(--accent)}.motion-off .step.active{transform:none}.step+.step{margin:0}.step.active{opacity:1}.step span{font-size:12px;margin-right:20px}.process-track{height:2px;background:#b4beb6;width:310px;max-width:90%;margin-top:20px}.process-track span{display:block;height:100%;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left}.making-copy .scroll-cue{font-size:12px;margin-top:18px}.text-button{padding:8px 0;border-bottom:1px solid var(--muted);font-size:12px;margin-top:18px}.making-visual{position:relative;height:100%;width:100%;display:flex;align-items:center}.making-visual video,.making-visual>img{position:absolute;width:140%;max-width:none;left:-40%;height:100%;object-fit:contain;mix-blend-mode:normal}.making-visual video{opacity:0}.making-visual #toolpath{position:absolute;width:90%;height:90%;left:0;object-fit:contain;opacity:1;background:var(--mist)}.making-note{position:absolute;bottom:28px;right:var(--pad);font-size:11px;text-align:right;z-index:4}.motion-off .making{height:auto}.motion-off .making-sticky{position:relative;min-height:760px}.motion-off #toolpath,.motion-off #printer-video{display:none}.motion-off .process-track span{transform:scaleX(1)}.motion-off .scroll-cue{display:none}
.material-section{height:850px;max-height:100svh;min-height:560px;position:relative;overflow:hidden;color:white;background:var(--ink)}.material-section>img{width:100%;height:112%;object-fit:cover;object-position:center}.material-section:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,32,31,.7),transparent 85%)}.material-copy{position:absolute;left:var(--pad);top:50%;transform:translateY(-50%);z-index:1}.material-copy h2{font-size:clamp(50px,5.5vw,86px)}.material-copy p{margin-top:28px;max-width:430px;font-size:17px}.material-copy span{display:block;font-size:11px;margin-top:50px}
.lab{background:var(--ink);color:white;max-width:none;padding-top:110px;padding-bottom:95px}.lab-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.lab-heading p{color:#c5d0c9;font-size:15px}.lab-layout{display:grid;grid-template-columns:1.8fr 1fr;gap:60px;margin-top:65px;align-items:center}.lab-visual{position:relative;min-width:0}.lab-visual canvas{width:100%;height:auto;display:block;aspect-ratio:4/3}.lab-visual>span{display:block;color:#b5c3bc;font-size:11px;text-align:center;margin-top:10px}.lab-controls{max-width:340px;width:100%}fieldset{border:0;margin:0 0 30px;padding:0;display:flex;flex-wrap:wrap;gap:8px}legend{font-size:13px;color:#c5d0c9;margin-bottom:14px}fieldset label{position:relative;cursor:pointer}fieldset input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}fieldset span{display:block;padding:9px 14px;border:1px solid #6b7b72;font-size:12px}fieldset input:checked+span{background:var(--ground);color:var(--ink);border-color:var(--ground)}fieldset input:focus-visible+span{outline:3px solid #fff;outline-offset:4px}.range-label{display:flex;justify-content:space-between;font-size:13px;margin:22px 0 8px}.range-label output{color:#c5d0c9}input[type=range]{width:100%;accent-color:#dbe4db;height:20px;cursor:pointer}.finish{margin-top:26px}.finish span{border:0;padding:6px 8px;display:flex;gap:7px;align-items:center}.swatch{height:12px;width:12px;border-radius:50%;display:inline-block;border:1px solid #8c9b8f}.porcelain{background:#e5dfcb}.green{background:#587362}.ochre{background:#b49856}.primary{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;background:var(--accent);color:white;padding:16px 24px;font-size:14px;min-height:54px;border-radius:2px}.primary:hover{background:#1b2b89}.lab .primary{margin-top:26px;background:#f3f5f2;color:var(--ink);width:100%;text-align:left}.lab .primary:hover{background:#dce4dd}
.bespoke{display:grid;grid-template-columns:1.15fr 1fr;gap:100px;padding-top:140px;padding-bottom:140px}.bespoke-list{padding-top:6px}.bespoke-list>div{padding:26px 0;position:relative}.bespoke-list>div:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#bec8bf;transform:scaleX(var(--rule,1));transform-origin:left}.bespoke-list>div:first-child{padding-top:0}.bespoke-list h3{font-size:21px}.bespoke-list p{font-size:14px;color:var(--muted);margin-top:10px;max-width:450px}.project{border-top:1px solid #bec8bf;display:grid;grid-template-columns:1fr 1.2fr;gap:110px}.project-intro img{margin-bottom:30px}.project-intro>p{margin-top:26px;font-size:16px}.project-intro .preview-notice{font-size:12px;color:var(--muted);max-width:330px;margin-top:40px}form label{display:block;font-size:13px;margin-bottom:24px}input:not([type=radio]):not([type=range]),select,textarea{display:block;width:100%;background:transparent;color:var(--ink);border:0;border-bottom:1px solid #9eafa2;border-radius:0;padding:13px 0;resize:vertical;min-height:48px}input::placeholder,textarea::placeholder{color:#66756c;font-size:13px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px}.optional{color:var(--muted)}.form-status{font-size:14px;color:var(--accent);margin-top:18px}.privacy{font-size:11px;color:var(--muted);margin-top:15px}.studio-note{padding-top:0;padding-bottom:100px;display:grid;grid-template-columns:1fr 1.2fr;gap:110px}.studio-note h2{font-size:29px;letter-spacing:-.025em}.studio-note p{max-width:640px;font-size:13px;color:var(--muted)}footer{background:var(--ink);color:white;padding:60px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:30px}footer .brand img{filter:brightness(0) invert(1)}footer p{font-size:14px}footer>span{font-size:12px;color:#bdcac2;text-align:right}
dialog{width:min(1120px,94vw);max-height:90svh;border:0;padding:0;background:var(--ground);color:var(--ink);overflow:auto}dialog::backdrop{background:rgba(9,20,15,.8);backdrop-filter:blur(6px)}dialog[open]{display:grid;grid-template-columns:1.1fr 1fr}dialog>img{height:100%;width:100%;object-fit:cover;min-height:550px}.study-content{padding:70px 45px 45px}.study-content h2{font-size:58px;margin:18px 0 25px}.study-content>p{font-size:15px}.study-content .study-disclaimer{font-size:12px;color:var(--muted);margin:28px 0}.study-content .primary{margin-top:15px}#close-study{position:absolute;top:12px;right:12px;background:var(--ground);width:44px;height:44px;border-radius:50%;font-size:28px;z-index:2}
@media(min-width:1800px){.making-copy{padding-left:max(80px,calc((100vw - 1600px)/2))}}
@media(max-width:1000px){.header nav{gap:20px;font-size:12px}.brand{font-size:23px}.intro{gap:40px;grid-template-columns:.7fr 1.5fr}.collection-caption{display:block}.collection-caption p{margin-top:7px}.making-copy{padding-left:24px}.making h2{font-size:43px}.making-copy>p{max-width:280px;font-size:14px}.making-sticky{grid-template-columns:42% 58%}.bespoke,.project,.studio-note{gap:50px}.lab-layout{gap:25px;grid-template-columns:1.5fr 1fr}.lab-heading p{max-width:270px}.material-section{height:700px}}
@media(max-width:700px){html{scroll-padding-top:30px}.header{height:auto;min-height:78px;flex-wrap:wrap;padding-top:15px;padding-bottom:15px}.brand{font-size:23px}.brand img{width:36px;height:36px}.menu-button{display:flex;gap:20px;align-items:center;padding:8px 0;font-size:13px}.header nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;padding:15px 0 0}.header nav.open{display:flex}.header nav a{font-size:15px;padding:14px 0;border-bottom:1px solid #c4cec5}.hero{height:calc(92svh - 78px);min-height:620px;max-height:850px}.hero-image{object-position:52% center}.hero-top{top:22px;font-size:11px;gap:20px}.hero-top span:last-child{text-align:right}.hero-copy{bottom:60px}h1{font-size:clamp(46px,10.6vw,74px);letter-spacing:-.06em}.hero-bottom{display:block;margin-top:24px}.hero-bottom p{font-size:14px}.light-link{display:inline-block;margin-top:20px;font-size:14px}.image-note{font-size:9px;bottom:16px}.section{padding:78px 24px}.intro{display:block}.intro-aside{display:flex;align-items:center;gap:20px;margin-bottom:40px}.intro-aside img{width:60px;height:60px;margin:0}.intro-aside p{font-size:12px}h2{font-size:43px}.large-copy{font-size:23px;margin-top:25px}.body-copy{font-size:15px;margin-top:22px}.collections{padding-top:0}.section-heading{display:block;margin-bottom:35px}.section-heading p{margin-top:22px;font-size:14px}.collection-grid{grid-template-columns:1fr;gap:40px}.fold,.flight{margin:0}.botanical .image-wrap{aspect-ratio:4/4.5}.fold .image-wrap,.tide .image-wrap,.flight .image-wrap{aspect-ratio:5/4}.collection-caption{display:flex;align-items:center;gap:20px}.collection-caption h3{font-size:26px}.collection-caption p{font-size:11px;margin:0;max-width:160px}.image-tag{top:16px;left:16px;font-size:11px}.gallery-note{margin-top:35px;font-size:11px}.making{height:220svh}.making-sticky{display:flex;flex-direction:column;justify-content:flex-start;min-height:710px;height:100svh;max-height:960px}.making-copy{padding:40px 24px 0;width:100%}.process-label{margin-bottom:15px;font-size:11px}.making h2{font-size:39px}.making-copy>p{font-size:13px;max-width:420px;margin-top:16px}.process-steps{display:flex;gap:12px;justify-content:space-between;margin-top:18px}.step{font-size:10px;line-height:1.5;max-width:100px}.step span{display:block;font-size:10px;margin:0}.process-track{margin-top:12px;width:100%;max-width:none}.making-copy .scroll-cue{font-size:10px;margin-top:9px}.text-button{font-size:10px;margin-top:4px}.making-visual{height:auto;flex:1;min-height:270px;width:100%}.making-visual video,.making-visual>img{width:145%;left:-45%;height:100%;object-fit:contain}.making-visual #toolpath{width:100%;height:100%}.making-note{bottom:18px;font-size:9px}.motion-off .making-sticky{min-height:750px;height:auto}.motion-off .making-visual{height:340px;flex:auto}.material-section{min-height:530px;height:80svh;max-height:800px}.material-copy h2{font-size:47px}.material-copy p{font-size:14px;max-width:300px}.lab-heading{display:block}.lab-heading p{margin-top:25px;font-size:14px;max-width:none}.lab-layout{display:block;margin-top:20px}.lab-visual{margin:0 -20px 40px}.lab-controls{max-width:none}.lab-visual>span{font-size:9px}.lab-controls fieldset{margin-bottom:18px}.lab .primary{margin-top:18px}.bespoke{display:block}.bespoke-list{margin-top:45px}.project{display:block}.project-intro img{width:65px;height:65px}.project-intro .preview-notice{margin-top:24px;max-width:none}form{margin-top:40px}.form-pair{grid-template-columns:1fr;gap:0}.studio-note{display:block;padding-top:0}.studio-note p{margin-top:20px}footer{display:block;padding:45px 24px}footer p{margin-top:22px}footer>span{display:block;text-align:left;margin-top:24px}dialog[open]{display:block}dialog>img{min-height:0;height:300px}.study-content{padding:30px}.study-content h2{font-size:43px}.study-content>p{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-image{transform:none!important}.material-section>img{transform:none!important}}
.motion-off{scroll-behavior:auto}.motion-off .image-wrap img{transition:none}.motion-off .hero-image,.motion-off .material-section>img{transform:none!important}

.honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#mail-verification{margin-bottom:20px}

.making-visual video,.making-visual>img{mask-image:linear-gradient(90deg,transparent 0%,black 28%,black 98%,transparent 100%),linear-gradient(180deg,transparent 0%,black 8%,black 91%,transparent 100%);mask-composite:intersect}

/* Motion layer. Every hidden state below is set by script or by the .fm-intro class, so the page reads fully without JavaScript. */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;z-index:60;pointer-events:none}.motion-off .scroll-progress{display:none}
.split-line-mask{padding-bottom:.12em;margin-bottom:-.12em}
.fm-intro .header,.fm-intro .hero-image,.fm-intro .hero-top,.fm-intro .hero-copy,.fm-intro .image-note{opacity:0;animation:fm-reveal 0s 3s forwards}
@keyframes fm-reveal{to{opacity:1}}
.header nav a:not(.nav-cta){background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s cubic-bezier(.2,.7,.2,1)}.header nav a:not(.nav-cta):hover,.header nav a[aria-current=page]:not(.nav-cta){background-size:100% 1px}
.brand img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}.brand:hover img{transform:rotate(-12deg) translateY(-3px)}
.light-link span,.primary span{display:inline-block;transition:transform .4s cubic-bezier(.2,.7,.2,1)}.light-link:hover span{transform:translate(4px,4px)}.primary:hover span{transform:translate(3px,-3px)}
.lab-visual canvas{cursor:crosshair}
@media(prefers-reduced-motion:reduce){.scroll-progress{display:none}}

/* WebGL scenes (scene3d.min.js). The 2D study, printer film and still stay underneath as the fallback. */
.lab-3d{position:relative;width:100%;aspect-ratio:4/3}.stage-3d{position:absolute;inset:0;display:block;width:100%;height:100%}.lab-3d .stage-3d{cursor:crosshair}
.lab-visual.has-3d #surface{display:none}
.print-3d{position:absolute;inset:0;z-index:2}.making-visual.has-3d>img,.making-visual.has-3d video,.making-visual.has-3d #toolpath{visibility:hidden}
.print-hud{position:absolute;top:28px;left:24px;z-index:4;font-size:11px;letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--ink);background:rgba(226,232,228,.86);padding:4px 9px;border-radius:2px}
@media(max-width:700px){.print-hud{top:10px;left:0;font-size:10px}.step.active{transform:none}}

/* Brisbane sun study (shown only when the WebGL study is running). */
.sun-study{margin-top:26px;padding-top:22px;border-top:1px solid #34463f}.sun-detail{margin-top:4px}.sun-field{display:block;font-size:13px;color:#c5d0c9;margin:14px 0 0}
.lab select{color:white;border-bottom-color:#6b7b72;background:transparent;padding:10px 0;min-height:44px}.lab select option{color:var(--ink);background:var(--ground)}.lab select:focus-visible{outline-color:#fff}
.sun-play{color:#dbe4db;border-bottom-color:#9fb0a5;margin-top:14px}.sun-play[aria-pressed=true]{color:white;border-bottom-color:white}.sun-readout{font-size:13px;color:#dbe4db;margin-top:14px;min-height:42px;line-height:1.55}

/* Wall planner */
.planner{padding-top:120px}.planner-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.planner-heading p{color:var(--muted);font-size:15px;max-width:380px}
.planner-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:60px;margin-top:56px;align-items:start}.planner-drawing{background:var(--mist);padding:28px;min-width:0}.planner-drawing svg{display:block;width:100%;height:auto;max-height:68vh}
.planner-controls{max-width:380px;width:100%}.plan-choice{margin-bottom:22px}.plan-choice legend{color:var(--muted)}.plan-choice span{border-color:#9eafa2}.plan-choice input:checked+span{background:var(--ink);color:white;border-color:var(--ink)}.plan-choice input:focus-visible+span{outline:3px solid var(--accent);outline-offset:4px}
.plan-quantities{margin:6px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.plan-quantities div{padding:12px 0;border-bottom:1px solid #c4cec5}.plan-quantities dt{font-size:12px;color:var(--muted)}.plan-quantities dd{margin:4px 0 0;font-size:16px;font-variant-numeric:tabular-nums}
.plan-note{font-size:12px;color:var(--muted);margin:18px 0 22px}
@media(max-width:1000px){.planner-layout{grid-template-columns:1fr;gap:36px}.planner-controls{max-width:none}}
@media(max-width:700px){.planner{padding-top:78px}.planner-heading{display:block}.planner-heading p{margin-top:20px;font-size:14px}.planner-layout{margin-top:30px}.planner-drawing{padding:14px;margin:0 -24px}}
