@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}}}@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{.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,)}}: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}.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}