/* Editorial motion and liquid interfaces share the carousel's quiet metal palette. */
.scroll-reveal{opacity:var(--reveal-opacity,1);transform:translate3d(0,var(--reveal-y,0px),0);filter:blur(var(--reveal-blur,0px));transition:none;will-change:transform,opacity}
/* Focus arrives on pointer-down: clearing the transform moves controls before click. */
.scroll-reveal.motion-focused{opacity:1;filter:none}
.gallery-figure .asset-enlarge{overflow:hidden}
.gallery-figure .asset-enlarge img{transform:translateY(var(--image-drift,0px)) scale(var(--image-scale,1));will-change:transform}
.case-reading-progress{position:fixed;right:8px;top:83px;bottom:22px;width:3px;background:#e0e0da;z-index:20;pointer-events:none;border-radius:50px}
.case-reading-progress i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#83837d,#e5e5df,#83837d);transform:scaleY(var(--reading,0));transform-origin:top;border-radius:50px}
.case-reading-progress b{position:absolute;top:calc(var(--reading,0)*100%);left:-3px;width:9px;height:14px;border-radius:50%;background:linear-gradient(90deg,#77776e,#f7f7f0,#77776e);transform:translateY(-50%)}
.case-sidebar a[aria-current]{color:#111;border-bottom:1px solid #8b8b84}
.gallery-meta{grid-template-columns:1fr 1fr;align-items:start}
.gallery-meta .figure-0 .asset-enlarge,.gallery-meta .figure-1 .asset-enlarge{background:#f0efea}
.gallery-meta .figure-0 img,.gallery-meta .figure-1 img{height:430px;max-height:none;object-fit:contain;background:transparent;mix-blend-mode:multiply;padding:20px}
.gallery-coupe .figure-0,.gallery-coupe .figure-6{grid-column:1/-1}
.gallery-coupe .figure-0 img{max-height:610px;object-fit:contain}
.gallery-coupe .asset-enlarge{background:#efefea}
.gallery-aerosling .figure-0 img{max-height:600px}
.gallery-aerosling .figure-2 img,.gallery-aerosling .figure-4 img{height:350px;object-fit:contain}
.experience{background:#eeeee9;color:#242422;position:relative;margin:32px 0 55px;overflow:hidden;isolation:isolate}
.experience h3{font-weight:400;letter-spacing:-.035em;line-height:1.15;font-size:clamp(28px,3vw,39px);margin:0 0 24px}
.experience p{font-size:14px;line-height:1.75;color:#56564f}
.experience .eyebrow{color:#65655d;font-size:10px;letter-spacing:.1em;margin:0 0 22px}
.experience img{width:100%;height:100%;object-fit:contain}
.range-label{display:flex;justify-content:space-between;gap:14px;font-size:11px;color:#44443e;margin:24px 0 12px}
.range-label span{color:#74746b;white-space:nowrap}
.experience input[type=range]{appearance:none;-webkit-appearance:none;width:100%;height:4px;margin:8px 0 20px;border-radius:100px;background:#c8c8c0;cursor:ew-resize;accent-color:#53534c}
.experience input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:linear-gradient(115deg,#8b8b81,#fafaf6 48%,#9d9d92);border:1px solid #99998e;box-shadow:0 2px 5px #5552}
.experience input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:linear-gradient(115deg,#8b8b81,#fafaf6 48%,#9d9d92);border:1px solid #99998e}
.experience input:focus-visible,.experience button:focus-visible{outline:2px solid #3f3f39;outline-offset:5px}
.experience-tag{position:absolute;left:25px;bottom:24px;font-size:9px;letter-spacing:.11em;color:#62625b}
.dose-lab{display:grid;grid-template-columns:1fr 1fr;min-height:700px}
.dose-product{position:relative;display:flex;align-items:center;background:#e1e1dc;min-width:0}
.dose-product img{padding:20px;mix-blend-mode:multiply}
.dose-interface{padding:36px 34px;min-width:0}
.dose-dial{width:155px;height:155px;border-radius:50%;position:relative;display:grid;place-items:center;margin:25px auto 30px;background:conic-gradient(from -45deg,#b3b3a9,#f8f8f2 12%,#a8a89e 32%,#e6e6de 55%,#94948a 72%,#f9f9f2 86%,#b3b3a9);box-shadow:inset 0 0 0 1px #9e9e9355,0 15px 22px #8c8c7b22}
.dose-dial::before{content:'';position:absolute;inset:9px;border-radius:50%;background:linear-gradient(145deg,#e6e6dc,#f5f5ee);box-shadow:inset 0 0 0 1px #aaa9}
.dial-pointer{position:absolute;inset:2px;transform:rotate(calc(var(--dial) - 135deg));transition:transform .4s cubic-bezier(.2,.9,.2,1);border-radius:50%;z-index:2}
.dial-pointer::before{content:'';display:block;width:5px;height:13px;background:#53534a;margin:6px auto;border-radius:50px}
.dose-dial output{z-index:3;font-size:42px;font-weight:400;line-height:1.05;pointer-events:none;text-align:center;letter-spacing:-.06em}
.dose-dial output small,.pour-readout output small{display:block;font-size:10px;font-weight:400;letter-spacing:.04em;color:#66665c;margin-top:8px}
.pour-readout{display:flex;justify-content:center;align-items:center;gap:25px;margin:8px 0 15px}
.pour-readout svg{width:110px;height:90px;overflow:visible}
.pour-readout output{font-size:36px;min-width:90px;letter-spacing:-.05em}
.cup-liquid{transition:y .08s linear}
.pour-stream{opacity:0;stroke-dasharray:4 4}
.pour-stream.active{opacity:1;animation:signal 1s linear infinite}
.pour-button{width:100%;padding:17px 22px;display:flex;justify-content:space-between;border:1px solid #b3b3a8;border-radius:50px;background:linear-gradient(150deg,#f7f7f0,#d8d8ce);color:#292923;cursor:pointer;font-size:13px;user-select:none;touch-action:none;box-shadow:inset 0 1px 0 #fff8;transition:box-shadow .2s}
.pour-button.pouring{box-shadow:inset 0 3px 8px #6663;background:#dadad0}
.dose-feedback{font-size:11px!important;min-height:38px;margin:14px 0 0}
.experience-footnote{font-size:10px!important;color:#76766c!important;margin-bottom:0}
.assembly-study{display:grid;grid-template-columns:1.1fr 1fr;min-height:430px}
.assembly-picture{display:grid;place-items:center;min-width:0;background:#e4e4dc}
.assembly-picture img{height:440px;padding:25px;mix-blend-mode:multiply;animation:image-arrive .5s ease}
.assembly-copy{padding:40px 30px}
.sequence-legend{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:10px;color:#8b8b7e}
.sequence-legend span.active{color:#303028}
.material-loop{display:grid;grid-template-columns:1.25fr 1fr;min-height:630px}
.loop-stage{padding:30px 24px;min-width:0}
.loop-visual{height:390px;position:relative;display:grid;place-items:center}
.loop-visual img{position:relative;width:82%;height:60%;object-fit:contain;mix-blend-mode:multiply;z-index:2;border-radius:4px}
.liquid-orbit{position:absolute;width:130%;height:100%;left:-15%;top:0;overflow:visible}
.orbit-trace{stroke-dasharray:3 15;animation:orbit-run 32s linear infinite}
.orbit-drop{transform-origin:345px 240px;transform:rotate(var(--orbit-angle,120deg)) translate(155px,0);transition:transform 1.2s cubic-bezier(.25,.95,.2,1)}
.loop-clock{position:absolute;top:5px;font-size:8px;letter-spacing:.1em;z-index:3;color:#66665d}
.clock-frame{left:10px}.clock-skin{right:10px;text-align:right}
.loop-clock b{display:block;font-size:27px;letter-spacing:-.04em;font-weight:400;color:#33332d;margin:5px 0}
.loop-clock small{display:block;font-size:8px;letter-spacing:0}
.loop-narrative{padding:43px 30px;background:#f4f4ee;min-width:0}
.loop-narrative h3{font-size:29px;min-height:65px}
.loop-narrative>p:not(.eyebrow){min-height:122px}
.loop-owner{padding-top:17px;border-top:1px solid #d5d5ca}
.loop-owner span{display:block;font-size:8px;letter-spacing:.1em;color:#6e6e64;margin-bottom:7px}
.loop-owner strong{font-size:12px;font-weight:400}
.loop-stages{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.loop-stages button{border:0;border-top:1px solid #ccccc0;background:none;color:#848477;text-align:left;padding:9px 0;font-size:10px;cursor:pointer;line-height:1.4}
.loop-stages button span{display:block;font-size:9px;margin-top:5px}
.loop-stages button[aria-pressed=true]{border-color:#303028;color:#303028}
.ownership-experience{padding:35px 30px;background:#edede7}
.ownership-experience .flow-tabs{padding:0;background:none;border:0;display:flex;gap:26px;flex-wrap:wrap;margin-bottom:30px}
.ownership-experience .flow-tabs button{background:none;border:0;border-radius:0;padding:8px 0;color:#77776d;cursor:pointer;font-size:12px}
.ownership-experience .flow-tabs button[aria-pressed=true]{color:#272720;background:none;border-bottom:1px solid #77776a}
.owner-content{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;min-height:380px}
.owner-visual{position:relative;display:grid;place-items:center;min-width:0;min-height:350px}
.owner-visual img{width:87%;height:75%;mix-blend-mode:multiply;border-radius:8px}
.owner-visual svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.owner-copy{padding:15px 0}
.owner-copy h4{font-size:25px;font-weight:400;letter-spacing:-.035em;line-height:1.2;margin:0 0 25px}
.owner-route{list-style:none;margin:0 0 24px;padding:0;position:relative}
.owner-route::before{content:'';position:absolute;top:9px;bottom:9px;left:9px;width:1px;background:#babab0}
.owner-route li{position:relative;display:flex;align-items:center;gap:17px;font-size:12px;padding:6px 0}
.owner-route li span{font-size:8px;line-height:20px;width:20px;flex:none;text-align:center;border-radius:50%;background:linear-gradient(135deg,#b9b9af,#f6f6ee,#c2c2b7);border:1px solid #c0c0b5;z-index:1}
.owner-copy>p:last-child{font-size:12px}
.blade-study{background:#edede8!important;border-color:#d0d0c6!important}
.blade-study .variant-visual{background:#e3e3de!important}
.blade-study .variant-analysis{background:#f2f2ed!important}
.blade-study .metric-rail{height:18px;border-radius:30px;background:linear-gradient(#d1d1c9,#e3e3dc);box-shadow:inset 0 1px 4px #76766722;overflow:visible;margin:17px 0 15px}
.blade-study .metric-rail i{border-radius:30px;background:linear-gradient(180deg,#b0b0a7 0%,#f6f6ee 22%,#a3a399 51%,#d7d7ce 73%,#909085 100%);position:relative;min-width:18px;box-shadow:0 1px 4px #7773}
.blade-study .metric-rail i::after{content:'';position:absolute;width:26px;height:26px;right:-3px;top:-4px;border-radius:55% 45% 50% 50%;background:radial-gradient(ellipse at 35% 25%,#fffff7,#b0b0a3 50%,#858579 77%,#c2c2b4);box-shadow:0 1px 3px #7773;animation:meniscus 4s ease-in-out infinite}
.blade-study .metric-rail b{height:28px;top:-5px;width:1px;background:#43433a;z-index:3}
.blade-study .metric-track>div:first-child strong{font-weight:400;font-size:21px;letter-spacing:-.04em}
.blade-study .variant-tabs button[aria-pressed=true]{border-radius:40px;background:linear-gradient(150deg,#f8f8f2,#d7d7cd);color:#33332b;border-color:#a9a99d}
.flower-future{display:grid;grid-template-columns:1fr 1.25fr;min-height:440px}
.future-flower{display:flex;flex-direction:column;min-width:0;background:#e2e2db;padding:25px}
.future-flower img{height:340px;object-fit:contain;mix-blend-mode:multiply}
.future-flower>span,.future-network>span{font-size:9px;letter-spacing:.09em;color:#626257;margin-top:22px}
.future-network{padding:30px 25px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.future-network svg{width:100%;max-height:270px;overflow:visible}
.future-network p{font-size:12px;margin:18px 0 10px}
.future-network small{font-size:10px;color:#77776b;line-height:1.7}
.network-signal{stroke-dasharray:4 8;animation:signal 4s linear infinite}
@keyframes orbit-run{to{stroke-dashoffset:-600}}
@keyframes signal{to{stroke-dashoffset:-48}}
@keyframes meniscus{0%,100%{border-radius:55% 45% 50% 50%;transform:scale(1,.92)}50%{border-radius:45% 55% 42% 58%;transform:scale(.94,1.06)}}
@keyframes image-arrive{from{opacity:.3;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:900px){.dose-lab,.material-loop{grid-template-columns:1fr 1fr}.dose-interface,.loop-narrative{padding:28px 22px}.loop-visual{height:330px}.dose-lab{min-height:600px}.owner-content{gap:18px}}
@media(max-width:600px){.case-reading-progress{right:3px;width:2px}.gallery-meta{grid-template-columns:1fr 1fr!important;gap:12px}.gallery-meta .figure-0 img,.gallery-meta .figure-1 img{height:240px;padding:8px}.experience{margin:22px 0 35px}.dose-lab,.assembly-study,.material-loop,.owner-content,.flower-future{grid-template-columns:1fr}.dose-product{height:310px}.dose-product img{padding:24px}.dose-interface{padding:30px 25px}.dose-interface h3{font-size:31px}.dose-dial{margin:25px auto}.assembly-picture img{height:300px}.assembly-copy{padding:30px 25px}.loop-stage{padding:30px 25px 10px}.loop-visual{height:330px}.loop-narrative{padding:28px 25px}.loop-narrative h3,.loop-narrative>p:not(.eyebrow){min-height:0}.ownership-experience{padding:30px 22px}.owner-content{gap:5px}.owner-visual{min-height:270px;height:280px}.owner-copy{padding:5px 0}.ownership-experience .flow-tabs{gap:21px;margin-bottom:10px}.future-flower img{height:300px}.future-flower>span{margin-top:10px}.future-network{padding:25px}.gallery-coupe .figure-0 img{max-height:380px}.gallery-aerosling .figure-2 img,.gallery-aerosling .figure-4 img{height:auto;max-height:400px}.blade-study .variant-tabs{gap:5px;padding:15px 12px}.blade-study .variant-tabs button{font-size:10px;padding:10px 8px}.blade-study .variant-panel{padding:20px 16px}}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none;filter:none;will-change:auto}.experience *{animation:none!important;transition:none!important}.owner-visual animateMotion{display:none}.gallery-figure .asset-enlarge img{transform:none;will-change:auto}}
.blade-study .variant-tabs button span,.blade-study .variant-tabs button[aria-pressed=true] span{color:#44443b!important}
.blade-study .metric-track:hover .metric-rail i::after{animation-duration:1.3s}
.sequence-legend{color:#66665b}.loop-stages button{color:#66665b}
@media(prefers-reduced-motion:reduce){.owner-visual circle:has(animateMotion){display:none}}

/* Keep the native modal and backdrop stable while the inner page opens. */
.project-dialog::backdrop{background:transparent;backdrop-filter:none}
.project-page{min-height:100dvh;background:var(--paper);display:flow-root}
.project-dialog.liquid-opening{background:transparent}
.project-dialog.liquid-opening .dialog-nav{backdrop-filter:none}
.project-dialog.liquid-opening .scroll-reveal{filter:none;will-change:auto}
.project-liquid-edge{position:fixed;inset:0;width:100%;height:100dvh;z-index:40;pointer-events:none;overflow:visible}
@media(prefers-reduced-motion:reduce){.project-liquid-edge{display:none}.project-page{clip-path:none!important}}
