@font-face{font-family:geistSans;src:url(/_next/static/media/1dcfb06aecd259c2-s.p.woff2) format("woff2");font-display:swap;font-weight:400}@font-face{font-family:geistSans;src:url(/_next/static/media/93784fdb82763cc0-s.p.woff2) format("woff2");font-display:swap;font-weight:500}@font-face{font-family:geistSans;src:url(/_next/static/media/aa3e3757e6e69c55-s.p.woff2) format("woff2");font-display:swap;font-weight:600}@font-face{font-family:geistSans;src:url(/_next/static/media/93ac272e605e2b1c-s.p.woff2) format("woff2");font-display:swap;font-weight:700}@font-face{font-family:geistSans Fallback;src:local("Arial");ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.00%;size-adjust:106.28%}.__className_4634ad{font-family:geistSans,geistSans Fallback,Helvetica Neue,Arial,sans-serif}.__variable_4634ad{--font-geist-sans:"geistSans","geistSans Fallback",Helvetica Neue,Arial,sans-serif}@font-face{font-family:geistMono;src:url(/_next/static/media/bd0cc5d3ac79f4ca-s.p.woff2) format("woff2");font-display:swap;font-weight:400}@font-face{font-family:geistMono;src:url(/_next/static/media/0a6ab2f260a643cd-s.p.woff2) format("woff2");font-display:swap;font-weight:500}@font-face{font-family:geistMono;src:url(/_next/static/media/0c6b61a0dc279620-s.p.woff2) format("woff2");font-display:swap;font-weight:600}@font-face{font-family:geistMono;src:url(/_next/static/media/7b6781b72e6bf4c1-s.p.woff2) format("woff2");font-display:swap;font-weight:700}@font-face{font-family:geistMono Fallback;src:local("Arial");ascent-override:76.43%;descent-override:22.43%;line-gap-override:0.00%;size-adjust:131.49%}.__className_a3f540{font-family:geistMono,geistMono Fallback,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.__variable_a3f540{--font-geist-mono:"geistMono","geistMono Fallback",SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}

/*! tailwindcss v4.3.3 | 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-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,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-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--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,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,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:where(:not(iframe)){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}::-webkit-calendar-picker-indicator{line-height:1}:-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{.collapse{visibility:collapse}.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.block{display:block}.grid{display:grid}.hidden{display:none}.table{display:table}.h-full{height:100%}.min-h-full{min-height:100%}.rounded{border-radius:.25rem}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--background:#f4f5f3;--surface:#e9ecec;--surface-strong:#dce1e2;--ink:#171a1e;--graphite:#363d45;--muted:#68717a;--line:#171a1e26;--accent:#315f9e;--accent-soft:#dbe5f3;--radius:16px;--header-h:64px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px)}body{background:var(--background);min-width:320px;color:var(--ink);font-family:var(--font-geist-sans),"Helvetica Neue",Arial,sans-serif;margin:0;overflow-x:hidden}::selection{background:var(--accent);color:#fff}*{scrollbar-color:var(--muted) var(--surface);scrollbar-width:thin}a{color:inherit;text-underline-offset:4px}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{font-family:inherit}.editorial-shell{position:relative;overflow-x:clip}.portfolio-content{width:100%;position:relative}.skip-link{z-index:100;background:var(--ink);color:#fff;border-radius:8px;padding:10px 14px;transition:transform .2s;position:fixed;top:10px;left:16px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:50;width:auto;max-width:1400px;min-height:var(--header-h);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);inset-inline:24px;background:#f4f5f3f0;justify-content:space-between;align-items:center;margin-inline:auto;padding:0 9px 0 18px;display:flex;position:fixed;top:14px}.site-mark{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;font-size:.78rem;font-weight:620;text-decoration:none;display:inline-flex}.site-mark-block{background:var(--accent);border-radius:3px;width:10px;height:10px;transform:rotate(45deg)}.site-handle{color:var(--muted);font:.65rem var(--font-geist-mono),monospace;font-weight:400}.chapter-navigation{align-items:center;gap:2px;display:flex}.chapter-navigation a{min-height:42px;color:var(--muted);border-radius:999px;align-items:center;padding:0 15px;font-size:.76rem;text-decoration:none;transition:background .2s,color .2s,transform .2s;display:inline-flex}.chapter-navigation a.is-current,.chapter-navigation a:hover{color:var(--ink);background:var(--surface)}.chapter-navigation a:active{transform:scale(.97)}.menu-toggle{color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;font-size:.74rem;display:none}.editorial-footer,.editorial-hero,.section-pad{width:min(1400px,100% - 64px);margin-inline:auto}.editorial-hero{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;column-gap:clamp(18px,2.6vw,40px);min-height:100dvh;padding:104px 0 56px;display:grid}.hero-copy{grid-column:1/span 8;align-self:center;min-width:0}.hero-kicker{color:var(--muted);font:.66rem var(--font-geist-mono),monospace;letter-spacing:.13em;text-transform:uppercase;margin:0 0 20px}.hero-kicker span{color:var(--accent);padding-inline:5px}.hero-copy h1{letter-spacing:-.04em;text-wrap:balance;max-width:980px;margin:0;font-size:clamp(3.1rem,4.2vw,4.8rem);font-weight:580;line-height:.92}.hero-copy h1 .line{overflow-wrap:break-word;display:block}.hero-muted{color:var(--muted)}.hero-intro{max-width:58ch;color:var(--graphite);text-wrap:pretty;margin:28px 0 0;font-size:clamp(.96rem,1.15vw,1.12rem);line-height:1.58}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.button{border:1px solid var(--ink);border-radius:999px;justify-content:center;align-items:center;gap:18px;min-height:48px;padding:0 18px;font-size:.77rem;font-weight:560;text-decoration:none;transition:transform .22s,background .22s,color .22s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(1px)scale(.98)}.button-dark{background:var(--ink);color:#fff}.button-dark:hover{border-color:var(--accent);background:var(--accent)}.button-light:hover{background:var(--surface)}.hero-portrait-wrap{grid-column:10/span 3;justify-self:end;width:min(100%,390px)}.hero-portrait-frame{aspect-ratio:4/5;border-radius:var(--radius);background:var(--surface-strong);position:relative;overflow:hidden;box-shadow:0 24px 58px #26303824}.hero-portrait{object-fit:cover;filter:grayscale()contrast(1.04);width:100%;height:100%}.section-pad{padding-block:clamp(108px,12vw,174px) clamp(112px,11vw,158px)}.profile-section,.proof-section,.work-section{border-top:1px solid var(--line)}.section-heading{max-width:850px}.contact-inner h2,.section-heading h2{letter-spacing:-.04em;text-wrap:balance;max-width:900px;margin:0;font-size:clamp(3rem,5.5vw,5.8rem);font-weight:580;line-height:.94}.section-heading>p{max-width:62ch;color:var(--muted);margin:24px 0 0;font-size:.96rem;line-height:1.6}.work-heading{grid-template-columns:minmax(0,8fr) minmax(260px,4fr);align-items:end;gap:40px;max-width:none;display:grid}.work-heading>p{margin-bottom:7px}.project-showcase{max-width:1180px;margin:66px auto 0}.project-category-selector{justify-content:center;align-items:center;gap:5px;margin-bottom:8px;display:flex}.project-category-selector button{border:1px solid var(--line);min-height:36px;color:var(--muted);font:.66rem var(--font-geist-mono),monospace;cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:0 13px;transition:background .2s,color .2s,border-color .2s}.project-category-selector button:hover{border-color:var(--ink);color:var(--ink)}.project-category-selector button.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.project-selector{justify-content:center;align-items:center;gap:4px;margin-bottom:18px;display:flex}.project-selector button{min-height:42px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:0 15px;font-size:.76rem;transition:background .2s,color .2s}.project-selector button:hover{color:var(--ink)}.project-selector button.is-active{background:var(--ink);color:#fff}.project-stage-frame{aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius);background:var(--background);position:relative;overflow:hidden}.project-stage-scene,.project-stage-visual{position:absolute;inset:0}.project-stage-visual{cursor:zoom-in;background:0 0;border:0;width:100%;height:100%;padding:0;display:block;overflow:hidden}.project-stage-fallback{object-fit:cover;opacity:1;transition:opacity .32s}.project-stage-fallback.is-contain{object-fit:contain;padding:clamp(12px,2.2vw,28px)}.project-stage-visual.is-scene-ready .project-stage-fallback{opacity:0}.project-stage-canvas{opacity:0;transition:opacity .45s cubic-bezier(.16,1,.3,1);display:block;position:absolute;inset:0}.project-stage-visual.is-scene-ready .project-stage-canvas{opacity:1}.project-stage-canvas canvas{touch-action:pan-y;display:block}.project-stage-hint{z-index:2;color:var(--graphite);font:.64rem var(--font-geist-mono),monospace;letter-spacing:.02em;opacity:0;pointer-events:none;background:#f4f5f3e0;border-radius:999px;padding:8px 11px;transition:opacity .2s,transform .2s;position:absolute;bottom:16px;right:18px;transform:translateY(5px)}.project-stage-visual.is-scene-ready:hover .project-stage-hint{opacity:1;transform:translateY(0)}.project-stage-meta{grid-template-columns:minmax(0,8fr) minmax(230px,4fr);gap:40px;padding:27px 2px 0;display:grid}.project-stage-meta h3{letter-spacing:-.03em;margin:0;font-size:clamp(1.65rem,2.4vw,2.45rem);font-weight:600}.project-stage-meta p{max-width:66ch;color:var(--muted);margin:10px 0 0;font-size:.88rem;line-height:1.58}.project-modal-technologies,.project-stage-meta .project-technologies{color:var(--graphite);font:.67rem/1.5 var(--font-geist-mono),monospace;letter-spacing:.01em;margin-top:15px}.project-stage-actions{flex-wrap:wrap;justify-content:flex-end;align-items:start;gap:18px;display:flex}.project-live-link,.project-open-button{color:var(--ink);cursor:pointer;background:0 0;border:0;border-bottom:1px solid;align-items:center;gap:8px;padding:0 0 6px;font-size:.76rem;text-decoration:none;transition:color .2s;display:inline-flex}.project-live-link:hover,.project-open-button:hover{color:var(--accent)}.profile-layout{grid-template-columns:minmax(0,7fr) minmax(280px,4fr);gap:clamp(84px,10vw,142px) clamp(50px,8vw,126px);margin-top:66px;display:grid}.profile-subheading{letter-spacing:.07em;text-transform:uppercase;margin:0 0 28px;font-size:.76rem;font-weight:620}.timeline-entry{padding:0 0 34px}.timeline-entry+.timeline-entry{border-top:1px solid var(--line);padding-top:28px}.timeline-entry h4{letter-spacing:-.02em;margin:0;font-size:1.12rem;font-weight:600}.timeline-meta{color:var(--muted);font:.68rem/1.5 var(--font-geist-mono),monospace;margin:7px 0 0}.timeline-entry ul{max-width:74ch;margin:18px 0 0;padding:0;list-style:none}.timeline-entry li{color:var(--muted);margin-top:10px;padding-left:16px;font-size:.83rem;line-height:1.58;position:relative}.timeline-entry li:before{content:"";background:var(--accent);border-radius:1px;width:5px;height:5px;position:absolute;top:.65em;left:0}.stack-column{padding-top:2px}.stack-group{border-top:1px solid var(--line);padding:18px 0 21px}.stack-group:last-child{border-bottom:1px solid var(--line)}.stack-group h4{margin:0;font-size:.77rem;font-weight:600}.stack-group p{color:var(--muted);margin:10px 0 0;font-size:.78rem;line-height:1.55}.profile-lower{grid-column:1/-1;grid-template-columns:minmax(0,7fr) minmax(280px,4fr);gap:clamp(50px,8vw,126px);display:grid}.profile-evidence-column{align-content:start;gap:56px;display:grid}.profile-link-list{border-top:1px solid var(--line);display:grid}.profile-link-list a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:14px 0;font-size:.79rem;line-height:1.4;text-decoration:none;display:flex}.profile-link-list a:hover{color:var(--accent)}.paper-block p{color:var(--muted);margin:0;font-size:.84rem;line-height:1.6}.proof-composition{margin-top:62px}.metric-band{border-block:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.metric{flex-direction:column;justify-content:space-between;min-height:205px;padding:28px 30px 26px 0;display:flex}.metric+.metric{border-left:1px solid var(--line);padding-left:30px}.metric strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(3.5rem,7vw,6rem);font-weight:580;line-height:.85}.metric span{max-width:25ch;color:var(--muted);font-size:.78rem;line-height:1.45}.huawei-spotlight{border-radius:var(--radius);background:var(--accent);color:#fff;grid-template-columns:minmax(0,7fr) minmax(280px,4fr);align-items:end;gap:60px;margin-top:20px;padding:clamp(34px,5vw,70px);display:grid}.spotlight-context{color:#ffffffb8;margin:0 0 16px;font-size:.75rem}.huawei-spotlight h3{letter-spacing:-.04em;margin:0;font-size:clamp(3rem,7vw,6rem);font-weight:600;line-height:.88}.huawei-spotlight>div:last-child p{color:#ffffffd4;margin:0;font-size:.86rem;line-height:1.55}.huawei-spotlight a{border-bottom:1px solid #ffffffb3;align-items:center;gap:8px;margin-top:26px;padding-bottom:6px;font-size:.76rem;text-decoration:none;display:inline-flex}.achievement-wrap{margin-top:112px}.achievement-heading{justify-content:space-between;align-items:center;gap:32px;display:flex}.achievement-heading h3{letter-spacing:-.04em;max-width:630px;margin:0;font-size:clamp(2.2rem,4vw,4.1rem);font-weight:580;line-height:.96}.carousel-controls{align-items:center;gap:8px;display:flex}.carousel-controls>span{color:var(--muted);font:.67rem var(--font-geist-mono),monospace;font-variant-numeric:tabular-nums;margin-right:8px}.carousel-controls button{border:1px solid var(--line);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;transition:background .2s,color .2s,transform .2s;display:grid}.carousel-controls button:hover{background:var(--ink);color:#fff}.carousel-controls button:active{transform:scale(.95)}.achievement-card{border-radius:var(--radius);background:var(--surface);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:48px;min-height:206px;margin-top:30px;padding:clamp(28px,3.4vw,46px);text-decoration:none;transition:background .25s;display:grid}.achievement-card:hover{background:var(--surface-strong)}.achievement-card-copy{align-content:end;gap:25px;min-width:0;max-width:820px;display:grid}.achievement-card-title{letter-spacing:-.025em;margin:0;font-size:clamp(1.35rem,2.15vw,2.15rem);font-weight:500;line-height:1.14}.achievement-card-badge{background:#ffffff94;border:1px solid #315f9e47;border-radius:12px;align-items:stretch;width:fit-content;max-width:100%;display:inline-flex;overflow:hidden;box-shadow:0 4px 14px #315f9e0f}.achievement-badge-award,.achievement-badge-type{align-items:center;gap:8px;min-width:0;padding:10px 13px;font-size:.74rem;line-height:1.25;display:inline-flex}.achievement-badge-type{color:var(--graphite)}.achievement-badge-type svg{color:var(--muted);flex:none}.achievement-badge-award{background:var(--accent);color:#fff;border-left:1px solid #ffffff73;font-weight:600}.achievement-badge-award svg{color:#fff;flex:none}.achievement-badge-award span,.achievement-badge-type span{overflow-wrap:anywhere;min-width:0}.achievement-action{white-space:nowrap;justify-content:flex-end;align-items:center;gap:8px;font-size:.76rem;display:inline-flex}.contact-section{border-top:1px solid var(--line);background:var(--surface);position:relative;overflow:hidden}.contact-texture{opacity:.09;background:url(/closing-texture.png) 50%/cover;position:absolute;inset:0}.contact-inner{z-index:1;width:min(1400px,100% - 64px);margin-inline:auto;padding:150px 0 140px;position:relative}.contact-inner h2{max-width:840px}.contact-inner>p{max-width:54ch;color:var(--graphite);margin:28px 0 0;font-size:.96rem;line-height:1.6}.contact-email{border-bottom:1px solid var(--ink);overflow-wrap:anywhere;align-items:center;gap:12px;max-width:100%;margin-top:38px;padding-bottom:8px;font-size:clamp(.9rem,2vw,1.25rem);text-decoration:none;display:inline-flex}.contact-email:hover{color:var(--accent);border-color:currentColor}.contact-links{color:var(--muted);align-items:center;gap:23px;margin-top:50px;font-size:.74rem;display:flex}.contact-links a{align-items:center;gap:7px;text-decoration:none;display:inline-flex}.contact-links a:hover{color:var(--ink)}.editorial-footer{color:var(--muted);font:.65rem var(--font-geist-mono),monospace;justify-content:space-between;align-items:center;gap:20px;padding-block:22px 28px;display:flex}.editorial-footer a{align-items:center;gap:6px;text-decoration:none;display:inline-flex}.editorial-footer a:hover{color:var(--ink)}.project-modal-overlay{z-index:60;background:#171a1ebd;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.project-modal-window{border-radius:var(--radius);background:var(--background);width:min(1220px,100%);max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 30px 100px #0000004d}.project-modal-header{z-index:2;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--muted);font:.68rem var(--font-geist-mono),monospace;background:#f4f5f3f0;justify-content:space-between;align-items:center;padding:15px 22px;display:flex;position:sticky;top:0}.project-close-button,.project-nav-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:7px;padding:9px 13px;font-size:.68rem;display:inline-flex}.project-close-button:hover,.project-nav-button:hover{background:var(--ink);color:#fff}.project-modal-body{padding:clamp(25px,5vw,66px)}.project-modal-title{letter-spacing:-.04em;margin:0;font-size:clamp(3.2rem,7vw,6rem);font-weight:580;line-height:.9}.project-modal-summary{max-width:66ch;color:var(--muted);margin:24px 0 0;font-size:.95rem;line-height:1.58}.project-modal-technologies{max-width:80ch}.project-media-area{margin-top:42px}.project-main-image-wrap{aspect-ratio:16/10;background:var(--surface);touch-action:pan-y;border-radius:14px;width:100%;position:relative;overflow:hidden}.project-main-image{object-fit:cover;transition:opacity .2s}.project-main-image.is-contain{object-fit:contain}.project-main-image-wrap.state-loading .project-main-image{opacity:.22}.project-main-image-wrap.state-error .project-main-image{opacity:.06}.image-status{z-index:1;color:var(--muted);text-align:center;place-items:center;padding:24px;font-size:.75rem;display:grid;position:absolute;inset:0}.project-gallery-controls{justify-content:space-between;align-items:center;gap:20px;margin-top:13px;display:flex}.project-gallery-counter{color:var(--muted);font:.67rem var(--font-geist-mono),monospace;font-variant-numeric:tabular-nums;margin:0}.project-thumbnails{gap:8px;margin-top:18px;padding:2px 2px 8px;display:flex;overflow-x:auto}.project-thumbnail{border:1px solid var(--line);background:var(--surface);cursor:pointer;opacity:.48;border-radius:8px;flex:0 0 82px;padding:0;transition:opacity .2s,border-color .2s,transform .2s;overflow:hidden}.project-thumbnail:hover{opacity:.8;transform:translateY(-2px)}.project-thumbnail.is-active{border-color:var(--accent);opacity:1;box-shadow:0 0 0 2px var(--accent-soft)}.project-thumbnail-image{aspect-ratio:3/2;object-fit:cover;width:100%;display:block}.project-thumbnail-image.is-contain{object-fit:contain}.project-gallery-empty{border:1px dashed var(--line);color:var(--muted);margin:0;padding:24px}.project-website-link{border-bottom:1px solid var(--ink);align-items:center;gap:7px;margin-top:28px;padding-bottom:7px;font-size:.78rem;text-decoration:none;display:inline-flex}.project-website-link:hover{color:var(--accent);border-color:currentColor}@media (min-width:1021px) and (max-height:650px){.site-header{min-height:56px;top:8px}.editorial-hero{min-height:100dvh;padding:76px 0 24px}.hero-copy{grid-column:1/span 8}.hero-copy h1{font-size:4.05rem;line-height:.9}.hero-kicker{margin-bottom:13px}.hero-intro{margin-top:18px;font-size:.94rem}.hero-actions{margin-top:20px}.button{min-height:43px}.hero-portrait-wrap{grid-column:10/span 3;width:min(100%,280px)}}@media (max-width:1020px){.contact-inner,.editorial-footer,.editorial-hero,.section-pad{width:min(100% - 40px,840px)}.editorial-hero{grid-template-columns:repeat(2,minmax(0,1fr));min-height:auto;padding:124px 0 92px}.hero-copy{grid-column:1}.hero-copy h1{font-size:clamp(3.4rem,7.4vw,5.8rem)}.hero-portrait-wrap{grid-column:2;width:min(100%,370px)}.profile-layout,.profile-lower{column-gap:48px}}@media (max-width:767px){.site-header{inset-inline:auto;border-radius:15px;width:calc(100vw - 24px);max-width:calc(100vw - 24px);min-height:57px;margin-inline:0;padding-left:15px;top:9px;left:12px}.site-mark{font-size:.73rem}.site-handle{display:none}.menu-toggle{margin-left:auto;display:inline-flex}.chapter-navigation{border:1px solid var(--line);opacity:0;visibility:hidden;pointer-events:none;background:#f4f5f3fa;border-radius:15px;grid-template-columns:repeat(2,1fr);gap:4px;padding:6px;transition:opacity .2s,transform .2s,visibility .2s;display:grid;position:absolute;top:calc(100% + 7px);left:0;right:0;transform:translateY(-8px);box-shadow:0 14px 35px #27343f1f}.site-header.is-open .chapter-navigation{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.chapter-navigation a{justify-content:center;min-height:43px}.contact-inner,.editorial-footer,.editorial-hero,.section-pad{width:calc(100vw - 32px);max-width:calc(100vw - 32px)}.editorial-hero{flex-direction:column;align-items:stretch;padding:106px 0 78px;display:flex}.hero-copy{order:1;align-self:stretch;width:100%}.hero-kicker{margin-bottom:17px;font-size:.6rem}.hero-copy h1{font-size:clamp(2.55rem,11vw,4.2rem);line-height:.94}.hero-intro{margin-top:22px;font-size:.91rem}.hero-actions{flex-direction:column;align-items:stretch;margin-top:27px}.button{justify-content:space-between;width:100%;max-width:100%}.hero-portrait-wrap{order:2;width:100%;margin-top:50px}.hero-portrait-frame{aspect-ratio:5/6}.section-pad{padding-block:92px 110px}.contact-inner h2,.section-heading h2{font-size:clamp(2.8rem,14vw,4.5rem)}.section-heading>p{margin-top:20px;font-size:.88rem}.work-heading{display:block}.project-showcase{margin-top:43px}.project-category-selector,.project-selector{scrollbar-width:none;justify-content:flex-start;margin-inline:-16px;padding-inline:16px;overflow-x:auto}.project-category-selector::-webkit-scrollbar{display:none}.project-category-selector{margin-bottom:7px;padding-bottom:3px}.project-selector{scrollbar-width:none;justify-content:flex-start;margin-inline:-16px;padding:0 16px 8px;overflow-x:auto}.project-selector::-webkit-scrollbar{display:none}.project-stage-frame{aspect-ratio:4/3}.project-stage-fallback.is-contain{padding:8px}.project-stage-hint{display:none}.project-stage-meta{grid-template-columns:1fr;gap:22px;padding-top:22px}.project-stage-actions{justify-content:flex-start}.profile-layout{grid-template-columns:1fr;row-gap:60px;margin-top:46px}.profile-lower{grid-column:1;grid-template-columns:1fr;gap:60px}.profile-evidence-column{gap:52px}.metric-band{grid-template-columns:1fr}.metric{min-height:150px;padding:25px 0}.metric+.metric{border-top:1px solid var(--line);border-left:0;padding-left:0}.metric strong{font-size:4.5rem}.huawei-spotlight{grid-template-columns:1fr;gap:36px;margin-top:16px;padding:30px 24px}.huawei-spotlight h3{font-size:3.7rem}.achievement-wrap{margin-top:88px}.achievement-heading{flex-direction:column;align-items:start}.carousel-controls{align-self:flex-end}.achievement-card{grid-template-columns:1fr;gap:34px;min-height:236px;padding:25px}.achievement-action{justify-content:flex-start}.contact-inner{padding-block:105px 94px}.contact-inner>p{font-size:.9rem}.contact-email{margin-top:31px;font-size:.88rem}.contact-links{flex-wrap:wrap;margin-top:40px}.editorial-footer{flex-wrap:wrap;align-items:flex-start}.project-modal-overlay{place-items:end center;padding:0}.project-modal-window{border-radius:15px 15px 0 0;width:100%;max-height:100dvh}.project-modal-header{padding:13px 15px}.project-modal-body{padding:24px 16px 32px}.project-modal-title{font-size:clamp(3.2rem,18vw,5.5rem)}.project-media-area{margin-top:30px}.project-main-image-wrap{aspect-ratio:4/3}.project-gallery-controls{gap:10px}.project-nav-button{padding-inline:11px}.project-thumbnail{flex-basis:74px}}@media (max-width:540px){.achievement-card-badge{width:fit-content;max-width:100%;display:grid}.achievement-badge-award{border-top:1px solid #ffffff73;border-left:0}}@media (pointer:coarse),(prefers-reduced-motion:reduce){.project-stage-canvas,.project-stage-fallback{transition-duration:.14s}.project-stage-hint{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}