@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/36966cca54120369-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:Space Grotesk Fallback;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_dd5b2f{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.__variable_dd5b2f{--font-space-grotesk:"Space Grotesk","Space Grotesk Fallback"}@font-face{font-family:Bitter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/6f3eac45913bf2c2-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:Bitter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/bfb7ab7b4b29bade-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Bitter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/00e98538ed781307-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:Bitter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/3e8ed84275cb4466-s.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:Bitter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4563355e0480477b-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:Bitter Fallback;src:local("Times New Roman");ascent-override:81.69%;descent-override:23.15%;line-gap-override:0.00%;size-adjust:114.46%}.__className_786f6c{font-family:Bitter,Bitter Fallback;font-style:normal}.__variable_786f6c{--font-bitter:"Bitter","Bitter Fallback"}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{--bg-primary:#f6f8fc;--bg-secondary:#eef7f7;--ink:#1f2937;--ink-soft:#4b5563;--card:rgba(255,255,255,0.88)}body,html{margin:0;padding:0;min-height:100%;background:#eef7f7;color:var(--ink);font-family:var(--font-space-grotesk),"Segoe UI",sans-serif}.portfolio-shell{position:relative;min-height:100vh;isolation:isolate;background:radial-gradient(circle at 12% 14%,rgba(56,189,248,.08) 0,rgba(56,189,248,0) 28%),radial-gradient(circle at 84% 18%,rgba(11,143,135,.08) 0,rgba(11,143,135,0) 24%),linear-gradient(180deg,#fbfdff 0,var(--bg-primary) 48%,var(--bg-secondary) 100%)}*{box-sizing:border-box}a{color:inherit}.ant-btn,.ant-card,.ant-tag,.ant-timeline,.ant-typography{font-family:var(--font-space-grotesk),"Segoe UI",sans-serif}h1,h2,h3,h4,h5,h6{font-family:var(--font-bitter),Georgia,serif}.portfolio-layout{position:relative;z-index:1;min-height:100vh;background:transparent}.portfolio-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 24px;border-bottom:1px solid rgba(11,143,135,.2);background:linear-gradient(90deg,rgba(255,255,255,.86),rgba(244,250,250,.78));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{font-size:1rem;font-weight:700;letter-spacing:.12em;color:#0b8f87}.portfolio-content{width:min(1120px,92vw);margin:0 auto;padding:42px 0 18px}.content-section{position:relative;border:1px solid rgba(11,143,135,.14);border-radius:16px;padding:20px;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(247,251,252,.76));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 34px rgba(148,163,184,.08)}.content-section+.ant-divider{margin:16px 0}.section-hero{border-color:rgba(249,115,22,.24)}.portfolio-content section{scroll-margin-top:84px}.section-copy{color:#4b5563;margin-bottom:14px}.hero-section{position:relative;overflow:hidden;border:1px solid rgba(249,115,22,.2);border-radius:20px;padding:24px;background:linear-gradient(160deg,rgba(255,255,255,.88),rgba(246,253,252,.84) 52%,rgba(233,245,250,.82))}.hero-section:before{content:"";position:absolute;right:-80px;top:-80px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(11,143,135,.22) 0,rgba(11,143,135,0) 70%)}.hero-copy{max-width:70ch;color:#364152;font-size:1.05rem}.hero-subtitle{margin-top:-4px!important;margin-bottom:10px!important;font-weight:600;letter-spacing:.01em}.hero-alias,.hero-subtitle{color:#0b8f87;font-size:1.05rem}.hero-alias{max-width:60ch;margin-bottom:8px!important;font-family:var(--font-bitter),Georgia,serif;font-style:italic;line-height:1.45}.hero-section .ant-typography{margin-bottom:12px}.hero-section .ant-tag{padding-inline:10px;min-height:30px;display:inline-flex;align-items:center}.stat-card{border-radius:14px;background:var(--card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 24px rgba(31,41,55,.06)}.stat-line{margin:0 0 10px;color:#22303f;line-height:1.5}.skill-tag{border-radius:999px;padding:4px 10px;color:#0b8f87;border-color:rgba(11,143,135,.5);background:rgba(11,143,135,.08)}.skills-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}.skill-branches{display:grid;gap:18px}.skill-branch{display:grid;gap:10px}.skill-branch-title{color:#0b8f87;font-size:.95rem;letter-spacing:.02em}.skill-chip{display:flex;align-items:center;gap:10px;min-height:52px;width:fit-content;max-width:min(100%,320px);border:1px solid rgba(11,143,135,.18);border-radius:999px;padding:8px 12px;background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(244,251,250,.9))}.skill-icon-circle{width:34px;height:34px;min-width:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:#0b8f87;background:rgba(255,255,255,.95);border:1px solid rgba(15,23,42,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);font-size:16px;overflow:hidden}.skill-logo-img{width:22px;height:22px;object-fit:contain;display:block}.skill-custom-svg{width:28px;height:28px;flex-shrink:0}.skill-icon-circle:has(.skill-custom-svg){padding:0;background:transparent;border-color:transparent;box-shadow:none}.skill-logo-img-sm{width:15px;height:15px}.skill-logo-pair{gap:2px}.skill-brand-badge,.skill-logo-pair{display:inline-flex;align-items:center}.skill-brand-badge{justify-content:center;width:100%;height:100%;font-family:var(--font-space-grotesk),"Segoe UI",sans-serif;font-size:.68rem;font-weight:800;letter-spacing:-.02em;line-height:1}.skill-name{flex:0 1 auto;color:#1f2937;font-size:.9rem;line-height:1.3}.experience-bullets{margin:10px 0 0;padding-left:20px;display:grid;gap:10px;color:#22303f}.experience-header{display:flex;align-items:center;gap:10px}.experience-header .ant-typography{margin-bottom:0}.experience-company-logo{width:44px;height:44px;min-width:44px;border-radius:10px;border:1px solid rgba(11,143,135,.18);background:rgba(255,255,255,.9);display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.experience-company-logo img{width:100%;height:100%;object-fit:contain;padding:4px}.experience-bullets li{line-height:1.55}.detail-card{height:100%}.detail-card .ant-card-head{min-height:48px}.education-card{display:flex;flex-direction:column}.education-content{display:flex;gap:16px;align-items:flex-start}.education-logo{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:90px;height:90px;background:rgba(11,143,135,.08);border-radius:8px}.education-logo img{width:80px;height:80px;object-fit:contain}.education-info{flex:1 1;display:flex;align-items:center}.education-info p{margin:0}.muted{color:var(--ink-soft);font-size:.9rem;font-style:italic}.cert-list{margin:0;padding-left:18px}.cert-list li{margin-bottom:8px;color:#26323d}.portfolio-footer{text-align:center;color:#364152;border-top:1px solid rgba(11,143,135,.18);background:rgba(255,255,255,.74);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.portfolio-footer .ant-space{justify-content:center;row-gap:8px}.portfolio-footer a{text-decoration:underline;text-underline-offset:2px}.cert-gallery-card{border-radius:14px;overflow:hidden}.cert-marquee,.cert-marquee-wrapper{position:relative}.cert-marquee{padding:8px 0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.cert-track{display:flex;flex-wrap:nowrap;gap:14px;width:max-content}.cert-marquee::-webkit-scrollbar{display:none}.cert-marquee{scrollbar-width:none}.cert-gallery-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.cert-gallery-controls{display:flex;gap:8px}.cert-marquee:hover .cert-track{animation-play-state:paused}.cert-item{display:flex;flex-direction:column;flex:0 0 clamp(260px,28vw,340px);width:clamp(260px,28vw,340px);border:1px solid rgba(11,143,135,.12);border-radius:12px;padding:14px;background:rgba(255,255,255,.95);transition:all .25s ease;min-height:455px;width:100%;height:100%;scroll-snap-align:start}.cert-item:hover{border-color:rgba(11,143,135,.3);box-shadow:0 8px 20px rgba(11,143,135,.1);transform:translateY(-2px)}.cert-item-button{font:inherit;color:inherit;text-align:left;cursor:pointer}.cert-open-hint{margin-top:auto;color:#0b8f87;font-size:.86rem;font-weight:600}.cert-image-wrapper{position:relative;width:100%;height:190px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#f8fbff,#eff6ff);border-radius:8px;margin-bottom:12px;overflow:hidden}.cert-image-wrapper.cert-image-badge,.cert-image-wrapper.cert-image-certificate{aspect-ratio:auto;height:190px}@keyframes cert-marquee-scroll{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}.cert-image{width:100%;height:100%;object-fit:contain;object-position:center;padding:8px}.cert-details{display:flex;flex-direction:column;gap:6px;flex:1 1}.cert-title{color:#0b8f87;font-size:.95rem;line-height:1.3}.cert-issuer{color:var(--ink-soft);font-size:.85rem}.cert-date{color:#999;font-size:.8rem;font-style:italic}.cert-description{color:#475569;font-size:.82rem;line-height:1.45}.cert-verify-link{display:inline-flex;width:fit-content;padding:6px 0;font-weight:600;color:#0b8f87;margin-top:auto}.pipeline-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.project-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:stretch;gap:16px}.pipeline-card{min-height:0;border:1px solid rgba(11,143,135,.18);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(237,246,250,.98));box-shadow:0 18px 30px rgba(15,75,111,.06)}.pipeline-card .ant-card-body{padding:22px}.pipeline-card-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}.pipeline-step{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:34px;height:28px;margin-top:4px;padding:0 8px;border-radius:8px;border:1px solid rgba(11,143,135,.22);background:rgba(11,143,135,.08);color:#0b8f87;font-family:var(--font-space-grotesk),"Segoe UI",sans-serif;font-size:.78rem;font-weight:650;letter-spacing:.04em;line-height:1}.pipeline-list{margin:16px 0 18px;padding-left:20px;color:#334155;display:grid;gap:10px}.pipeline-list li{line-height:1.55}.pipeline-skill-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.pipeline-skill-tag{background:rgba(11,143,135,.08);color:#0b8f87;border:1px solid rgba(11,143,135,.18);border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600}.pipeline-card h4{margin-bottom:6px}.project-card{height:100%;overflow:hidden}.project-card .pipeline-card-header{align-items:flex-start;margin:0 0 8px;gap:10px}.project-card .pipeline-list{min-height:auto}.project-card .ant-card-body{display:flex;flex-direction:column;height:100%;padding:0}.project-card-body{display:flex;flex-direction:column;gap:8px;flex:1 1;padding:12px 14px 14px}.project-card-heading h4{margin:0 0 2px!important;font-size:1rem!important;line-height:1.3!important}.project-card-meta{display:block;font-size:.8rem;line-height:1.35}.project-card-summary{margin:0!important;color:#475569;font-size:.88rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-card .pipeline-skill-tags{margin-top:2px;gap:6px}.project-card .pipeline-skill-tag{padding:3px 8px;font-size:.72rem;margin-inline-end:0!important}.project-card-hint{margin-top:auto;color:#0b8f87;font-size:.78rem;font-weight:600}.project-carousel-shell{position:relative;width:100%;height:148px;aspect-ratio:auto;overflow:hidden;border-radius:18px 18px 0 0;background:linear-gradient(135deg,#e8f4f3,#f3f7fb);border-bottom:1px solid rgba(11,143,135,.12)}.project-ant-carousel,.project-ant-carousel .slick-list,.project-ant-carousel .slick-slide,.project-ant-carousel .slick-slide>div,.project-ant-carousel .slick-slider,.project-ant-carousel .slick-track{height:100%}.project-ant-carousel .slick-slide>div{display:flex}.project-carousel-frame{position:relative;width:100%;height:100%;overflow:hidden}.project-carousel-frame-button{display:block;padding:0;border:0;background:transparent;cursor:zoom-in}.project-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.project-carousel-frame-button:hover .project-image{transform:scale(1.03)}.project-ant-carousel .slick-dots{bottom:14px;margin:0;z-index:2}.project-ant-carousel .slick-dots li{width:8px;height:8px;margin-inline:4px}.project-ant-carousel .slick-dots li button{width:8px;height:8px;border-radius:999px;background:rgba(255,255,255,.55);opacity:1}.project-ant-carousel .slick-dots li button:before{display:none}.project-ant-carousel .slick-dots li.slick-active{width:18px}.project-ant-carousel .slick-dots li.slick-active button{width:18px;background:#ffffff}.project-carousel-arrows{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:0 10px;pointer-events:none;opacity:0;transition:opacity .2s ease}.project-carousel-shell:focus-within .project-carousel-arrows,.project-carousel-shell:hover .project-carousel-arrows{opacity:1}.project-carousel-arrow{pointer-events:auto;width:36px!important;min-width:36px!important;height:36px!important;border:1px solid rgba(11,143,135,.18)!important;background:rgba(255,255,255,.92)!important;color:#0b8f87!important;box-shadow:0 8px 20px rgba(15,23,42,.12)}.project-carousel-arrow:hover{background:#ffffff!important;color:#08756f!important}.project-image-modal .ant-modal-content{border-radius:18px;overflow:hidden;padding-bottom:16px}.project-image-modal .ant-modal-header{margin-bottom:12px}.project-image-modal .ant-modal-title{font-family:var(--font-bitter),Georgia,serif;font-size:1.05rem;color:#1f2937}.project-image-modal-body{position:relative;display:flex;align-items:center;justify-content:center;gap:8px}.project-image-modal-frame{width:100%;border-radius:14px;overflow:hidden;border:1px solid rgba(11,143,135,.14);background:#0f172a}.project-image-modal-img{width:100%;height:auto;display:block;object-fit:contain;max-height:min(68vh,720px)}.project-image-modal-nav{flex-shrink:0;width:40px!important;min-width:40px!important;height:40px!important;border:1px solid rgba(11,143,135,.18)!important;background:rgba(255,255,255,.96)!important;color:#0b8f87!important;box-shadow:0 8px 18px rgba(15,23,42,.1)}.project-image-modal-thumbs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px}.project-image-modal-thumb{width:88px;height:50px;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;background:#eef2f7;cursor:pointer;opacity:.72;transition:opacity .2s ease,border-color .2s ease}.project-image-modal-thumb.is-active,.project-image-modal-thumb:hover{opacity:1;border-color:#0b8f87}.project-image-modal-thumb-img{width:100%;height:100%;object-fit:cover;display:block}@media (max-width:768px){.project-image-modal-nav-next,.project-image-modal-nav-prev{display:none!important}.project-image-modal-thumb{width:72px;height:42px}}.detail-preview-modal .ant-modal-content{border-radius:18px}.detail-preview-copy{margin-top:16px;display:grid;gap:8px}.detail-preview-summary{margin-bottom:0!important;color:#364152;font-size:.98rem}.detail-preview-bullets,.detail-preview-tags{margin-top:4px}.cert-detail-modal-body{display:grid;gap:14px}.cert-detail-modal-image{position:relative;width:100%;min-height:240px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:linear-gradient(180deg,#f8fbff,#eff6ff);border:1px solid rgba(11,143,135,.12);overflow:hidden;padding:16px}.cert-detail-modal-img{width:100%;height:auto;max-height:360px;object-fit:contain}.cert-detail-extra{margin-bottom:0!important;color:#4b5563}.project-card .pipeline-step{margin-top:2px}@media (max-width:880px){.pipeline-grid,.project-grid{grid-template-columns:1fr}}.pipeline-card p{min-height:84px;color:#334155;margin-bottom:10px}.pipeline-tag{border-radius:999px}.section-projects{overflow:hidden}.webgl-projects{display:grid;gap:18px}.webgl-stage{position:relative;height:min(42vh,420px);min-height:300px;border-radius:18px;overflow:hidden;border:1px solid rgba(11,143,135,.18);background:radial-gradient(circle at 18% 20%,rgba(11,143,135,.14),transparent 42%),radial-gradient(circle at 82% 18%,rgba(249,115,22,.12),transparent 38%),linear-gradient(160deg,#f8fcfc,#eef6f8 55%,#e8f1f6)}.webgl-canvas{display:block;width:100%;height:100%;cursor:pointer}.webgl-hint{position:absolute;left:16px;bottom:12px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(11,143,135,.14);pointer-events:none}.webgl-project-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.webgl-project-tab{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 14px;border-radius:14px;border:1px solid rgba(11,143,135,.16);background:rgba(255,255,255,.82);color:#1f2937;text-align:left;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}.webgl-project-tab:hover{border-color:rgba(11,143,135,.42);transform:translateY(-1px)}.webgl-project-tab.is-active{border-color:rgba(11,143,135,.55);background:linear-gradient(180deg,rgba(232,247,245,.95),rgba(255,255,255,.92));box-shadow:0 10px 22px rgba(11,143,135,.08)}.webgl-project-tab-index{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:rgba(11,143,135,.12);color:#0b8f87;font-weight:700;font-size:.82rem;flex-shrink:0}.webgl-project-tab-title{font-size:.92rem;font-weight:600;line-height:1.3}.webgl-project-detail{border:1px solid rgba(11,143,135,.16);border-radius:16px;padding:18px 20px;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(245,250,252,.9))}.webgl-project-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px}.webgl-project-detail-header h3{margin-bottom:4px!important}.webgl-project-skill-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.webgl-project-summary{color:#364152;max-width:90ch}.webgl-project-bullets{margin-top:8px}@media (max-width:880px){.webgl-project-nav{grid-template-columns:1fr}.webgl-project-detail-header{flex-direction:column}.webgl-project-skill-tags{justify-content:flex-start}.webgl-stage{min-height:260px;height:300px}}@media (max-width:1024px){.portfolio-content{width:min(1120px,94vw);padding-top:28px}.hero-section{border-radius:16px;padding:20px}.hero-section .ant-typography h1{font-size:clamp(1.8rem,4.6vw,2.4rem);line-height:1.15}.cert-item{flex-basis:clamp(240px,44vw,320px);width:clamp(240px,44vw,320px);min-height:435px}.skills-grid{gap:10px}.skill-branches{gap:14px}.cert-image-wrapper,.cert-image-wrapper.cert-image-badge,.cert-image-wrapper.cert-image-certificate{height:170px}.pipeline-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}@media (max-width:768px){.portfolio-header{position:static;height:auto;min-height:56px;padding:10px 16px;align-items:flex-start;flex-direction:column}.portfolio-header .ant-space{width:100%;justify-content:flex-start}.portfolio-header .ant-badge{white-space:nowrap}.brand{font-size:.9rem}.portfolio-content{width:min(1120px,94vw);padding-top:24px}.content-section{border-radius:12px;padding:14px}.hero-section{padding:16px}.hero-section .content-section:not(.section-hero){content-visibility:auto;contain-intrinsic-size:1px 720px}.hero-section:before{width:180px;height:180px;right:-72px;top:-72px}.hero-section .ant-typography h1{font-size:clamp(1.55rem,6.8vw,2rem);line-height:1.18;margin-bottom:10px}.hero-copy{font-size:.98rem;line-height:1.55}.stat-card{border-radius:12px}.ant-divider{margin:18px 0}.portfolio-content .ant-typography h2{font-size:1.35rem;margin-bottom:12px}.section-copy{font-size:.95rem;line-height:1.55}.skill-chip{min-height:48px;padding:8px 10px}.skill-icon-circle{width:30px;height:30px;min-width:30px;font-size:15px}.skill-name{font-size:.86rem}.experience-bullets{padding-left:18px;gap:8px}.experience-company-logo{width:40px;height:40px;min-width:40px}.cert-item{flex-basis:min(82vw,340px);width:min(82vw,340px);min-height:420px;scroll-snap-align:start}.cert-image-wrapper,.cert-image-wrapper.cert-image-badge,.cert-image-wrapper.cert-image-certificate{height:180px}.pipeline-grid{grid-template-columns:1fr;gap:8px}.pipeline-card p{min-height:auto;margin-bottom:8px}.portfolio-footer{padding:14px 12px}.portfolio-footer .ant-space{display:flex;flex-direction:column;align-items:center;gap:4px}}@media (max-width:420px){.portfolio-content{width:95vw;padding-top:18px}.hero-section{padding:14px}.hero-section .ant-tag{font-size:12px;min-height:28px}.portfolio-content .ant-card-body{padding:14px}.portfolio-content .ant-typography h4{font-size:1rem}.portfolio-header .ant-space{gap:8px}.cert-track{gap:10px;animation-duration:36s}.cert-item{flex-basis:min(84vw,320px);width:min(84vw,320px)}}