@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2) format("woff2-variations");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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2) format("woff2-variations");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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,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}:root{color:#212529;background:#dee2e6;font-family:Manrope Variable,Helvetica Neue,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #f8f9fa;--mist: #e9ecef;--cloud: #dee2e6;--silver: #ced4da;--slate: #adb5bd;--ash: #6c757d;--graphite: #495057;--charcoal: #343a40;--ink: #212529;--line: rgba(73, 80, 87, .24);--line-soft: rgba(73, 80, 87, .13);--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth;background:#dee2e6}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;background:linear-gradient(90deg,#ced4da,#dee2e6 14%,#e9ecef,#dee2e6 86%,#ced4da);color:var(--ink);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}.portfolio-stage{position:relative;min-height:100vh;padding:18px 0 46px}.site-sheet{position:relative;width:min(1160px,calc(100vw - clamp(56px,16vw,240px)));margin:0 auto;overflow:clip;border:1px solid rgba(73,80,87,.18);background:var(--paper);box-shadow:0 30px 90px #21252912,0 3px 12px #21252909}.site-sheet:after{position:absolute;z-index:4;top:0;right:0;bottom:0;left:0;background-image:url(/textures/matte-paper.png);background-size:620px 620px;content:"";mix-blend-mode:multiply;opacity:.15;pointer-events:none}.hero-section,.practice-section,.work-section{position:relative;z-index:1;text-align:center}.hero-section{display:grid;min-height:calc(100svh - 36px);place-items:center;background:linear-gradient(180deg,#f8f9fa,#f8f9fa 64%,#e9ecef);padding:clamp(92px,10vw,148px) clamp(34px,10vw,128px)}.hero-content{width:100%;max-width:820px}.hero-title-wrap h1{margin:0;color:var(--ink);font-size:clamp(3.35rem,6vw,5.65rem);font-weight:330;letter-spacing:-.07em;line-height:.98}.center-divider,.small-divider,.footer-divider{display:flex;align-items:center;justify-content:center;margin-inline:auto}.center-divider{width:min(290px,58vw);margin-top:clamp(35px,4.4vw,58px)}.center-divider span,.small-divider span,.footer-divider span{height:1px;flex:1;background:var(--line)}.center-divider i,.small-divider i,.footer-divider i{width:4px;height:4px;margin:0 12px;border-radius:50%;background:var(--ash)}.hero-description{max-width:760px;margin:clamp(30px,3.9vw,46px) auto 0;color:var(--graphite);font-size:clamp(.96rem,1.2vw,1.08rem);font-weight:420;letter-spacing:-.018em;line-height:1.82}.quiet-button{display:inline-flex;min-width:206px;min-height:50px;align-items:center;justify-content:center;gap:18px;margin-top:clamp(36px,4.8vw,58px);border:1px solid var(--charcoal);background:var(--charcoal);color:var(--paper);font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:500;letter-spacing:.04em;text-decoration:none;text-transform:uppercase;transition:background-color .32s var(--ease),color .32s var(--ease),transform .32s var(--ease)}.quiet-button svg{width:16px;height:16px;transition:transform .32s var(--ease)}.quiet-button:hover,.quiet-button:focus-visible{background:var(--paper);color:var(--ink);outline:none;transform:translateY(-2px)}.quiet-button:hover svg,.quiet-button:focus-visible svg{transform:translate(5px)}.practice-section{background:linear-gradient(180deg,#e9ecef,#dee2e6 48%,#ced4da);padding:clamp(100px,11vw,150px) clamp(34px,9vw,112px) clamp(94px,10vw,132px)}.practice-content,.work-heading{max-width:900px;margin:0 auto}.section-index{margin:0 0 24px;color:var(--ash);font-family:IBM Plex Mono,monospace;font-size:.64rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.practice-section h2,.work-section h2{margin:0;color:var(--ink);font-size:clamp(2.15rem,4vw,4.05rem);font-weight:350;letter-spacing:-.062em;line-height:1.08}.small-divider{width:94px;margin-top:30px}.small-divider i{width:3px;height:3px;margin:0 9px}.practice-description{max-width:650px;margin:28px auto 0;color:var(--graphite);font-size:clamp(.9rem,1.15vw,1.03rem);letter-spacing:-.016em;line-height:1.72}.capabilities{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:820px;margin:clamp(55px,7vw,82px) auto 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.capability{display:grid;min-height:134px;place-items:center;align-content:center;gap:17px;padding:22px 15px;color:var(--charcoal)}.capability+.capability{border-left:1px solid var(--line-soft)}.capability svg{width:24px;height:24px}.capability span{max-width:140px;font-size:clamp(.72rem,.92vw,.83rem);font-weight:500;letter-spacing:-.012em;line-height:1.35}.work-section{background:linear-gradient(180deg,#ced4da,#e9ecef 13%,#f8f9fa 30%,#f8f9fa 75%,#e9ecef);padding:clamp(102px,11vw,148px) clamp(28px,6vw,72px) 74px}.work-heading>p:last-child{max-width:510px;margin:24px auto 0;color:var(--ash);font-family:IBM Plex Mono,monospace;font-size:.7rem;letter-spacing:-.01em;line-height:1.65}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(13px,1.6vw,21px);max-width:980px;margin:clamp(62px,7vw,84px) auto 0}.project-reveal{min-width:0}.project-card{position:relative;overflow:hidden;border:1px solid var(--line);background:#f8f9fac2;box-shadow:0 14px 34px #2125290e;transition:border-color .36s var(--ease),box-shadow .36s var(--ease),transform .36s var(--ease),opacity .22s ease}.project-card:hover,.project-card:focus-within{border-color:#343a4085;box-shadow:0 20px 44px #21252917;transform:translateY(-5px)}.project-card.is-active-source{opacity:0}.project-preview{position:relative;overflow:hidden;border-bottom:1px solid var(--line-soft);background:var(--cloud);aspect-ratio:4 / 3}.project-preview iframe{position:absolute;top:0;left:0;width:400%;height:400%;border:0;pointer-events:none;transform:scale(.25);transform-origin:0 0}.expand-cue{position:absolute;top:12px;right:12px;display:grid;width:31px;height:31px;border:1px solid rgba(248,249,250,.55);background:#21252994;color:var(--paper);place-items:center;transition:background-color .32s var(--ease),transform .32s var(--ease)}.expand-cue svg{width:15px;height:15px}.project-card:hover .expand-cue,.project-card:focus-within .expand-cue{background:var(--ink);transform:scale(1.06)}.project-meta{display:grid;min-height:182px;justify-items:center;align-content:start;padding:19px 20px 22px;text-align:center}.project-meta>span:first-child{color:var(--ash);font-family:IBM Plex Mono,monospace;font-size:.6rem;letter-spacing:.08em}.project-meta h3{margin:9px 0 0;color:var(--ink);font-size:clamp(1rem,1.45vw,1.32rem);font-weight:470;letter-spacing:-.036em}.project-meta p{max-width:250px;margin:11px 0 0;color:var(--ash);font-size:.74rem;letter-spacing:-.012em;line-height:1.55}.project-action{display:inline-flex;align-items:center;gap:8px;margin-top:17px;color:var(--graphite);font-family:IBM Plex Mono,monospace;font-size:.62rem;letter-spacing:.03em;text-transform:uppercase}.project-action svg{width:14px;height:14px;transition:transform .32s var(--ease)}.project-card:hover .project-action svg,.project-card:focus-within .project-action svg{transform:translate(4px)}.project-hit-area{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;border:0;background:transparent;cursor:pointer}.project-hit-area:focus-visible{outline:2px solid var(--ink);outline-offset:-5px}.work-footer{margin-top:clamp(78px,9vw,112px);color:var(--graphite);text-align:center}.footer-divider{width:min(340px,64vw);margin-bottom:26px}.footer-divider i{width:3px;height:3px}.work-footer p{margin:0;font-size:.82rem;font-weight:500}.work-footer>span{display:block;margin-top:5px;color:var(--ash);font-size:.74rem}.work-footer a{display:inline-block;margin-top:24px;color:var(--ash);font-family:IBM Plex Mono,monospace;font-size:.6rem;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;transition:color .22s ease}.work-footer a:hover,.work-footer a:focus-visible{color:var(--ink);outline:none}.project-modal{position:fixed;z-index:1000;overflow:hidden;border:1px solid rgba(73,80,87,.42);background:var(--ink);box-shadow:0 35px 100px #21252947;transform:perspective(1600px) rotateX(-4deg) rotateY(5deg) scale(.982);transform-origin:center center;transition:top .76s var(--ease),left .76s var(--ease),width .76s var(--ease),height .76s var(--ease),border-radius .76s var(--ease),opacity .24s ease,transform .76s var(--ease);will-change:top,left,width,height,transform}.project-modal--open{border-radius:0;opacity:1;transform:perspective(1600px) rotateX(0) rotateY(0) scale(1)}.project-modal--opening,.project-modal--closing{border-radius:3px;opacity:.96}.project-modal-bar{display:flex;height:66px;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f8f9fa,#e9ecef);color:var(--ink);padding:0 clamp(18px,3vw,44px)}.project-modal-bar>div:first-child{display:flex;align-items:baseline;gap:14px;min-width:0}.project-modal-bar span{color:var(--ash);font-family:IBM Plex Mono,monospace;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase}.project-modal-bar strong{overflow:hidden;font-size:.96rem;font-weight:560;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap}.project-modal-actions{display:flex;align-items:center;gap:12px}.project-modal-actions a{display:inline-flex;min-height:40px;align-items:center;gap:8px;border-bottom:1px solid var(--graphite);font-family:IBM Plex Mono,monospace;font-size:.61rem;letter-spacing:.04em;text-decoration:none;text-transform:uppercase}.project-modal-actions a svg{width:14px;height:14px}.project-modal-actions button{display:grid;width:40px;height:40px;border:1px solid var(--graphite);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;place-items:center;transition:background-color .26s var(--ease),color .26s var(--ease),transform .26s var(--ease)}.project-modal-actions button:hover,.project-modal-actions button:focus-visible{background:var(--ink);color:var(--paper);outline:none;transform:rotate(4deg)}.project-modal-actions button svg{width:18px;height:18px}.project-modal-frame{height:calc(100% - 66px);background:var(--paper)}.project-modal-frame iframe{display:block;width:100%;height:100%;border:0;background:var(--paper)}@media(max-width:900px){.site-sheet{width:calc(100vw - 72px)}.hero-section{min-height:820px}.capabilities{grid-template-columns:repeat(2,minmax(0,1fr))}.capability:nth-child(3),.capability:nth-child(4){border-top:1px solid var(--line-soft)}.capability:nth-child(3){border-left:0}.projects-grid{grid-template-columns:1fr;max-width:560px;gap:24px}.project-meta{min-height:164px}}@media(max-width:600px){.portfolio-stage{padding:10px 0 24px}.site-sheet{width:calc(100vw - 24px)}.hero-section{min-height:calc(100svh - 20px);padding:84px 24px 76px}.hero-title-wrap h1{font-size:clamp(2.62rem,13vw,3.9rem);letter-spacing:-.065em}.hero-description{font-size:.88rem;line-height:1.72}.practice-section{padding:94px 22px 88px}.practice-section h2,.work-section h2{font-size:clamp(2rem,10vw,3rem)}.practice-description{font-size:.88rem}.capabilities{margin-top:52px}.capability{min-height:120px;padding:18px 10px}.capability span{font-size:.67rem}.work-section{padding:92px 14px 58px}.projects-grid{margin-top:54px}.project-meta{min-height:174px;padding-inline:16px}.project-modal-bar{height:62px;padding:0 12px 0 16px}.project-modal-bar>div:first-child{gap:8px}.project-modal-bar span{display:none}.project-modal-bar strong{max-width:118px;font-size:.83rem}.project-modal-actions{gap:10px}.project-modal-actions a{font-size:.54rem}.project-modal-actions button{width:38px;height:38px}.project-modal-frame{height:calc(100% - 62px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
