@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(../media/3ce154ad7d54dc86-s.1-9go8whdf-l6.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(../media/7cdbb9ca823c0a73-s.1h6d36qg8q9eb.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(../media/1e239d59b95c7889-s.2z2_lz8ulsj_0.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(../media/a421df443b3f383b-s.36lh57wvljuff.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(../media/c2873153dc73d9e3-s.1em1pp1frbjrf.woff2)format("woff2");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(../media/d38a53d0ba90b32d-s.398ve1q5qj3un.woff2)format("woff2");unicode-range:U+302-303,U+305,U+307-308,U+310,U+312,U+315,U+31A,U+326-327,U+32C,U+32F-330,U+332-333,U+338,U+33A,U+346,U+34D,U+391-3A1,U+3A3-3A9,U+3B1-3C9,U+3D1,U+3D5-3D6,U+3F0-3F1,U+3F4-3F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE??}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(../media/5b0229109f6656bb-s.3tlvbu8v6d928.woff2)format("woff2");unicode-range:U+1-C,U+E-1F,U+7F-9F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+28??,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B??,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F0??,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F7??,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB??}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(../media/ca19bc83075b2625-s.2f6i6rjizi5dm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(../media/2aec202ebfcf461b-s.261mkozpp7zc7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Open Sans;font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(../media/cf514f5d0007dafa-s.p.1wc2mf9hp9pav.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Open Sans Fallback;src:local(Arial);ascent-override:101.65%;descent-override:27.86%;line-gap-override:0.0%;size-adjust:105.15%}.open_sans_c3bebbb3-module__ql6-XW__className{font-family:Open Sans,Open Sans Fallback;font-style:normal}.open_sans_c3bebbb3-module__ql6-XW__variable{--font-ui:"Open Sans", "Open Sans Fallback"}
@font-face{font-family:HelveticaNeueLTStd Roman;src:url(/assets/fonts/helvetica-neue-lt-std-roman.otf)format("opentype");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:HelveticaNeueLTStd Bold;src:url(/assets/fonts/helvetica-neue-lt-std-bd.otf)format("opentype");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:HelveticaNeueLTStd Thin;src:url(/assets/fonts/helvetica-neue-lt-std-th.otf)format("opentype");font-display:swap;font-style:normal;font-weight:400}:root{--font-base:"HelveticaNeueLTStd Roman", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display:"HelveticaNeueLTStd Bold", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-thin:"HelveticaNeueLTStd Thin", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-ui:"Open Sans", "Segoe UI", sans-serif;--font-label-size:11px;--bg:#242424;--bg-deep:#171717;--surface:#2c2c2c;--surface-soft:#313131;--surface-strong:#111;--border:#ffffff1a;--border-strong:#94ffe36b;--text:#ffffffeb;--muted:#ffffff94;--faint:#ffffff47;--accent:#94ffe3;--accent-strong:#5ce0c7;--blue:#58a6ff;--amber:#f6c177;--radius-sm:6px;--radius-md:8px;--sidebar:19%;--content:81%;--max-site:1400px;--frame-y:3.66%;--frame-x:6.66%;--frame-tight-x:1.33%;--frame-compact-y:3.33%;--frame-section-y:6.66%;--frame-mobile-y:4.33%;--frame-mobile-x:6.66%;--sticky-nav-top:clamp(24px, 3.66vw, 52px);--fixed-nav-left:max(var(--frame-x), calc((100vw - var(--max-site)) / 2));--fixed-nav-width:clamp(210px, 16.47vw, 266px);--carousel-ratio:1685 / 900;--mobile-nav-height:73px;--stream-mobile-header-height:76px;--stream-mobile-rail-height:88px;--stream-media-gap:clamp(28px, 2.5vw, 36px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;color:var(--text);font-family:var(--font-base);letter-spacing:0;text-rendering:geometricprecision;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto;margin:0;font-size:16px;line-height:20px}img,svg,iframe{display:block}img{max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent);color:#111}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-shell{width:100%;min-height:100vh;padding-inline:var(--frame-x);margin:0 auto}.site-shell-frame{grid-template-columns:minmax(210px, var(--sidebar)) minmax(0, var(--content));width:min(100%, var(--max-site));min-height:100vh;padding-block:var(--frame-y);margin:0 auto;display:grid}.content-side{min-width:0}.content-side main{min-height:calc(100vh - 105px)}.site-nav-column{min-width:0}.site-nav-shell{top:var(--sticky-nav-top);left:var(--fixed-nav-left);width:var(--fixed-nav-width);max-height:calc(100vh - var(--sticky-nav-top));view-transition-name:portfolio-navigation;z-index:20;padding:165px 0 32px;position:fixed;overflow:visible}::view-transition-old(root){mix-blend-mode:normal;animation:.24s ease-in-out both work-jump-fade-out}::view-transition-new(root){mix-blend-mode:normal;animation:.24s ease-in-out both work-jump-fade-in}::view-transition-old(portfolio-navigation){opacity:0;animation:none}::view-transition-new(portfolio-navigation){opacity:1;animation:none}@keyframes work-jump-fade-out{0%{opacity:1}to{opacity:0}}@keyframes work-jump-fade-in{0%{opacity:0}to{opacity:1}}.nav-inner{position:static}.brand-row{justify-content:space-between;align-items:center;min-height:96px;display:flex;position:absolute;top:0;left:-16px;right:0}.brand-link{box-shadow:none;-webkit-tap-highlight-color:transparent;border:0;outline:0;align-items:center;display:inline-flex}.brand-link:focus,.brand-link:focus-visible,.brand-link:active{box-shadow:none;border:0;outline:0}.brand-logo{object-fit:contain;width:110px;height:auto}.brand-logo-mobile,.mobile-menu-button,.mobile-home-return{display:none}.portfolio-nav,.nav-group{gap:0;display:grid}.nav-group+.nav-group{margin-top:20px}.nav-group h2{color:var(--text);font-family:var(--font-display);font-size:var(--font-label-size);letter-spacing:1px;text-transform:uppercase;margin:0 0 10px;font-weight:900;line-height:18px}.nav-category-link{text-transform:uppercase}.nav-category-link:hover{text-decoration-line:line-through}.nav-category-link[aria-current=page]{color:var(--accent)}.nav-group ul{gap:0;margin:0;padding:0;list-style:none;display:grid}.nav-group li{margin:3px 0}.nav-work-link{color:#ffffff4d;letter-spacing:.03em;font-size:13px;line-height:20px;transition:color .16s,text-decoration-color .16s}.nav-work-link:hover{text-decoration-line:line-through}.nav-work-link[aria-current=page]{color:var(--accent);font-style:italic}.nav-utility{gap:0;padding-top:25px;display:grid}.nav-utility-link{color:#ffffff9e;width:fit-content;font-family:var(--font-display);text-transform:uppercase;align-items:center;gap:5px;font-size:10px;font-weight:900;line-height:20px;text-decoration:line-through;transition:color .16s;display:inline-flex}.nav-utility-link:hover,.nav-utility-link[aria-current=page]{color:#fff;text-decoration:none}.nav-socials,.footer-socials{flex-wrap:wrap;gap:11px;display:flex}.nav-socials a,.footer-socials a{color:#ffffff57;text-transform:uppercase;font-size:11px;font-weight:700;transition:color .16s}.nav-socials a:hover,.footer-socials a:hover{color:var(--accent)}.hero-carousel{padding-top:0}.carousel-frame{aspect-ratio:var(--carousel-ratio);background:var(--surface-strong);width:100%;position:relative;overflow:hidden}.carousel-image{object-fit:cover}.carousel-controls{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px 0 38px;display:grid}.icon-button{border:1px solid var(--border);border-radius:var(--radius-sm);width:42px;height:42px;color:var(--text);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.icon-button:hover{border-color:var(--border-strong);color:var(--accent);background:#94ffe314}.carousel-arrow:first-child{margin-left:0}.carousel-arrow:last-child{margin-right:1px}.mobile-menu-button{display:none}.carousel-dots{justify-content:center;gap:7px;display:flex}.carousel-dot{opacity:.3;cursor:pointer;background:#fff;border:0;border-radius:0;width:8px;height:8px;padding:0;transition:opacity .16s}.carousel-dot:hover{opacity:.6}.carousel-dot:focus-visible{opacity:.6;outline-color:#fff}.carousel-dot[aria-selected=true]{opacity:1}.eyebrow{color:var(--accent);font-family:var(--font-display);font-size:var(--font-label-size);text-transform:uppercase;margin:0 0 8px;font-weight:800;line-height:1.4}p.eyebrow{display:none}.contact-panel h1,.contact-panel h2,.not-found-page h1{color:var(--text);font-family:var(--font-thin);overflow-wrap:anywhere;margin:0;font-size:36px;font-weight:400;line-height:1.15}.tag-list{flex-wrap:wrap;gap:2px 7px;margin:0;padding:0;list-style:none;display:flex}.tag-list li{min-width:0;color:var(--accent);font-size:var(--font-label-size);text-transform:uppercase;align-items:center;gap:7px;font-weight:200;line-height:1.6;display:inline-flex}.tag-divider{color:#ffffff47}.video-embed{aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--surface-strong);width:100%;position:relative;overflow:hidden}.video-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.local-video{background:#111;position:absolute;inset:0;overflow:hidden}.local-video-element{object-fit:contain;width:100%;height:100%;display:block}.local-video-control{z-index:2;color:#fff;cursor:pointer;background:#111111c7;border:1px solid #ffffffb8;border-radius:50%;place-items:center;width:42px;height:42px;padding:0;transition:background-color .16s,transform .16s;display:grid;position:absolute;bottom:14px;right:14px}.local-video-control:hover,.local-video-control:focus-visible{background:#111111f5;transform:scale(1.04)}.work-stream{width:100%}.work-stream[data-stream-mode=home]>.stream-project:first-of-type{padding-top:0}.stream-project{--stream-intro-height:150px;width:100%;padding:var(--frame-section-y) var(--frame-tight-x) 0}[data-stream-reveal]{opacity:var(--stream-reveal-opacity,1)}@media (min-width:992px){.case-study-content,.responsive-web-content{padding-top:clamp(16px,1.5vw,22px)}.stream-project-meta[data-stream-reveal]{opacity:1}}.stream-project-anchor{height:0;scroll-margin-top:0;display:block}.stream-project-header{gap:6px;width:100%;margin:0;display:grid}.stream-project-header h2{color:var(--text);font-family:var(--font-thin);overflow-wrap:anywhere;margin:0;font-size:36px;font-weight:400;line-height:1.15}.stream-project-meta{gap:12px;display:grid}.stream-project-meta>p{max-width:700px;color:var(--muted);font-family:var(--font-ui);margin:0;font-size:16px;line-height:1.45}.stream-project-layout{--stream-rail-width:clamp(104px, 9.5vw, 132px);--stream-column-gap:clamp(18px, 2vw, 30px);width:min(100%,1100px);margin:0 auto}.stream-project-intro{z-index:6;width:100%;padding:55px calc(var(--stream-rail-width) + var(--stream-column-gap)) 18px 0;border-bottom:1px solid var(--border);background:var(--bg);gap:12px;display:grid;position:sticky;top:0}.stream-project-mobile-header{display:none}.stream-project-body{grid-template-areas:"media rail";grid-template-columns:minmax(0, 1fr) var(--stream-rail-width);align-items:start;gap:var(--stream-column-gap);display:grid}.stream-media-column{row-gap:var(--stream-media-gap);grid-area:media;min-width:0;display:grid}.stream-media-item{border-radius:var(--radius-sm);background:var(--surface-strong);width:100%;min-width:0;margin:0;position:relative;overflow:hidden}.stream-media-anchor{pointer-events:none;width:1px;height:1px;scroll-margin-top:var(--stream-intro-height);position:absolute;top:0;left:0}.stream-gallery-image{object-fit:contain}.stream-thumbnail-rail{top:calc(var(--stream-intro-height) + var(--frame-compact-y));grid-area:rail;position:sticky}.stream-thumbnail-list{gap:9px;display:grid}.stream-thumbnail{aspect-ratio:4/3;background:var(--surface-strong);opacity:.42;border:2px solid #0000;border-radius:4px;width:100%;transition:border-color .16s,opacity .16s,transform .16s;display:block;position:relative;overflow:hidden}.stream-thumbnail:hover,.stream-thumbnail:focus-visible{opacity:.8;transform:translate(-2px)}.stream-thumbnail[aria-current=true]{border-color:var(--accent);opacity:1}.stream-thumbnail-image{object-fit:cover}.stream-thumbnail-video{width:100%;height:100%;position:absolute;inset:0}.stream-thumbnail-play{color:#fff;background:#111111bd;border:1px solid #fff9;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.app-showcase-content{gap:var(--stream-media-gap);grid-area:media;min-width:0;display:grid}.app-showcase-chapter{gap:clamp(18px,2.4vw,28px);min-width:0;display:grid;position:relative}.app-showcase-kicker{color:var(--text);font-family:var(--font-ui);letter-spacing:.07em;text-transform:uppercase;margin:20px 0 0;font-size:12px;font-weight:800}.app-flow-header{gap:7px;display:grid}.app-flow-header h3,.app-flow-header p{margin:20px 0 0}.app-flow-header h3{color:var(--text);font-family:var(--font-ui);font-size:clamp(18px,1.5vw,21px);font-weight:700;line-height:1.25}.app-flow-header p{max-width:650px;color:var(--muted);font-family:var(--font-ui);font-size:15px;line-height:1.5}.app-screen-grid{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff06;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:clamp(14px,1.8vw,22px);min-width:0;padding:clamp(18px,2.5vw,30px);display:grid}.app-featured-grid{background:#ffffff09}.app-screen-button{outline-offset:5px;min-width:0;color:inherit;cursor:zoom-in;background:0 0;border:0;border-radius:18px;place-items:start center;margin:0;padding:0;display:grid}.app-screen-frame{background:#171b29;border:1px solid #ffffff21;border-radius:clamp(14px,1.8vw,22px);max-width:100%;transition:border-color .18s,transform .18s;display:block;position:relative;overflow:hidden;box-shadow:0 16px 42px #0003}.app-screen-button:hover .app-screen-frame,.app-screen-button:focus-visible .app-screen-frame{border-color:#94ffe3b8;transform:translateY(-3px)}.app-screen-image{object-fit:contain}.app-flow-thumbnail{isolation:isolate}.app-flow-thumbnail:after{z-index:1;content:"";background:linear-gradient(#0000,#08090deb);position:absolute;inset:38% 0 0}.app-flow-thumbnail-image{object-position:top center}.app-flow-thumbnail-label{z-index:2;color:#fff;font-family:var(--font-ui);font-size:var(--font-label-size);text-overflow:ellipsis;white-space:nowrap;font-weight:700;line-height:1.15;position:absolute;bottom:6px;left:7px;right:7px;overflow:hidden}.responsive-web-content{gap:var(--stream-media-gap);grid-area:media;min-width:0;display:grid}.responsive-web-chapter{gap:clamp(18px,2.4vw,28px);min-width:0;display:grid;position:relative}.responsive-chapter-header{gap:7px;display:grid}.responsive-chapter-header h3,.responsive-chapter-header p{margin:0}.responsive-chapter-header h3{color:var(--text);font-family:var(--font-ui);font-size:clamp(18px,1.5vw,21px);font-weight:700;line-height:1.25}.responsive-chapter-header p{max-width:650px;color:var(--muted);font-family:var(--font-ui);font-size:15px;line-height:1.5}.responsive-screen-pair{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff06;grid-template-columns:minmax(0,72fr) minmax(180px,28fr);align-items:start;gap:clamp(14px,1.8vw,22px);min-width:0;padding:clamp(18px,2.5vw,30px);display:grid}.responsive-screen-button{outline-offset:5px;min-width:0;color:inherit;cursor:zoom-in;text-align:left;background:0 0;border:0;gap:9px;margin:0;padding:0;display:grid}.responsive-screen-label{color:var(--muted);font-family:var(--font-ui);letter-spacing:.07em;text-transform:uppercase;font-size:11px;font-weight:800}.responsive-screen-frame{background:#171b29;border:1px solid #ffffff21;border-radius:clamp(8px,1vw,14px);width:100%;transition:border-color .18s,transform .18s;display:block;position:relative;overflow:hidden;box-shadow:0 16px 42px #0000002e}.responsive-screen-button:hover .responsive-screen-frame,.responsive-screen-button:focus-visible .responsive-screen-frame{border-color:#94ffe3b8;transform:translateY(-3px)}.responsive-screen-image{object-fit:contain}.responsive-mobile-view{top:calc(var(--stream-intro-height) + var(--frame-compact-y));align-self:start;position:sticky}.responsive-web-thumbnail{isolation:isolate}.responsive-web-thumbnail:after{z-index:1;content:"";background:linear-gradient(#0000,#08090deb);position:absolute;inset:38% 0 0}.responsive-web-thumbnail-image{object-position:top center}.responsive-web-thumbnail-label{z-index:2;color:#fff;font-family:var(--font-ui);font-size:var(--font-label-size);text-overflow:ellipsis;white-space:nowrap;font-weight:700;line-height:1.15;position:absolute;bottom:6px;left:7px;right:7px;overflow:hidden}.case-study-content{gap:var(--stream-media-gap);grid-area:media;min-width:0;display:grid}.case-study-chapter{gap:clamp(18px,2.4vw,28px);min-width:0;display:grid;position:relative}.case-study-chapter-header{gap:7px;display:grid}.case-study-chapter-header h3,.case-study-chapter-header p{margin:0}.case-study-chapter-header h3{color:var(--text);font-family:var(--font-ui);font-size:clamp(18px,1.5vw,21px);font-weight:700;line-height:1.25}.case-study-chapter-header p{max-width:650px;color:var(--muted);font-family:var(--font-ui);font-size:15px;line-height:1.5}.case-study-media-grid{border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff06;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(14px,1.8vw,22px);min-width:0;padding:clamp(18px,2.5vw,30px);display:grid}.case-study-media-button{outline-offset:5px;min-width:0;color:inherit;cursor:zoom-in;background:0 0;border:0;place-items:start center;margin:0;padding:0;display:grid}.case-study-media-button[data-wide=true]{grid-column:1/-1}.case-study-media-frame{background:#171b29;border:1px solid #ffffff21;border-radius:clamp(8px,1vw,14px);max-width:100%;transition:border-color .18s,transform .18s;display:block;position:relative;overflow:hidden;box-shadow:0 16px 42px #0000002e}.case-study-media-button:hover .case-study-media-frame,.case-study-media-button:focus-visible .case-study-media-frame{border-color:#94ffe3b8;transform:translateY(-3px)}.case-study-media-image{object-fit:contain}.case-study-thumbnail{isolation:isolate}.case-study-thumbnail:after{z-index:1;content:"";background:linear-gradient(#0000,#08090deb);position:absolute;inset:38% 0 0}.case-study-thumbnail-image{object-position:center}.case-study-thumbnail-label{z-index:2;color:#fff;font-family:var(--font-ui);font-size:var(--font-label-size);text-overflow:ellipsis;white-space:nowrap;font-weight:700;line-height:1.15;position:absolute;bottom:6px;left:7px;right:7px;overflow:hidden}.project-image-lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--text);background:#08090df0;border:0;margin:0;padding:0;position:fixed;inset:0}.project-image-lightbox::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#08090dc7}.project-lightbox-panel{grid-template-rows:minmax(0,1fr) auto;place-items:center;gap:14px;width:100%;height:100%;padding:clamp(52px,6vh,72px) clamp(18px,4vw,52px) 18px;display:grid;position:relative}.project-lightbox-media{background:#171b29;border-radius:clamp(12px,1.5vw,20px);max-width:88vw;max-height:78dvh;position:relative;overflow:hidden;box-shadow:0 24px 80px #00000080}.project-lightbox-image{object-fit:contain}.project-lightbox-close,.project-lightbox-control{color:#fff;cursor:pointer;background:#191c27e6;border:1px solid #fff3;place-items:center;display:inline-grid}.project-lightbox-close{z-index:2;border-radius:50%;width:42px;height:42px;position:absolute;top:16px;right:18px}.project-lightbox-footer{justify-content:center;align-items:center;gap:18px;display:flex}.project-lightbox-footer p{min-width:54px;color:var(--muted);font-family:var(--font-ui);text-align:center;margin:0;font-size:13px}.project-lightbox-control{border-radius:999px;width:44px;height:38px}.project-lightbox-close:hover,.project-lightbox-close:focus-visible,.project-lightbox-control:hover:not(:disabled),.project-lightbox-control:focus-visible{border-color:var(--accent);color:var(--accent)}.project-lightbox-control:disabled{opacity:.28;cursor:default}.work-stream-contact{width:min(100%,1100px);min-height:70vh;margin:var(--frame-section-y) auto 0;padding:var(--frame-section-y) 0}.contact-page,.not-found-page{min-height:calc(100vh - 105px);padding:var(--frame-section-y) var(--frame-tight-x) var(--frame-y);align-items:center;display:grid}.contact-panel,.not-found-page{width:min(100%,760px)}.contact-panel p,.not-found-page p{max-width:680px;color:var(--muted);font-family:var(--font-ui);margin:18px 0 0;font-size:22px;font-weight:300;line-height:1.48}.contact-actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.button{border-radius:var(--radius-sm);text-transform:uppercase;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:11px 16px;font-size:13px;font-weight:800;line-height:1.1;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.button-primary{background:var(--accent);border-color:var(--accent);color:#111}.button-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.button-secondary{color:#d4e9ff;background:0 0;border-color:#58a6ffb3}.button-secondary:hover{border-color:var(--blue);color:#fff}.button-ghost{border-color:var(--border);color:var(--muted);background:0 0}.button-ghost:hover{color:#fff;border-color:#f6c177bd}.site-footer{min-height:105px;padding:var(--frame-y) var(--frame-tight-x);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.site-footer p{color:#ffffff1f;margin:0;font-size:13px}@media (max-width:1120px){:root{--fixed-nav-width:clamp(190px, 19.05vw, 246px)}.site-shell-frame{grid-template-columns:minmax(190px,22%) minmax(0,78%)}.app-screen-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:991px){.site-shell{width:100%;padding:0}.site-shell-frame{padding-block:0;display:block}.site-nav-column{min-width:auto}.site-nav-shell{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#242424f5;width:auto;min-height:0;max-height:none;padding:0;position:relative;top:auto;left:auto;overflow:visible}.nav-inner{width:min(100%, var(--max-site));margin:0 auto}.brand-row{min-height:72px;padding:0 var(--frame-compact-y);justify-content:flex-start;position:relative;top:0;left:0}.brand-logo-desktop{display:none}.brand-link{margin-bottom:0}.brand-logo-mobile{width:88px;height:auto;display:block}.mobile-menu-button{top:50%;right:var(--frame-mobile-x);color:var(--accent);z-index:2;background:#94ffe314;border-color:#94ffe35c;position:absolute;left:auto;transform:translateY(-50%);display:inline-flex!important}.mobile-home-return{right:max(var(--frame-mobile-x), env(safe-area-inset-right));bottom:max(18px, calc(env(safe-area-inset-bottom) + 12px));z-index:40;border:1px solid var(--border-strong);width:48px;height:48px;color:var(--accent);opacity:0;visibility:hidden;pointer-events:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#242424f0;border-radius:4px;place-items:center;padding:0;transition:opacity .18s,transform .18s,visibility .18s;display:grid;position:fixed;transform:translateY(8px)}.mobile-home-return[data-visible=true]{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.portfolio-nav{display:none}.portfolio-nav[data-open=true]{max-height:calc(100vh - 73px);padding:var(--frame-mobile-y) var(--frame-mobile-x) var(--frame-section-y);background:var(--surface-soft);gap:20px;display:grid;overflow-y:auto}.content-side main{min-height:calc(100vh - 178px)}.hero-carousel,.contact-page,.not-found-page{padding-top:0}.carousel-frame{aspect-ratio:var(--carousel-ratio)}.contact-page,.not-found-page{padding-left:var(--frame-mobile-x);padding-right:var(--frame-mobile-x)}.stream-project{padding-right:var(--frame-mobile-x);padding-left:var(--frame-mobile-x)}.stream-project:not([data-has-thumbnail-rail]){--stream-mobile-rail-height:0px}.stream-project-anchor{scroll-margin-top:0}.stream-project-layout{gap:var(--frame-mobile-y);grid-template-columns:minmax(0,1fr);grid-template-areas:"rail""meta""media";display:grid}.stream-project-intro,.stream-project-body{display:contents}.stream-project-header{display:none}.stream-project-mobile-header{z-index:12;width:auto;height:var(--stream-mobile-header-height);margin-right:calc(var(--frame-mobile-x) * -1);margin-left:calc(var(--frame-mobile-x) * -1);padding:12px var(--frame-mobile-x) 8px;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#242424f5;align-content:center;gap:3px;display:grid;position:sticky;top:0}.stream-project-mobile-header .eyebrow{margin:0}.stream-project-mobile-header h2{min-width:0;color:var(--text);font-family:var(--font-thin);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:28px;font-weight:400;line-height:1.1;overflow:hidden}.stream-project-meta{grid-area:meta}.stream-media-column{grid-area:media}.stream-media-anchor{scroll-margin-top:calc(var(--stream-mobile-header-height) + var(--stream-mobile-rail-height))}.stream-thumbnail-rail{top:var(--stream-mobile-header-height);z-index:10;height:var(--stream-mobile-rail-height);max-height:none;margin-right:calc(var(--frame-mobile-x) * -1);margin-left:calc(var(--frame-mobile-x) * -1);padding:12px var(--frame-mobile-x);border-top:1px solid var(--border);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);scrollbar-width:none;background:#242424eb;overflow:auto hidden}.stream-thumbnail-rail::-webkit-scrollbar{display:none}.stream-thumbnail-list{align-items:center;gap:8px;width:max-content;min-width:100%;display:flex}.stream-thumbnail{flex:0 0 82px;width:82px}.stream-thumbnail:hover,.stream-thumbnail:focus-visible{transform:none}.responsive-screen-pair{grid-template-columns:minmax(0,65fr) minmax(150px,35fr)}.responsive-mobile-view{position:static}}@media (max-width:720px){body{font-size:14px}.brand-row{min-height:64px;padding-inline:var(--frame-compact-y)}.mobile-menu-button{right:var(--frame-mobile-x);left:auto}.brand-logo-mobile{width:74px}.portfolio-nav[data-open=true]{max-height:calc(100vh - 65px)}.carousel-frame{aspect-ratio:var(--carousel-ratio)}.carousel-controls{padding:10px 0 28px}.contact-page,.not-found-page{padding-left:var(--frame-mobile-x);padding-right:var(--frame-mobile-x)}.contact-panel h1,.contact-panel h2,.not-found-page h1{font-size:25px;line-height:1.22}.contact-panel p,.not-found-page p{font-size:17px}:root{--mobile-nav-height:65px;--stream-mobile-header-height:72px;--stream-mobile-rail-height:76px}.stream-thumbnail-rail{padding-top:10px;padding-bottom:10px}.mobile-home-return{width:44px;height:44px}.stream-project-mobile-header h2{font-size:25px;line-height:1.22}.stream-project-meta>p{font-size:15px}.stream-thumbnail{flex-basis:70px;width:70px}.app-screen-grid{margin-right:calc(var(--frame-mobile-x) * -1);margin-left:calc(var(--frame-mobile-x) * -1);padding:18px var(--frame-mobile-x) 22px;scroll-padding-inline:var(--frame-mobile-x);scroll-snap-type:x mandatory;scrollbar-width:none;gap:14px;display:flex;overflow-x:auto}.app-screen-grid::-webkit-scrollbar{display:none}.app-screen-button{scroll-snap-align:start;flex:0 0 min(78vw,320px)}.app-screen-frame{max-width:100%}.app-flow-header h3{font-size:18px}.app-flow-header p{font-size:14px}.case-study-media-grid{margin-right:calc(var(--frame-mobile-x) * -1);margin-left:calc(var(--frame-mobile-x) * -1);padding:18px var(--frame-mobile-x) 22px;scroll-padding-inline:var(--frame-mobile-x);scroll-snap-type:x mandatory;scrollbar-width:none;gap:14px;display:flex;overflow-x:auto}.case-study-media-grid::-webkit-scrollbar{display:none}.case-study-media-button,.case-study-media-button[data-wide=true]{scroll-snap-align:start;flex:0 0 min(82vw,520px)}.case-study-media-frame{width:100%!important}.case-study-chapter-header h3{font-size:18px}.case-study-chapter-header p{font-size:14px}.responsive-screen-pair{margin-right:calc(var(--frame-mobile-x) * -1);margin-left:calc(var(--frame-mobile-x) * -1);padding:18px var(--frame-mobile-x) 22px;scroll-padding-inline:var(--frame-mobile-x);scroll-snap-type:x mandatory;scrollbar-width:none;gap:14px;display:flex;overflow-x:auto}.responsive-screen-pair::-webkit-scrollbar{display:none}.responsive-screen-button{scroll-snap-align:start}.responsive-desktop-view{flex:0 0 min(84vw,520px)}.responsive-mobile-view{flex:0 0 min(72vw,320px)}.responsive-chapter-header h3{font-size:18px}.responsive-chapter-header p{font-size:14px}.contact-actions{grid-template-columns:minmax(0,1fr);display:grid}}@media (max-width:520px){.carousel-arrow{width:38px;height:38px}.carousel-dot{width:8px;height:8px}.site-footer{justify-content:stretch;display:grid}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}::view-transition-old(portfolio-navigation){animation:none}::view-transition-new(portfolio-navigation){animation:none}[data-stream-reveal]{opacity:1!important}.stream-thumbnail,.app-screen-frame,.responsive-screen-frame,.case-study-media-frame,.local-video-control,.mobile-home-return{transition:none}}
