.boot-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:28px;color:#fff;background:transparent;font-family:DM Sans,sans-serif;outline:none;isolation:isolate;pointer-events:auto;touch-action:none}.boot-loader:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:#123057 url(/assets/origin-sky-poster.jpg) center/cover no-repeat;opacity:1;transition:opacity .3s ease}.boot-loader-ready:before,.boot-loader-revealing:before{opacity:0}.boot-loader-content{position:relative;width:min(100%,166px);height:5px}.boot-loader-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;height:5px}.boot-loader-bar{display:block;position:relative;height:5px;overflow:hidden;border-radius:20px;background:#fff3}.boot-loader-bar i{display:block;width:100%;height:100%;border-radius:inherit;background:#fff;transform-origin:left center;will-change:transform}.boot-loader-caption{position:absolute;top:22px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;font-weight:400;line-height:1.3;letter-spacing:-.025em;color:#ffffffe0;overflow:hidden}.boot-loader-caption>span{transition:transform .35s cubic-bezier(.7,0,.2,1),opacity .35s ease}.boot-loader-percent{font-variant-numeric:tabular-nums;white-space:nowrap;color:#fff}.boot-loader-revealing .boot-loader-bars{visibility:hidden}.boot-loader-revealing .boot-loader-caption>span{transform:translateY(-110%);opacity:0}html[data-portfolio-boot=loading] :is(.site-header,.site-footer,.full-index,.case-view,.gallery-card,.gallery-hitarea){visibility:hidden!important}html[data-portfolio-boot=revealing] :is(.site-header,.site-footer){opacity:var(--boot-hud-alpha, 0)!important}html[data-portfolio-boot=revealing] :is(.full-index,.case-view){opacity:var(--boot-content-alpha, 0)!important}html[data-portfolio-boot=revealing] .gallery:not(.gl-ready) .gallery-viewport{visibility:hidden}.boot-loader-recovery{margin-top:24px;font-size:12px;line-height:1.5;letter-spacing:-.02em}.boot-loader-recovery p{margin:0 0 14px;color:#fffc}.boot-loader-recovery button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 14px;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:#ffffff14;color:#fff;font:inherit;cursor:pointer}.boot-loader-recovery button:hover{background:#ffffff29}.boot-loader-recovery button:focus-visible{outline:2px solid #fff;outline-offset:4px}@media(prefers-reduced-motion:reduce){.boot-loader:before,.boot-loader-caption>span{transition:none}.boot-loader-bar i{will-change:auto}}.gallery{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40}.gallery canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.gallery-viewport{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:auto;touch-action:none}.gallery-track{position:absolute;left:0;top:50%;width:100%;display:flex;gap:1rem;transform:translateY(-50%)}.gallery-card{position:relative;display:block;flex:none;height:43.5svh;max-height:55rem;width:auto;aspect-ratio:var(--aspect, 1.6);border-radius:2rem;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer}.gallery-card>img{display:block;height:100%;width:100%;object-fit:cover;pointer-events:none}.gallery-caption{position:absolute;left:2rem;bottom:2rem;font-size:1.8rem;letter-spacing:-.05em;white-space:nowrap;line-height:1.2;color:#fff;pointer-events:none}.gallery-arrow{position:absolute;right:2rem;bottom:2rem;width:2.5rem;height:2.5rem;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;font-size:1.5rem}.gl-ready .gallery-card{overflow:visible;background:transparent}.gl-ready .gallery-card>img,.gl-ready .gallery-caption,.gl-ready .gallery-arrow,.gl-ready .gallery-tags{visibility:hidden}.gallery-full .gallery-viewport,.gallery-project .gallery-viewport{pointer-events:none;visibility:hidden}.gallery-hitarea{position:absolute;border:0;padding:0;background:transparent;cursor:pointer;touch-action:none;pointer-events:auto;z-index:2}.gallery-hitarea:focus-visible{outline:2px solid #111;outline-offset:4px}.gallery-full .gallery-hitarea,.gallery-project .gallery-hitarea{pointer-events:none;visibility:hidden}.lens-disc{position:absolute;left:50%;top:50%;width:60rem;height:60rem;transform:translate(-50%,-50%);pointer-events:none;visibility:hidden}@media(max-width:649px){.gallery-track{top:0;transform:none;flex-direction:column;padding:0 2rem;gap:2rem}.gallery-card{width:100%;height:auto;max-height:none;border-radius:1.5rem}.gallery-caption{left:1rem;font-size:1.6rem}.gallery-arrow{right:1rem}.lens-disc{width:42rem;height:42rem}}.gallery-card:after{content:"";position:absolute;top:50%;right:0;bottom:0;left:0;background:linear-gradient(transparent,#000000a6);pointer-events:none}.gallery-caption,.gallery-arrow,.gallery-tags{z-index:1}.gallery-tags{position:absolute;left:2rem;right:2rem;top:2rem;display:flex;flex-wrap:wrap;gap:.5rem}.gallery-tags span{background:#000000a6;color:#fff;font-size:1.05rem;line-height:2.2rem;padding:0 .85rem;border-radius:999px;text-transform:uppercase}.gl-ready .gallery-card:after{display:none}.action-feedback{position:fixed;z-index:110;width:330px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;box-sizing:border-box;padding:19px;border:1px solid rgba(255,255,255,.75);border-radius:22px;background:#f6fbffe8;color:#111;box-shadow:0 10px 36px #00224129;backdrop-filter:blur(22px) saturate(1.15);-webkit-backdrop-filter:blur(22px) saturate(1.15);font-family:DM Sans,Arial,sans-serif;font-size:12px;line-height:1.5;letter-spacing:0;text-align:left;animation:feedback-in .16s ease both}.feedback-close{position:absolute;top:9px;right:9px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:#555}.feedback-close:hover{background:#0000000f}.feedback-close svg{width:16px;height:16px}.feedback-title{display:flex;align-items:center;gap:7px;padding-right:20px;font-size:14px;font-weight:500;line-height:1.4}.feedback-title>svg{width:18px;height:18px;flex:none;color:#278348}.feedback-email{margin:10px 0 13px;font-size:12px;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.feedback-note{margin:0 0 14px;color:#555;font-size:12px}.feedback-actions{display:flex;align-items:center;gap:13px;flex-wrap:wrap}.feedback-actions a,.feedback-direct{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;white-space:nowrap}.feedback-actions a:not(.feedback-primary):hover,.feedback-direct:hover{text-decoration:underline;text-underline-offset:3px}.feedback-actions svg,.feedback-direct svg{width:14px;height:14px;flex:none}.feedback-primary{border-radius:999px;background:#111;color:#fff;padding:10px 13px}.feedback-primary:hover{background:#303030}.feedback-direct{margin-top:12px;text-decoration:underline;text-underline-offset:3px}.center-panel .social-links>.email-copy{display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:1.5;font-weight:500;text-transform:uppercase;white-space:nowrap}.email-copy:hover{opacity:.55}.email-copy[aria-expanded=true]{text-decoration:underline;text-underline-offset:4px}@keyframes feedback-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:767px){.center-panel .social-links>.email-copy{font-size:11px}}@media(prefers-reduced-motion:reduce){.action-feedback{animation:none}}.case-view{--case-furniture-opacity: 1;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none;color:#f5f5f5;isolation:isolate}.case-sheet{position:fixed;top:2rem;right:5rem;bottom:2rem;left:5rem;z-index:2;display:flex;align-items:flex-start;gap:10rem;padding:4rem 12rem 0 4rem;overflow:hidden;border-radius:2rem;background:#080808;outline:none;pointer-events:auto;touch-action:none;transform-origin:center;will-change:transform}.case-copy{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;max-height:calc(100% - 7rem);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;scrollbar-color:transparent transparent;padding-right:1rem}.case-copy>*{flex-shrink:0}.case-copy::-webkit-scrollbar{width:0;height:0}.case-copy::-webkit-scrollbar-thumb{background:transparent;border-radius:999px}.case-copy h1{font-size:4.5rem;font-weight:400;line-height:1;letter-spacing:-.05em;margin:0;max-width:100%;text-wrap:balance}.case-description{max-width:40rem;font-size:1.6rem;line-height:1.4;letter-spacing:-.035em;margin:2rem 0 0}.case-pills{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:2.5rem;max-width:100%}.case-pill{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:2em;padding:0 1.25em;border-radius:999px;background:#242424;color:#f5f5f5;font-size:1.1rem;font-weight:500;line-height:1.4;letter-spacing:-.015em;text-transform:uppercase;white-space:nowrap}a.case-pill{pointer-events:auto;transition:background .2s,color .2s}a.case-pill:hover{background:#f5f5f5;color:#080808}.case-pill-round{aspect-ratio:1;width:2em;padding:0;background:#f5f5f5;color:#080808;margin-right:.8rem}.case-pill-round svg{width:1.2rem;height:1.2rem;transition:transform .2s}.case-pill-round:hover svg{transform:translate(.15rem,-.15rem)}.case-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem 2rem;width:100%;margin:2.8rem 0 0;font-size:1.3rem;line-height:1.45;letter-spacing:-.02em}.case-facts .case-fact-role{grid-column:1/-1}.case-facts dt,.case-breakdown h2{margin:0 0 .65rem;color:gray;font-size:1rem;font-weight:500;line-height:1.4;letter-spacing:.025em;text-transform:uppercase}.case-facts dd{margin:0;color:#e0e0e0}.case-breakdown{margin-top:2.6rem;width:100%;max-width:40rem}.case-breakdown ul{margin:0;padding-left:1.3rem;color:#c2c2c2;font-size:1.35rem;line-height:1.5;letter-spacing:-.02em}.case-breakdown li+li{margin-top:.65rem}.case-breakdown li::marker{font-size:.7em;color:#737373}.case-disclosure-body{position:relative;max-height:none;overflow:visible;font-size:1.35rem;line-height:1.5}.case-disclosure[data-collapsible=true][data-expanded=false]>.case-disclosure-body{max-height:var(--case-disclosure-collapsed-height, 4.5em);overflow:hidden}.case-disclosure[data-collapsible=true][data-expanded=false]>.case-disclosure-body>ul{mask-image:linear-gradient(to bottom,#000 0,#000 calc(var(--case-disclosure-collapsed-height) - 1.6em),rgba(0,0,0,.72) calc(var(--case-disclosure-collapsed-height) - 1em),rgba(0,0,0,.18) calc(var(--case-disclosure-collapsed-height) - .4em),transparent calc(var(--case-disclosure-collapsed-height) - 2px),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(var(--case-disclosure-collapsed-height) - 1.6em),rgba(0,0,0,.72) calc(var(--case-disclosure-collapsed-height) - 1em),rgba(0,0,0,.18) calc(var(--case-disclosure-collapsed-height) - .4em),transparent calc(var(--case-disclosure-collapsed-height) - 2px),transparent 100%)}.case-disclosure-body[role=button]{cursor:pointer;outline:none}.case-disclosure-body[role=button]:focus-visible{outline:1px solid #b7b7b7;outline-offset:-1px;border-radius:.3rem}.case-disclosure-blur{position:absolute;inset:auto 0 0;z-index:1;display:none;height:2.25em;pointer-events:none;background:transparent}.case-disclosure-blur:before,.case-disclosure-blur:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.case-disclosure-blur:before{backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);mask-image:linear-gradient(to bottom,transparent,#000 45%,#000 65%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 45%,#000 65%,transparent 100%)}.case-disclosure-blur:after{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);mask-image:linear-gradient(to bottom,transparent 20%,rgba(0,0,0,.5) 50%,#000 70%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 20%,rgba(0,0,0,.5) 50%,#000 70%,transparent 100%)}.case-disclosure[data-collapsible=true][data-expanded=false] .case-disclosure-blur{display:block}.case-disclosure-toggle{display:none;align-items:center;justify-content:flex-start;gap:6px;width:max-content;min-height:32px;margin:.25rem 0 0;padding:0 4px;border:0;border-radius:4px;outline:none;background:transparent;color:#bdbdbd;font-family:inherit;font-size:12px;font-weight:500;line-height:1.35;letter-spacing:-.015em;cursor:pointer;touch-action:manipulation}.case-disclosure[data-collapsible=true]>.case-disclosure-toggle{display:inline-flex}.case-disclosure-toggle:hover{color:#fff}.case-disclosure-toggle svg{flex:none;width:14px;height:14px}.case-disclosure .case-disclosure-toggle:focus-visible{outline:2px solid #b7b7b7;outline-offset:-2px}.case-credits{margin:2.5rem 0 0;padding-top:1.6rem;border-top:1px solid #242424;width:100%;max-width:36rem;font-size:1.1rem;line-height:1.5;letter-spacing:-.015em;color:#a0a0a0}.case-credits>div{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:1rem;margin-top:.7rem}.case-credits dt,.case-credits dd{margin:0}.case-credits dt{color:#707070}.case-credits .case-credit-note{display:block;margin-top:1.2rem;color:#777}.case-stack{display:flex;width:70rem;flex-shrink:0;flex-direction:column;align-items:center;gap:6rem;padding-bottom:0;will-change:transform}.case-media-item{display:block;flex:none;width:100%;margin:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;will-change:transform;line-height:0;overflow:hidden;border-radius:.15rem;transform-origin:center}.case-image{cursor:zoom-in;pointer-events:auto;touch-action:none}.case-media-item img,.case-media-item video{display:block;width:100%;height:auto;max-width:none;object-fit:contain;border:0;filter:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.case-media-item video{background:#111;pointer-events:auto}.case-video{position:relative}.case-video>video,.case-video>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.case-video-poster{pointer-events:none}.case-video[data-video-ready=true]>.case-video-poster{visibility:hidden}.case-media-group{display:block;flex:none;width:100%;margin:0;padding:0;background:transparent;color:inherit}.case-media-group-copy{display:flex;flex-direction:column;gap:7px;margin:0 0 2rem}.case-media-group-copy h2{margin:0;color:#aaa;font-size:14px;font-weight:400;line-height:1.4;letter-spacing:-.02em}.case-media-group-copy p{margin:0;color:gray;font-size:12px;line-height:1.5;letter-spacing:-.015em;max-width:65ch}.case-media-group-items{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;justify-items:center;gap:2rem}.case-media-group[data-layout=mobile-pair]>.case-media-group-items{grid-template-columns:repeat(2,minmax(0,1fr))}.case-media-group-items>.case-media-item{min-width:0;max-width:100%}@media(min-width:650px){.case-copy[data-copy-scroll=true]:has(.case-disclosure[data-expanded=true]){scrollbar-width:thin;scrollbar-color:#3d3d3d transparent}.case-copy[data-copy-scroll=true]:has(.case-disclosure[data-expanded=true])::-webkit-scrollbar{width:3px}.case-copy[data-copy-scroll=true]:has(.case-disclosure[data-expanded=true])::-webkit-scrollbar-thumb{background:#3d3d3d}.case-media-item[data-presentation=mobile]{width:min(100%,390px,calc((100dvh - 100px) * var(--case-mobile-aspect, .4620853)))}}.case-fixed-furniture{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.case-close{position:absolute;top:3rem;right:3rem;display:flex;align-items:center;justify-content:center;width:4.5rem;height:4.5rem;padding:0;border:0;border-radius:999px;color:#080808;background:#f5f5f5;cursor:pointer;pointer-events:auto;transition:background .2s,transform .25s}.case-close svg{width:1.8rem;height:1.8rem}.case-close:hover{transform:rotate(90deg);background:#d9d9d9}.case-progress{--progress-border: 2px;position:absolute;bottom:3rem;left:3rem;display:block;width:25px;height:25px;min-width:25px;min-height:25px;border-radius:50%;pointer-events:none;color:#fff;background:#080808;box-shadow:0 0 0 4px #080808}.case-progress-fallback{display:block;width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.case-progress-track,.case-progress-arc{stroke:currentColor;stroke-width:2}.case-progress-track{opacity:.2}.case-progress-arc{stroke-linecap:butt}.case-progress.gl-progress-ready:has(canvas) .case-progress-fallback{visibility:hidden}.case-furniture{opacity:var(--case-furniture-opacity)}.case-related{position:fixed;top:10rem;right:10rem;bottom:10rem;left:10rem;z-index:1;pointer-events:none;border-radius:2rem;transform-origin:center}.case-related-previous{transform:translate(calc((100% + 7.5rem)*-1))}.case-related-next{transform:translate(calc(100% + 7.5rem))}.case-related-surface{display:flex;align-items:center;justify-content:flex-end;width:100%;height:100%;padding:0 1rem;border-radius:inherit;background:#080808;color:#fff;opacity:.3;pointer-events:auto;cursor:pointer;transition:opacity .25s;transform-origin:center;will-change:transform}.case-related-next .case-related-surface{justify-content:flex-start}.case-related-surface svg{width:1.4rem;height:1.4rem;flex:none}.case-related-surface:hover{opacity:.55}.case-view[data-scrubbing=true],.case-view[data-scrubbing=true] .case-image{cursor:grabbing}.case-view[data-transition=opening] .case-sheet,.case-view[data-transition=closing] .case-sheet{background:transparent;pointer-events:none}.case-view[data-transition=opening] .case-furniture,.case-view[data-transition=closing] .case-furniture{opacity:0;pointer-events:none;visibility:hidden}.case-view[data-transition=opening] .case-related,.case-view[data-transition=closing] .case-related{visibility:hidden;pointer-events:none}.case-view[data-transition=settled] .case-furniture{transition:opacity .3s}.case-view a:focus-visible,.case-view button:focus-visible{outline:2px solid #b7b7b7;outline-offset:.5rem}.case-copy:focus-visible{outline:1px solid #555;outline-offset:.5rem}@media(max-width:649px){.case-sheet{top:1.5rem;right:2rem;bottom:1.5rem;left:2rem;flex-direction:column;align-items:stretch;gap:4rem;padding:0 1rem;border-radius:1.5rem}.case-copy{flex:none;padding:4rem 1.5rem 0;min-width:0;max-height:none;overflow:visible;scrollbar-width:none}.case-copy h1{font-size:3.5rem;line-height:1;letter-spacing:-.05em}.case-description{font-size:1.4rem;line-height:1.4;letter-spacing:-.035em;margin-top:1.5rem;max-width:40rem}.case-pills{margin-top:2.2rem;gap:.6rem}.case-pill{font-size:1rem}.case-credits{font-size:1rem;margin-top:2rem;max-width:100%}.case-credits>div{grid-template-columns:6rem minmax(0,1fr);margin-top:.5rem}.case-facts{font-size:1.25rem;margin-top:2.6rem;gap:1.5rem 2rem}.case-breakdown{margin-top:2.4rem}.case-breakdown ul,.case-disclosure-body{font-size:1.3rem}.case-disclosure-toggle{min-height:44px}.case-stack{width:100%;gap:3rem;padding-bottom:8rem}.case-media-group-copy{margin-bottom:2rem}.case-media-group[data-layout=mobile-pair]>.case-media-group-items{grid-template-columns:minmax(0,1fr);gap:3rem}.case-related{top:10rem;right:10rem;bottom:10rem;left:10rem;border-radius:1.5rem}.case-related-previous{transform:translate(calc((100% + 9rem)*-1))}.case-related-next{transform:translate(calc(100% + 9rem))}.case-related-surface{padding:0}.case-related-surface svg{display:none}.case-close{top:auto;right:1.5rem;bottom:1.5rem;width:4rem;height:4rem}.case-close svg{width:1.8rem;height:1.8rem}.case-progress{left:1.5rem;bottom:1.5rem}}@media(prefers-reduced-motion:reduce){.case-view[data-transition=settled] .case-furniture,.case-related-surface,.case-close,a.case-pill,.case-pill-round svg{transition:none}}.gl-case-ready .case-sheet{background:transparent}.gl-case-ready .gl-media-ready{visibility:hidden}@font-face{font-family:DM Sans;src:url(/assets/font/dm-sans-latin-variable.woff2) format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}:root{font-family:DM Sans,Arial,sans-serif;font-size:.6666667vw;color:#111;background:#fff;font-synthesis:none;font-weight:400;--page-padding: 8rem;--label-size: 1.1rem}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #535353;outline-offset:6px;border-radius:2px}::selection{background:#ddd;color:#111}.label{text-transform:uppercase;font-size:var(--label-size);font-weight:500;line-height:1.4;letter-spacing:-.015em}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.portfolio{position:fixed;top:0;right:0;bottom:0;left:0;background:#2c6899 url(/assets/origin-sky-poster.jpg) center/cover no-repeat}.site-header,.site-footer{position:fixed;left:var(--page-padding);right:var(--page-padding);display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:60}.site-header{top:4rem}.site-footer{bottom:4rem}.site-header a,.site-header button,.site-footer a,.site-footer button{pointer-events:auto}.nav-button,.brand{position:relative}.nav-button:before,.brand:before{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px}.nav-button:hover,.brand:hover,.social-links a:hover{opacity:.55}.view-switch{display:flex;gap:1.2rem}.view-switch a{opacity:.42}.view-switch a[aria-current],.view-switch a:hover{opacity:1}.has-project .site-header,.has-project .site-footer{visibility:hidden}.center-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:45;text-align:center;width:45rem;animation:panel-in .85s both;pointer-events:auto}.center-panel p{font-size:1.4rem;line-height:1.4;letter-spacing:-.02em;margin:0}.cv-download{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;margin:2.7rem 0;min-height:3.4rem;border:1px solid #111;background:#111;color:#fff;border-radius:999px;padding:.8rem 1.6rem;transition:background .2s,color .2s}.cv-download:hover{background:#333;border-color:#333;color:#fff}.cv-download svg{width:1.3rem;height:1.3rem}.social-links{display:flex;align-items:center;justify-content:center;gap:2.4rem}.social-links a{text-transform:uppercase;font-size:1.1rem;font-weight:500;white-space:nowrap}.contact-panel{width:40rem}.contact-panel h1{font-size:3.5rem;font-weight:400;line-height:1.1;letter-spacing:-.05em;margin:0 0 2rem}.contact-panel p{margin:0 auto 3.4rem}.email-address{display:inline-flex;gap:.7rem;align-items:center;margin-top:2.8rem;font-size:1.1rem;opacity:.55}.email-address:hover{opacity:1}.full-index{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:.6rem 2.4rem;padding:0 2rem;max-width:90rem;margin:auto;text-align:center;z-index:45;pointer-events:none}.full-index button{font-size:3rem;letter-spacing:-.05em;font-weight:400;line-height:1;pointer-events:auto;transition:opacity .3s;animation:index-in .65s both;animation-delay:calc(var(--order) * .03s)}.full-index:has(button:hover) button:not(:hover){opacity:.25}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000fa;display:flex;align-items:center;justify-content:center;padding:30px;overflow:auto;cursor:zoom-out}.lightbox img{max-width:100%;max-height:calc(100dvh - 60px);width:auto;height:auto;object-fit:contain;cursor:default}.round-button{width:38px;height:38px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center}.lightbox-close{position:fixed;top:25px;right:25px;z-index:2}@keyframes panel-in{0%,23%{opacity:0}to{opacity:1}}@keyframes index-in{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@media(max-width:649px){:root{font-size:10px;--page-padding: 4rem;--label-size: 1rem}.site-header{top:2.5rem}.site-footer{bottom:2.5rem}.center-panel{width:calc(100vw - 6rem);max-width:35rem}.center-panel p{font-size:1.4rem}.contact-panel{max-width:32.5rem}.contact-panel h1{font-size:3.2rem}.social-links{gap:2.2rem}.full-index{padding:0 2rem;gap:.6rem 2.4rem;max-width:42rem}.full-index button{font-size:1.8rem}.lightbox{padding:12px}.lightbox-close{top:20px;right:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.full-index,.site-header,.site-footer{-webkit-user-select:none;user-select:none}.site-chrome{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:60;pointer-events:none}.site-header{inset:0 0 auto;display:block;padding:20px 32px 16px;pointer-events:none;z-index:60;isolation:isolate}.header-inner{position:relative;z-index:2;max-width:1450px;margin:auto;display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(270px,1fr);align-items:center;gap:24px}.header-blur{position:absolute;top:0;right:0;bottom:-16px;left:0;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,rgba(255,255,255,.06),rgba(255,255,255,.02) 55%,transparent);-webkit-mask-image:linear-gradient(#000 35%,transparent);mask-image:linear-gradient(#000 35%,transparent)}.header-blur i{display:none;position:absolute;top:0;right:0;bottom:0;left:0;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);-webkit-mask-image:linear-gradient(#000,transparent);mask-image:linear-gradient(#000,transparent)}.header-blur i:nth-child(2){backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);-webkit-mask-image:linear-gradient(#000 20%,transparent 85%);mask-image:linear-gradient(#000 20%,transparent 85%)}.header-blur i:nth-child(3){backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);-webkit-mask-image:linear-gradient(#000,transparent 55%);mask-image:linear-gradient(#000,transparent 55%)}.brand{font-size:14px;line-height:1.25;font-weight:600;letter-spacing:-.04em;width:max-content;max-width:100%}.brand:before{display:none}.header-nav,.header-actions{display:flex;align-items:center;gap:6px}.header-actions{justify-content:flex-end;gap:19px}.header-nav>a{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap;color:#1d3445;transition:background .2s,color .2s}.header-nav>a[aria-current]{background:#ffffff4d;color:#101010}.header-nav>a:hover{color:#111;background:#fff3}.header-nav svg,.header-actions svg{width:18px;height:18px;flex:none}.header-link{font-size:12px;font-weight:500;line-height:42px;white-space:nowrap}.header-link:hover,.header-link[aria-expanded=true]{text-decoration:underline;text-underline-offset:4px}.icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:38px;height:38px;border-radius:50%;transition:background .2s;pointer-events:auto}.icon-button svg{width:20px;height:20px}.icon-button:hover,.icon-button[aria-expanded=true]{background:#00000012}.filter-trigger.is-active{background:#111;color:#fff}.filter-badge{position:absolute;right:-2px;top:-3px;background:#111;color:#fff;border:2px solid #fff;border-radius:50%;min-width:17px;height:17px;display:grid;place-items:center;font-size:9px}.action-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 17px;border-radius:999px;font-size:12px;font-weight:500;line-height:1.2;white-space:nowrap;pointer-events:auto;transition:background .2s}.action-button svg{width:17px;height:17px;flex:none}.primary-action{color:#fff;background:#111;border:1px solid #111}.primary-action:hover{background:#303030;border-color:#303030}.filter-summary{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:12px;font-size:11px;margin:12px auto 0;color:#203a4f}.filter-summary button{display:inline-flex;align-items:center;gap:4px;color:#111;pointer-events:auto}.site-footer{inset:auto 20px 20px;justify-content:center;display:flex;z-index:55;font-size:11px;line-height:1.5;color:#405363;pointer-events:none;text-align:center}.site-footer>span{padding:5px 12px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:999px;background:#ffffff29}.site-footer a{display:inline-flex;align-items:center;gap:3px;color:#222;pointer-events:auto}.site-footer a:hover{text-decoration:underline;text-underline-offset:3px}.site-footer svg{width:11px;height:11px}.has-project .site-header,.has-project .site-footer{display:none}.filter-attention-dot{position:absolute;top:3px;right:3px;display:block;width:5px;height:5px;border-radius:50%;background:#ef4444;pointer-events:none}.filters-panel{width:330px;max-width:76vw;text-align:left;max-height:calc(100dvh - 180px);overflow:auto;overscroll-behavior:contain;padding:0 2px}.filters-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.filters-heading h2{font-size:21px;letter-spacing:-.04em;font-weight:500;margin:0}.filters-heading .icon-button{width:28px;height:28px}.filters-heading .icon-button svg{width:18px;height:18px}.filters-panel .filters-caption{font-size:12px;line-height:1.5;color:#777;margin:0 0 15px;letter-spacing:0}.category-options{display:flex;flex-direction:column;gap:3px}.category-option{display:flex;align-items:center;gap:11px;width:100%;min-height:43px;padding:7px 8px;border-radius:10px;text-align:left;font-size:13px;border:1px solid transparent}.category-option>svg{width:19px;height:19px;flex:none}.category-option>span:nth-of-type(1){flex:1}.category-option:hover{background:#f4f4f4}.category-option[aria-pressed=true]{background:#f1f1f1;border-color:#ddd}.category-count{font-size:11px;color:#888}.category-check{width:17px;height:17px;display:grid;place-items:center;border:1px solid #d7d7d7;border-radius:5px}.category-option[aria-pressed=true] .category-check{background:#111;color:#fff;border-color:#111}.filters-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.filters-panel .filters-status .filters-caption{margin:0}.filters-status .text-button{flex:none}.filters-bottom{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:15px;padding-top:15px;border-top:1px solid #ebebeb}.filters-bottom.single-action{grid-template-columns:1fr}.text-button{font-size:12px;text-decoration:underline;text-underline-offset:3px}.text-button:disabled{opacity:.3;cursor:default}.filters-bottom .action-button{min-width:0;min-height:40px;padding:7px 9px;font-size:11.5px;gap:6px;white-space:normal}.filters-bottom .action-button svg{width:13px;height:13px}.filters-bottom .secondary-action{color:#111;background:#eee}.filters-bottom .secondary-action:hover{background:#e2e2e2}.full-index{top:120px;right:48px;bottom:80px;left:48px;max-width:1050px;padding:0;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;gap:0;text-align:left;pointer-events:auto;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.25) transparent;scroll-padding:20px}.full-index[aria-hidden=true]{visibility:hidden}.index-heading{flex:none;display:flex;align-items:baseline;margin-top:auto;margin-bottom:25px;padding-top:8px}.index-heading h1{font-size:13px;letter-spacing:0;font-weight:500;margin:0}.index-groups{display:flex;flex:none;flex-direction:column;margin-bottom:auto;padding-bottom:8px}.case-group{display:grid;grid-template-columns:190px minmax(0,1fr);gap:20px;padding:18px 0;border-top:1px solid rgba(0,0,0,.2)}.case-group:last-child{border-bottom:1px solid rgba(0,0,0,.2)}.case-group h2{display:flex;align-items:center;align-self:start;gap:8px;margin:0;padding-top:5px;font-size:12px;font-weight:500;line-height:1.3;color:#15212d}.case-group h2 svg{width:19px;height:19px;flex:none}.case-group h2 span{font-size:9px;font-weight:400;color:#24394b;margin-left:auto}.case-group-projects{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;min-width:0}.full-index .case-group-projects button{font-size:clamp(17px,1.9vw,27px);line-height:1.2;letter-spacing:-.04em;font-weight:400;pointer-events:auto;text-align:left;max-width:100%;overflow-wrap:anywhere}.full-index:has(button:hover) button:not(:hover){opacity:.4}.social-links a{display:inline-flex;align-items:center;gap:.5rem}.social-links svg{width:1.5rem;height:1.5rem}.panel-close{position:absolute;top:-40px;right:0;width:30px;height:30px}.profile-contact-link{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px}.profile-contact-link svg{width:13px;height:13px}.profile-contact-link:hover{text-decoration:underline;text-underline-offset:4px}.empty-projects{position:fixed;top:120px;right:24px;bottom:100px;left:24px;z-index:45;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:12px}.empty-projects h1{font-size:26px;font-weight:400;letter-spacing:-.04em;margin:0}.empty-projects p{font-size:13px;color:#233c4e;margin:0 0 8px}@media(min-width:768px)and (max-width:1050px){.site-header{padding:18px 24px 14px}.full-index{top:110px;right:40px;bottom:100px;left:40px}.case-group{grid-template-columns:160px minmax(0,1fr);gap:16px;padding:15px 0}.case-group-projects{gap:12px 17px}}@media(max-width:1050px),(max-width:1440px)and (pointer:coarse){.header-inner{display:flex;justify-content:space-between;gap:12px}.header-actions{flex:none}.header-nav{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);width:max-content;max-width:calc(100vw - 32px);justify-content:center;gap:5px;padding:7px;border:1px solid rgba(255,255,255,.5);background:#ffffff91;backdrop-filter:blur(20px) saturate(1.15);-webkit-backdrop-filter:blur(20px) saturate(1.15);border-radius:999px;box-shadow:0 6px 24px #0022411f;pointer-events:auto}.header-nav>a{height:41px;font-size:12px;padding:0 13px;gap:7px}.header-nav>a[aria-current]{background:#fff}.header-nav>a svg{width:18px;height:18px}.header-nav .icon-button{width:41px;height:41px}.site-footer{display:none}.full-index{bottom:max(100px,calc(env(safe-area-inset-bottom) + 82px))}}@media(max-width:767px){.header-blur i{display:block}.site-header{padding:16px 18px}.header-inner{display:flex;justify-content:space-between;gap:12px}.brand{font-size:13px}.header-actions{gap:13px}.header-link{font-size:12px;line-height:36px}.header-actions .primary-action{height:36px;min-height:36px;padding:0 12px;gap:6px;font-size:11px}.download-word{display:none}.header-blur{bottom:-8px}.filter-summary{position:fixed;top:65px;left:0;right:0;margin:0;font-size:10px}.full-index{top:100px;right:24px;bottom:100px;left:24px;max-width:650px}.index-heading{margin-bottom:20px}.index-heading h1{font-size:13px}.case-group{grid-template-columns:1fr;gap:11px;padding:15px 0}.case-group h2{font-size:11px;gap:7px;padding:0}.case-group h2 svg{width:17px;height:17px}.case-group h2 span{margin-left:0;font-size:9px}.case-group-projects{gap:11px 18px}.full-index .case-group-projects button{font-size:20px;line-height:1.2}.site-footer{display:none}.filters-panel{width:290px;max-width:76vw}.filters-heading h2{font-size:19px}.category-option{min-height:41px;font-size:12px}.filters-panel .filters-caption{font-size:11px}.social-links{gap:1.6rem}.social-links a{font-size:1rem}.social-links svg{width:1.4rem;height:1.4rem}}@media(max-width:374px){.site-header{padding-left:13px;padding-right:13px}.brand{font-size:12px}.header-actions{gap:9px}.header-link{font-size:11px}.header-actions .primary-action{padding:0 10px}.filters-panel{max-width:80vw}.full-index{top:90px;right:20px;bottom:95px;left:20px}.case-group{padding:12px 0}.full-index .case-group-projects button{font-size:18px}}@media(max-height:650px){.full-index{inset-block:95px 85px}.index-heading{margin-bottom:14px}.case-group{padding-block:10px}.filters-panel{max-height:calc(100dvh - 150px)}}.center-panel{width:min(520px,calc(100vw - 64px));max-width:520px;max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;animation:none;opacity:0;visibility:hidden;transition:opacity .16s ease;pointer-events:none}.portfolio[data-lens-ready=true] .center-panel{opacity:1;visibility:visible;pointer-events:auto}.center-panel p{font-size:17px;line-height:1.45;letter-spacing:-.025em}.center-panel .cv-download{font-size:12px;min-height:42px;padding:10px 19px;gap:8px;margin:25px 0 0}.center-panel .cv-download svg{width:17px;height:17px}.center-panel .social-links{gap:23px;flex-wrap:wrap}.center-panel .social-links a{gap:6px;font-size:12px;line-height:1.5}.center-panel .social-links svg{width:17px;height:17px}.profile-panel .social-links{margin-top:27px}.profile-panel .profile-build-note{max-width:365px;margin:22px auto 0;color:gray;font-size:11px;line-height:1.5;letter-spacing:0}.contact-panel{width:min(420px,calc(100vw - 64px));max-width:420px}.contact-panel h1{font-size:38px;margin:0 0 22px}.contact-panel p{margin:0 0 30px}.contact-panel .email-address{font-size:12px;margin-top:25px;gap:7px}.filters-panel{width:330px;max-width:76vw}.filters-panel .filters-caption{font-size:12px;margin:0 0 15px;letter-spacing:0}@media(max-width:767px){.center-panel{width:min(400px,calc(100vw - 70px));max-width:400px}.center-panel p{font-size:15px}.contact-panel{width:min(350px,calc(100vw - 70px))}.contact-panel h1{font-size:32px}.center-panel .social-links{gap:16px}.center-panel .social-links a{font-size:11px}.center-panel .social-links svg{width:15px;height:15px}.center-panel .cv-download{margin-top:23px}.filters-panel{width:290px;max-width:76vw}.filters-panel .filters-caption{font-size:11px}}.site-header,.brand,.header-link{color:#fff}.header-blur{background:none}.header-nav>a{color:#fffc}.header-nav>a[aria-current],.header-nav>a:hover{color:#fff}.filter-summary,.filter-summary button{color:#fff}.site-header :focus-visible{outline-color:#fff}@media(max-width:1050px),(max-width:1440px)and (pointer:coarse){.header-nav{color:#111}.header-nav>a{color:#444}.header-nav>a[aria-current],.header-nav>a:hover{color:#111}.header-nav :focus-visible{outline-color:#111}.full-index{bottom:max(100px,calc(env(safe-area-inset-bottom) + 82px))}}.profile-panel,.contact-panel{padding-top:38px}.center-panel .panel-close{top:0;right:0}.center-panel.cv-panel{width:min(470px,calc(100vw - 70px));max-width:470px;padding-top:32px;text-align:left}.cv-panel h1{margin:0 0 9px;font-size:28px;line-height:1.15;font-weight:500;letter-spacing:-.04em}.cv-panel .cv-picker-caption{margin:0 0 20px;color:#777;font-size:13px;line-height:1.45;letter-spacing:0}.cv-options{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;max-height:clamp(126px,calc(100dvh - 310px),420px);overflow-y:auto;overscroll-behavior:contain;margin:0;padding:0;list-style:none;scrollbar-width:thin}.cv-option{display:flex;width:100%;min-width:0;align-items:center;justify-content:space-between;gap:16px;min-height:65px;padding:13px 14px 13px 18px;border-radius:999px;background:#f5f5f5;color:#111;text-decoration:none;transition:background .16s ease}.cv-options>li{min-width:0}.cv-option:not(:disabled):hover{background:#eaeaea}.cv-option:focus-visible{outline:2px solid #111;outline-offset:-3px}.cv-option-title{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left;font-size:14px;line-height:1.4;font-weight:500;letter-spacing:-.015em}.cv-option-download{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;padding:10px;border-radius:999px;background:#111;color:#fff;font-size:11px;line-height:1.2}.cv-option:not(:disabled):hover .cv-option-download{background:#333}.cv-option:disabled .cv-option-download{background:#e9e9e9;color:#8a8a8a;cursor:default}.cv-option-download svg{width:16px;height:16px}@media(max-width:480px){.cv-panel h1{font-size:24px}.cv-panel .cv-picker-caption{font-size:12px;margin-bottom:15px}.cv-option{gap:10px;min-height:63px;padding:11px 12px;border-radius:999px}.cv-option-title{font-size:12px}}.header-actions .primary-action{background:#fff;border-color:#fff;color:#111}.header-actions .primary-action:hover{background:#edf5ff;border-color:#edf5ff}.scene-sky-video{position:absolute;width:1px;height:1px;left:0;top:0;opacity:0;pointer-events:none}.site-header .brand{font-size:12px;font-weight:500;letter-spacing:0;line-height:1.25}.site-footer>span{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 6px}.footer-portrait{width:20px;height:20px;flex:0 0 20px;border-radius:50%;object-fit:cover;display:block}@media(max-width:374px){.site-header .brand{font-size:11px}}@media(max-width:767px){.header-blur{inset:0 0 auto;height:108px;background:linear-gradient(to bottom,#0718306b,#07183047 56%,#0718301a,#07183000);mask-image:none;-webkit-mask-image:none}.header-blur i{display:block;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);mask-image:linear-gradient(to bottom,#000 0%,#000 52%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 52%,transparent 100%)}.header-blur i:nth-child(2){backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);mask-image:linear-gradient(to bottom,#000 0%,#000 38%,transparent 83%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 38%,transparent 83%)}.header-blur i:nth-child(3){backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);mask-image:linear-gradient(to bottom,#000 0%,#000 24%,transparent 66%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 24%,transparent 66%)}}.full-index{color:#fff;scrollbar-color:rgba(255,255,255,.45) transparent}.full-index .index-heading,.full-index .index-heading h1,.full-index .index-heading>span,.full-index .case-group h2,.full-index .case-group h2 span,.full-index .case-group-projects button{color:#fff}.full-index .case-group h2 svg{color:inherit}.full-index .case-group{border-top-color:#ffffff73}.full-index .case-group:last-child{border-bottom-color:#ffffff73}.full-index button:focus-visible{outline-color:#fff}.full-index::-webkit-scrollbar-thumb{background:#ffffff73}.full-index .case-group-projects{gap:9px;align-items:center}.full-index .case-group h2{align-self:center;padding-top:0}.full-index .case-group-projects .case-link{--case-fill: rgba(255, 255, 255, .1);--case-stroke: transparent;--case-radius: 999px;--case-opacity: 1;display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:9px;padding:10px 16px;min-height:42px;border:0;border-radius:var(--case-radius);background:var(--case-fill);font-size:18px;line-height:1.25;font-weight:400;letter-spacing:-.025em;opacity:1;animation-name:case-link-in;transition:none}.full-index .case-link-label{min-width:0}.full-index:has(button:hover) .case-group-projects .case-link:not(:hover){opacity:1}.full-index .case-group-projects .case-link[data-filter-match=false],.full-index:has(button:hover) .case-group-projects .case-link[data-filter-match=false]:not(:hover){--case-opacity: .72;opacity:.72}.full-index .case-link svg{width:16px;height:16px;flex:0 0 16px}.full-index .case-group-projects .case-link[data-filter-match=true]{--case-fill: rgba(255, 255, 255, .22)}.full-index .case-group-projects .case-link:hover,.full-index .case-group-projects .case-link:focus-visible{--case-fill: rgba(255, 255, 255, .24)}.full-index .case-group-projects .case-link:focus-visible{--case-fill: rgba(255, 255, 255, .36);outline:none}.full-index .case-group-projects .case-link.gl-text-ready{background:transparent;border-color:transparent}.full-index .case-link.gl-text-ready svg{opacity:0}@keyframes case-link-in{0%{opacity:0;transform:translateY(15px)}to{opacity:var(--case-opacity);transform:none}}@media(max-width:767px){.full-index .case-group-projects .case-link{font-size:17px;min-height:44px}.full-index .case-group-projects{gap:8px}}
