/* V3 extends the V2 identity and opening composition. */
.intro-done .opening-brand{transition:opacity .6s}.intro-done .opening-thought{transition:opacity 1.2s .65s,transform 1.2s .65s}section{scroll-margin-top:80px}.opening{scroll-margin-top:0}
body{--muted:#64665e}main{overflow:clip}button{touch-action:manipulation}h2{font-size:clamp(36px,4.6vw,68px)}.eyebrow{font-size:12px;margin-bottom:23px}.lede{font-size:18px;line-height:1.6}.quiet{font-size:15px;margin-top:25px}.beat{min-height:80svh;padding:105px 9%}.beat p:not(.eyebrow):not(.lede):not(.quiet){font-size:16px}.beat h2+h2{margin-top:24px}
.pendant{width:270px;height:275px;overflow:visible;filter:brightness(.06);z-index:3}.pendant img{width:270px;height:auto;max-width:none;left:0;top:0;clip-path:polygon(47% 0,47.7% 0,47.7% 12.8%,49% 12.9%,49% 15.3%,51.2% 16.3%,51.6% 17.1%,50.4% 64.8%,57% 65.3%,65% 67.1%,70% 69%,74% 71.5%,76.8% 74.3%,77.3% 84%,77% 88%,75.4% 91%,71% 94%,64% 96%,55% 97.2%,45% 97.4%,35% 96.5%,26% 94.6%,20% 92%,17.7% 89%,17.8% 75.2%,20% 72.6%,25% 69.7%,32% 67%,40% 65.4%,44.4% 64.8%,43.3% 17.1%,44.2% 16%,45.8% 15.3%,45.8% 13%,47% 12.8%)}.pendant:after{content:'';position:absolute;left:22%;right:21%;top:79%;height:12%;border-radius:50%;background:#fff5c5;mix-blend-mode:screen;filter:blur(7px);opacity:0;transition:opacity 1s;box-shadow:0 14px 35px 12px #ffe4a080}.lit .pendant:after{opacity:.8}.light-cone{top:248px}.lit .light-cone{opacity:1;filter:blur(6px);background:conic-gradient(from 155deg at 50% 0,transparent 0deg,#fff4d32e 4deg,#fffdf4f2 25deg,#fff4d32e 46deg,transparent 50deg)}
.story-next{position:fixed;right:3%;bottom:75px;z-index:60;border:0;width:44px;height:106px;color:#fff;mix-blend-mode:difference;opacity:.7;transition:opacity .6s,transform .6s;animation:guide-float 3.8s ease-in-out infinite}.story-next svg{height:80px;width:24px}.story-next.is-final{opacity:0;pointer-events:none;transform:translateY(12px)}@keyframes guide-float{0%,100%{translate:0 -5px}50%{translate:0 6px}}.motion{bottom:20px;right:3%}.opening-foot a b{display:none}
.seeing{display:grid;grid-template-columns:.9fr 1.15fr;gap:7%;padding-right:9%;min-height:90svh}.seeing-copy h2{font-size:clamp(38px,4.6vw,66px)}.seeing-copy .lede{margin-top:24px;color:var(--muted)}.seeing-image{width:100%;height:60svh;max-height:640px;align-self:center;isolation:isolate}.seeing-image img{object-fit:cover;animation:light-perception 16s ease-in-out infinite alternate}.seeing-image:after{display:none}.study-light{position:absolute;inset:-20%;background:linear-gradient(115deg,transparent 25%,#ffe7b426 45%,#090b1229 65%,transparent 85%);mix-blend-mode:soft-light;animation:study-sweep 15s ease-in-out infinite alternate;pointer-events:none}@keyframes light-perception{0%{transform:scale(1.02);filter:brightness(.83) saturate(.65)}100%{transform:scale(1.065) translateX(-1%);filter:brightness(1.08) saturate(.95)}}@keyframes study-sweep{to{transform:translateX(16%) rotate(9deg)}}
.concise-pain{min-height:65svh;gap:8%;isolation:isolate}.concise-pain>div:first-child{width:80%;z-index:1}.concise-pain h2{font-size:clamp(32px,4.1vw,61px)}.concise-pain em{display:inline-block;margin-top:16px;color:#72796f}.question-cloud{position:absolute;inset:10% 5% 10% 65%;width:auto!important;display:flex;flex-direction:column;justify-content:space-around;align-items:center;opacity:.22;font:12px monospace}.question-cloud span{animation:float-tech 12s infinite alternate}.question-cloud span:nth-child(2n){animation-delay:-5s}
.compact-curated{display:grid;grid-template-columns:1fr 1fr;gap:12%;min-height:76svh}.compact-curated h2{font-size:clamp(55px,6.4vw,94px)}.curation-detail ol{padding:0;margin:0 0 30px;list-style:none}.curation-detail li{padding:14px 0;border-bottom:1px solid var(--line);font-size:16px}.curation-detail li span{font:12px monospace;margin-right:18px;color:var(--muted)}.curation-detail p{color:var(--muted);font-size:15px!important}.curation-detail strong{font-weight:500;color:var(--ink)}
.project-narrative{padding:80px 9%}.project-intro{padding:0;margin-bottom:25px}.project-intro h2{font-size:clamp(36px,4.3vw,60px)}.project-select{margin:0 0 18px;gap:20px}.project-select button{min-height:44px;font-size:13px}.project-case{grid-template-columns:1.5fr 1fr;min-height:0;height:min(57svh,520px);border:0;background:transparent}.project-photo{height:100%}.project-photo>img{height:100%;object-fit:cover}.project-script{padding:25px 0 25px 10%}.project-script>.eyebrow{font-size:11px;margin-bottom:18px}.project-stage{left:10%;right:0;top:85px}.project-stage h3{font-size:clamp(26px,2.65vw,39px);margin-top:18px;line-height:1.15}.project-stage p{font-size:14px;margin-top:16px}.project-stage .fixture-crop{height:125px;width:180px;border:0;margin-top:10px;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse at center,#000 45%,transparent 73%);animation:fixture-drift 9s ease-in-out infinite alternate}.project-stage:has(.fixture-crop) h3{font-size:25px;margin-top:10px}.project-stage:has(.fixture-crop) p{font-size:13px;margin-top:8px}.project-photo figcaption{font-size:10px;padding:5px 8px;bottom:12px;left:14px}.target{width:45px;height:45px}.stage-nav{padding:14px 0;gap:20px}.stage-nav button{min-height:44px;font-size:13px}.project-note{font-size:11px;padding:12px 0;color:var(--muted);max-width:none}
.technical-chapter{height:185svh;position:relative}.chapter-pin{position:sticky;top:0;height:100svh;min-height:640px;padding:110px 9% 35px;display:flex;flex-direction:column;justify-content:center}.chapter-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px}.chapter-heading .eyebrow{margin-bottom:24px}.chapter-heading>p:last-child{font-size:13px;color:var(--muted)}.chapter-heading strong{font-weight:500;color:var(--ink)}.tech-tabs{display:flex;border-bottom:1px solid #25282030;gap:0}.tech-tabs button{flex:1;border:0;border-bottom:1px solid transparent;padding:15px 0;min-height:48px;font-size:13px;letter-spacing:.06em;color:var(--muted);text-align:left}.tech-tabs small{font:11px monospace;margin-right:8px}.tech-tabs button[aria-selected=true]{border-color:currentColor;color:#20231f}.chapter-window{overflow:hidden;flex:1;max-height:520px;min-height:330px}.chapter-track{display:flex;height:100%;transform:translateX(calc(var(--chapter,0)*-100%));transition:transform .85s cubic-bezier(.2,.7,.2,1)}.tech-panel{flex:0 0 100%;display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center;min-width:0;padding:35px 0}.tech-copy h2{font-size:clamp(31px,3.6vw,53px);line-height:1.12;max-width:480px}.tech-copy>p{font-size:15px;color:var(--muted);margin-top:20px;max-width:450px}.tech-copy .tech-terms{font:11px/1.8 monospace;letter-spacing:.05em;color:#777970}.tech-diagram{margin-top:24px;max-width:360px}.tech-diagram svg{height:95px;max-width:100%;opacity:.6}.colour-spectrum{height:40px;background:linear-gradient(90deg,#706b9544,#7297bd88,#8caf9366,#e8cf8b88,#c2805a77);mask-image:linear-gradient(transparent,#000 40%,#000 60%,transparent);animation:breathe 6s infinite alternate}.thermal-flow{display:flex;gap:15px;align-items:center;font:11px monospace}.thermal-flow i{animation:heat-flow 3s infinite}.tech-diagram .integration-note{font-size:13px;color:#6a6b63;line-height:1.65}.fixture-stage{position:relative;height:100%;display:flex;align-items:center;justify-content:center;isolation:isolate}.fixture-stage .fixture-crop{width:100%;max-height:330px;background:transparent;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse at center,#000 28%,#000b 48%,transparent 72%);animation:fixture-drift 11s infinite alternate ease-in-out}.fixture-stage .fixture-crop img{filter:grayscale(1);object-fit:fill}.optic-ring{position:absolute;width:75%;aspect-ratio:1;border:1px solid #33333315;border-radius:50%;z-index:-1;animation:ring-breathe 8s infinite alternate}.fixture-caption{position:absolute;bottom:1%;left:0;font:10px monospace;letter-spacing:.12em;color:#74786c}.chapter-bottom{display:flex;align-items:center;gap:24px;border-top:1px solid #25282020;padding-top:12px;font-size:12px;color:var(--muted)}.chapter-bottom>span:first-child{margin-right:auto}.chapter-next{min-height:44px;border:0;font-size:13px}.chapter-counter{font:12px monospace}@keyframes fixture-drift{from{transform:translate(0,4px) rotate(-3deg)}to{transform:translate(10px,-8px) rotate(3deg)}}@keyframes ring-breathe{to{transform:scale(.91);opacity:.25}}
.transformation{padding:70px 0 60px}.transform-intro{padding:10px 9% 28px;text-align:center}.transform-intro .eyebrow{margin-inline:auto}.transform-intro h2{font-size:clamp(36px,4.8vw,68px)}.light-lab{width:76%;max-width:1200px;margin:auto;background:transparent}.fixed-room{aspect-ratio:1672/941;width:100%;background:#131512}.fixed-room .room-image{filter:brightness(.72) saturate(.8);transition:filter 2.2s}.fixed-room .focused-layer{opacity:1;filter:brightness(1.12);mask-image:radial-gradient(ellipse 28% 18% at 64% 61%,#000 35%,transparent 90%),linear-gradient(95deg,transparent 75%,#000 90%),radial-gradient(ellipse 17% 27% at 62% 34%,#000 40%,transparent 95%);transition:opacity 2.2s}.flat-wash{position:absolute;inset:0;opacity:0;background:#d8dfeb;mix-blend-mode:soft-light;transition:opacity 2.2s}.light-lab[data-scene=flat] .room-image{filter:brightness(1.24) contrast(.56) saturate(.55)}.light-lab[data-scene=flat] .focused-layer{opacity:0}.light-lab[data-scene=flat] .flat-wash{opacity:.8}.room-top{top:15px;left:15px;right:15px;font-size:10px}.room-top span{padding:6px 10px}.room-caption{display:flex;gap:20px;align-items:baseline;justify-content:space-between;padding:15px 0 8px;background:transparent}.room-caption p{font-size:15px;margin:0}.room-caption h3{font-size:clamp(21px,2.3vw,32px);letter-spacing:-.035em}.scene-controls{padding:4px 0 8px;gap:5px 16px;background:transparent;justify-content:flex-start}.scene-controls button{font-size:12px;min-height:44px}.scene-controls .lab-play{margin-left:auto;min-width:40px}.fine-controls{padding:4px 0 10px;max-width:640px;margin:auto;gap:35px;background:transparent}.fine-controls label{font-size:12px;gap:2px}.fine-controls input{min-height:25px}.simulation-note{font-size:10px;padding:8px 0 0;line-height:1.6}.fixed-room .comparison-colour{pointer-events:none}.light-lab[data-scene=warm27] .comparison-colour{background:#f9ba64;mix-blend-mode:soft-light;opacity:.32}.light-lab[data-scene=warm30] .comparison-colour{background:#fcd6a1;mix-blend-mode:soft-light;opacity:.2}.light-lab[data-scene=neutral] .room-image{filter:brightness(.9) saturate(.5)}.light-lab[data-scene=neutral] .comparison-colour{background:#b6dfff;mix-blend-mode:soft-light;opacity:.5}.light-lab[data-scene=tunable] .comparison-colour{mix-blend-mode:soft-light}.light-lab[data-scene=colour] .comparison-colour,.light-lab[data-scene=rgbw] .comparison-colour,.light-lab[data-scene=event] .comparison-colour{mask-image:radial-gradient(ellipse 25% 18% at 64% 60%,transparent 10%,#000 100%)}
.credibility{display:grid;grid-template-columns:1fr 1fr;gap:30px 10%;min-height:0;padding-top:100px;padding-bottom:60px}.credibility h2{font-size:clamp(33px,3.7vw,55px);line-height:1.13}.trust-copy p{font-size:15px!important;color:var(--muted);max-width:490px}.trust-copy p:first-child{color:var(--ink)}.trust-heading .founder{font-size:14px!important;margin-top:30px}.founder span{display:block;font-size:12px;color:var(--muted)}.clients{grid-column:1/-1;margin-top:25px;border-top:1px solid var(--line);padding-top:24px}.clients p:first-child{font-size:11px!important;margin-bottom:8px;color:var(--muted)}.clients p:last-child{font-size:12px!important;line-height:2;max-width:1040px;color:#686a62;margin-top:0}.contact{min-height:75svh;padding:65px 9% 35px}.contact h2{font-size:clamp(46px,6.5vw,90px)}.final-brand{width:125px;margin-bottom:30px}.contact .talk-final{margin:26px auto}.contact-details{font-size:15px}.contact footer{margin-top:60px;font-size:11px;color:var(--muted)}.contact address{font-style:normal}.contact footer p{font-size:11px!important;margin:10px auto 0!important;max-width:none}.paused *,.paused *:before,.paused *:after{animation-play-state:paused!important}.is-away *,.is-away *:before,.is-away *:after{animation-play-state:paused!important}
@media(max-width:900px){.chapter-pin{padding-inline:7%}.chapter-heading{display:block}.chapter-heading .eyebrow{margin-bottom:5px}.chapter-heading>p:last-child{margin-bottom:12px}.tech-tabs button{font-size:11px}.tech-tabs small{margin-right:3px}.light-lab{width:84%}.tech-panel{gap:5%}.project-case{height:480px}.project-stage h3{font-size:29px}}
@media(max-width:700px){.beat{padding:85px 7%;min-height:0}.opening{min-height:700px}.pendant{width:225px;height:230px}.pendant img{width:225px}.light-cone{top:205px}.story-next{right:2%;bottom:70px;height:80px}.story-next svg{height:65px}.seeing{grid-template-columns:1fr;gap:28px;padding-top:95px;padding-bottom:60px}.seeing-copy h2{font-size:42px}.seeing-copy .lede{margin-top:15px;font-size:16px}.seeing-image{height:auto;aspect-ratio:1.3;max-height:440px}.seeing-image img{height:100%}.concise-pain{min-height:60svh}.concise-pain>div:first-child{width:100%}.concise-pain h2{font-size:32px}.question-cloud{inset:5% 0 5% 60%;opacity:.1}.compact-curated{grid-template-columns:1fr;gap:30px}.compact-curated h2{font-size:66px}.curation-detail li{font-size:15px}.project-narrative{padding:65px 7%}.project-intro{margin-bottom:18px}.project-intro h2{font-size:38px}.project-select{gap:0 16px;margin-bottom:16px}.project-select button{font-size:12px;padding:8px 0}.project-case{display:flex;height:auto;background:transparent}.project-photo{height:auto;aspect-ratio:1.25}.project-script{height:245px;padding:20px 0 0}.project-script>.eyebrow{margin:0;font-size:10px}.project-stage{left:0;right:0;top:54px}.project-stage h3{font-size:27px;max-width:100%;margin-top:12px}.project-stage p{font-size:14px;margin-top:12px}.project-stage .fixture-crop{height:110px;width:110px;float:right;margin:12px 0 0 12px}.project-stage:has(.fixture-crop) h3{font-size:24px}.project-stage:has(.fixture-crop) p{font-size:13px}.stage-nav{gap:12px;justify-content:space-between;flex-wrap:nowrap;padding:3px 0}.stage-nav>span{display:none}.stage-nav button{font-size:11px}.stage-nav .project-play{flex-shrink:0;width:32px;height:32px}.project-note{font-size:10px}.technical-chapter{height:170svh}.chapter-pin{height:100svh;min-height:650px;padding:95px 7% 15px}.chapter-heading .eyebrow{font-size:10px;letter-spacing:.13em}.chapter-heading>p:last-child{font-size:12px}.tech-tabs{gap:12px;overflow:auto;scrollbar-width:none;flex-shrink:0}.tech-tabs button{flex:0 0 auto;font-size:11px;padding:10px 0;white-space:nowrap}.tech-tabs small{display:block;text-align:left;font-size:10px;margin-bottom:2px}.chapter-window{min-height:380px;max-height:none}.tech-panel{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-content:start;gap:10px;padding:22px 0 10px}.tech-copy h2{font-size:30px;max-width:330px}.tech-copy>p{font-size:13px;margin-top:12px;max-width:370px}.tech-copy .tech-terms{font-size:9px;margin-top:12px}.tech-diagram{margin-top:12px}.tech-diagram svg{height:55px}.tech-diagram .integration-note{font-size:12px}.colour-spectrum{height:22px}.fixture-stage{min-height:120px;max-height:180px}.fixture-stage .fixture-crop{width:200px;max-height:165px}.fixture-caption{font-size:9px;bottom:0;left:auto;right:0}.optic-ring{height:135px;width:135px}.chapter-bottom{font-size:10px;gap:16px;flex-shrink:0}.chapter-next{font-size:12px}.transformation{padding:60px 0 20px}.transform-intro{padding:10px 7% 24px}.transform-intro h2{font-size:39px}.light-lab{width:86%}.fixed-room{aspect-ratio:1.35}.fixed-room img{width:100%;height:100%;left:0;object-fit:cover;object-position:center}.room-caption{display:block;padding:13px 0 5px}.room-caption p{font-size:13px;margin-bottom:8px}.room-caption h3{font-size:26px}.scene-controls{gap:0 14px}.scene-controls button{font-size:11px}.scene-controls .lab-play{margin-left:0}.fine-controls{grid-template-columns:1fr 1fr;gap:20px}.fine-controls label{font-size:11px}.fine-controls output{font-size:10px}.simulation-note{text-align:left;font-size:10px}.credibility{grid-template-columns:1fr;gap:28px;padding-top:70px;padding-bottom:35px}.credibility h2{font-size:37px}.trust-copy p{font-size:14px!important}.clients{margin-top:0;padding-top:18px}.clients p:last-child{font-size:11px!important;line-height:1.9}.contact{padding-top:45px;padding-bottom:35px;min-height:0}.contact h2{font-size:54px}.contact-details{font-size:14px;gap:12px}.contact footer{margin-top:40px}.contact address{font-size:10px}.contact footer p{font-size:10px!important}.final-brand{width:110px}.room-top{top:10px;left:10px}}
@media(max-width:360px){.stage-nav{gap:5px}.stage-nav button{font-size:10px}.tech-copy h2{font-size:27px}.tech-tabs{gap:10px}.tech-tabs button{font-size:10px}.chapter-heading>p:last-child{font-size:11px}.chapter-bottom>span:first-child{max-width:100px}.fine-controls{grid-template-columns:1fr;gap:6px}}
@media(max-height:680px) and (min-width:701px){.chapter-pin{min-height:600px;padding-top:85px}.tech-copy h2{font-size:34px}.tech-copy>p{font-size:13px}.tech-diagram svg{height:65px}.chapter-window{min-height:300px}.fixture-stage .fixture-crop{max-height:260px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.technical-chapter{height:auto}.chapter-pin{position:relative;height:auto;min-height:0}.chapter-window{height:430px;flex:none}.seeing-image img,.fixture-stage .fixture-crop{transform:none}.story-next{animation:none}.room-timer{display:none}}
/* General-light sources fade together as purposeful layers take over. */
.flat-wash:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse .6% .28% at 17% 5%,#fff 80%,transparent),radial-gradient(ellipse .6% .28% at 35% 5%,#fff 80%,transparent),radial-gradient(ellipse .6% .28% at 53% 5%,#fff 80%,transparent),radial-gradient(ellipse .6% .28% at 71% 5%,#fff 80%,transparent),radial-gradient(ellipse .4% .2% at 29% 12%,#fff 80%,transparent),radial-gradient(ellipse .4% .2% at 43% 12%,#fff 80%,transparent),radial-gradient(ellipse .4% .2% at 57% 12%,#fff 80%,transparent),radial-gradient(ellipse .4% .2% at 71% 12%,#fff 80%,transparent),radial-gradient(ellipse .3% .16% at 39% 18%,#fff 80%,transparent),radial-gradient(ellipse .3% .16% at 51% 18%,#fff 80%,transparent),radial-gradient(ellipse .3% .16% at 63% 18%,#fff 80%,transparent);filter:drop-shadow(0 2px 3px #fff)}
@media(max-width:700px){.motion{left:12px;right:auto;bottom:12px;width:40px;height:34px;padding:0}.motion span{display:none}.chapter-pin{padding-bottom:48px}.chapter-bottom{padding-top:8px}.chapter-next{min-width:78px}.story-next{bottom:65px}.contact footer{padding-bottom:35px}}
@media(prefers-reduced-motion:reduce){.intro-done .opening-thought,.intro-done .opening-brand{transition:none!important}}
#technology{scroll-margin-top:0}.motion{bottom:8px;height:30px;padding:4px 12px}
@media(min-width:701px){.transformation{padding-top:40px}.transform-intro{padding:0 9% 20px}.transform-intro h2{font-size:clamp(36px,4vw,56px)}.light-lab{max-width:min(1200px,calc((100svh - 430px)*1.7778));min-width:620px}}
@media(max-width:700px){.motion{padding:0;height:34px;bottom:12px}}
