@font-face{font-family:Inter;font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/inter-latin-Dx4kXJAl.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:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-tight-latin-DX-nOvPD.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:Anton;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/anton-latin-Byf51wtH.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}:root{--bg:#e9e9e6;--bg-top:#efefec;--bg-bottom:#e2e2de;--ink:#141414;--ink-soft:#4a4a46;--ink-faint:#1414146b;--surface:#fff;--line:#14141424;--sans:"Inter", system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--display:"Anton", "Inter Tight", "Helvetica Neue", Arial, sans-serif;--nav-x:clamp(22px, 6.1vw, 96px);--nav-pad-x:clamp(9px, 1.05vw, 15px);--nav-mt:clamp(8px, .8vw, 12px);--nav-h:clamp(48px, 4.5vw, 66px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);color:var(--ink);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.4}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background-color:var(--bg);margin:0;overflow-x:clip}#root{min-height:100%}a{color:inherit;text-decoration:none}img{max-width:none;display:block}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}@media (width<=560px){:root{--nav-x:14px;--nav-pad-x:8px}}.about{--ink:#f6f6f3;--ink-soft:#f6f6f3b3;--ink-faint:#f6f6f36b;--line:#ffffff29;min-height:100svh;color:var(--ink);padding:calc(var(--nav-mt) + var(--nav-h) + clamp(8px, 1vw, 18px)) var(--nav-x) clamp(40px, 6svh, 80px) calc(var(--nav-x) + var(--nav-pad-x));background:#0b0b0b;grid-template-rows:auto 1fr;row-gap:clamp(16px,3svh,44px);display:grid;position:relative}.about__label{letter-spacing:-.005em;color:var(--ink);margin:0;font-size:clamp(14px,1.32vw,19px);line-height:1.35}.about__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-self:center;align-items:center;gap:clamp(26px,4.6vw,72px);display:grid}.about__title{letter-spacing:-.035em;margin:0;font-size:clamp(37px,5.06vw,70px);font-weight:700;line-height:1.02}.about__role{letter-spacing:-.01em;color:var(--ink-soft);align-items:center;margin:clamp(10px,1vw,16px) 0 0;font-size:clamp(18px,1.65vw,24px);font-weight:500;display:flex}.about__caret{background:currentColor;width:2px;height:.92em;margin-left:.14em;animation:1.05s step-end infinite about-caret;display:inline-block}@keyframes about-caret{0%,49%{opacity:1}50%,to{opacity:0}}.about__bio{max-width:54ch;color:var(--ink-soft);margin:clamp(16px,1.8vw,26px) 0 0;font-size:clamp(15px,1.16vw,18px);line-height:1.68}.about__actions{flex-wrap:wrap;gap:clamp(10px,1vw,14px);margin-top:clamp(24px,3vw,40px);display:flex}.about__btn{letter-spacing:-.005em;border:1px solid #0000;border-radius:clamp(9px,.8vw,12px);justify-content:center;align-items:center;gap:clamp(8px,.8vw,12px);height:clamp(46px,3.4vw,54px);padding:0 clamp(18px,1.6vw,26px);font-size:clamp(13px,.95vw,15px);font-weight:600;transition:background-color .22s,border-color .22s,color .22s;display:inline-flex}.about__btn:where(button){color:inherit;cursor:pointer;background:0 0;font-family:inherit}.about__btn svg{width:1.05em;height:1.05em;transition:transform .22s}.about__btn--solid{color:#101010;background:#f6f6f3}.about__btn--solid:hover{background:#d5d5d0}.about__btn--solid:hover svg{transform:translate(3px)}.about__btn--ghost{color:var(--ink);border-color:#ffffff4d}.about__btn--ghost:hover{background:#ffffff12;border-color:#ffffff9e}.about__btn--ghost:hover svg{transform:translateY(2px)}.about__plate{right:var(--media-gutter);bottom:var(--media-gutter);left:var(--media-gutter);z-index:4;-webkit-backdrop-filter:blur(16px)saturate(130%);background:#0c0c0c6b;border-radius:clamp(9px,.8vw,12px);justify-content:space-between;align-items:center;gap:clamp(10px,1vw,18px);min-height:clamp(40px,3.1vw,48px);padding:0 clamp(6px,.6vw,9px);transition:background-color .3s;display:flex;position:absolute;box-shadow:inset 0 1px #ffffff24}.about__socials{align-items:center;gap:clamp(1px,.25vw,4px);display:flex}.about__social{color:#fff;opacity:.74;border-radius:999px;justify-content:center;align-items:center;width:clamp(28px,2.2vw,32px);height:clamp(28px,2.2vw,32px);transition:opacity .2s,background-color .2s,transform .2s;display:inline-flex}.about__social svg{width:clamp(16px,1.25vw,18px);height:clamp(16px,1.25vw,18px)}.about__social:hover,.about__social:focus-visible{opacity:1;background:#ffffff24;transform:translateY(-1px)}.about__plateLabel{letter-spacing:.17em;text-transform:uppercase;white-space:nowrap;color:#f6f6f38c;padding-right:clamp(6px,.6vw,10px);font-size:clamp(9px,.7vw,10px);font-weight:500;line-height:1}@media (hover:hover) and (pointer:fine){.about__media:hover .about__plate{background-color:#08080899}}.about__media{--media-radius:clamp(18px, 1.7vw, 26px);--media-gutter:clamp(13px, 1.2vw, 18px);aspect-ratio:.771;border-radius:var(--media-radius);justify-self:end;width:min(100%,min(74svh,640px)/1.29702);position:relative;overflow:hidden;box-shadow:0 0 90px -30px #ffffff2e}.about__media:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(58% 52% at 50% 42%,#ffffff2b 0%,#ffffff0f 54%,#fff0 78%);position:absolute;inset:0}.about__media:after{content:"";z-index:3;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23g)' opacity='0.13'/%3E%3C/svg%3E"),linear-gradient(#04040400 52%,#04040485 80%,#040404e0 100%),radial-gradient(118% 96% at 50% 34%,#0000 42%,#00000080 100%);position:absolute;inset:0}.about__photo{z-index:1;filter:grayscale()contrast(1.02);transform-origin:50% 42%;will-change:transform;width:125%;height:auto;transition:transform .75s cubic-bezier(.22,.61,.36,1);position:absolute;top:0;left:-12.5%}@media (hover:hover) and (pointer:fine){.about__media:hover .about__photo{transform:scale(1.04)}}@media (width<=900px){.about{grid-template-rows:auto auto}.about__grid{grid-template-columns:minmax(0,1fr);align-self:start;gap:clamp(24px,4vw,36px)}.about__media{justify-self:start;width:min(100%,340px)}}@media (width<=560px){.about__media{width:min(100%,300px)}.about__title{font-size:clamp(33px,9.24vw,44px)}}@media (prefers-reduced-motion:reduce){.about__photo,.about__social,.about__plate,.about__btn svg{transition:none}.about__caret{animation:none}}.experience{background:var(--surface);min-height:100svh;color:var(--ink);padding:calc(var(--nav-mt) + var(--nav-h) + clamp(8px, 1vw, 18px)) var(--nav-x) clamp(48px, 8svh, 96px) calc(var(--nav-x) + var(--nav-pad-x));grid-template-rows:auto 1fr;row-gap:clamp(16px,3svh,44px);display:grid;position:relative}.experience:before{content:"";top:0;right:var(--nav-x);left:var(--nav-x);background:var(--line);pointer-events:none;height:1px;position:absolute}.experience__label{letter-spacing:-.005em;color:var(--ink);margin:0;font-size:clamp(14px,1.32vw,19px);line-height:1.35}.experience__inner{flex-direction:column;align-self:center;gap:clamp(28px,4.4svh,56px);display:flex}.experience__head{grid-template-columns:minmax(0,1fr) minmax(0,.92fr);align-items:start;gap:clamp(24px,4.6vw,80px);display:grid}.experience__lede{flex-direction:column;gap:clamp(14px,1.6vw,22px);display:flex}.experience__title{letter-spacing:-.035em;max-width:13ch;margin:0;font-size:clamp(38px,5.06vw,70px);font-weight:700;line-height:1.02}.experience__count{letter-spacing:.14em;text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--ink-faint);margin:0;font-size:clamp(10px,.78vw,12px);font-weight:500;line-height:1.4}.experience__bio{max-width:46ch;color:var(--ink-soft);margin:0;font-size:clamp(15px,1.16vw,18px);line-height:1.68}.experience__note{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);align-items:flex-start;gap:clamp(8px,.8vw,12px);margin:clamp(16px,1.8vw,24px) 0 0;font-size:clamp(10px,.78vw,12px);font-weight:500;line-height:1.4;display:flex}.experience__note-dot{background:var(--ink);border-radius:50%;flex:none;width:6px;height:6px;margin-top:.52em;animation:2.4s ease-in-out infinite experience-pulse}@keyframes experience-pulse{0%,to{opacity:1}50%{opacity:.35}}.experience__list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.experience__row{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"index meta meta""index role period""index summary summary";align-items:baseline;column-gap:clamp(14px,2vw,32px);padding:clamp(20px,2.2vw,30px) 0;display:grid}.experience__index{letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--ink-faint);grid-area:index;font-size:clamp(10px,.78vw,12px);font-weight:500;line-height:1.4}.experience__meta{letter-spacing:.14em;text-transform:uppercase;min-width:0;color:var(--ink-faint);grid-area:meta;margin:0;font-size:clamp(10px,.78vw,12px);font-weight:500;line-height:1.4}.experience__role{font-family:var(--display);letter-spacing:.005em;text-transform:uppercase;grid-area:role;margin:clamp(6px,.6vw,10px) 0 0;font-size:clamp(24px,2.75vw,40px);font-weight:400;line-height:1}.experience__summary{max-width:68ch;color:var(--ink-soft);grid-area:summary;margin:clamp(8px,.8vw,12px) 0 0;font-size:clamp(14px,1.02vw,16px);line-height:1.6}.experience__period{letter-spacing:.1em;text-transform:uppercase;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;color:var(--ink-soft);grid-area:period;margin:0;font-size:clamp(10px,.78vw,12px);font-weight:500;line-height:1.4}.experience__period--now{color:var(--ink)}.experience__period--now:before{content:"";vertical-align:.1em;background:var(--ink);border-radius:50%;width:6px;height:6px;margin-right:clamp(6px,.6vw,9px);animation:2.4s ease-in-out infinite experience-pulse;display:inline-block}@media (width<=900px){.experience{grid-template-rows:auto auto;align-content:start}.experience__inner{align-self:start}.experience__head{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(18px,3vw,26px)}.experience__title{max-width:18ch}.experience__bio{max-width:60ch}.experience__row{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"index meta""index role""index period""index summary"}.experience__period{text-align:left;margin-top:clamp(6px,1vw,10px)}}@media (width<=560px){.experience__title{font-size:clamp(30px,8.4vw,40px)}.experience__role{font-size:clamp(22px,7vw,30px)}.experience__row{column-gap:12px}.experience__period{letter-spacing:.08em}}@media (prefers-reduced-motion:reduce){.experience__note-dot,.experience__period--now:before{animation:none}}.footer{--ink:#f6f6f3;--ink-soft:#f6f6f3b3;--ink-faint:#f6f6f36b;--line:#ffffff29;min-height:clamp(430px,64svh,720px);color:var(--ink);padding:calc(var(--nav-mt) + var(--nav-h) + clamp(8px, 1vw, 18px)) var(--nav-x) clamp(24px, 3.4svh, 40px) calc(var(--nav-x) + var(--nav-pad-x));background:#0b0b0b;grid-template-rows:auto 1fr auto;row-gap:clamp(20px,3.4svh,48px);display:grid;position:relative}.footer__label{letter-spacing:-.005em;color:var(--ink);margin:0;font-size:clamp(14px,1.32vw,19px);line-height:1.35}.footer__inner{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-self:center;align-items:end;gap:clamp(28px,5vw,90px);display:grid}.footer__title{letter-spacing:-.038em;max-width:15ch;margin:0;font-size:clamp(36px,5.2vw,72px);font-weight:700;line-height:.98}.footer__lede{max-width:46ch;color:var(--ink-soft);margin:clamp(14px,1.6vw,22px) 0 0;font-size:clamp(15px,1.16vw,18px);line-height:1.68}.footer__actions{flex-wrap:wrap;gap:clamp(10px,1vw,14px);margin-top:clamp(22px,2.6vw,34px);display:flex}.footer__btn{letter-spacing:-.005em;border:1px solid #0000;border-radius:clamp(9px,.8vw,12px);justify-content:center;align-items:center;gap:clamp(8px,.8vw,12px);height:clamp(46px,3.4vw,54px);padding:0 clamp(18px,1.6vw,26px);font-size:clamp(13px,.95vw,15px);font-weight:600;transition:background-color .22s,border-color .22s,color .22s;display:inline-flex}.footer__btn svg{width:1.05em;height:1.05em;transition:transform .22s}.footer__btn--solid{color:#101010;background:#f6f6f3}.footer__btn--solid:hover{background:#d5d5d0}.footer__btn--solid:hover svg{transform:translate(3px)}.footer__btn--ghost{color:var(--ink);border-color:#ffffff4d}.footer__btn--ghost:hover{background:#ffffff12;border-color:#ffffff9e}.footer__btn--ghost:hover svg{transform:translateY(-2px)}.footer__note{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:clamp(8px,.8vw,12px);margin:clamp(20px,2.4vw,30px) 0 0;font-size:clamp(10px,.78vw,12px);font-weight:500;line-height:1.4;display:flex}.footer__note-dot{background:var(--ink);border-radius:50%;flex:none;width:6px;height:6px;animation:2.4s ease-in-out infinite footer-pulse}@keyframes footer-pulse{0%,to{opacity:1}50%{opacity:.35}}.footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,48px);display:grid}.footer__col-title{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 clamp(12px,1.2vw,16px);font-size:clamp(10px,.78vw,12px);font-weight:500}.footer__list{gap:clamp(8px,.85vw,12px);margin:0;padding:0;list-style:none;display:grid}.footer__link{letter-spacing:-.008em;flex-wrap:wrap;align-items:baseline;gap:2px clamp(6px,.6vw,10px);font-size:clamp(14px,1.05vw,16px);transition:opacity .18s;display:inline-flex}.footer__link:hover{opacity:.55}.footer__link-meta{letter-spacing:.02em;color:var(--ink-faint);font-size:clamp(11px,.82vw,13px)}.footer__base{border-top:1px solid var(--line);letter-spacing:.02em;color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:clamp(8px,1.4vw,20px);padding-top:clamp(16px,1.8vw,22px);font-size:clamp(11px,.86vw,13px);display:flex}.footer__base p{margin:0}@media (width<=900px){.footer{grid-template-rows:auto auto auto}.footer__inner{grid-template-columns:minmax(0,1fr);align-self:start;align-items:start;gap:clamp(30px,5vw,44px)}.footer__title{max-width:20ch}}@media (width<=560px){.footer__title{font-size:clamp(30px,8.6vw,40px)}.footer__cols{gap:20px}.footer__base{flex-direction:column;align-items:flex-start;gap:6px}}@media (prefers-reduced-motion:reduce){.footer__btn,.footer__btn svg,.footer__link{transition:none}.footer__note-dot{animation:none}}.hero{height:calc(100svh - var(--nav-mt) - var(--nav-h));isolation:isolate;min-height:420px;scroll-margin-top:calc(var(--nav-mt) + var(--nav-h));flex:none;position:relative;overflow:hidden}.hero__ring{z-index:0;aspect-ratio:1;pointer-events:none;border:1px solid #14141424;border-radius:50%;width:min(43.3vw,77svh);position:absolute;top:43%;left:58%;transform:translate(-50%,-50%)}.hero__intro{top:clamp(8px,1vw,18px);left:calc(var(--nav-x) + var(--nav-pad-x));z-index:4;letter-spacing:-.005em;color:var(--ink);margin:0;font-size:clamp(14px,1.32vw,19px);line-height:1.35;position:absolute}.hero__title{--word-size:min(27vw, 44svh);--word-duration:68s;--word-lift:10svh;--word-stroke:clamp(1.25px, .0075em, 5px);right:0;bottom:calc(clamp(104px, 13svh, 160px) + var(--word-lift));z-index:1;color:#101010;font-family:var(--display);font-size:var(--word-size);letter-spacing:0;text-transform:uppercase;white-space:nowrap;pointer-events:auto;-webkit-user-select:none;user-select:none;margin:0;font-weight:400;line-height:1;position:absolute;left:0;overflow:hidden}.hero__title-text{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.hero__title-track{width:max-content;animation:hero-wordmark var(--word-duration) linear infinite;will-change:transform;display:flex}.hero__title-copy{-webkit-text-stroke:var(--word-stroke) transparent;flex:none;padding-right:.3em;transition:color .25s,-webkit-text-stroke-color .25s}@media (hover:hover) and (pointer:fine){@supports (-webkit-text-stroke:1px black){.hero__title:hover .hero__title-copy{color:#0000;-webkit-text-stroke-color:#101010}}}@keyframes hero-wordmark{0%{transform:translate(0,0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.hero__title-track{animation:none}}@media (width<=720px){.hero__title{--word-size:34vw;--word-duration:36s;top:50%;bottom:auto;transform:translateY(-50%)}.hero__ring{width:78vw;top:50%;left:50%}}@media (width>=721px) and (aspect-ratio<=115/100){.hero__title{--word-size:min(26vw, 26svh);--word-duration:42s;top:50%;bottom:auto;transform:translateY(-50%)}.hero__ring{width:min(54vw,50svh);top:50%;left:50%}}.nav{top:var(--nav-mt);z-index:5;height:var(--nav-h);margin:var(--nav-mt) var(--nav-x) 0;padding:0 clamp(5px, .6vw, 9px) 0 var(--nav-pad-x);background:var(--surface);border-radius:clamp(9px,1.25vw,18px);flex:none;justify-content:space-between;align-items:center;gap:clamp(10px,1.4vw,24px);display:flex;position:sticky;box-shadow:0 1px 1px #1414140a,0 12px 30px -20px #14141466}.nav__brand{align-items:center;gap:clamp(7px,.7vw,11px);min-width:0;display:flex}.nav__mark{aspect-ratio:1;color:#fff;background:#101010;border-radius:clamp(6px,.6vw,9px);flex:none;place-items:center;width:clamp(26px,2.75vw,40px);display:grid}.nav__mark-icon{fill:currentColor;width:52%;height:auto}.nav__name{letter-spacing:-.012em;white-space:nowrap;font-size:clamp(12px,.98vw,14px);font-weight:600}.nav__list{align-items:center;margin:0;padding:0;list-style:none;display:flex}.nav__item{align-items:center;display:flex}.nav__item+.nav__item:before{content:"/";color:var(--ink-faint);margin:0 clamp(7px,.75vw,11px);font-size:clamp(11px,.9vw,13px);line-height:1}.nav__link{letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:clamp(4px,.45vw,7px);font-size:clamp(11px,.9vw,13px);font-weight:500;transition:opacity .18s;display:inline-flex}.nav__link:hover{opacity:.55}.nav__cta{background:var(--surface);letter-spacing:.07em;text-transform:uppercase;border:1px solid #1414144d;border-radius:clamp(6px,.75vw,11px);flex:none;justify-content:center;align-items:center;height:78%;padding:0 clamp(12px,1.35vw,20px);font-size:clamp(11px,.9vw,13px);font-weight:500;transition:background-color .18s,border-color .18s,color .18s;display:inline-flex}.nav__cta:hover{color:#fff;background:#101010;border-color:#101010}@media (width<=900px){.nav__menu{display:none}}@media (width<=560px){.nav__cta{padding:0 15px}}.project-detail{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0a0a9e;animation:.22s both project-detail-fade;position:fixed;inset:0}@keyframes project-detail-fade{0%{opacity:0}to{opacity:1}}.project-detail__scroll{overscroll-behavior:contain;padding:clamp(10px,2.4vh,28px) clamp(10px,2vw,28px);display:flex;position:absolute;inset:0;overflow-y:auto}.project-detail__panel{background:var(--surface);width:100%;max-width:1120px;color:var(--ink);border-radius:clamp(16px,1.6vw,26px);margin:auto;padding:clamp(20px,2.4vw,40px);animation:.28s cubic-bezier(.22,.7,.3,1) both project-detail-rise;position:relative;box-shadow:0 40px 90px -40px #080808b8}@keyframes project-detail-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.project-detail__close{aspect-ratio:1;border:1px solid var(--line);width:clamp(30px,2.4vw,38px);color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:0;transition:background-color .2s,border-color .2s,color .2s;display:grid;position:absolute;top:clamp(14px,1.4vw,22px);right:clamp(14px,1.4vw,22px)}.project-detail__close svg{width:52%;height:auto}.project-detail__head{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);align-items:start;gap:clamp(18px,3vw,56px);margin-bottom:clamp(20px,2.8vh,34px);padding-right:clamp(40px,4vw,56px);display:grid}.project-detail__no{font-family:var(--display);letter-spacing:.01em;color:#14141429;font-size:clamp(26px,2.6vw,40px);line-height:1;display:block}.project-detail__meta{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:clamp(10px,1vw,14px) 0 0;font-size:clamp(9px,.72vw,11px);font-weight:500;line-height:1.4}.project-detail__title{letter-spacing:-.032em;margin:clamp(6px,.6vw,10px) 0 0;font-size:clamp(30px,3.4vw,48px);font-weight:700;line-height:1.04}.project-detail__summary{max-width:46ch;color:var(--ink-soft);margin:0;font-size:clamp(14px,1.05vw,16px);line-height:1.68}.project-detail__stack{border-top:1px solid var(--line);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:clamp(12px,1.2vw,16px) 0 0;padding-top:clamp(12px,1.2vw,16px);font-size:clamp(9px,.72vw,11px);font-weight:500;line-height:1.4}.project-detail__shots{scrollbar-width:thin;scrollbar-color:#1414143d transparent;background:#f4f4f1;border-radius:clamp(14px,1.3vw,20px);justify-content:center;gap:clamp(12px,1.5vw,24px);margin:0;padding:clamp(22px,3vw,38px) clamp(14px,2vw,28px);list-style:none;display:flex}.project-detail__shot{--w:clamp(150px, 14vw, 200px);width:var(--w);flex:none}.project-detail__device{flex-direction:column;gap:clamp(10px,1vw,14px);margin:0;display:flex}.project-detail__phone{aspect-ratio:390/844;width:100%;padding:calc(var(--w) * .028);border-radius:calc(var(--w) * .148);background:linear-gradient(158deg,#33333a,#0c0c0e 38%,#1a1a1e);position:relative;box-shadow:inset 0 1px #fff3,0 24px 40px -24px #0a0a0a9e,0 2px 8px #0a0a0a1f}.project-detail__phone:before,.project-detail__phone:after{content:"";width:calc(var(--w) * .013);background:linear-gradient(#3d3d44,#17171a);border-radius:999px;position:absolute}.project-detail__phone:before{top:25%;right:calc(var(--w) * -.008);height:14%}.project-detail__phone:after{top:21%;left:calc(var(--w) * -.008);height:10%}.project-detail__screen{border-radius:calc(var(--w) * .12);background:#0b0b0c;width:100%;height:100%;position:relative;overflow:hidden}.project-detail__screen img{object-fit:cover;width:100%;height:100%}.project-detail__caption{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint);text-align:center;font-size:clamp(9px,.72vw,11px);font-weight:500;line-height:1.4}.project-detail__foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-top:clamp(18px,2.4vh,28px);display:flex}.project-detail__repo{color:#fff;letter-spacing:-.005em;background:#101010;border-radius:clamp(9px,.8vw,12px);justify-content:center;align-items:center;gap:clamp(8px,.8vw,12px);height:clamp(42px,3.2vw,50px);padding:0 clamp(16px,1.5vw,24px);font-size:clamp(12px,.9vw,14px);font-weight:600;transition:background-color .22s;display:inline-flex}.project-detail__repo svg{width:1.05em;height:1.05em;transition:transform .22s}.project-detail__note{letter-spacing:.11em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:clamp(9px,.72vw,11px);font-weight:500}@media (hover:hover) and (pointer:fine){.project-detail__close:hover{color:#fff;background:#101010;border-color:#101010}.project-detail__repo:hover{background:#2b2b2b}.project-detail__repo:hover svg{transform:translate(2px,-2px)}}@media (width<=820px){.project-detail__head{grid-template-columns:minmax(0,1fr);gap:clamp(14px,2.4vw,20px);padding-right:clamp(38px,7vw,50px)}.project-detail__shots{scroll-snap-type:x proximity;justify-content:flex-start;overflow-x:auto}.project-detail__shot{--w:min(58vw, 230px);scroll-snap-align:center}}@media (width<=560px){.project-detail__title{font-size:clamp(26px,8vw,34px)}.project-detail__close{z-index:2;background:#fffffff0;margin:0 0 calc(-1*clamp(30px,2.4vw,38px)) auto;position:sticky;top:0;box-shadow:0 6px 16px -8px #08080866}.project-detail__foot{flex-direction:column;align-items:stretch}.project-detail__repo{width:100%}}@media (prefers-reduced-motion:reduce){.project-detail,.project-detail__panel{animation:none}.project-detail__repo svg{transition:none}}.project{background:var(--surface);min-height:100svh;color:var(--ink);padding:calc(var(--nav-mt) + var(--nav-h) + clamp(8px, 1vw, 18px)) var(--nav-x) clamp(48px, 8svh, 96px) calc(var(--nav-x) + var(--nav-pad-x));grid-template-rows:auto 1fr;row-gap:clamp(16px,3svh,44px);display:grid;position:relative}.project__label{letter-spacing:-.005em;color:var(--ink);margin:0;font-size:clamp(14px,1.32vw,19px);line-height:1.35}.project__inner{flex-direction:column;align-self:center;gap:clamp(28px,4.4svh,56px);display:flex}.project__head{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);align-items:start;gap:clamp(24px,4.6vw,80px);display:grid}.project__lede{flex-direction:column;gap:clamp(14px,1.6vw,22px);display:flex}.project__title{letter-spacing:-.035em;max-width:15ch;margin:0;font-size:clamp(38px,5.06vw,70px);font-weight:700;line-height:1.02}.project__count{letter-spacing:.14em;text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--ink-faint);margin:0;font-size:clamp(10px,.78vw,12px);font-weight:500;line-height:1.4}.project__bio{max-width:46ch;color:var(--ink-soft);margin:0;font-size:clamp(15px,1.16vw,18px);line-height:1.68}.project__grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:clamp(12px,1.2vw,22px);margin:0;padding:0;list-style:none;display:grid}.project__cell{min-width:0;display:flex}.project__card{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:#f4f4f1;border:0;border-radius:clamp(14px,1.3vw,20px);flex-direction:column;flex:auto;align-items:stretch;min-height:clamp(196px,19vw,264px);padding:clamp(18px,1.7vw,26px);transition:background-color .24s;display:flex;position:relative}.project__no{font-family:var(--display);letter-spacing:.01em;color:#14141429;font-size:clamp(34px,3.3vw,52px);line-height:1;transition:color .24s}.project__go{aspect-ratio:1;border:1px solid var(--line);width:clamp(26px,2vw,32px);color:var(--ink);opacity:0;border-radius:50%;place-items:center;transition:opacity .24s,transform .24s,background-color .24s,border-color .24s,color .24s;display:grid;position:absolute;top:clamp(14px,1.3vw,20px);right:clamp(14px,1.3vw,20px);transform:translate(-4px,4px)}.project__go svg{width:46%;height:auto}.project__body{flex-direction:column;padding-top:clamp(24px,2.6vw,44px);display:flex}.project__meta{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:clamp(9px,.72vw,11px);font-weight:500;line-height:1.4}.project__name{letter-spacing:-.022em;margin:clamp(7px,.7vw,11px) 0 0;font-size:clamp(19px,1.66vw,25px);font-weight:600;line-height:1.15}.project__summary{border-top:1px solid var(--line);color:var(--ink-soft);margin:clamp(11px,1vw,15px) 0 0;padding-top:clamp(11px,1vw,15px);font-size:clamp(13px,.95vw,15px);line-height:1.62}.project__stack{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:clamp(10px,.9vw,14px) 0 0;font-size:clamp(9px,.72vw,11px);font-weight:500;line-height:1.4}.project__shot{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:#f4f4f1;border-radius:clamp(14px,1.3vw,20px);flex:auto;min-height:clamp(196px,19vw,264px);padding:0;display:block;position:relative;overflow:hidden}.project__shot-img{object-fit:cover;width:100%;height:100%;transition:transform .5s;position:absolute;inset:0}.project__shot-img--rent{object-position:50% 34%}.project__shot-img--spot{object-position:50% 20%}.project__shot:after{content:"";pointer-events:none;background:linear-gradient(#0000,#0808089e);height:46%;position:absolute;inset:auto 0 0}.project__shot-caption{z-index:1;letter-spacing:.13em;text-transform:uppercase;color:#ffffffeb;font-size:clamp(9px,.72vw,11px);font-weight:500;position:absolute;bottom:clamp(12px,1.1vw,17px);left:clamp(14px,1.3vw,20px)}.project__card--archive{color:#fff;background:#101010}.project__card--archive .project__body{margin-top:auto}.project__kicker{letter-spacing:.14em;text-transform:uppercase;color:#ffffff85;font-size:clamp(9px,.72vw,11px);font-weight:500;line-height:1.4}.project__card--archive .project__summary{color:#ffffffad;border-top-color:#fff3}.project__card--archive .project__stack{color:#ffffff85}.project__card--archive .project__go{color:#fff;opacity:1;border-color:#ffffff52;transform:none}@media (hover:hover) and (pointer:fine){.project__card:hover{background:#ebebe7}.project__card:hover .project__no{color:#14141452}.project__card:hover .project__go{opacity:1;color:#fff;background:#101010;border-color:#101010;transform:none}.project__card--archive:hover{background:#1b1b1b}.project__shot:hover .project__shot-img{transform:scale(1.035)}}.project__card:focus-visible .project__go{opacity:1;color:#fff;background:#101010;border-color:#101010;transform:none}.project__card:focus-visible .project__no{color:#14141452}.project__card:focus-visible{background:#ebebe7}@media (width<=1080px){.project__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.project{grid-template-rows:auto auto;align-content:start}.project__inner{align-self:start}.project__head{grid-template-columns:minmax(0,1fr);gap:clamp(18px,3vw,26px)}.project__title{max-width:20ch}.project__bio{max-width:62ch}}@media (width<=720px){.project__grid{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto}.project__shot{aspect-ratio:5/4}.project__card--archive .project__body{margin-top:0}}@media (width<=560px){.project__title{font-size:clamp(30px,8.4vw,40px)}.project__card{min-height:0}.project__body{padding-top:clamp(18px,4vw,26px)}.project__go{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.project__card,.project__no,.project__go,.project__shot-img{transition:none}.project__shot:hover .project__shot-img{transform:none}}.skill{--ink:#f6f6f3;--ink-soft:#f6f6f3b3;--ink-faint:#f6f6f36b;--line:#ffffff29;min-height:100svh;color:var(--ink);padding:calc(var(--nav-mt) + var(--nav-h) + clamp(8px, 1vw, 18px)) var(--nav-x) clamp(40px, 6svh, 80px) calc(var(--nav-x) + var(--nav-pad-x));background:#0b0b0b;grid-template-rows:auto 1fr;row-gap:clamp(16px,3svh,44px);display:grid;position:relative}.skill:before{content:"";top:0;right:var(--nav-x);left:var(--nav-x);pointer-events:none;background:#ffffff1a;height:1px;position:absolute}.skill__label{letter-spacing:-.005em;color:var(--ink);margin:0;font-size:clamp(14px,1.32vw,19px);line-height:1.35}.skill__grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-self:center;align-items:start;gap:clamp(28px,5.6vw,96px);display:grid}.skill__title{letter-spacing:-.035em;max-width:12ch;margin:0;font-size:clamp(34px,4.3vw,60px);font-weight:700;line-height:1.02}.skill__bio{max-width:46ch;color:var(--ink-soft);margin:clamp(16px,1.8vw,26px) 0 0;font-size:clamp(15px,1.16vw,18px);line-height:1.68}.skill__note{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);align-items:flex-start;gap:clamp(8px,.8vw,12px);margin:clamp(22px,2.6vw,36px) 0 0;font-size:clamp(10px,.78vw,12px);font-weight:500;line-height:1.4;display:flex}.skill__dot{background:var(--ink);border-radius:50%;flex:none;width:6px;height:6px;margin-top:.52em;animation:2.4s ease-in-out infinite skill-pulse}@keyframes skill-pulse{0%,to{opacity:1}50%{opacity:.35}}.skill__list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.skill__item{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(12px,1.8vw,28px);padding:clamp(10px,1.3vw,16px) 0;display:grid}.skill__index{letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:clamp(10px,.78vw,12px);font-weight:500;line-height:1;transition:color .22s}.skill__name{font-family:var(--display);letter-spacing:.005em;text-transform:uppercase;font-size:clamp(22px,2.55vw,38px);font-weight:400;line-height:1;transition:transform .28s cubic-bezier(.22,.61,.36,1),color .22s}.skill__tag{border:1px solid var(--line);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--ink-soft);border-radius:999px;justify-self:end;padding:clamp(4px,.4vw,6px) clamp(8px,.8vw,11px) clamp(3px,.34vw,5px);font-size:clamp(9px,.72vw,11px);font-weight:500;line-height:1;transition:border-color .22s,color .22s}@media (hover:hover) and (pointer:fine){.skill__item:hover .skill__name{transform:translate(6px)}.skill__item:hover .skill__index{color:var(--ink)}.skill__item:hover .skill__tag{color:var(--ink);border-color:#ffffff6b}}@media (width<=900px){.skill{grid-template-rows:auto auto;align-content:start}.skill__grid{grid-template-columns:minmax(0,1fr);align-self:start;gap:clamp(24px,4vw,36px)}.skill__title{max-width:18ch}.skill__bio{max-width:60ch}}@media (width<=560px){.skill__title{font-size:clamp(30px,8.4vw,40px)}.skill__item{gap:12px}.skill__tag{letter-spacing:.12em}}@media (prefers-reduced-motion:reduce){.skill__name,.skill__index,.skill__tag{transition:none}.skill__dot{animation:none}}.page{background-image:radial-gradient(120% 95% at 52% 26%, var(--bg-top) 0%, var(--bg) 46%, var(--bg-bottom) 100%);flex-direction:column;min-height:100svh;display:flex;position:relative}
