@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e546cf32c9d4702c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d76fe899475ae4d7-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8048a25e80cc4179-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/87bc17f7c8b98e48-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/29b98dbfba401fa9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e546cf32c9d4702c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/d76fe899475ae4d7-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8048a25e80cc4179-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/87bc17f7c8b98e48-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/29b98dbfba401fa9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Unbounded;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/e546cf32c9d4702c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Unbounded;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/d76fe899475ae4d7-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/8048a25e80cc4179-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Unbounded;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/87bc17f7c8b98e48-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Unbounded;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/29b98dbfba401fa9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Unbounded Fallback;src:local("Arial");ascent-override:73.93%;descent-override:18.20%;line-gap-override:0.00%;size-adjust:134.59%}.__className_a3d577{font-family:Unbounded,Unbounded Fallback;font-style:normal}.__variable_a3d577{--font-display:"Unbounded","Unbounded Fallback"}

/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}:root{--paper:#f5f6fb;--paper-raised:#fff;--ink:#262a3b;--ink-soft:#4a4f63;--muted:#686d80;--line:#d9dcea;--signal:#4f63ff;--signal-ink:#3346e0;--glow:#f6b3df;--mark:#ff5b7f;--on-signal:#fff8f4;--font-body:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,system-ui,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;--font-display-stack:var(--font-display),var(--font-body);--gutter:clamp(16px,4vw,48px);--max:1200px;--radius-s:6px;--radius-l:14px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#12142a;--paper-raised:#1a1d38;--ink:#eef0fa;--ink-soft:#c9cce0;--muted:#9ea3bf;--line:#2e3257;--signal:#5a6dff;--signal-ink:#9aa7ff;--glow:#e79bd0;--mark:#ff7a96;color-scheme:dark}}:root[data-theme=dark]{--paper:#12142a;--paper-raised:#1a1d38;--ink:#eef0fa;--ink-soft:#c9cce0;--muted:#9ea3bf;--line:#2e3257;--signal:#5a6dff;--signal-ink:#9aa7ff;--glow:#e79bd0;--mark:#ff7a96;color-scheme:dark}html{scroll-behavior:smooth;scroll-padding-top:72px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.7}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--signal);outline-offset:3px;border-radius:4px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:50;background:var(--ink);color:var(--paper);border-radius:var(--radius-s);padding:8px 14px;text-decoration:none;position:absolute;top:-48px;left:16px}.skip-link:focus{top:12px}.wrap{max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.site-header{z-index:20;background:var(--paper);position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.site-header{background:color-mix(in srgb,var(--paper)86%,transparent)}}.site-header{-webkit-backdrop-filter:saturate(1.4)blur(10px);backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line)}.site-header-inner{max-width:var(--max);padding:12px var(--gutter);align-items:center;gap:24px;margin-inline:auto;display:flex}.wordmark{font-family:var(--font-display-stack);letter-spacing:.04em;align-items:center;gap:8px;font-size:15px;font-weight:800;text-decoration:none;display:inline-flex}.wordmark img{border-radius:50%;width:28px;height:28px}.site-nav{gap:22px;margin-left:auto;font-size:15px;display:flex}.site-nav a{color:var(--ink-soft);text-decoration:none}.site-nav a:hover{color:var(--ink);text-underline-offset:5px;text-decoration:underline}.lang-switch{border:1px solid var(--line);background:var(--paper-raised);border-radius:999px;padding:3px;display:flex}.lang-switch a{letter-spacing:.05em;color:var(--muted);text-align:center;border-radius:999px;min-width:36px;padding:5px 10px;font-size:12px;font-weight:600;text-decoration:none}.lang-switch a:hover{color:var(--ink)}.lang-switch a[aria-current]{background:var(--ink);color:var(--paper)}@media (max-width:760px){.site-nav{display:none}.lang-switch{margin-left:auto}}.hero{isolation:isolate;background:var(--signal);color:var(--on-signal);padding:clamp(72px,12vw,148px)var(--gutter)clamp(56px,8vw,96px);position:relative;overflow:hidden}.hero-glow{z-index:-1;pointer-events:none;background:radial-gradient(38% 42% at 8% 18%,var(--glow),transparent 70%),radial-gradient(30% 40% at 96% 82%,var(--glow),transparent 70%),radial-gradient(40% 30% at 50% 110%,#ffffff47,transparent 70%);position:absolute;inset:-20%}@supports (color:color-mix(in lab,red,red)){.hero-glow{background:radial-gradient(38% 42% at 8% 18%,color-mix(in srgb,var(--glow)85%,transparent),transparent 70%),radial-gradient(30% 40% at 96% 82%,color-mix(in srgb,var(--glow)80%,transparent),transparent 70%),radial-gradient(40% 30% at 50% 110%,#ffffff47,transparent 70%)}}.hero-glow{filter:blur(18px)}.hero-wire{z-index:-1;pointer-events:none;position:absolute}.hero-wire-a{width:clamp(150px,22vw,290px);top:clamp(-40px,2vw,24px);right:clamp(-40px,3vw,64px)}.hero-wire-b{opacity:.55;width:clamp(170px,22vw,300px);bottom:clamp(-170px,-10vw,-110px);left:clamp(-150px,-8vw,-90px)}.wire{fill:none;stroke:var(--on-signal);stroke-width:1.6px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;opacity:.85}.wire-back{opacity:.35}.hero-inner{max-width:var(--max);margin-inline:auto}.hero-title{font-family:var(--font-display-stack);letter-spacing:-.01em;text-shadow:0 0 28px #fff0fa8c;margin:0 0 clamp(28px,4vw,44px);font-size:clamp(40px,9.2vw,132px);font-weight:800;line-height:.98}.hero-mark{display:inline-block}.hero-role{flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 14px;font-size:clamp(16px,1.6vw,19px);font-weight:600;display:flex}.hero-sep{opacity:.7;background:currentColor;width:28px;height:1.5px}.hero-lead{opacity:.95;max-width:40em;margin:0;font-size:clamp(17px,1.8vw,21px);line-height:1.65}.hero-keywords{border-top:1px solid #fff8f473;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:clamp(40px,6vw,72px) 0 0;padding:22px 0 0;list-style:none;display:grid}.hero-keywords h2{margin:0 0 6px;font-size:17px;font-weight:700}.hero-keywords p{opacity:.88;margin:0;font-size:15px;line-height:1.6}.hero-links{gap:12px;margin:36px 0 0;display:flex}.hero-links a{border:1.5px solid var(--on-signal);border-radius:999px;padding:8px 18px;font-size:15px;font-weight:600;text-decoration:none}.hero-links a:hover{background:var(--on-signal);color:var(--signal-ink)}.email-link{position:relative}.email-tip{white-space:nowrap;background:var(--ink);color:var(--paper);border-radius:var(--radius-s);opacity:0;pointer-events:none;padding:7px 12px;font-size:14px;font-weight:500;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 10px);left:0;transform:translateY(4px)}.email-tip em{color:var(--glow);font-style:normal}.email-link:focus-visible .email-tip,.email-link:hover .email-tip,.email-tip[data-open]{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.email-tip{transition:none}}.hl{color:var(--ink);font-weight:700}.contact .hl,.hero .hl{color:inherit;font-weight:800}@media (max-width:760px){.hero-keywords{grid-template-columns:1fr;gap:18px}.hero-wire-a{opacity:.6}.hero-wire-b{display:none}}@media (prefers-reduced-motion:no-preference){.wire{animation:draw 1.6s cubic-bezier(.65,.05,.36,1) both;animation-delay:calc(var(--i,0)*40ms)}.hero-mark{animation:settle .9s cubic-bezier(.2,.8,.2,1) both}.hero-mark+.hero-mark{animation-delay:.12s}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes settle{0%{opacity:0;letter-spacing:.08em;filter:blur(6px)}to{opacity:1;letter-spacing:-.01em;filter:blur()}}}main>section{padding-block:clamp(64px,9vw,120px)}.section-title{letter-spacing:-.03em;margin:0 0 14px;font-size:clamp(30px,4.4vw,52px);font-weight:800;line-height:1.15}.section-intro{color:var(--muted);max-width:40em;margin:0 0 clamp(36px,5vw,56px);font-size:18px}.meta{color:var(--muted);margin:0;font-size:14px}.pill{background:var(--ink);color:var(--paper);border-radius:999px;margin:0 0 14px;padding:5px 14px;font-size:13px;font-weight:600;line-height:1.5;display:inline-block}.pill-quiet{color:var(--ink-soft);border:1px solid var(--line);background:0 0}main>.stats{border-bottom:1px solid var(--line);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;padding-block:36px;display:grid}.stats p{border-left:1px solid var(--line);flex-direction:column;gap:4px;margin:0;padding:4px 20px;display:flex}.stats p:first-of-type{border-left:0;padding-left:0}.stats strong{font-family:var(--font-display-stack);letter-spacing:-.02em;font-size:clamp(24px,2.8vw,34px);font-weight:700;line-height:1.2}.stats span{color:var(--muted);font-size:14px;line-height:1.5}@media (max-width:760px){main>.stats{grid-template-columns:1fr 1fr;grid-auto-flow:row;row-gap:22px}.stats p:nth-of-type(odd){border-left:0;padding-left:0}.stats p:last-of-type:nth-of-type(odd){grid-column:1/-1}}.project,.work{border-top:1px solid var(--line)}.project{grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:clamp(28px,4vw,64px);padding-block:clamp(48px,6vw,80px);display:grid}.project-head{align-self:start;position:sticky;top:88px}.project-name{letter-spacing:-.035em;margin:0 0 12px;font-size:clamp(32px,4vw,48px);font-weight:800;line-height:1.12}.project-tagline{color:var(--ink-soft);margin:0 0 24px;font-size:18px;line-height:1.55}.facts{border-top:1px solid var(--line);margin:0}.facts div{border-bottom:1px solid var(--line);grid-template-columns:5.5em 1fr;gap:12px;padding:10px 0;font-size:15px;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0;font-weight:500}.project-links{gap:16px;margin:18px 0 0;font-size:15px;font-weight:600;display:flex}.project-links a{text-underline-offset:4px}a.frame{cursor:zoom-in;display:block}.frame{border-radius:var(--radius-l);background:var(--paper-raised);border:1px solid var(--line);overflow:hidden}.frame img{width:100%;height:auto;display:block}figure{margin:0}figcaption{color:var(--muted);margin-top:10px;font-size:14px;line-height:1.5}.cover-tall .frame{max-width:260px}.project-summary{max-width:38em;margin:28px 0 0;font-size:18px}.improvements{gap:14px;margin:36px 0 0;padding:0;list-style:none;display:grid}.improvements li{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-l);padding:20px 22px}.improvements h4{margin:0 0 12px;font-size:17px}.improvement-badge{color:var(--signal-ink);margin:0 0 6px;font-size:13px;font-weight:700}.before-after{gap:8px;margin:0;display:grid}.before-after div{grid-template-columns:3.6em 1fr;gap:10px;font-size:15px;line-height:1.6;display:grid}.before-after dt{color:var(--muted);padding-top:2px;font-size:13px;font-weight:700}.before-after div:last-child dt{color:var(--signal-ink)}.before-after dd{margin:0}.before-after div:first-child dd{color:var(--muted)}.inline-metric{border-top:1px dashed var(--line);color:var(--ink-soft);margin:14px 0 0;padding-top:12px;font-size:14px}.inline-metric strong{font-family:var(--font-display-stack);color:var(--ink);margin-right:8px;font-size:20px}.results{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:12px 24px;margin-top:32px;display:grid}.results p{border-top:2px solid var(--ink);flex-direction:column;gap:2px;margin:0;padding-top:10px;display:flex}.results strong{font-family:var(--font-display-stack);letter-spacing:-.02em;font-size:26px;font-weight:700}.results span{color:var(--muted);font-size:14px;line-height:1.5}.quotes{gap:14px;margin-top:32px;display:grid}blockquote{border-left:3px solid var(--signal);margin:0;padding-left:18px}blockquote p{margin:0;font-size:17px}blockquote footer{color:var(--muted);margin-top:6px;font-size:14px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;margin-top:36px;display:grid}.gallery .tall .frame{max-width:200px}@media (max-width:560px){.gallery{grid-template-columns:1fr}}.lesson{border-radius:var(--radius-l);background:var(--signal);margin-top:32px;padding:20px 22px}@supports (color:color-mix(in lab,red,red)){.lesson{background:color-mix(in srgb,var(--signal)8%,var(--paper))}}.lesson h4{color:var(--signal-ink);margin:0 0 8px;font-size:16px}.lesson p{margin:0;font-size:16px}@media (max-width:900px){.project{grid-template-columns:1fr}.project-head{position:static}}.others-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px;margin:0;padding:0;list-style:none;display:grid}.others-grid .thumb{aspect-ratio:4/3;border-radius:var(--radius-l);border:1px solid var(--line);background:var(--paper-raised);display:block;overflow:hidden}.others-grid .thumb img{object-fit:cover;object-position:top;width:100%;height:100%}.others-grid h3{margin:16px 0 2px;font-size:19px}.others-grid h3 a{text-underline-offset:4px}.others-grid .meta+p{color:var(--ink-soft);margin:8px 0 0;font-size:15px}.more-link{color:var(--signal-ink);text-underline-offset:4px;margin-top:10px;font-size:14px;font-weight:600;display:inline-block}.others-grid li:first-child .thumb{border-color:var(--signal)}.contests{border-top:1px solid var(--line);grid-template-columns:1fr 2.4fr;gap:8px 32px;margin-top:48px;padding-top:20px;display:grid}.contests h3{margin:0;font-size:17px}.contests p{color:var(--ink-soft);margin:0}@media (max-width:900px){.others-grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.contests,.others-grid{grid-template-columns:1fr}}.early{border-top:1px solid var(--line)}.early-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}.early-item figure{margin-bottom:18px}.devhoon h3,.early-item h3{letter-spacing:-.02em;margin:0 0 8px;font-size:22px}.early-item h3 a{text-underline-offset:4px}.early-item>p:not(.pill){color:var(--ink-soft);margin:0;font-size:15px}.early-metrics{flex-wrap:wrap;align-items:baseline;gap:6px 18px;display:flex;margin-top:14px!important}.early-metrics strong{font-family:var(--font-display-stack);color:var(--ink);font-size:22px}.early-metrics small{color:var(--muted);font-size:13px}.devhoon{border-radius:var(--radius-l);background:var(--paper-raised);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:40px;margin-top:56px;padding:clamp(24px,3vw,40px);display:grid}.devhoon>div>p:not(.pill){color:var(--ink-soft);font-size:16px}.devhoon-shots{gap:20px;display:grid}.mini-timeline{margin:18px 0 0;padding:0;list-style:none}.mini-timeline li{border-top:1px solid var(--line);grid-template-columns:5em 1fr;gap:12px;padding:8px 0;font-size:15px;display:grid}.mini-timeline time{color:var(--muted);font-variant-numeric:tabular-nums}@media (max-width:900px){.devhoon,.early-grid{grid-template-columns:1fr}}.detail{padding-block:clamp(32px,5vw,64px) clamp(64px,9vw,120px)}.detail-back{text-underline-offset:4px;width:fit-content;margin-bottom:28px;font-size:15px;font-weight:600;display:block}.detail .project-summary{margin-top:0}.detail-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);align-items:start;gap:clamp(28px,4vw,64px);margin-top:clamp(28px,4vw,48px);display:grid}.detail-paragraph{max-width:38em;margin:24px 0 0;font-size:17px}.contact-compact{padding-block:40px}.contact-compact .detail-back{margin-bottom:0}.contact-compact .footer-note{margin-top:16px}@media (max-width:900px){.detail-grid{grid-template-columns:1fr}}.lightbox{background:0 0;border:0;width:fit-content;max-width:none;height:fit-content;max-height:none;margin:auto;padding:0;position:fixed;inset:0;overflow:visible}.lightbox::backdrop{background:#12142ad1}.lightbox figure{margin:0}.lightbox img{border-radius:var(--radius-s);background:var(--paper-raised);width:auto;max-width:min(94vw,1400px);height:auto;max-height:82vh;margin-inline:auto;display:block}.lightbox figcaption{color:#fff8f4;text-align:center;max-width:min(94vw,1400px);margin-top:12px}.lightbox-close{font:inherit;color:#fff8f4;cursor:pointer;background:0 0;border:1.5px solid #fff8f4;border-radius:999px;padding:8px 16px;font-size:15px;font-weight:600;position:fixed;top:16px;right:16px}.lightbox-close:hover{color:#262a3b;background:#fff8f4}.lightbox-count{color:#fff8f4;text-align:center;opacity:.8;margin:6px 0 0;font-size:14px}.lightbox-nav{width:48px;height:48px;font:inherit;color:#fff8f4;cursor:pointer;background:#12142a8c;border:1.5px solid #fff8f4;border-radius:999px;place-items:center;font-size:32px;line-height:1;display:grid;position:fixed;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{color:#262a3b;background:#fff8f4}.lightbox-prev{left:16px}.lightbox-next{right:16px}@media (min-width:701px){.lightbox figcaption,.lightbox img{max-width:min(100vw - 160px,1400px)}}@media (max-width:700px){.lightbox-nav{width:40px;height:40px;font-size:26px}.lightbox-prev{left:8px}.lightbox-next{right:8px}}.others-modal{width:min(100vw - 160px,1040px);max-width:none;max-height:none;color:var(--ink);background:0 0;border:0;margin:auto;padding:0;position:fixed;inset:0;overflow:visible}.others-modal::backdrop{background:#12142ad1}.others-modal-card{background:var(--paper-raised);border-radius:var(--radius-l);grid-template-columns:minmax(0,3fr) minmax(0,2fr);display:grid;overflow:hidden}.others-modal-shot{background:var(--paper);place-items:center;min-height:320px;display:grid}.others-modal-shot img{object-fit:contain;width:100%;max-height:72vh;display:block}.others-modal-body{flex-direction:column;gap:6px;padding:28px 28px 32px;display:flex}.others-modal-body h3{margin:0;font-size:24px}.others-modal-body .meta{margin:0}.others-modal-text{color:var(--ink-soft);margin:10px 0 0;font-size:16px;line-height:1.7}.others-modal-count{color:var(--ink-soft);margin:0 0 4px;font-size:13px}.others-modal-more{background:var(--signal);color:#fff;border-radius:999px;align-self:flex-start;margin-top:auto;padding:10px 18px;font-size:15px;font-weight:600;text-decoration:none}.others-modal-more:hover{filter:brightness(1.08)}@media (max-width:700px){.others-modal{width:calc(100vw - 24px)}.others-modal-card{grid-template-columns:1fr;max-height:calc(100vh - 140px);overflow-y:auto}.others-modal-shot{min-height:0}.others-modal-shot img{max-height:42vh}.others-modal-body{padding:20px 20px 24px}.others-modal-more{margin-top:14px}.others-modal .lightbox-nav{top:auto;bottom:16px;transform:none}}.timeline{border-top:1px solid var(--line)}.timeline ol{margin:0;padding:0;list-style:none;position:relative}.timeline li{border-bottom:1px solid var(--line);grid-template-columns:7em 1fr;gap:20px;padding:14px 0;display:grid}.timeline time{font-family:var(--font-display-stack);color:var(--signal-ink);padding-top:2px;font-size:15px;font-weight:500}.timeline li p{margin:0}.awards ul{gap:0;margin:0;padding:0;list-style:none;display:grid}.awards li{border-top:1px solid var(--line);grid-template-columns:7em 1fr;gap:20px;padding:18px 0;display:grid}.awards time{font-family:var(--font-display-stack);color:var(--muted);padding-top:3px;font-size:15px;font-weight:500}.awards h3{margin:0;font-size:18px}.awards li p:last-child{color:var(--ink-soft);margin:6px 0 0;font-size:15px}@media (max-width:560px){.awards li,.timeline li{grid-template-columns:1fr;gap:4px}}.contact{background:var(--ink);padding-block:clamp(64px,9vw,112px) 40px}.contact,.contact .section-title,.contact-body{color:var(--paper)}@supports (color:color-mix(in lab,red,red)){.contact-body{color:color-mix(in srgb,var(--paper)75%,transparent)}}.contact-body{margin:0 0 20px}.contact-email{font-family:var(--font-display-stack);letter-spacing:-.01em;border-bottom:3px solid var(--glow);overflow-wrap:anywhere;padding-bottom:4px;font-size:clamp(20px,4.2vw,48px);font-weight:700;text-decoration:none;display:inline-block}.contact-email:hover{color:var(--glow)}.contact-links{gap:18px;margin:28px 0 0;font-weight:600;display:flex}.contact-links a{text-underline-offset:4px}.contact-closing{max-width:34em;color:var(--paper);margin:56px 0 0}@supports (color:color-mix(in lab,red,red)){.contact-closing{color:color-mix(in srgb,var(--paper)80%,transparent)}}.footer-note{color:var(--paper);margin:40px 0 0;font-size:13px}@supports (color:color-mix(in lab,red,red)){.footer-note{color:color-mix(in srgb,var(--paper)55%,transparent)}}.fb-gate-backdrop{z-index:100;background:#12142a8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.fb-gate{background:var(--paper-raised);width:min(380px,100%);color:var(--ink);border-radius:var(--radius-l);padding:24px;box-shadow:0 24px 60px #12142a59}.fb-gate h2{margin:0 0 6px;font-size:20px}.fb-gate p{color:var(--ink-soft);margin:0 0 16px;font-size:15px}.fb-gate input{width:100%;font:inherit;border-radius:var(--radius-s);border:1.5px solid var(--line);background:var(--paper);color:var(--ink);padding:10px 12px}.fb-gate input[aria-invalid=true]{border-color:var(--mark)}.fb-gate .fb-gate-error{color:var(--mark);margin:8px 0 0;font-size:14px}.fb-gate-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.fb-gate-actions button{font:inherit;border:1.5px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;padding:8px 16px;font-size:15px;font-weight:600}.fb-gate-actions .primary{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}html:not([data-feedback]) [data-example]{display:none}.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--paper-raised)}.seg button{font:inherit;font-size:13px;font-weight:600;border:0;background:transparent;color:var(--muted);padding:6px 14px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s}.seg button:hover{color:var(--ink)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.seg.small button{font-size:12px;padding:4px 12px}.thumb-switch>.seg{margin:-20px 0 28px}.lab-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 32px}.lab-card{display:block;text-decoration:none;color:inherit}.lab-cover{position:relative;aspect-ratio:16/10;border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--line);background:var(--paper-raised);margin-bottom:20px}.lab-cover>*{position:absolute;inset:0;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .35s}.lab-cover .photo{object-fit:cover;object-position:top}.lab-cover .art{opacity:0}.thumb-switch[data-thumb=art] .lab-cover .art{opacity:1}.lab-card:hover .lab-cover>*{transform:scale(1.025)}.lab-card-text .pill{margin-bottom:12px}.lab-card-name{display:flex;align-items:baseline;gap:12px;font-size:clamp(24px,2.4vw,30px);font-weight:800;letter-spacing:-.035em;line-height:1.2;margin:0 0 8px}.lab-card-name span{font-size:.7em;color:var(--signal-ink);transition:transform .3s}.lab-card:hover .lab-card-name span{transform:translateX(5px)}.lab-card:hover .lab-card-name{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px;text-decoration-color:var(--signal)}.lab-card-tag{margin:0;color:var(--ink-soft);font-size:16px;line-height:1.6}.lab-card-facts{margin:16px 0 0;border-top:1px solid var(--line)}.lab-card-facts div{display:grid;grid-template-columns:4em 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.lab-card-facts dt{color:var(--muted)}.lab-card-facts dd{margin:0;font-weight:500}.lab-cards>li:first-child,.lab-cards>li:last-child:nth-child(2n){grid-column:1/-1}.lab-cards>li:first-child .lab-card,.lab-cards>li:last-child:nth-child(2n) .lab-card{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;align-items:center}.lab-cards>li:first-child .lab-cover,.lab-cards>li:last-child:nth-child(2n) .lab-cover{margin:0}.lab-cards>li:last-child:nth-child(2n) .lab-card{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}.lab-cards>li:last-child:nth-child(2n) .lab-cover{grid-column:2;grid-row:1}.lab-cards>li:last-child:nth-child(2n) .lab-card-text{grid-column:1;grid-row:1}.lab-cards>li:first-child .lab-card-name{font-size:clamp(32px,4vw,48px)}.lab-case{padding-block:clamp(28px,4vw,48px) 0}.lab-case-head{max-width:900px}.lab-case-head .project-name{font-size:clamp(44px,6.4vw,80px);line-height:1.05;margin-bottom:16px}.lab-case-head .project-tagline{font-size:clamp(18px,1.8vw,21px);max-width:40em}.lab-strip{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));margin:32px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.lab-strip div{padding:12px 16px 14px 0}.lab-strip div+div{padding-left:16px;border-left:1px solid var(--line)}.lab-strip dt{font-size:13px;color:var(--muted)}.lab-strip dd{margin:4px 0 0;font-weight:500;font-size:15px;line-height:1.5}.lab-stage{margin-top:clamp(32px,4vw,48px);padding:clamp(18px,4.5vw,56px);border-radius:calc(var(--radius-l) + 6px);background:color-mix(in srgb,var(--signal) 8%,var(--paper))}.lab-stage .frame{box-shadow:0 24px 60px -28px rgba(38,42,59,.45)}.lab-stage.is-tall figure{max-width:380px;margin-inline:auto}.lab-row,main>.lab-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:32px;padding-block:clamp(48px,6vw,72px);border-bottom:1px solid var(--line)}.lab-label{position:sticky;top:88px;align-self:start;margin:0;font-size:13px;font-weight:700;color:var(--signal-ink);letter-spacing:.02em}.lab-big{margin:0;font-size:clamp(19px,1.9vw,22px);line-height:1.7;max-width:38em}.lab-chapters{list-style:none;padding:0;margin:0;display:grid;gap:16px}.lab-chapters>li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px;align-items:start}.lab-num{font-family:var(--font-display-stack);font-weight:700;font-size:22px;color:var(--signal);padding-top:18px}.lab-ch-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-l);padding:22px 24px}.lab-ch-card h3{font-size:19px;font-weight:800;letter-spacing:-.02em;margin:0 0 14px}.lab-ba{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1.4fr);gap:8px;align-items:start}.lab-ba span:not(.lab-ba-arrow){display:block;font-size:13px;font-weight:700;margin-bottom:4px;color:var(--muted)}.lab-ba-after span{color:var(--signal-ink)!important}.lab-ba p{margin:0;font-size:15px;line-height:1.65}.lab-ba-before p{color:var(--muted)}.lab-ba-arrow{font-size:18px;color:var(--signal);text-align:center;padding-top:24px}.lab-results{margin-top:0;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.lab-results strong{font-size:clamp(30px,3.6vw,44px)}.lab-quotes{display:grid;gap:16px}.lab-quote{position:relative;margin:0;padding:26px 28px 24px;border-radius:var(--radius-l);background:var(--paper-raised);border:1px solid var(--line);overflow:hidden;isolation:isolate}.lab-quote blockquote{padding:0;border:0}.lab-quote blockquote:before{content:"“";display:block;font-family:var(--font-display-stack);font-weight:800;font-size:56px;line-height:.6;height:26px;color:var(--signal)}.lab-quote blockquote p{font-size:clamp(18px,1.8vw,21px);line-height:1.65}.lab-quote figcaption{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;font-size:14px;color:var(--muted)}.lab-quote figcaption:before{content:"";width:28px;height:1.5px;background:currentColor;opacity:.7}.lab-quote figcaption b{color:var(--ink)}.lab-quote.is-short{background:var(--signal);color:var(--on-signal);border-color:transparent;padding:clamp(28px,4vw,44px)}.lab-quote.is-short .hero-glow{inset:-40%}.lab-quote.is-short blockquote:before{color:var(--on-signal);opacity:.8}.lab-quote.is-short blockquote p{font-size:clamp(28px,3.6vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1.25;text-shadow:0 0 24px rgba(255,240,250,.45)}.lab-quote.is-short figcaption,.lab-quote.is-short figcaption b{color:var(--on-signal)}.lab-gallery{margin-top:0}.lab-lesson{margin:clamp(40px,5vw,64px) 0 0;padding:clamp(22px,3vw,32px)}.lab-lesson h4{font-size:18px}.lab-lesson p{font-size:17px;max-width:40em}.lab-next{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-block:clamp(40px,5vw,64px)}.lab-next-card{display:grid;grid-template-columns:128px 1fr;grid-template-rows:auto auto;column-gap:16px;align-items:center;padding:12px;border-radius:var(--radius-l);border:1px solid var(--line);background:var(--paper-raised);text-decoration:none;color:inherit;transition:border-color .2s,transform .3s}.lab-next-card:hover{border-color:var(--signal);transform:translateY(-2px)}.lab-next-cover{grid-row:1/span 2;position:relative;width:128px;aspect-ratio:16/10;border-radius:var(--radius-s);overflow:hidden}.lab-next-cover>*{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top}.lab-next-cover .art{display:none}.lab-next-card .meta{align-self:end;font-size:13px}.lab-next-card b{align-self:start;font-size:18px;font-weight:800;letter-spacing:-.02em}@media (max-width:900px){.lab-cards{grid-template-columns:minmax(0,1fr);gap:44px}.lab-cards>li:first-child .lab-card,.lab-cards>li:last-child:nth-child(2n) .lab-card{grid-template-columns:minmax(0,1fr);gap:0}.lab-cards>li:first-child .lab-cover,.lab-cards>li:last-child:nth-child(2n) .lab-cover{grid-column:auto;grid-row:auto;margin-bottom:20px}.lab-cards>li:last-child:nth-child(2n) .lab-card-text{grid-column:auto;grid-row:auto}.lab-row,main>.lab-row{grid-template-columns:minmax(0,1fr);gap:14px}.lab-label{position:static}.lab-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-strip div:nth-child(odd){padding-left:0;border-left:0}.lab-strip div:nth-child(n+3){border-top:1px solid var(--line)}.lab-ba{grid-template-columns:minmax(0,1fr)}.lab-ba-arrow{padding:0;text-align:left;transform:rotate(90deg);width:18px}.lab-chapters>li{grid-template-columns:minmax(0,1fr)}.lab-num{padding:0;font-size:18px}.lab-next{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.lab *{animation:none!important;transition:none!important}}.lab .lesson h4{font-weight:800}.lab4 .lab4-hero{padding:clamp(40px,6vw,72px) var(--gutter) clamp(36px,5vw,56px)}.lab4-hero .hero-title{font-size:clamp(38px,6.2vw,88px);margin-bottom:18px}.lab4-hero .hero-lead{font-size:clamp(16px,1.5vw,18px);max-width:36em}.lab4-hero .hero-links{margin-top:22px}.lab4-hero .hero-wire-a{width:clamp(110px,13vw,180px);top:12px;right:clamp(8px,3vw,40px);opacity:.7}.lab4-hero .hero-wire-b{display:none}.lab4-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:48px;align-items:end}.lab4-hero-stats{margin:0;display:grid;gap:0}.lab4-hero-stats div{display:flex;flex-direction:column;padding:12px 0;border-top:1px solid rgba(255,248,244,.45)}.lab4-hero-stats dd{margin:0;font-family:var(--font-display-stack);font-weight:700;font-size:clamp(26px,2.6vw,34px);line-height:1.15}.lab4-hero-stats dt{font-size:13.5px;line-height:1.45;opacity:.88;margin-top:2px}.lab4-sec,main>section.lab4-sec{padding-block:clamp(40px,5vw,64px);border-top:1px solid var(--line)}.lab4-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px 24px;flex-wrap:wrap;margin:0 0 18px}.lab4-head h2{margin:0;font-size:clamp(26px,3vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1.15}.lab4-head p{margin:0;color:var(--muted);font-size:15px}.lab4-h3{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin:30px 0 12px;font-size:16px;font-weight:800}.lab4-h3 span{font-size:13px;font-weight:500;color:var(--muted)}.lab4 em,.lab4-case em{font-style:normal;color:var(--mark);font-weight:600}.lab4-demos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.lab4-demo{margin:0}.lab4-demo .demo{height:232px}.lab4-demo figcaption{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:14px}.lab4-demo figcaption a{color:var(--signal-ink);font-weight:600;text-underline-offset:3px;white-space:nowrap}.lab4-videos{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:14px}.lab4-video{margin:0;min-width:0}.lab4-video.is-reel{grid-row:span 2}.lab4-poster{position:relative;aspect-ratio:16/9;border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--line);background:var(--ink)}.lab4-poster img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.7,.2,1)}.lab4-video:hover .lab4-poster img{transform:scale(1.03)}.lab4-dur{position:absolute;right:8px;bottom:8px;font-family:var(--font-display-stack);font-size:11.5px;font-weight:700;color:#fff8f4;background:rgba(18,20,42,.72);padding:3px 8px;border-radius:999px}.lab4-play{position:absolute;inset:0;margin:auto;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--on-signal);color:var(--signal);font-size:22px;padding-left:4px;box-shadow:0 10px 30px rgba(18,20,42,.35)}.lab4-video figcaption{margin-top:8px;display:flex;flex-direction:column;line-height:1.45}.lab4-video figcaption b{font-size:14px}.lab4-video figcaption b,.lab4-video figcaption span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab4-video figcaption span{font-size:12.5px;color:var(--muted)}.lab4-video.is-reel figcaption b{font-size:17px}.lab4-sys{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.lab4-sys-card{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit;min-width:0}.lab-ex-shot,.lab4-sys-card img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top;border-radius:var(--radius-l);border:1px solid var(--line);background:var(--paper-raised);margin-bottom:6px}.lab4-sys-card b{font-size:15px}.lab4-sys-card>span:last-child{font-size:13px;color:var(--ink-soft);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lab4-sys-card:hover b{color:var(--signal-ink);text-decoration:underline;text-underline-offset:3px}.lab-ex-shot{display:grid;place-items:center;text-align:center;padding:12px;font-size:13px;font-weight:600;color:var(--muted);border:1.5px dashed color-mix(in srgb,var(--muted) 55%,transparent);background:repeating-linear-gradient(135deg,transparent 0 10px,color-mix(in srgb,var(--line) 45%,transparent) 10px 11px)}.lab4-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 20px}.lab4-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;height:100%}.lab4-card .lab-cover{margin-bottom:12px}.lab4-card:hover .lab-cover>*{transform:scale(1.025)}.lab4-ctx{margin:0;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab4-card h3{display:flex;gap:8px;align-items:baseline;margin:2px 0 4px;font-size:21px;font-weight:800;letter-spacing:-.03em;line-height:1.25}.lab4-card h3 span{font-size:15px;color:var(--signal-ink);transition:transform .3s}.lab4-card:hover h3 span{transform:translateX(4px)}.lab4-tag{margin:0;font-size:14.5px;line-height:1.55;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lab4-chips{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:5px}.lab4-chips li{font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;border:1px solid var(--line);background:var(--paper-raised);color:var(--ink-soft)}.lab4-meta{margin:auto 0 0;padding-top:10px;font-size:13px;color:var(--muted)}.lab4 .thumb-switch>.seg{margin:-6px 0 18px}.lab4-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:48px}.lab4-notes,.lab4-rows{list-style:none;padding:0;margin:0}.lab4-notes li{padding:10px 0;border-bottom:1px solid var(--line)}.lab4-notes a{display:flex;justify-content:space-between;gap:12px;align-items:baseline;text-decoration:none}.lab4-notes a b{font-size:16px;font-weight:800;letter-spacing:-.02em}.lab4-notes a:hover b{color:var(--signal-ink)}.lab4-notes p{margin:2px 0 0;font-size:14px;color:var(--ink-soft);line-height:1.55}.lab4-rows a{display:grid;grid-template-columns:9.5em minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:14px}.lab4-rows b{font-weight:700}.lab4-rows b,.lab4-rows span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab4-rows span{color:var(--ink-soft)}.lab4-rows time{font-size:12.5px;color:var(--muted);white-space:nowrap}.lab4-rows a:hover b{color:var(--signal-ink)}.lab4 .timeline{border-top:1px solid var(--line)}.lab4-tl{column-count:2;column-gap:48px}.lab4 .lab4-tl li{break-inside:avoid;grid-template-columns:6em 1fr;gap:12px;padding:8px 0;font-size:15px}.lab4-contact{padding-block:48px 32px}.lab4-contact .contact-links{margin-top:18px}.lab4-contact .footer-note{margin-top:24px}.lab4-case-head{background:color-mix(in srgb,var(--signal) 6%,var(--paper));border-bottom:1px solid var(--line);padding:22px 0 26px}.lab4-case-head .detail-back{margin-bottom:14px}.lab4-case-title{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:40px;align-items:end}.lab4-case-title .pill{margin-bottom:10px}.lab4-case-title .project-name{font-size:clamp(36px,4.6vw,56px);margin:0 0 6px}.lab4-case-title .project-tagline{margin:0;font-size:17px}.lab4-case-facts{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.lab4-case-facts div{padding:8px 0;border-top:1px solid var(--line)}.lab4-case-facts dt{font-size:12.5px;color:var(--muted)}.lab4-case-facts dd{margin:1px 0 0;font-size:14.5px;font-weight:500;line-height:1.45}.lab4-links{display:flex;flex-wrap:wrap;gap:4px 12px}.lab4-links a{color:var(--signal-ink);font-weight:600;text-underline-offset:3px}.lab4-body{display:grid;grid-template-columns:170px minmax(0,1fr);gap:44px;padding-top:28px}.lab4-aside{position:sticky;top:84px;align-self:start}.lab-toc ol{list-style:none;padding:0;margin:0}.lab-toc a{display:block;padding:6px 12px;border-left:2px solid var(--line);font-size:14px;color:var(--muted);text-decoration:none;transition:color .2s,border-color .2s}.lab-toc a:hover{color:var(--ink)}.lab-toc a[aria-current=true]{color:var(--ink);font-weight:700;border-left-color:var(--signal)}.lab4-content{max-width:920px;min-width:0}.lab4-block{padding:26px 0;border-bottom:1px solid var(--line);scroll-margin-top:84px}.lab4-block:first-child{padding-top:0}.lab4-cover .frame{box-shadow:0 18px 44px -26px rgba(38,42,59,.45)}.lab4-summary{margin:18px 0 0;font-size:18px;line-height:1.7;max-width:40em}.lab4-label{margin:0 0 12px;font-size:13px;font-weight:800;color:var(--signal-ink);letter-spacing:.02em}.lab4-points{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lab4-points li{background:var(--paper-raised);border:1px solid var(--line);border-radius:12px;padding:13px 16px}.lab4-kind{font-size:12px;font-weight:700;color:var(--signal-ink)}.lab4-points b{display:block;font-size:16px;font-weight:800;letter-spacing:-.02em;margin-top:2px}.lab4-points p{margin:3px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.lab-ex,.lab4-points li.lab-ex{background:transparent;border:1.5px dashed color-mix(in srgb,var(--muted) 55%,transparent)}.lab-ex .lab4-kind{color:var(--mark)}.lab-ex p{color:var(--muted)}.lab4-case-videos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.lab4-changes{list-style:none;padding:0;margin:0;display:grid;gap:10px}.lab4-changes>li{background:var(--paper-raised);border:1px solid var(--line);border-radius:12px;padding:14px 18px}.lab4-ch-title{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}.lab4-ch-title .lab-num{font-size:15px;padding:0}.lab4-ch-title h3{margin:0;font-size:17px;font-weight:800;letter-spacing:-.02em}.lab4-ch-title .improvement-badge{margin:0 0 0 auto;font-size:12px}.lab4-changes .lab-ba p{font-size:14.5px}.lab4-changes .lab-ba-arrow{padding-top:20px}.lab4-changes .inline-metric{margin-top:10px;padding-top:8px}.lab4-results{margin-top:0;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.lab4-results strong{font-size:clamp(26px,2.6vw,32px)}.lab4-quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;align-items:stretch}.lab4-quotes .lab-quote{padding:18px 20px}.lab4-quotes .lab-quote blockquote p{font-size:16.5px}.lab4-quotes .lab-quote.is-short{display:flex;flex-direction:column;justify-content:center}.lab4-quotes .lab-quote.is-short blockquote p{font-size:clamp(24px,2.4vw,30px)}.lab4-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}.lab4-gallery figcaption{font-size:12.5px;margin-top:6px}.lab4-gallery .tall .frame{max-width:150px}.lab4-lesson{margin:26px 0 0;padding:18px 20px}.lab4-lesson h4,.lab4-lesson p{font-size:16px}.lab4-next{padding-block:28px 8px}@media (max-width:1100px){.lab4-demos,.lab4-sys,.lab4-videos{grid-template-columns:repeat(2,minmax(0,1fr))}.lab4-video.is-reel{grid-column:1/-1;grid-row:auto}.lab4-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.lab4-hero-grid{grid-template-columns:minmax(0,1fr);gap:24px}.lab4-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:14px}.lab4-split{grid-template-columns:minmax(0,1fr);gap:32px}.lab4-tl{column-count:1}.lab4-case-title{gap:16px}.lab4-body,.lab4-case-title{grid-template-columns:minmax(0,1fr)}.lab4-body{gap:0;padding-top:0}.lab4-aside{position:sticky;top:56px;z-index:5;margin:0 calc(-1 * var(--gutter));padding:8px var(--gutter);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.lab-toc ol{display:flex;gap:4px;overflow-x:auto}.lab-toc a{border-left:0;border-bottom:2px solid transparent;white-space:nowrap;padding:6px 10px}.lab-toc a[aria-current=true]{border-bottom-color:var(--signal)}.lab4-block:first-child{padding-top:20px}.lab4-case-videos,.lab4-points{grid-template-columns:minmax(0,1fr)}.lab4-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.lab4-cards,.lab4-demos,.lab4-sys{grid-template-columns:minmax(0,1fr)}.lab4-rows a{grid-template-columns:minmax(0,1fr) auto}.lab4-rows span{grid-column:1/-1;grid-row:2}.lab4-hero-stats dd{font-size:22px}.lab4-hero-stats dt{font-size:12px}}.lab4-cover .frame img{max-height:460px;object-fit:cover;object-position:top}.lab4-cover .cover-tall .frame img{max-height:none}.board-grid li>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab4-sys-card.lab-ex{border:0}.lab5-bento{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-flow:dense;gap:22px}.lab5-bento>li{grid-column:span 2;min-width:0}.lab5-bento>li.is-big{grid-column:span 4;grid-row:span 2}.lab5-bento>li.is-wide{grid-column:span 3}.lab5-bento>li.is-wide-l{grid-column:span 4}.lab5-bento>li.is-tall{grid-column:span 2;grid-row:span 2}.lab5-card{display:flex;flex-direction:column;height:100%;text-decoration:none;color:inherit}.lab5-card .lab-cover{margin-bottom:12px}.lab5-card:hover .lab-cover>*{transform:scale(1.025)}.lab5-card:hover h3 span{transform:translateX(4px)}.lab5-text{display:flex;flex-direction:column;flex:none}.lab5-card h3{display:flex;gap:8px;align-items:baseline;margin:2px 0 4px;font-size:21px;font-weight:800;letter-spacing:-.03em;line-height:1.25}.lab5-card h3 span{font-size:15px;color:var(--signal-ink);transition:transform .3s}.lab5-card .lab4-meta{margin-top:10px;padding-top:0}.lab5-bento .is-big .lab-cover,.lab5-bento .is-tall .lab-cover{aspect-ratio:auto;flex:1 1 auto;min-height:300px}.lab5-bento .is-big h3{font-size:clamp(28px,3vw,38px)}.lab5-bento .is-big .lab4-tag{font-size:16px;-webkit-line-clamp:3}.lab5-bento .is-tall .lab-cover{min-height:420px}.lab5-bento .is-wide .lab5-card,.lab5-bento .is-wide-l .lab5-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:stretch}.lab5-bento .is-wide-l .lab5-card{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.lab5-bento .is-wide .lab-cover,.lab5-bento .is-wide-l .lab-cover{aspect-ratio:auto;min-height:210px;margin:0}.lab5-bento .is-wide .lab5-text,.lab5-bento .is-wide-l .lab5-text{justify-content:center}.lab-art{margin:0;display:flex;flex-direction:column;min-width:0}.lab-art-media{position:relative;display:block;aspect-ratio:16/10;border-radius:var(--radius-l);overflow:hidden;border:1px solid var(--line);background:var(--paper-raised);cursor:zoom-in}.lab-art-media img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:transform .5s cubic-bezier(.2,.7,.2,1)}.lab-art-media:hover img{transform:scale(1.03)}.lab-art figcaption{margin-top:8px;display:flex;flex-direction:column;line-height:1.4}.lab-art figcaption b{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-art figcaption span{font-size:12.5px;color:var(--muted)}.lab-art-ex .lab-art-media{display:grid;place-items:center;cursor:default;border:1.5px dashed color-mix(in srgb,var(--muted) 55%,transparent);background:repeating-linear-gradient(135deg,transparent 0 10px,color-mix(in srgb,var(--line) 45%,transparent) 10px 11px)}.lab-art-ex .lab-art-media span{font-size:13px;font-weight:700;color:var(--mark);background:var(--paper);padding:3px 10px;border-radius:999px}.lab-art-ex figcaption b{color:var(--muted)}.lab5-more{font-weight:700;font-size:15px;color:var(--signal-ink);text-underline-offset:4px}.lab5-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.lab5-preview>.lab-art:first-child{grid-column:span 2;grid-row:span 2}.lab5-preview>.lab-art:first-child .lab-art-media{aspect-ratio:auto;flex:1 1 auto;min-height:280px}.lab5-preview>.lab-art:first-child figcaption b{font-size:17px}.lab5-arts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.lab5-design{padding-block:28px 56px}.lab-filter>.seg{margin-bottom:20px}.lab5-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 16px}.lab5-note{margin:28px 0 0;font-size:13px;color:var(--muted)}.lab-ba{grid-template-columns:minmax(0,1fr) 44px minmax(0,1.4fr)}.lab-change{display:grid;place-items:center;padding-top:16px}.lab-change svg{width:32px;height:32px}.lab-change circle{fill:var(--signal)}.lab-change path{fill:none;stroke:var(--on-signal);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}@media (max-width:1100px){.lab5-bento{grid-template-columns:repeat(2,minmax(0,1fr))}.lab5-bento>li,.lab5-bento>li.is-tall,.lab5-bento>li.is-wide{grid-column:span 1;grid-row:auto}.lab5-bento>li.is-big,.lab5-bento>li.is-wide-l{grid-column:span 2;grid-row:auto}.lab5-bento .is-tall .lab-cover{min-height:0;aspect-ratio:16/10}.lab5-bento .is-wide .lab5-card{display:flex}.lab5-bento .is-wide .lab-cover{aspect-ratio:16/10;margin-bottom:12px}.lab5-wall{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:900px){.lab-ba{grid-template-columns:minmax(0,1fr)}.lab-change{padding:2px 0;justify-items:start}.lab-change svg{transform:rotate(90deg);width:30px;height:30px}.lab5-arts,.lab5-preview{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.lab5-bento{grid-template-columns:minmax(0,1fr)}.lab5-bento>li,.lab5-bento>li.is-big,.lab5-bento>li.is-wide-l{grid-column:auto}.lab5-bento .is-big .lab-cover{min-height:0;aspect-ratio:16/10;flex:none}.lab5-bento .is-wide-l .lab5-card{display:flex}.lab5-bento .is-wide-l .lab-cover{aspect-ratio:16/10;margin-bottom:12px}.lab5-preview>.lab-art:first-child{grid-column:span 2;grid-row:auto}.lab5-preview>.lab-art:first-child .lab-art-media{aspect-ratio:16/10;min-height:0}.lab5-wall{grid-template-columns:repeat(2,minmax(0,1fr))}}.lab-cover.is-portrait .photo{object-fit:contain;object-position:center}.lab-art-media,.lab-cover.is-portrait .photo{background:color-mix(in srgb,var(--signal) 5%,var(--paper-raised))}.lab-art-media img{object-fit:contain;object-position:center}.lab-art.is-video .lab-art-media img{object-fit:cover}.lab-ba{grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);gap:10px;align-items:stretch}.lab-ba-after,.lab-ba-before{padding:12px 14px;border-radius:10px}.lab-ba-before{background:var(--paper)}.lab-ba-after{background:color-mix(in srgb,var(--signal) 7%,var(--paper-raised))}.lab-change{align-self:center;justify-self:center;padding:0}.lab6-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:214px;grid-auto-flow:dense;gap:16px}.lab6-wall>.lab-art{height:100%;min-height:0}.lab6-wall>.lab-art .lab-art-media{aspect-ratio:auto;flex:1 1 auto;min-height:0}.lab6-wall>.lab-art figcaption{flex:none}.lab6-wall>[data-size=wide]{grid-column:span 2}.lab6-wall>[data-size=tall]{grid-row:span 2}.lab6-wall>[data-size=big]{grid-column:span 2;grid-row:span 2}.lab6-wall>[data-size=big] figcaption b{font-size:17px}@media (max-width:900px){.lab-ba{grid-template-columns:minmax(0,1fr)}.lab-change{justify-self:center;padding:2px 0}}@media (max-width:1100px){.lab6-wall{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.lab6-wall{grid-auto-rows:158px;gap:12px}.lab5-bento,.lab6-wall{grid-template-columns:repeat(2,minmax(0,1fr))}.lab5-bento{gap:22px 12px}.lab5-bento>li.m-full,.lab5-bento>li.m-row{grid-column:1/-1;grid-row:auto}.lab5-bento>li.m-half{grid-column:span 1;grid-row:auto}.lab5-bento>li.m-tall{grid-column:span 1;grid-row:span 2}.lab5-bento>li .lab5-card{display:flex;flex-direction:column}.lab5-bento>li.m-full .lab-cover{aspect-ratio:16/10;min-height:0;flex:none;margin:0 0 12px}.lab5-bento>li.m-half .lab-cover{aspect-ratio:4/3;min-height:0;flex:none;margin:0 0 8px}.lab5-bento>li.m-tall .lab-cover{aspect-ratio:auto;flex:1 1 auto;min-height:220px;margin:0 0 8px}.lab5-bento>li.m-half h3,.lab5-bento>li.m-tall h3{font-size:17px}.lab5-bento>li.m-half .lab4-chips,.lab5-bento>li.m-half .lab4-tag,.lab5-bento>li.m-tall .lab4-chips{display:none}.lab5-bento>li.m-tall .lab4-tag{font-size:13px;-webkit-line-clamp:3}.lab5-bento>li.m-half .lab4-meta,.lab5-bento>li.m-tall .lab4-meta{font-size:12px;margin-top:4px}.lab5-bento>li.m-row .lab5-card{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:12px;align-items:center}.lab5-bento>li.m-row .lab-cover{aspect-ratio:1/1;min-height:0;flex:none;margin:0}.lab5-bento>li.m-row .lab4-chips{display:none}.lab5-bento>li.m-row h3{font-size:18px}.lab5-bento>li.m-row .lab4-tag{font-size:13.5px}}.lab-art.is-video .lab-art-media{background:#12142a}.lab-art.is-video .lab-art-media img{object-fit:contain}.lab4-cover .frame{background:color-mix(in srgb,var(--signal) 5%,var(--paper-raised))}.lab4-cover .frame img{object-fit:contain;object-position:center}@media (max-width:640px){.lab5-bento>li.m-half .lab-cover{aspect-ratio:16/11}.lab5-bento>li.m-row .lab-cover{aspect-ratio:4/3}.lab5-bento>li.m-half h3,.lab5-bento>li.m-tall h3{display:block}.lab5-bento>li.m-half h3 span,.lab5-bento>li.m-tall h3 span{margin-left:4px}}@media (min-width:1101px){.lab5-bento>li.is-feature{grid-column:span 4;grid-row:span 2}.lab5-bento>li.is-feature .lab5-card{display:flex;flex-direction:column}.lab5-bento>li.is-feature .lab-cover{aspect-ratio:2.2/1;min-height:0;flex:none;margin:0 0 14px}.lab5-bento>li.is-feature h3{font-size:clamp(26px,2.6vw,32px)}}@media (min-width:641px) and (max-width:1100px){.lab5-bento>li.is-feature{grid-column:span 2;grid-row:auto}.lab5-bento>li.is-feature .lab5-card{display:flex}.lab5-bento>li.is-feature .lab-cover{aspect-ratio:16/10;margin-bottom:12px}}