/* Direction: Snellenberg's work index + Benoist's dark photographic gallery.
   Original Dev-scope wordmark, accent, cursor, particles and wireframes retained. */
/* Both themes use the same composition and assets; only semantic colours change. */
:root{--bg:#141414;--surface:#1c1c1c;--ink:#edede7;--muted:#96968f;--line:#ffffff25;--line-soft:#ffffff15;--accent:#a28afd;--on-accent:#141414;--nav-bg:#141414f2;--section-nav-bg:#141414f5;--backdrop:#050505c9;--lightbox-bg:#0a0a0a;--image-placeholder:#242424;--preview-bg:#333;--media-surface:#c8c7c0;--model-surface:#c9c6c0;--contained-surface:#d4d2cb;--catalogue-surface:#e7e6e1;--data-surface:#323139;--data-accent:#b5a0ff;--integration-surface:#26262d;--export-surface:#1d1d1d;--flow-surface:#202421;--swatch-border:#fff6;--gutter:clamp(22px,4vw,72px);--ease:cubic-bezier(.22,1,.36,1);color-scheme:dark}
:root[data-theme="light"]{--bg:#f5f5f0;--surface:#eaeae5;--ink:#20201e;--muted:#64645e;--line:#20201e2b;--line-soft:#20201e1c;--accent:#6846cf;--on-accent:#f5f5f0;--nav-bg:#f5f5f0f2;--section-nav-bg:#f5f5f0f5;--backdrop:#deded5cf;--lightbox-bg:#eeeeea;--image-placeholder:#e4e4de;--preview-bg:#deded8;--media-surface:#e6e5df;--model-surface:#e6e5df;--contained-surface:#e9e8e2;--catalogue-surface:#ecebe6;--data-surface:#e4e1ec;--data-accent:#6846cf;--integration-surface:#e5e2ed;--export-surface:#eaeae5;--flow-surface:#e5e8e2;--swatch-border:#20201e66;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Space Grotesk',Arial,sans-serif;-webkit-font-smoothing:antialiased}button,a,input{ -webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{color:inherit}button{cursor:pointer}a{text-decoration:none}button{border:0}img,video,canvas{display:block;max-width:100%}h1,h2,h3,p{margin:0}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--accent);color:var(--bg)}[hidden]{display:none!important}.accent{color:var(--accent)}.muted{color:var(--muted)}.small-label{font-size:12px;line-height:1.5}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;font-size:14px;padding:12px 0;border-bottom:1px solid var(--line)}.text-link span{transition:transform .4s var(--ease)}.text-link:hover span{transform:translate(4px,-4px)}.section-space{padding:110px var(--gutter)}.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:var(--ink);color:var(--bg);padding:14px}.skip-link:focus{top:10px}.wordmark{font-family:'Syne',sans-serif;font-weight:800;font-size:24px;letter-spacing:-1px;white-space:nowrap}.loading-screen{position:fixed;inset:0;background:var(--bg);z-index:100;display:flex;align-items:center;justify-content:center;gap:24px;pointer-events:none}.loading-screen>span:first-child{font-family:'Syne',sans-serif;font-size:36px;font-weight:800}.loading-count{font-size:11px;color:var(--muted)}
/* Equal outer columns keep the main links centered independently of the brand. */
.nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:24px;align-items:center;padding:28px var(--gutter);height:100px;position:relative;z-index:5}
.nav-brand{display:flex;align-items:center;gap:clamp(20px,2.2vw,36px);min-width:0;justify-self:start}
.nav-brand>.wordmark{flex-shrink:0}
.nav-caption{font-size:11px;line-height:1.5;color:var(--muted);white-space:nowrap}
.nav nav{display:flex;align-items:center;justify-self:center;gap:32px;font-size:13px;white-space:nowrap}.nav nav a{display:inline-block;position:relative}.nav nav a::after{content:'';position:absolute;bottom:-6px;left:0;width:100%;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}.nav nav a:hover::after{transform:scaleX(1)}sup{font-size:10px;vertical-align:top;margin-left:5px}
.hero{position:relative;padding:34px var(--gutter) 35px;isolation:isolate;overflow:hidden}.hero #hero-canvas{position:absolute;inset:-100px 0 0;width:100%;height:100%;z-index:-1;opacity:.24;pointer-events:none}.hero-top{display:flex;justify-content:space-between;font-size:12px;margin-bottom:18px}.hero-top p:last-child{color:var(--muted)}h1{font-weight:500;font-size:clamp(68px,12.8vw,240px);letter-spacing:-.075em;line-height:1.05;margin:0 0 44px -.045em;white-space:nowrap}.name-mask{display:block;overflow:hidden;padding-bottom:.08em}.name-mask>span{display:block}.hero-reel{display:flex;gap:12px;height:clamp(260px,28vw,500px)}.reel-panel{position:relative;overflow:hidden;padding:0;background:#222;text-align:left;flex:1;min-width:0;transition:flex .85s var(--ease)}.reel-panel:first-child{flex:2.1}.hero-reel:has(.reel-panel:hover) .reel-panel{flex:1}.hero-reel:has(.reel-panel:hover) .reel-panel:hover{flex:2.1}.reel-panel img{height:100%;width:100%;object-fit:cover;filter:saturate(.62);transition:transform 1.2s var(--ease),filter .8s;transform:scale(1.04)}.reel-panel:hover img,.reel-panel:focus-visible img{filter:saturate(1);transform:scale(1.12)}.reel-name{color:#edede7;position:absolute;inset:auto 0 0;padding:35px 20px 20px;background:linear-gradient(transparent,#0009);display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;white-space:nowrap}.reel-name>span{font-size:24px}.hero-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:26px;font-size:13px;line-height:1.6}.hero-bottom .text-link{align-self:center}.hero-credit{text-align:right;color:var(--muted);font-size:11px}
.work-section{padding-top:100px}.work-heading{margin-bottom:65px}.work-heading h2{font-size:clamp(46px,7.5vw,112px);letter-spacing:-.065em;font-weight:400;line-height:1.2;margin-top:16px}.work-heading sup{font-size:14px;margin:14px 0 0 24px;display:inline-block;letter-spacing:0}.index-legend{display:grid;grid-template-columns:1fr 290px 70px;font-size:10px;color:var(--muted);padding:0 20px 20px 70px}.index-legend>:last-child{text-align:right}.project-row{position:relative;display:grid;width:100%;grid-template-columns:50px 1fr 290px 70px;align-items:center;gap:0;padding:32px 20px;background:none;text-align:left;border-top:1px solid var(--line);transition:color .4s,padding .6s var(--ease)}.project-row:last-child{border-bottom:1px solid var(--line)}.project-row:hover{color:var(--accent);padding-left:34px}.project-number{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);align-self:start;padding-top:12px}.project-name{font-size:clamp(32px,4.7vw,72px);font-weight:400;letter-spacing:-.045em;line-height:1.05}.project-meta{font-size:11px;color:var(--muted);line-height:1.8}.project-meta span{display:block;color:var(--ink)}.project-arrow{width:50px;height:50px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:22px;justify-self:end;transition:background .4s,color .4s,transform .4s}.project-row:hover .project-arrow{background:var(--accent);color:var(--bg);transform:rotate(45deg)}.row-image{display:none}.work-end{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted);margin-top:22px}.work-end>:last-child{white-space:nowrap}
#hover-preview{position:fixed;top:0;left:0;width:360px;height:290px;pointer-events:none;z-index:20;opacity:0;visibility:hidden;transform:translate(-50%,-50%)}.preview-image{height:245px;background:var(--preview-bg);overflow:hidden}.preview-image>img{width:100%;height:100%;object-fit:cover}.preview-caption{display:flex;justify-content:space-between;padding:12px 14px;background:var(--accent);color:var(--on-accent);font-size:11px}.cursor{position:fixed;top:0;left:0;width:10px;height:10px;background:var(--accent);border-radius:50%;z-index:99;pointer-events:none;display:none;align-items:center;justify-content:center;color:var(--bg);font-size:11px;transform:translate(-50%,-50%);transition:width .4s var(--ease),height .4s var(--ease),background .3s}.cursor.is-link{width:30px;height:30px;background:transparent;border:1px solid var(--accent)}
/* Portrait and introduction share one grid, so their edges stay aligned. */
.about-section{border-top:1px solid var(--line);padding-top:90px}
.about-intro{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:"portrait heading" "portrait copy";column-gap:clamp(40px,6vw,88px);row-gap:28px;align-items:start;max-width:1180px;margin-inline:auto}
.about-heading{grid-area:heading;min-width:0}
.about-heading .small-label{display:block;color:var(--muted);margin-bottom:18px}
.about-heading h2{font-size:clamp(34px,3.3vw,52px);font-weight:400;letter-spacing:-.05em;line-height:1.12}
.about-portrait{grid-area:portrait;position:relative;align-self:stretch;min-height:420px;min-width:0;margin:0;overflow:hidden}
.about-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.about-copy{grid-area:copy;min-width:0}
.about-lead{font-size:clamp(20px,1.6vw,24px);line-height:1.5;letter-spacing:-.025em}
.about-body{color:var(--muted);font-size:14px;line-height:1.8;margin-top:24px}
.about-body p+p{margin-top:16px}
.about-body .text-link{margin-top:20px;color:var(--ink)}
.capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:80px}.original-object{height:170px;width:100%;position:relative}.original-object canvas{width:100%;height:100%}.capability{border-top:1px solid var(--line);padding-top:10px;text-align:center}.capability h3{font-weight:400;font-size:23px;letter-spacing:-.035em;margin-bottom:20px}.capability p{font-size:12px;line-height:1.9;color:var(--muted)}
.contact-section{padding-top:75px;border-top:1px solid var(--line)}.contact-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.contact-top p{font-size:14px}.contact-orbit{width:110px;height:110px;border-radius:50%;background:var(--accent);color:var(--bg);display:flex;align-items:center;justify-content:center;font-size:45px}.contact-section h2{font-size:clamp(54px,9.1vw,140px);letter-spacing:-.065em;font-weight:400;line-height:1.02}.contact-bottom{display:flex;justify-content:space-between;margin-top:60px;gap:30px}.contact-bottom .text-link:first-child{min-width:40%}footer{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:0 var(--gutter);padding:32px 0;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}footer .wordmark{color:var(--ink);font-size:18px}
/* Full-screen project studies. One page owns scrolling; there are no embedded sites. */
dialog{border:0;padding:0;color:var(--ink);background:var(--bg);max-width:none;max-height:none}dialog::backdrop{background:var(--backdrop);backdrop-filter:blur(12px)}#project-dialog{position:fixed;inset:0;width:100%;height:100dvh;margin:0;overflow-y:auto;overscroll-behavior:contain}body.dialog-open{overflow:hidden}.dialog-nav{position:sticky;top:0;z-index:8;background:var(--nav-bg);backdrop-filter:blur(15px);padding:20px var(--gutter);height:78px;display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;border-bottom:1px solid var(--line);font-size:11px}.dialog-nav>span{color:var(--muted);text-align:center}.dialog-nav .wordmark{font-size:22px}.dialog-actions{display:flex;align-items:center;gap:28px}.icon-button{width:38px;height:38px;display:inline-flex;justify-content:center;align-items:center;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:23px;flex-shrink:0}.icon-button:hover{background:var(--ink);color:var(--bg)}.project-heading{padding:55px var(--gutter) 35px;display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:end}.project-heading h2{font-size:clamp(40px,6.8vw,96px);font-weight:400;letter-spacing:-.055em;line-height:1.02}.project-heading .small-label{display:block;margin-bottom:14px;color:var(--muted)}.project-heading p{font-size:14px;line-height:1.85;color:var(--muted);max-width:510px}.project-tags{display:flex;flex-wrap:wrap;gap:16px;margin-top:22px;font-size:10px;color:var(--ink)}.demo-area{margin:0 var(--gutter) 40px}.project-stage{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,.75fr);min-height:550px;background:var(--surface)}.stage-visual{position:relative;overflow:hidden;min-height:540px;background:var(--media-surface);color:#222}.stage-visual>img{width:100%;height:100%;position:absolute;inset:0;object-fit:contain;mix-blend-mode:multiply;transition:opacity .2s}.machine-view>img{padding:10px;transform:scale(1.25)}.visual-caption{position:absolute;top:23px;left:25px;right:25px;display:flex;justify-content:space-between;font-size:10px;z-index:1;pointer-events:none}.visual-word{position:absolute;left:28px;top:55px;font-size:clamp(65px,9vw,130px);font-weight:500;letter-spacing:-.055em;color:#aaa9a3;line-height:1;pointer-events:none}.visual-controls{position:absolute;bottom:25px;left:25px;right:25px;display:flex;justify-content:space-between;align-items:center;font-size:11px}.visual-controls .icon-button{border-color:#2225}.visual-controls .icon-button:hover{background:#222;color:#eee}.visual-controls>div{display:flex;gap:10px}.stage-controls{padding:27px 28px;display:flex;flex-direction:column;min-width:0}.stage-controls h3{font-size:24px;font-weight:400;letter-spacing:-.035em;line-height:1.25}.stage-controls .stage-description{color:var(--muted);font-size:11px;line-height:1.7;margin:14px 0 22px}.option-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:14px}.option-tabs button{background:none;font-size:11px;padding:12px 0;color:var(--muted);border-bottom:1px solid transparent}.option-tabs button[aria-pressed=true]{color:var(--ink);border-color:var(--ink)}.option-list{display:flex;flex-direction:column;gap:0}.equipment-option{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;min-height:68px;background:transparent;text-align:left;border-bottom:1px solid var(--line-soft);padding:10px 0}.equipment-option img{width:42px;height:40px;object-fit:contain;background:#e9e8e2;mix-blend-mode:normal;padding:3px}.equipment-option .option-label{font-size:11px;line-height:1.4}.option-label small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.option-symbol{width:25px;height:25px;border:1px solid var(--line);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px}.equipment-option[aria-pressed=true] .option-symbol{background:var(--accent);color:var(--bg);border-color:var(--accent)}.equipment-option:disabled{cursor:default}.equipment-option:disabled .option-label small{color:var(--accent)}.price-strip{display:flex;align-items:baseline;justify-content:space-between;padding:22px 0 16px;margin-top:auto}.price-strip>span{font-size:10px;color:var(--muted)}.price-strip strong{font-size:30px;letter-spacing:-.045em;font-weight:400}.action-button{width:100%;text-align:left;display:flex;justify-content:space-between;gap:15px;padding:15px 18px;background:var(--ink);color:var(--bg);font-size:12px;transition:background .3s}.action-button:hover{background:var(--accent)}.quiet-button{background:none;color:var(--muted);font-size:11px;padding:12px 0;text-decoration:underline;text-underline-offset:4px}.demo-notice{font-size:10px;color:var(--muted);padding:15px 0;line-height:1.5;display:flex;justify-content:space-between;gap:16px}.summary-panel{padding:25px 0;border-top:1px solid var(--line)}.summary-panel h3{font-weight:400;font-size:24px;margin-bottom:18px}.summary-panel ul{list-style:none;padding:0;max-width:750px}.summary-panel li{display:flex;justify-content:space-between;gap:20px;font-size:12px;padding:10px 0;color:var(--muted)}.summary-panel .summary-total{font-size:20px;color:var(--ink);border-top:1px solid var(--line);margin-top:10px;padding-top:16px}.project-context{margin:45px var(--gutter) 75px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:50px}.project-context h3{font-size:12px;margin-bottom:16px;font-weight:400}.project-context p{font-size:13px;line-height:1.8;color:var(--muted)}.next-project{width:calc(100% - var(--gutter)*2);display:flex;align-items:center;text-align:left;margin:0 var(--gutter);padding:35px 0 50px;border-top:1px solid var(--line);gap:30px;background:none;font-size:11px;color:var(--muted)}.next-project span{font-size:clamp(28px,4vw,65px);color:var(--ink);letter-spacing:-.04em}.next-project b{margin-left:auto;font-size:40px;font-weight:400;color:var(--ink)}
.model-stage{background:var(--model-surface)}.model-stage canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.model-status{position:absolute;inset:45% 0 auto;text-align:center;font-size:12px;pointer-events:none;color:#333}.model-picker{display:flex;flex-direction:column;gap:10px;margin:20px 0 25px}.model-choice{display:flex;align-items:center;justify-content:space-between;background:none;text-align:left;border-bottom:1px solid var(--line);padding:17px 0;font-size:13px}.model-choice[aria-pressed=true]{color:var(--accent)}.model-choice span{font-size:10px;color:var(--muted)}.fact-list{list-style:none;padding:0;margin:auto 0 0}.fact-list li{display:flex;justify-content:space-between;gap:15px;padding:11px 0;font-size:11px;color:var(--muted)}.fact-list strong{font-weight:400;color:var(--ink)}#media-lightbox{position:fixed;inset:0;width:100%;height:100dvh;background:var(--lightbox-bg);margin:0}#media-lightbox[open]{display:flex;align-items:center;justify-content:space-between;padding:70px 30px;gap:20px}#media-lightbox figure{height:100%;margin:0;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:20px}#media-lightbox figure img{max-height:calc(100% - 35px);object-fit:contain;width:auto}#media-lightbox figcaption{color:var(--muted);font-size:10px}.lightbox-close{position:absolute;right:30px;top:22px}.wide-project-media{width:100%;max-height:630px;object-fit:cover}.paired-images{display:grid;grid-template-columns:1.35fr 1fr;gap:15px}.paired-images img{width:100%;height:540px;object-fit:cover}.blueprint-cover{height:100%;width:100%;display:flex;flex-direction:column;justify-content:center;padding:35px;background-color:#b9bbb3;background-image:linear-gradient(#2221 1px,transparent 1px),linear-gradient(90deg,#2221 1px,transparent 1px);background-size:25px 25px;color:#263331}.blueprint-cover strong{font-size:clamp(32px,5vw,90px);font-weight:500;letter-spacing:-.07em;line-height:.95}.blueprint-cover small{font-size:10px;margin:18px 0}.blueprint-cover>span{width:80%;height:1px;background:#26333166;margin:12px 0}.data-cover{height:100%;width:100%;display:flex;align-items:center;justify-content:center;gap:20px;background:var(--data-surface);font-size:23px}.data-cover span{color:var(--data-accent)}.export-stage{padding:35px;background:var(--export-surface);display:grid;grid-template-columns:1fr 1.1fr;gap:50px}.export-stage h3{font-weight:400;font-size:32px;letter-spacing:-.035em;margin-bottom:14px}.export-stage p{font-size:12px;color:var(--muted);line-height:1.8}.export-stage .action-button{margin-top:28px}.data-preview{border-top:1px solid var(--line)}.data-preview>div{display:grid;grid-template-columns:1fr 1fr 55px;padding:16px 0;border-bottom:1px solid var(--line);font-size:11px;gap:12px}.data-preview .table-head{color:var(--muted);font-size:10px}.export-status{font-size:11px;margin-top:14px;color:var(--accent)}.project-loader{padding:100px;text-align:center;color:var(--muted)}.noscript{padding:40px}
@media(min-width:761px) and (hover:hover) and (pointer:fine){body.has-cursor:not(.dialog-open),body.has-cursor:not(.dialog-open) a,body.has-cursor:not(.dialog-open) button{cursor:none}body.has-cursor:not(.dialog-open) .cursor{display:flex}body.dialog-open .cursor{display:none}body.dialog-open{cursor:auto}body.dialog-open a,body.dialog-open button{cursor:pointer}body.dialog-open button:disabled{cursor:default}.model-stage canvas{cursor:grab}.model-stage canvas:active{cursor:grabbing}}
@media(min-width:1800px){.hero,.section-space,.nav{max-width:1920px;margin:auto}}
@media(max-width:1100px){.index-legend{grid-template-columns:1fr 210px 60px}.project-row{grid-template-columns:40px 1fr 210px 60px}.project-meta{font-size:10px}.project-arrow{width:40px;height:40px}.project-heading{gap:30px}.project-stage{grid-template-columns:minmax(0,1.1fr) minmax(290px,.85fr)}.about-intro{column-gap:40px}.capabilities{gap:30px}.stage-controls{padding:24px}.paired-images img{height:380px}}
@media(max-width:760px){:root{--gutter:22px}.nav{height:82px;padding-top:22px;padding-bottom:22px}.wordmark{font-size:20px}.nav-caption{display:none}.nav nav{gap:18px;font-size:11px}.nav nav sup{display:none}.hero{padding-top:30px}.hero-top{font-size:10px;margin-bottom:20px}h1{font-size:12.75vw;margin-bottom:28px}.hero-reel{gap:8px;height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto}.hero-reel .reel-panel{min-height:0;aspect-ratio:1}.hero-reel .reel-rbc{grid-column:1/-1;grid-row:auto;aspect-ratio:1672/941}.hero-reel .reel-rbc img{object-fit:contain;transform:none}.reel-name{padding:35px 12px 12px;font-size:10px}.reel-name>span{font-size:18px}.hero-bottom{align-items:start;margin-top:22px;font-size:11px;gap:22px}.hero-bottom .text-link{font-size:11px;gap:12px;white-space:nowrap;padding-top:0}.hero-credit{display:none}.section-space{padding-top:78px;padding-bottom:78px}.work-heading{margin-bottom:30px}.work-heading h2{font-size:11vw;line-height:1.2}.work-heading sup{font-size:10px;margin-left:12px}.small-label{font-size:10px}.index-legend{display:none}.project-row{grid-template-columns:27px 1fr 35px;gap:0;padding:24px 0}.project-row:hover{padding-left:0}.project-name{font-size:32px}.project-number{padding-top:7px;font-size:9px}.project-meta{grid-column:2;grid-row:2;margin-top:12px}.project-meta span{display:inline}.project-meta span:after{content:' / ';color:var(--muted)}.project-arrow{grid-column:3;grid-row:1 / 3;width:32px;height:32px;font-size:18px}.row-image{display:block;grid-column:1 / -1;grid-row:1;height:180px;margin-bottom:24px;overflow:hidden}.project-row .project-number,.project-row .project-name{grid-row:2}.project-row .project-meta{grid-row:3}.project-row .project-arrow{grid-row:2 / 4}.row-image>img{height:100%;width:100%;object-fit:cover}.work-end{font-size:9px}.work-end>:last-child{display:none}.about-intro{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "portrait" "copy";gap:28px}.about-heading h2{font-size:clamp(30px,8.6vw,40px)}.about-portrait{min-height:0;aspect-ratio:1}.about-lead{font-size:22px}.about-body{font-size:13px}.capabilities{grid-template-columns:1fr;gap:34px;margin-top:50px}.capability{display:grid;grid-template-columns:1fr 140px;text-align:left}.capability h3{grid-column:1;grid-row:1;align-self:end;font-size:21px;margin-bottom:12px}.capability p{grid-column:1;grid-row:2;font-size:11px}.original-object{grid-column:2;grid-row:1 / 3;height:145px}.contact-top{margin-bottom:30px}.contact-orbit{width:70px;height:70px;font-size:28px}.contact-section h2{font-size:clamp(45px,10vw,76px)}.contact-bottom{flex-direction:column;gap:12px;margin-top:30px}.contact-bottom .text-link{font-size:12px;width:100%}footer{flex-wrap:wrap;font-size:9px;gap:18px}footer .wordmark{font-size:15px}#hover-preview,.cursor{display:none!important}.dialog-nav{height:66px;padding-top:14px;padding-bottom:14px;grid-template-columns:1fr auto;gap:12px}.dialog-nav>span{display:none}.dialog-nav .wordmark{font-size:18px}.dialog-actions{gap:15px}.project-heading{grid-template-columns:1fr;padding-top:30px;gap:22px}.project-heading h2{font-size:44px}.project-heading p{font-size:12px}.project-tags{font-size:9px;gap:13px}.project-stage{grid-template-columns:1fr}.stage-visual{min-height:370px}.stage-controls{padding:25px}.visual-word{font-size:83px}.machine-view>img{transform:scale(1.08)}.project-context{grid-template-columns:1fr;gap:26px;margin-top:30px;margin-bottom:40px}.project-context p{font-size:12px}.project-context h3{margin-bottom:9px}.demo-notice{font-size:9px;flex-direction:column;gap:5px}.paired-images{grid-template-columns:1fr}.paired-images img{height:260px}.next-project{gap:16px;font-size:10px}.next-project span{font-size:27px}.next-project b{font-size:27px}#media-lightbox[open]{padding:75px 12px;gap:5px}#media-lightbox .icon-button{width:30px;height:30px;font-size:18px}.lightbox-close{right:18px}.export-stage{grid-template-columns:1fr;padding:22px;gap:32px}.export-stage h3{font-size:28px}.data-preview>div{font-size:10px;grid-template-columns:1fr 1fr 30px}.project-loader{padding:70px 15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.cursor{display:none!important}.has-cursor,.has-cursor a,.has-cursor button{cursor:auto!important}}
.cze-study{display:grid;grid-template-columns:1.6fr 1fr;min-height:500px}.cze-study .blueprint-cover{padding:50px}.cze-study .blueprint-cover strong{font-size:clamp(35px,4.8vw,78px);line-height:1.06}.cze-flow{background:var(--flow-surface);padding:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;font-size:13px}.cze-flow span:nth-child(even){color:var(--accent)}.cze-flow span:nth-child(odd){border-bottom:1px solid var(--line);padding-bottom:12px;width:100%;text-align:center}.summary-panel{scroll-margin-top:95px}.action-button{display:flex;align-items:center;justify-content:space-between;gap:20px}.visual-controls>div{display:flex;gap:8px}.stage-visual .icon-button{border-color:#2225}.stage-visual .icon-button:hover{background:#222;color:#fff}.visual-controls,.visual-caption{color:#252525}.model-stage .visual-controls{pointer-events:none}.model-stage .visual-controls button{pointer-events:auto}
@media(max-width:760px){.cze-study{grid-template-columns:1fr}.cze-study .blueprint-cover{padding:35px;min-height:340px}.cze-flow{padding:30px;gap:16px}.summary-panel li{font-size:11px}.summary-panel .summary-total{font-size:18px}}
.equipment-option .option-label{font-size:12px}.stage-controls>.small-label{margin-bottom:6px}.option-label small{font-size:10px;line-height:1.5}.equipment-option[aria-pressed=true]{color:var(--ink)}
@media(max-width:760px){body.has-cursor,body.has-cursor a,body.has-cursor button{cursor:auto}}


body:not(:has(.project-row:hover)) #hover-preview,body.dialog-open #hover-preview{visibility:hidden!important;opacity:0!important}
/* Full project studies: large imagery, readable narratives and working examples. */
.case-nav{position:sticky;top:78px;z-index:7;display:flex;gap:34px;padding:18px var(--gutter);background:var(--section-nav-bg);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);font-size:12px;margin-bottom:35px}
.case-nav a{color:var(--muted);white-space:nowrap}.case-nav a:hover,.case-nav a:focus-visible{color:var(--ink)}
.case-section{margin:0 var(--gutter);padding:90px 0;scroll-margin-top:145px}
.case-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(40px,8vw,130px);border-bottom:1px solid var(--line)}
.case-overview h3,.case-section-heading h3{font-weight:400;font-size:clamp(32px,4.2vw,62px);line-height:1.12;letter-spacing:-.05em}
.case-overview .small-label,.case-section-heading .small-label{display:block;color:var(--muted);margin-bottom:22px}
.case-prose{font-size:16px;line-height:1.85;color:var(--muted);max-width:650px}.case-prose>p+p{margin-top:22px}
.case-facts{padding:0;margin:32px 0 0}.case-facts>div{display:grid;grid-template-columns:130px 1fr;border-top:1px solid var(--line);gap:24px;padding:16px 0;font-size:12px;line-height:1.7}.case-facts dt{color:var(--muted)}.case-facts dd{margin:0;color:var(--ink)}
.case-section-heading{max-width:900px;margin-bottom:40px}.case-section-heading p{font-size:16px;line-height:1.85;color:var(--muted);margin-top:25px;max-width:710px}
.case-figure{margin:0;min-width:0}.case-cover{margin:0 var(--gutter)}.case-image{position:relative;display:block;padding:0;background:var(--image-placeholder);width:100%;aspect-ratio:1.6;overflow:hidden;text-align:left}.case-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.case-image:hover img{transform:scale(1.035)}.case-image>span{position:absolute;bottom:20px;right:20px;background:#141414d9;color:#edede7;padding:12px 16px;font-size:11px;opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}.case-image:hover>span,.case-image:focus-visible>span{opacity:1;transform:none}.case-figure figcaption{padding:13px 0;color:var(--muted);font-size:11px;line-height:1.7}.case-cover .case-image{aspect-ratio:2.1;max-height:690px}.case-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 22px}.case-image.is-contained{background:var(--contained-surface)}.case-image.is-contained img{object-fit:contain;padding:30px;mix-blend-mode:multiply}
.case-demo-section{padding:20px 0 50px;scroll-margin-top:145px}.case-demo-section>.case-section-heading{margin:0 var(--gutter) 40px}.case-demo-section .demo-area{margin-bottom:0}
.case-build{padding-top:70px;border-top:1px solid var(--line)}.case-detail-list article{display:grid;grid-template-columns:45px minmax(0,.85fr) minmax(0,1.15fr);gap:30px;padding:40px 0;border-top:1px solid var(--line)}.detail-number{color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:11px;padding-top:8px}.case-detail-list h4{font-size:clamp(23px,2.2vw,34px);line-height:1.25;letter-spacing:-.035em;font-weight:400;max-width:420px}.case-detail-list p{font-size:15px;line-height:1.85;color:var(--muted);max-width:680px}.detail-stack{display:block;font-size:11px;line-height:1.8;margin-top:20px}.case-closing{max-width:970px;font-size:clamp(25px,3vw,43px);line-height:1.35;letter-spacing:-.035em;margin:70px 0 10px}
.finish-explorer{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.75fr);background:var(--surface);min-height:520px}.finish-image{background:var(--media-surface);display:grid;place-items:center;padding:45px}.finish-image img{width:100%;max-height:430px;object-fit:contain;mix-blend-mode:multiply}.finish-controls{padding:45px 35px;display:flex;flex-direction:column}.finish-controls h4{font-weight:400;font-size:34px;line-height:1.15;letter-spacing:-.04em;margin:18px 0}.finish-controls>p{font-size:14px;line-height:1.8;color:var(--muted)}.finish-options{margin:28px 0}.finish-options button{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:16px;text-align:left;width:100%;padding:19px 0;background:none;border-bottom:1px solid var(--line);font-size:13px}.finish-options button[aria-pressed=true]{color:var(--accent)}.finish-swatch{height:23px;border-radius:50%;border:1px solid var(--swatch-border)}.swatch-grey{background:#777b7b}.swatch-brown{background:#9b7857}.swatch-black{background:#111}.finish-selection{font-size:12px;color:var(--muted);margin-top:auto}.finish-selection strong{color:var(--ink);font-weight:400}
.catalogue-explorer{display:grid;grid-template-columns:1fr 1fr;background:var(--surface);min-height:590px}.catalogue-visual{background:var(--catalogue-surface);display:flex;flex-direction:column;justify-content:center;padding:40px;color:#444}.catalogue-visual img{width:100%;max-height:450px;object-fit:contain;mix-blend-mode:multiply}.catalogue-visual p{font-size:10px;text-align:center;margin-top:20px}.catalogue-inspector{padding:35px 40px;min-width:0}.catalogue-inspector h4{font-weight:400;font-size:31px;line-height:1.15;letter-spacing:-.035em;margin:26px 0 18px}.catalogue-inspector p{font-size:14px;line-height:1.8;color:var(--muted)}.catalogue-inspector dl{margin:28px 0 0}.catalogue-inspector dl>div{display:grid;grid-template-columns:100px 1fr;gap:20px;font-size:12px;line-height:1.7;border-top:1px solid var(--line);padding:13px 0}.catalogue-inspector dt{color:var(--muted)}.catalogue-inspector dd{margin:0}
.data-journey{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:45px;margin:50px 0 0;padding:0}.data-journey li{border-top:1px solid var(--line);padding-top:22px}.data-journey li>span{font-size:11px;color:var(--accent)}.data-journey h4{font-weight:400;font-size:24px;letter-spacing:-.025em;margin:18px 0}.data-journey p{font-size:14px;line-height:1.8;color:var(--muted)}
.export-stage{padding:45px;gap:70px}.export-stage>div>p{font-size:14px}.export-stage .option-tabs{margin-top:26px}.export-stage .action-button{margin-top:20px}.data-preview>div{font-size:12px;line-height:1.6}.mapping-example{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;margin-top:70px}.mapping-example h4{font-size:36px;line-height:1.15;letter-spacing:-.035em;font-weight:400;margin:18px 0}.mapping-example p{max-width:450px;font-size:14px;line-height:1.8;color:var(--muted)}.mapping-fields>div{display:grid;grid-template-columns:minmax(0,1fr) 25px minmax(0,1fr);gap:18px;padding:22px 0;border-top:1px solid var(--line)}.mapping-fields code{font-size:10px;color:var(--muted);overflow-wrap:anywhere;display:block;line-height:1.6}.mapping-fields strong{font-weight:400;font-size:15px;display:block;margin-top:9px;overflow-wrap:anywhere}.mapping-fields b{color:var(--accent);font-weight:400;align-self:center}
#media-lightbox figure{max-width:calc(100% - 116px);min-width:0}#media-lightbox figure img{max-width:100%;max-height:calc(100% - 50px)}#media-lightbox figcaption{max-width:850px;line-height:1.7;text-align:center}
@media(max-width:1100px){.case-overview{gap:45px}.case-section{padding:70px 0}.case-detail-list article{grid-template-columns:30px minmax(0,.8fr) minmax(0,1.2fr);gap:25px}.case-detail-list p{font-size:14px}.case-image.is-contained img{padding:20px}.finish-controls{padding:30px 25px}.catalogue-inspector{padding:25px}.export-stage{gap:35px;padding:30px}.mapping-example{gap:40px}.data-journey{gap:25px}}
@media(max-width:760px){.case-nav{top:66px;gap:24px;padding:16px var(--gutter);font-size:11px;overflow-x:auto;margin-bottom:25px}.case-section{padding:55px 0;scroll-margin-top:135px}.case-overview{grid-template-columns:1fr;gap:26px}.case-overview h3,.case-section-heading h3{font-size:34px}.case-overview .small-label,.case-section-heading .small-label{margin-bottom:16px}.case-prose,.case-section-heading p{font-size:14px;line-height:1.8}.case-section-heading p{margin-top:20px}.case-facts>div{grid-template-columns:85px 1fr;gap:18px;font-size:11px}.case-cover .case-image{aspect-ratio:1.25}.case-gallery{grid-template-columns:1fr;gap:20px}.case-image{aspect-ratio:1.35}.case-image>span{bottom:12px;right:12px;opacity:1;transform:none;font-size:10px;padding:9px 12px}.case-figure figcaption{font-size:10px}.case-demo-section{padding:5px 0 45px;scroll-margin-top:135px}.case-demo-section>.case-section-heading{margin-bottom:28px}.case-detail-list article{grid-template-columns:25px 1fr;gap:14px;padding:26px 0}.case-detail-list h4{font-size:25px}.case-detail-list article>div{grid-column:2}.case-detail-list p{font-size:13px}.case-closing{font-size:27px;margin-top:35px}.finish-explorer,.catalogue-explorer{grid-template-columns:1fr}.finish-image{min-height:310px;padding:30px}.finish-controls{padding:28px}.finish-controls h4{font-size:31px}.catalogue-visual{padding:25px;min-height:320px}.catalogue-visual img{max-height:300px}.catalogue-inspector{padding:24px}.catalogue-inspector h4{font-size:28px}.catalogue-inspector dl>div{grid-template-columns:80px 1fr;font-size:11px}.data-journey{grid-template-columns:1fr;gap:25px;margin-top:30px}.data-journey h4{font-size:23px;margin:14px 0}.data-journey p{font-size:13px}.export-stage{padding:24px;gap:28px}.export-stage .option-tabs{gap:18px}.export-stage .option-tabs button{font-size:10px}.data-preview>div{font-size:11px;grid-template-columns:1fr 1fr 28px}.mapping-example{grid-template-columns:1fr;gap:25px;margin-top:40px}.mapping-example h4{font-size:31px}.mapping-fields>div{gap:10px;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)}.mapping-fields strong{font-size:13px}.mapping-fields code{font-size:9px}#media-lightbox figure{max-width:calc(100% - 70px)}#media-lightbox figcaption{font-size:9px}.contact-bottom .text-link{min-width:0;width:100%;max-width:420px}}
.finish-image{display:flex;flex-direction:column;justify-content:center;gap:25px;padding:35px}.finish-image .finish-product{height:340px;max-height:none;object-fit:contain}.finish-material{display:flex;align-items:center;justify-content:center;gap:25px;border-top:1px solid #2223;padding-top:20px;width:100%;color:#333}.finish-material img{width:220px;height:130px;object-fit:contain}.finish-material span{font-size:11px;max-width:90px;line-height:1.6}
@media(max-width:760px){.finish-image{padding:25px;gap:18px}.finish-image .finish-product{height:250px}.finish-material{gap:15px}.finish-material img{width:160px;height:100px}.finish-material span{font-size:10px}}

/* A single button switches palettes; the highlighted half shows the current mode. */
.theme-toggle{position:relative;isolation:isolate;display:inline-grid;grid-template-columns:1fr 1fr;align-items:center;width:108px;height:44px;padding:4px;border:1px solid var(--line);border-radius:30px;background:var(--surface);color:var(--muted);font-size:11px;line-height:1;flex-shrink:0;white-space:nowrap}
.theme-toggle::before{content:'';position:absolute;z-index:-1;left:4px;top:4px;bottom:4px;width:calc((100% - 8px)/2);border-radius:24px;background:var(--ink);transform:translateX(100%);transition:transform .3s var(--ease)}
.theme-toggle .theme-night{color:var(--bg)}
[data-theme="light"] .theme-toggle::before{transform:translateX(0)}
[data-theme="light"] .theme-toggle .theme-day{color:var(--bg)}
[data-theme="light"] .theme-toggle .theme-night{color:var(--muted)}
.theme-toggle:hover{border-color:var(--accent)}
.nav>.theme-toggle{justify-self:end}
.dialog-nav .theme-toggle{width:96px;height:38px}
[data-theme="light"] .hero #hero-canvas{opacity:.5;filter:brightness(.55);mix-blend-mode:multiply}
[data-theme="light"] .original-object canvas{filter:brightness(.72)}
@media(max-width:1200px){.nav-caption{display:none}}
@media(max-width:1100px){.nav nav{gap:24px}.dialog-actions{gap:20px}}
@media(max-width:760px){
  .nav{grid-template-columns:1fr auto;height:auto;column-gap:0;row-gap:20px}
  .nav>.nav-brand{grid-column:1;grid-row:1}
  .nav>.theme-toggle{grid-column:2;grid-row:1;margin-left:0}
  .nav nav{grid-column:1/-1;grid-row:2;justify-self:stretch;justify-content:space-between;gap:20px;font-size:12px}
  .dialog-nav{gap:8px}
  .dialog-actions{gap:8px}
  .dialog-nav .theme-toggle{width:84px}
  #dialog-back{display:grid;place-items:center;width:24px;height:38px;font-size:0}
  #dialog-back::before{content:'←';font-size:16px}
}
@media(max-width:400px){.dialog-nav .theme-toggle{width:72px;font-size:10px}}
@media(max-width:360px){.dialog-nav .wordmark{font-size:16px}}
