@import "https://api.fontshare.com/v2/css?f[]=satoshi@400,500,600,700,900&display=swap";@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-vietnamese-500-normal-FzY9NZwK.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-500-normal-CAK5R6Iy.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-ext-500-normal-DIhLz7G7.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-500-normal-B0ZDNVGf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-500-normal-DEDBoLFO.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-500-normal-CV-uA8Lw.woff)format("woff");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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-vietnamese-600-normal-Ipewt4hn.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-600-normal-BppAn7jL.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-latin-ext-600-normal-CN5JKkBm.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-600-normal-DF26P3Q7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-latin-600-normal-nxTgbNFE.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-600-normal-Bw0J83-2.woff)format("woff");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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-vietnamese-700-normal-BLYPkJbo.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-700-normal-CHrFuVHU.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-ext-700-normal-fBkt-7fi.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-700-normal-BXpPFNFj.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-700-normal-gtcctNPv.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-700-normal-DvJDmrLu.woff)format("woff");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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/bricolage-grotesque-vietnamese-800-normal-RJtJa6zl.woff2)format("woff2"),url(/assets/bricolage-grotesque-vietnamese-800-normal-DJ4hCX8l.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/bricolage-grotesque-latin-ext-800-normal-BimIDUhy.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-800-normal-CkoBqIJM.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/bricolage-grotesque-latin-800-normal-J50vIsBe.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-800-normal-Br4b-5gk.woff)format("woff");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:#08080a;--bg-elevated:#0d0d10;--ink:#f4f3f1;--ink-dim:#a8a7ad;--ink-faint:#6b6a70;--accent:#5a2cda;--accent-bright:#9270ff;--accent-dim:#3a1f96;--accent-glow:#5a2cda66;--on-accent:#f5f2ff;--glass-bg:#0e0c1466;--glass-bg-strong:#0e0c1494;--glass-border:#ffffff1f;--glass-highlight:#ffffff59;--glass-shadow:#0000008c;--blur-frost:blur(16px) saturate(140%);--blur-chip:blur(14px) saturate(150%);--font-display:"Bricolage Grotesque", "Satoshi", system-ui, sans-serif;--font-body:"Satoshi", system-ui, sans-serif;--edge:clamp(1.5rem, 5vw, 4.5rem);--radius-lg:28px;--radius-md:18px;--radius-sm:12px;--radius-pill:999px;--ease-premium:cubic-bezier(.16, 1, .3, 1);--ease-snap:cubic-bezier(.65, 0, .35, 1);--dur-fast:.25s;--dur-med:.55s;--dur-slow:.9s}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);-webkit-backdrop-filter:var(--blur-frost);backdrop-filter:var(--blur-frost);box-shadow:0 1px 0 0 var(--glass-highlight) inset, 0 0 0 1px #0003, 0 20px 50px -20px var(--glass-shadow);position:relative}.glass:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(155deg,#ffffff59,#fff0 30% 70%,#ffffff14);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.glass-strong{background:var(--glass-bg-strong)}.chip-blur{background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-chip);backdrop-filter:var(--blur-chip)}*,:before,:after{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5;overflow-x:hidden}#root{isolation:isolate;position:relative}.scene-background{z-index:0;pointer-events:none;position:fixed;inset:0}.scene-background canvas{display:block;width:100%!important;height:100%!important}.app-content{z-index:1;position:relative}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:600;line-height:1.05}p{margin:0}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}ul{margin:0;padding:0;list-style:none}img,svg{max-width:100%;display:block}::selection{background:var(--accent);color:#08080a}.eyebrow{font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.8rem;font-weight:600}.section{padding:clamp(5rem, 12vw, 9rem) var(--edge);max-width:1440px;margin:0 auto;position:relative}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.nav-wrap{z-index:50;padding:0 var(--edge);pointer-events:none;justify-content:center;display:flex;position:fixed;top:clamp(.9rem,2.5vw,1.75rem);left:0;right:0}.nav.glass,.nav-mobile.glass{background:#08070ccc}.nav{pointer-events:auto;border-radius:var(--radius-pill);transition:box-shadow var(--dur-med) var(--ease-premium), background var(--dur-med) var(--ease-premium), border-color var(--dur-med) var(--ease-premium);align-items:center;gap:.35rem;padding:.5rem .6rem .5rem .9rem;display:flex}.nav-wrap--scrolled .nav{box-shadow:0 1px 0 0 var(--glass-highlight) inset, 0 0 0 1px #00000040, 0 24px 60px -24px #000000b3}.nav-mark{width:40px;height:40px;color:var(--ink);transition:color var(--dur-fast) var(--ease-premium), background var(--dur-fast) var(--ease-premium), transform var(--dur-fast) var(--ease-snap);border-radius:50%;place-items:center;display:grid}.nav-mark:hover{color:var(--accent);background:#ffffff0f;transform:rotate(-8deg)scale(1.05)}.nav-links{align-items:center;gap:.15rem;margin:0 .35rem;display:flex}.nav-link-item{position:relative}.nav-link{border-radius:var(--radius-pill);height:40px;color:var(--ink-dim);transition:color var(--dur-fast) var(--ease-premium);align-items:center;gap:0;padding:0 1rem;font-size:.86rem;font-weight:500;display:flex;position:relative;overflow:hidden}.nav-link:hover,.nav-link--active{color:var(--ink)}.nav-link-pill{border-radius:inherit;z-index:-1;background:#ffffff14;position:absolute;inset:0}.nav-link-icon{opacity:0;width:0;color:var(--accent);transition:width var(--dur-fast) var(--ease-premium), opacity var(--dur-fast) var(--ease-premium), margin-right var(--dur-fast) var(--ease-premium), transform var(--dur-fast) var(--ease-premium);justify-content:center;align-items:center;margin-right:0;display:inline-flex;transform:translate(-6px)}.nav-link:hover .nav-link-icon{opacity:1;width:15px;margin-right:.4rem;transform:translate(0)}.nav-link-label{white-space:nowrap;transition:transform var(--dur-fast) var(--ease-premium)}.nav-resume{border-radius:var(--radius-pill);background:var(--accent);height:40px;color:var(--on-accent);isolation:isolate;align-items:center;gap:.45rem;padding:0 .4rem 0 1.1rem;font-size:.86rem;font-weight:600;display:flex;position:relative;overflow:hidden}.nav-resume:before{content:"";background:var(--accent-bright);transition:transform var(--dur-med) var(--ease-premium);z-index:-1;position:absolute;inset:0;transform:translate(-100%)}.nav-resume:hover:before{transform:translate(0)}.nav-resume-icon{width:28px;height:28px;transition:transform var(--dur-fast) var(--ease-snap);background:#ffffff29;border-radius:50%;place-items:center;display:grid}.nav-resume:hover .nav-resume-icon{transform:translateY(2px)}.nav-burger{width:40px;height:40px;color:var(--ink);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:none}.nav-mobile{top:calc(clamp(.9rem,2.5vw,1.75rem) + 60px);right:var(--edge);left:var(--edge);z-index:49;border-radius:var(--radius-lg);transform-origin:100% 0;padding:1.1rem;position:fixed}.nav-mobile-links{flex-direction:column;gap:.2rem;display:flex}.nav-mobile-links a{border-radius:var(--radius-sm);color:var(--ink-dim);transition:background var(--dur-fast) var(--ease-premium), color var(--dur-fast) var(--ease-premium);align-items:center;gap:.7rem;padding:.85rem .9rem;font-size:.95rem;font-weight:500;display:flex}.nav-mobile-links a:hover{color:var(--ink);background:#ffffff0f}.nav-mobile-links svg{color:var(--accent)}.nav-resume--mobile{justify-content:center;margin-top:.6rem;padding:0 1.1rem}@media (width<=720px){.nav-links,.nav>.nav-resume{display:none}.nav-burger{display:flex}}.hero{min-height:100svh;padding:0 var(--edge);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,4rem);max-width:1000px;margin:0 auto;display:grid;position:relative}.hero-inner{max-width:640px;padding-top:4rem}.hero-portrait{aspect-ratio:4/5;justify-self:center;width:min(440px,32vw);position:relative}.hero-portrait-glow{background:radial-gradient(circle at 55% 35%, var(--accent-glow), transparent 62%);filter:blur(24px);z-index:-1;transition:transform var(--dur-med) var(--ease-premium), opacity var(--dur-med) var(--ease-premium);position:absolute;inset:-18%}.hero-portrait-frame:hover~.hero-portrait-glow{opacity:1;transform:scale(1.2)}.hero-portrait-frame{border-radius:var(--radius-lg);--spot-x:50%;--spot-y:50%;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 30px 60px -25px #0009}.hero-portrait-shift{position:absolute;inset:0}.hero-portrait-img{object-fit:cover;object-position:center 20%;opacity:.6;filter:grayscale()contrast(1.12)brightness(.55);width:100%;height:100%;transition:opacity var(--dur-med) var(--ease-premium);display:block;position:absolute;inset:0}.hero-portrait-frame:hover .hero-portrait-img{opacity:.8}.hero-portrait-img--bright{opacity:0;filter:contrast(1.05)saturate(1.05)brightness(.9);-webkit-mask-image:radial-gradient(circle 170px at var(--spot-x) var(--spot-y), black 0%, transparent 100%);mask-image:radial-gradient(circle 170px at var(--spot-x) var(--spot-y), black 0%, transparent 100%);-webkit-mask-image:radial-gradient(circle 170px at var(--spot-x) var(--spot-y), black 0%, transparent 100%);transition:opacity var(--dur-fast) var(--ease-premium)}.hero-portrait-frame:hover .hero-portrait-img--bright{opacity:.95}.hero-portrait-overlay{background:linear-gradient(185deg,#08080a66 0%,#08080a59 45%,#08080a99 100%);position:absolute;inset:0}@media (width<=960px){.hero{flex-direction:column;justify-content:flex-start;align-items:flex-start;padding-top:6rem;padding-bottom:3rem;display:flex}.hero-inner{max-width:100%;padding-top:0}.hero-portrait{aspect-ratio:1;order:-1;align-self:flex-start;width:min(148px,38vw);margin-bottom:1.8rem}.hero-portrait-img{opacity:.75}}.hero-eyebrow{margin-bottom:1.6rem;display:inline-block}.hero-title{letter-spacing:-.03em;font-size:clamp(3.2rem,10vw,7.8rem);font-weight:700}@media (width>=961px){.hero-title{font-size:clamp(2.8rem,6.2vw,5.4rem)}}.hero-title-line{display:block;overflow:hidden}.hero-title-word{display:block}.hero-sub{max-width:34rem;color:var(--ink-dim);margin-top:1.8rem;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.6}.hero-actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2.6rem;display:flex}.hero-cta{border-radius:var(--radius-pill);align-items:center;gap:.5rem;height:52px;padding:0 1.6rem;font-size:.95rem;font-weight:600;display:inline-flex}.hero-cta--primary{background:var(--accent);color:var(--on-accent);isolation:isolate;transition:transform var(--dur-fast) var(--ease-snap);position:relative;overflow:hidden}.hero-cta--primary:before{content:"";background:var(--accent-bright);transition:transform var(--dur-med) var(--ease-premium);z-index:-1;position:absolute;inset:0;transform:translateY(100%)}.hero-cta--primary:hover:before{transform:translateY(0)}.hero-cta--primary:hover{transform:translateY(-2px)}.hero-cta--primary svg{transition:transform var(--dur-fast) var(--ease-snap)}.hero-cta--primary:hover svg{transform:translate(2px,-2px)}.hero-cta--ghost{border:1px solid var(--glass-border);color:var(--ink);background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:border-color var(--dur-fast) var(--ease-premium), background var(--dur-fast) var(--ease-premium), transform var(--dur-fast) var(--ease-snap)}.hero-cta--ghost:hover{background:var(--glass-bg-strong);border-color:#ffffff47;transform:translateY(-2px)}.hero-scroll-cue{left:var(--edge);color:var(--ink-faint);align-items:center;gap:.7rem;display:flex;position:absolute;bottom:clamp(1.6rem,4vw,3rem)}.hero-scroll-track{background:#ffffff29;width:1px;height:46px;position:relative;overflow:hidden}.hero-scroll-dot{background:var(--accent);width:100%;height:30%;animation:2.1s ease-in-out infinite scroll-cue;position:absolute;top:-20%;left:0}.hero-scroll-label{letter-spacing:.16em;text-transform:uppercase;writing-mode:vertical-rl;font-size:.72rem}@keyframes scroll-cue{0%{top:-30%}50%{top:60%}to{top:130%}}@media (width<=720px){.hero-scroll-label{display:none}}.logo-marquee{width:100%;padding:clamp(1.6rem,3.5vw,2.6rem) 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 clamp(2rem,6vw,6rem) calc(100% - clamp(2rem,6vw,6rem)),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 clamp(2rem,6vw,6rem) calc(100% - clamp(2rem,6vw,6rem)),#0000 100%)}.logo-marquee-fade{z-index:1;pointer-events:none;width:clamp(2rem,8vw,8rem);position:absolute;top:0;bottom:0}.logo-marquee-fade--left{background:linear-gradient(90deg, var(--bg), transparent);left:0}.logo-marquee-fade--right{background:linear-gradient(270deg, var(--bg), transparent);right:0}.logo-marquee-track{width:max-content;animation:32s linear infinite logo-marquee-scroll;display:flex}.logo-marquee:hover .logo-marquee-track{animation-play-state:paused}.logo-marquee-set{flex-shrink:0;align-items:center;display:flex}.logo-marquee-logo{opacity:.55;filter:brightness(0)invert();width:auto;height:clamp(18px,2.6vw,26px);transition:opacity var(--dur-fast) var(--ease-premium);margin:0 clamp(1.6rem,4vw,3.4rem)}.logo-marquee-logo:hover{opacity:1}@keyframes logo-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.logo-marquee-track{animation:none}}.section-heading{border-bottom:1px solid #ffffff17;align-items:flex-end;gap:1.4rem;margin-bottom:clamp(2rem,5vw,3.5rem);padding-bottom:1.6rem;display:flex}.section-heading-index{font-family:var(--font-display);color:var(--ink-faint);padding-bottom:.4rem;font-size:.95rem}.section-heading-title{letter-spacing:-.02em;margin-top:.5rem;font-size:clamp(2.1rem,5vw,3.6rem);font-weight:700}.skills-grid{flex-wrap:wrap;gap:.6rem;display:flex}.skill-tile{perspective:1000px}.skill-tile-card{transform-style:preserve-3d;transform-origin:bottom;transition:transform .6s var(--ease-premium);border-radius:9px;display:grid}.skill-tile:hover .skill-tile-card,.skill-tile:focus-within .skill-tile-card{transform:rotateX(-180deg)}.skill-tile-face{white-space:nowrap;border-radius:inherit;backface-visibility:hidden;grid-area:1/1;justify-content:center;align-items:center;padding:.7rem 1.1rem;font-size:.85rem;display:flex}.skill-tile-face--front{background:var(--bg);color:var(--ink-dim);transition:border-color var(--dur-fast) var(--ease-premium);border:1px solid #ffffff1a}.skill-tile:hover .skill-tile-face--front{border-color:#ffffff38}.skill-tile-face--back{transform-origin:bottom;color:#fff;letter-spacing:.01em;font-weight:600;transform:rotateX(180deg)}.skill-tile-card--reveal{transition:opacity .35s ease, transform .5s var(--ease-premium)}.about-grid{grid-template-columns:minmax(220px,340px) 1fr;align-items:start;gap:clamp(2rem,5vw,4.5rem);display:grid}.about-portrait{aspect-ratio:4/5;color:var(--ink-faint);place-items:center;display:grid;position:relative;overflow:hidden}.about-portrait-mark{z-index:1;opacity:.9;position:relative}.about-portrait-glow{background:radial-gradient(circle at 30% 20%, var(--accent-glow), transparent 55%);filter:blur(10px);position:absolute;inset:-20%}.about-lede{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:500;line-height:1.35}.about-body{max-width:46rem;color:var(--ink-dim);margin-top:1.4rem;font-size:1.02rem;line-height:1.75}.about-stats{flex-wrap:wrap;gap:clamp(1.6rem,4vw,3.2rem);margin-top:2.6rem;display:flex}.about-stat{flex-direction:column;gap:.3rem;display:flex}.about-stat-value{font-family:var(--font-display);color:var(--accent);font-size:2rem;font-weight:700}.about-stat-label{color:var(--ink-faint);max-width:10rem;font-size:.85rem}.about-skills{margin-top:clamp(3rem,6vw,5rem)}.about-skills-eyebrow{margin-bottom:1.1rem;display:block}@media (width<=860px){.about-grid{grid-template-columns:1fr}.about-portrait{max-width:220px}}.manifesto-wrapper{height:700vh;position:relative}.manifesto-sticky{height:100vh;padding:0 var(--edge);flex-direction:column;justify-content:center;align-items:center;display:flex;position:sticky;top:0;overflow:hidden}.manifesto-headline{width:100%;max-width:54rem;min-height:clamp(2.8rem,6.5vw,4.6rem);position:relative}.manifesto-beat{text-align:center;font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);pointer-events:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:.1em .32em;font-size:clamp(1.7rem,4.6vw,3.2rem);font-weight:700;display:flex;position:absolute;inset:0}.manifesto-word{display:inline-flex}.manifesto-word--accent{color:var(--accent-bright)}.manifesto-letter{will-change:opacity, transform;display:inline-block}.manifesto-paragraph{text-align:center;width:max-content;max-width:min(34rem,84vw);color:var(--ink-dim);opacity:0;will-change:opacity, transform;margin-top:clamp(.7rem,1.8vw,1.1rem);font-size:clamp(1rem,1.7vw,1.2rem);line-height:1.6;position:absolute;top:100%;left:50%}@media (width<=640px){.manifesto-headline{min-height:clamp(4.2rem,20vw,6rem)}}.image-lightbox{z-index:200;cursor:zoom-out;background:#040306eb;justify-content:center;align-items:center;padding:clamp(1.5rem,5vw,4rem);display:flex;position:fixed;inset:0}.image-lightbox-frame{cursor:default;border-radius:var(--radius-md);max-width:100%;max-height:100%;position:relative;overflow:hidden;box-shadow:0 40px 100px -30px #000000b3}.image-lightbox-media{object-fit:contain;width:auto;max-width:90vw;height:auto;max-height:85vh;display:block}.image-lightbox-close{background:var(--glass-bg-strong);border:1px solid var(--glass-border);width:44px;height:44px;color:var(--ink);cursor:pointer;transition:background var(--dur-fast) var(--ease-premium), transform var(--dur-fast) var(--ease-snap);border-radius:50%;place-items:center;display:grid;position:fixed;top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem)}.image-lightbox-close:hover{background:#ffffff29;transform:scale(1.06)}.screen-browser{grid-template-columns:minmax(220px,300px) 1fr;align-items:start;gap:clamp(1.5rem,3vw,3rem);display:grid}.screen-list{flex-direction:column;display:flex}.screen-zone{height:64px;position:relative}.screen-zone-hit{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;width:100%;height:100%;padding:0;display:flex}.screen-list-row{color:var(--ink);border-radius:4px;align-items:center;gap:.55rem;margin-left:.4rem;padding:.2rem .4rem;font-size:.95rem;display:inline-flex;position:relative;overflow:hidden}.screen-list-highlight{background:var(--accent);border-radius:inherit;z-index:-1;position:absolute;inset:0 auto 0 0}.screen-list-highlight--completed{background:#ffffff29}.screen-list-icon,.screen-list-label{transition:opacity var(--dur-fast) var(--ease-premium);position:relative}.screen-list-icon{color:inherit;flex-shrink:0;place-items:center;display:grid}.screen-list-label{white-space:nowrap}.screen-list-row--completed .screen-list-icon,.screen-list-row--completed .screen-list-label{opacity:.6}.screen-frame{border-radius:var(--radius-lg);overflow:hidden}.screen-frame-bar{border-bottom:1px solid var(--glass-border);align-items:center;gap:.9rem;padding:.55rem 1.1rem;display:flex}.screen-frame-dots{gap:.4rem;display:flex}.screen-frame-dots span{background:#ffffff24;border-radius:50%;width:8px;height:8px}.screen-frame-label{color:var(--ink-faint);font-size:.78rem}.screen-frame-hint{color:var(--ink-faint);white-space:nowrap;align-items:center;gap:.4rem;margin-left:auto;font-size:.78rem;display:flex}.screen-frame-media{background:#0a0a0c;position:relative}.screen-frame-empty{background:radial-gradient(circle at 25% 20%,#ffffff0f,#0000 55%),linear-gradient(160deg,#17131f 0%,#0c0a12 60%,#0a0a0c 100%);min-height:clamp(220px,26vw,360px);display:block;position:relative}.screen-frame-empty:after{content:"";background:radial-gradient(circle at 75% 85%, var(--accent-glow), transparent 60%);opacity:.5;pointer-events:none;position:absolute;inset:0}.screen-frame-caption{z-index:1;color:var(--ink-faint);font-size:.8rem;position:absolute;bottom:1.1rem;left:1.1rem}.screen-frame-asset{z-index:0;object-fit:contain;object-position:center;width:100%;height:auto;max-height:min(560px,58vh);display:block;position:relative}.screen-context-panel{z-index:2;-webkit-backdrop-filter:var(--blur-frost);backdrop-filter:var(--blur-frost);opacity:0;pointer-events:none;transition:opacity var(--dur-med) var(--ease-premium);background:#08070cad;justify-content:center;align-items:center;padding:clamp(1.5rem,4vw,3rem);display:flex;position:absolute;inset:0;overflow-y:auto}.screen-frame:hover .screen-context-panel{opacity:1;pointer-events:auto}.screen-context-inner{text-align:left;width:100%;max-width:34rem;margin:0 auto}.screen-context-eyebrow{color:var(--ink);margin-bottom:.7rem;display:block}.screen-context-text{z-index:1;color:var(--ink);font-size:1rem;line-height:1.6;position:relative}.screen-frame-media--zoomable{cursor:zoom-in}.screen-zoom-button{z-index:3;background:var(--accent);width:40px;height:40px;color:var(--on-accent);cursor:pointer;opacity:0;pointer-events:none;box-shadow:0 8px 20px -6px var(--accent-glow);transition:opacity var(--dur-fast) var(--ease-premium), transform var(--dur-fast) var(--ease-snap), background var(--dur-fast) var(--ease-premium);border:none;border-radius:50%;place-items:center;display:grid;position:absolute;top:1rem;right:1rem;transform:scale(.9)}.screen-frame-media:hover .screen-zoom-button{opacity:1;pointer-events:auto;transform:scale(1)}.screen-zoom-button:hover{background:var(--accent-bright)}@media (height<=820px){.screen-frame-asset{max-height:min(340px,42vh)}.screen-zone{height:52px}}.screen-stack{flex-direction:column;gap:clamp(2rem,8vw,2.8rem);display:flex}.screen-stack-item{flex-direction:column;display:flex}.screen-stack-label{color:var(--ink);align-items:center;gap:.55rem;margin-bottom:.9rem;font-size:.95rem;font-weight:600;display:flex}.screen-stack-icon{color:var(--accent);place-items:center;display:grid}.screen-stack-description{color:var(--ink-faint);margin:-.5rem 0 .9rem;font-size:.8rem;line-height:1.5}.screen-stack-item .screen-frame-asset{max-height:none}.screen-stack-item .screen-zoom-button{opacity:1;pointer-events:auto;transform:scale(1)}.role-drawer-backdrop{z-index:150;-webkit-backdrop-filter:var(--blur-frost);backdrop-filter:var(--blur-frost);background:#0403068c;justify-content:flex-end;display:flex;position:fixed;inset:0}.role-drawer-panel{background:var(--bg-elevated);border-left:1px solid var(--glass-border);width:clamp(320px,90vw,560px);height:100%;position:relative;overflow-y:auto;box-shadow:-40px 0 100px -30px #000000b3}.role-drawer-close{z-index:1;background:var(--accent);width:40px;height:40px;color:var(--on-accent);cursor:pointer;box-shadow:0 8px 20px -6px var(--accent-glow);transition:background var(--dur-fast) var(--ease-premium), transform var(--dur-fast) var(--ease-snap);border:none;border-radius:50%;place-items:center;display:grid;position:absolute;top:clamp(1.25rem,3vw,2rem);right:clamp(1.25rem,3vw,2rem)}.role-drawer-close:hover{background:var(--accent-bright);transform:scale(1.06)}.role-drawer-body{padding:clamp(4rem,9vw,5rem) clamp(1.5rem,4vw,3rem) clamp(2rem,4vw,3rem)}.role-drawer-eyebrow{margin-bottom:.6rem;display:block}.role-drawer-title{letter-spacing:-.02em;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:700}.role-drawer-role{color:var(--ink-faint);margin-top:.35rem;margin-bottom:1.75rem;font-size:.9rem;display:block}.role-drawer-paragraph{color:var(--ink-dim);margin-bottom:1.1rem;font-size:1rem;line-height:1.7}.role-drawer-paragraph:last-child{margin-bottom:0}.client-case-frame{position:relative}.client-case-frame+.client-case-frame{margin-top:clamp(2rem,4vw,3rem)}.client-case-sticky{position:sticky;top:96px}.client-case{border-bottom:1px solid #ffffff17;padding:0 0 clamp(2rem,4vw,3rem)}@media (height<=820px){.client-case-sticky{top:64px}}.client-case-frame:last-child .client-case{border-bottom:none;padding-bottom:0}@media (width<=860px){.client-case-sticky{position:static}}.client-case-header{margin-bottom:clamp(1rem,2vw,1.5rem)}.client-case-header-row{justify-content:space-between;align-items:flex-end;gap:clamp(1rem,3vw,2rem);display:flex}.client-case-header-text{max-width:46rem}.client-case-role-details-button{border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);white-space:nowrap;cursor:pointer;transition:background var(--dur-fast) var(--ease-premium);border:none;flex-shrink:0;padding:.75rem 1.4rem;font-size:.86rem;font-weight:600}.client-case-role-details-button:hover{background:var(--accent-bright)}@media (width<=640px){.client-case-header-row{flex-direction:column;align-items:flex-start}}.client-case-meta{color:var(--ink-faint);align-items:center;gap:.7rem;margin-bottom:.7rem;font-size:.85rem;display:flex}.client-case-icon{background:var(--glass-bg);width:30px;height:30px;color:var(--accent);-webkit-backdrop-filter:var(--blur-chip);backdrop-filter:var(--blur-chip);border-radius:50%;place-items:center;display:grid}.client-case-index{color:var(--accent);font-family:var(--font-display);font-weight:600}.client-case-title{letter-spacing:-.02em;font-size:clamp(1.9rem,3.2vw,2.6rem);font-weight:700}.client-case-role{color:var(--ink-faint);margin-top:.4rem;font-size:.85rem;display:inline-block}.client-case-description{color:var(--ink-dim);margin-top:.9rem;font-size:1.02rem;line-height:1.6}.client-case-tech{flex-wrap:wrap;gap:.5rem;margin-top:.7rem;display:flex}.client-case-tech li{border-radius:var(--radius-pill);border:1px solid var(--glass-border);color:var(--ink-dim);background:var(--glass-bg);-webkit-backdrop-filter:var(--blur-chip);backdrop-filter:var(--blur-chip);transition:color var(--dur-fast) var(--ease-premium), border-color var(--dur-fast) var(--ease-premium);padding:.4rem .85rem;font-size:.78rem}.client-case-tech li:hover{color:var(--accent);border-color:var(--accent-dim)}.client-case-links{gap:1.6rem;margin-top:.8rem;display:flex}.client-case-link{color:var(--ink);align-items:center;gap:.45rem;font-size:.9rem;font-weight:500;display:inline-flex;position:relative}.client-case-link:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:1px;transition:transform var(--dur-fast) var(--ease-premium);position:absolute;bottom:-3px;left:0;transform:scaleX(0)}.client-case-link:hover:after{transform:scaleX(1)}.client-case-link svg{color:var(--accent)}.client-case-list{flex-direction:column;display:flex}.contact-card{border-radius:var(--radius-lg);padding:clamp(2.2rem,6vw,4rem)}.contact-status{border-radius:var(--radius-pill);border:1px solid var(--glass-border);color:var(--ink-dim);background:#ffffff0d;align-items:center;gap:.6rem;padding:.5rem 1rem .5rem .7rem;font-size:.82rem;display:inline-flex}.contact-status-dot{background:#5be08a;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #5be08a29}.contact-copy{max-width:34rem;font-size:clamp(1.15rem,2vw,1.4rem);font-family:var(--font-display);color:var(--ink);margin-top:1.8rem;font-weight:500;line-height:1.5}.contact-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.6rem;margin-top:2.6rem;display:flex}.contact-email{color:var(--ink);font-family:var(--font-display);background:0 0;border:none;align-items:center;gap:.7rem;padding:0;font-size:clamp(1.3rem,3vw,1.9rem);font-weight:600;display:inline-flex}.contact-email svg{color:var(--accent);transition:transform var(--dur-fast) var(--ease-snap)}.contact-email:hover svg{transform:translate(3px,-3px)}.contact-socials{gap:.6rem;display:flex}.contact-social{border:1px solid var(--glass-border);width:46px;height:46px;color:var(--ink-dim);transition:color var(--dur-fast) var(--ease-premium), border-color var(--dur-fast) var(--ease-premium), transform var(--dur-fast) var(--ease-snap);border-radius:50%;place-items:center;display:grid}.contact-social:hover{color:var(--accent);border-color:var(--accent-dim);transform:translateY(-3px)}.footer{max-width:1440px;padding:2.5rem var(--edge) 3rem;color:var(--ink-faint);border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;display:flex}.footer-mark{color:var(--ink-faint);transition:color var(--dur-fast) var(--ease-premium)}.footer-mark:hover{color:var(--accent)}.footer-copy{text-align:center;font-size:.82rem}.footer-top{color:var(--ink-dim);transition:color var(--dur-fast) var(--ease-premium);font-size:.82rem}.footer-top:hover{color:var(--accent)}@media (width<=560px){.footer{text-align:center;flex-direction:column}}
