@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_9c4136ed-module__hVL17a__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_9c4136ed-module__hVL17a__variable{--font-display:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_3645cf4d-module__-KQRRa__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_3645cf4d-module__-KQRRa__variable{--font-sans:"Inter", "Inter Fallback"}
:root{--bg:#05060a;--bg-soft:#0b0e16;--panel:#ffffff0a;--panel-border:#ffffff14;--text:#e8eaf0;--text-dim:#9aa0b4;--accent:#6ea8fe;--accent-2:#b388ff;--accent-3:#4dd6c1;--max-w:1100px;--radius:18px;--font-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:17px;line-height:1.65;overflow-x:hidden}h1,h2,h3,.hero-title,.section-title,.timeline-role,.card-title,.skill-card h3,.navflow-brand{font-family:var(--font-display);font-feature-settings:"ss01" 1}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:#05060a}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 24px}.navflow{z-index:50;pointer-events:none;background:0 0;height:72px;padding-top:0;transition:padding-top .55s cubic-bezier(.34,1.4,.64,1);position:fixed;top:0;left:0;right:0}.navflow-inner{border:1px solid #0000;border-radius:0;justify-content:space-between;align-items:center;height:72px;transition:max-width .55s cubic-bezier(.34,1.4,.64,1),height .55s cubic-bezier(.34,1.4,.64,1),padding .55s cubic-bezier(.34,1.4,.64,1),border-radius .55s cubic-bezier(.34,1.4,.64,1),background .45s,border-color .45s,box-shadow .45s;display:flex;position:relative}.navflow-brand,.navflow-links,.navflow-right{pointer-events:auto}.navflow-right{align-items:center;gap:22px;display:flex}.navflow-cv{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;color:var(--accent);white-space:nowrap;text-shadow:0 1px 14px #05060abf;border:1px solid #6ea8fe66;border-radius:999px;padding:6px 14px;font-size:.74rem;font-weight:500;transition:color .25s,background .25s,border-color .25s,transform .25s}.navflow-cv:hover,.navflow-cv:focus-visible{color:#05060a;background:linear-gradient(90deg, var(--accent), var(--accent-2));text-shadow:none;border-color:#0000;outline:none;transform:translateY(-1px)}.navflow-burger{cursor:pointer;background:0 0;border:0;width:30px;height:30px;padding:0;display:none;position:relative}.navflow-burger span{background:#e8eaf0eb;border-radius:2px;height:2px;transition:transform .3s,opacity .2s,top .3s;position:absolute;left:5px;right:5px}.navflow-burger span:first-child{top:9px}.navflow-burger span:nth-child(2){top:14px}.navflow-burger span:nth-child(3){top:19px}.navflow.open .navflow-burger span:first-child{top:14px;transform:rotate(45deg)}.navflow.open .navflow-burger span:nth-child(2){opacity:0}.navflow.open .navflow-burger span:nth-child(3){top:14px;transform:rotate(-45deg)}.navflow.scrolled{padding-top:14px}.navflow.scrolled .navflow-inner{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto;background:#0c0e1699;border-color:#ffffff17;border-radius:999px;max-width:920px;height:52px;margin:0 auto;padding:0 18px 0 28px;box-shadow:0 14px 44px #00000080,inset 0 1px #ffffff0f}.navflow.scrolled .navflow-links{gap:26px}.navflow.scrolled .navflow-brand{font-size:.98rem}@media (prefers-reduced-motion:reduce){.navflow,.navflow-inner{transition:none}}.navflow-brand{letter-spacing:-.01em;opacity:.82;filter:drop-shadow(0 1px 10px #05060acc);font-size:1.15rem;font-weight:700;transition:opacity .3s,font-size .55s cubic-bezier(.34,1.4,.64,1)}.navflow-brand:hover{opacity:1}.navflow-brand span{background:linear-gradient(90deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.navflow-links{align-items:center;gap:30px;list-style:none;display:flex}.navflow-links a{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;color:#9aa0b49e;text-shadow:0 1px 14px #05060abf;padding:8px 2px;font-size:.74rem;font-weight:500;transition:color .3s,text-shadow .3s,opacity .3s,transform .3s;display:inline-block;position:relative}.navflow-links a:hover,.navflow-links a:focus-visible{color:#e8eaf0f2;text-shadow:0 1px 14px #05060abf,0 0 12px #6ea8fe73;outline:none;transform:translateY(-1px)}.navflow-links a.active{color:#e8eaf0e6}.navflow-links a.navflow-route{color:var(--accent);border:1px solid #6ea8fe66;border-radius:999px;padding:6px 14px}.navflow-links a.navflow-route:hover,.navflow-links a.navflow-route:focus-visible{color:#05060a;background:linear-gradient(90deg, var(--accent), var(--accent-2));text-shadow:none;border-color:#0000}.navflow-links a.active:after{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-2));opacity:.55;border-radius:2px;height:1.5px;position:absolute;bottom:0;left:0;right:0;box-shadow:0 0 6px #6ea8fe66}@media (max-width:680px){.navflow-burger{display:inline-flex}.navflow-right{gap:14px}.navflow-links,.navflow.scrolled .navflow-links{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;transform-origin:100% 0;pointer-events:none;background:#0c0e16eb;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;align-items:stretch;gap:2px;min-width:210px;padding:10px;transition:opacity .22s,transform .22s;position:absolute;top:calc(100% + 10px);right:0;transform:translateY(-8px)scale(.98);box-shadow:0 18px 50px #0000008c}.navflow.open .navflow-links{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.navflow-links a{border-radius:10px;padding:11px 14px;font-size:.8rem;display:block}.navflow-links a:hover,.navflow-links a:focus-visible,.navflow-links a.active{background:#ffffff0f;transform:none}.navflow-links a.active:after{display:none}}.section,.footer{scroll-margin-top:84px}.hero{text-align:center;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.hero:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(#0000 30%,#05060a8c 100%);position:absolute;inset:0}.hero-content{z-index:2;padding:0 24px;animation:1s both fadeUp;position:relative}.hero-eyebrow{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.32em;color:var(--accent-3);margin-bottom:18px;font-size:.78rem;font-weight:500}@keyframes cosmicIn{to{opacity:1;filter:blur();transform:none}}@keyframes hereGlow{0%,to{text-shadow:0 0 10px #4dd6c173}50%{text-shadow:0 0 18px #4dd6c1e6,0 0 30px #4dd6c166}}.hero-title{letter-spacing:-.03em;font-size:clamp(2.8rem,9vw,6rem);font-weight:700;line-height:.98}.hero-title span{background:linear-gradient(100deg, var(--accent), var(--accent-2) 50%, var(--accent-3));color:#0000;-webkit-background-clip:text;background-clip:text}.hero-role{font-family:var(--font-display);color:var(--text-dim);letter-spacing:-.01em;margin-top:16px;font-size:clamp(1.05rem,2.5vw,1.5rem);font-weight:500}.hero-tagline{max-width:600px;color:var(--text-dim);margin:22px auto 0;font-size:1.08rem;line-height:1.6}.hero-cta{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:34px;display:flex}.btn{font-family:var(--font-display);letter-spacing:-.005em;cursor:pointer;border:1px solid var(--panel-border);border-radius:999px;align-items:center;gap:8px;padding:13px 26px;font-size:.92rem;font-weight:600;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.btn-primary{background:linear-gradient(90deg, var(--accent), var(--accent-2));color:#05060a;border:none}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 30px #6ea8fe59}.btn-ghost{background:var(--panel);color:var(--text)}.btn-ghost:hover{background:#ffffff14;transform:translateY(-2px)}.hero-tip{z-index:2;color:var(--text-dim);letter-spacing:1.5px;text-transform:uppercase;opacity:.65;font-size:.72rem;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}.scroll-hint{z-index:2;color:var(--text-dim);letter-spacing:2px;font-size:.78rem;animation:1.8s ease-in-out infinite bob;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.section{padding:110px 0;position:relative}.section-alt{background:var(--bg-soft)}.section-head{margin-bottom:48px}.section-kicker{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.28em;color:var(--accent);font-size:.75rem;font-weight:600}.section-title{letter-spacing:-.025em;margin-top:10px;font-size:clamp(2rem,4.5vw,2.9rem);font-weight:700}.about-text p{color:var(--text-dim);max-width:720px;margin-bottom:18px;font-size:1.18rem;line-height:1.7}.company{margin-bottom:56px}.company:last-child{margin-bottom:0}.company-head{margin-bottom:28px}.company-name{letter-spacing:-.02em;font-size:clamp(1.5rem,3vw,2rem);font-weight:700}.company-meta{color:var(--text-dim);flex-wrap:wrap;gap:6px 16px;margin-top:6px;font-size:.95rem;display:flex}.company-meta .company-period{color:var(--accent-3);font-weight:600}.timeline{border-left:2px solid var(--panel-border);margin-left:8px;position:relative}.timeline-item{padding:0 0 42px 32px;position:relative}.timeline-item:before{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:50%;width:14px;height:14px;position:absolute;top:6px;left:-8px;box-shadow:0 0 0 4px #6ea8fe1f}.timeline-period{color:var(--accent-3);letter-spacing:.5px;font-size:.82rem;font-weight:600}.timeline-role{letter-spacing:-.015em;margin-top:4px;font-size:1.35rem;font-weight:600}.timeline-org{color:var(--text-dim);margin-bottom:10px;font-size:.98rem}.timeline-summary{color:var(--text);margin-bottom:10px}.timeline-list{flex-direction:column;gap:6px;list-style:none;display:flex}.timeline-list li{color:var(--text-dim);padding-left:18px;position:relative}.timeline-list li:before{content:"▹";color:var(--accent);position:absolute;left:0}.tags{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.tag{background:var(--panel);border:1px solid var(--panel-border);color:var(--text-dim);border-radius:999px;padding:4px 12px;font-size:.78rem}.skills-grid{column-width:320px;column-gap:14px}.skills-grid>*{break-inside:avoid;margin-bottom:14px}.skill-card{--card-accent:var(--accent);border:1px solid var(--panel-border);border-radius:var(--radius);background:linear-gradient(165deg,#ffffff0e,#ffffff05);padding:26px 24px 20px;transition:transform .25s,border-color .25s,box-shadow .25s;position:relative;overflow:hidden}.skill-card:before{content:"";background:linear-gradient(90deg, var(--card-accent), transparent 75%);height:2px;position:absolute;inset:0 0 auto}.skill-card:after{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--card-accent) 22%, transparent), transparent 70%);pointer-events:none;opacity:.7;width:65%;height:90%;transition:opacity .25s;position:absolute;top:-45%;right:-25%}.skill-card:hover{border-color:color-mix(in srgb, var(--card-accent) 45%, transparent);transform:translateY(-4px);box-shadow:0 18px 44px #00000073}.skill-card:hover:after{opacity:1}.skill-card h3{align-items:center;gap:10px;margin-bottom:18px;font-size:1.02rem;display:flex}.skill-card h3:before{content:"";background:var(--card-accent);width:8px;height:8px;box-shadow:0 0 12px var(--card-accent);border-radius:3px}.skill-list{flex-direction:column;list-style:none;display:flex}.skill-row{border-radius:10px;justify-content:space-between;align-items:center;gap:14px;margin:0 -8px;padding:7px 8px;transition:background .18s;display:flex}.skill-row:hover{background:#ffffff0b}.skill-name{color:var(--text);letter-spacing:-.01em;font-size:.9rem}.skill-meta{flex-shrink:0;align-items:center;gap:10px;display:inline-flex}.skill-score{font-variant-numeric:tabular-nums;color:var(--text-dim);text-align:right;min-width:1.9em;font-size:.72rem}.stars{flex-shrink:0;align-items:center;gap:3px;font-size:.92rem;line-height:1;display:inline-flex}.star{display:inline-block;position:relative}.star-bg{color:#ffffff21}.star-fg{white-space:nowrap;background:linear-gradient(90deg,#ffe08a,#ffc83d 55%,#ffae33);-webkit-text-fill-color:transparent;color:#0000;filter:drop-shadow(0 0 6px #ffc83d73);-webkit-background-clip:text;background-clip:text;position:absolute;top:0;left:0;overflow:hidden}.card-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;display:grid}.card{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);flex-direction:column;height:100%;padding:24px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.card:hover{border-color:#b388ff66;transform:translateY(-5px);box-shadow:0 18px 40px #0006}.card-title{letter-spacing:-.015em;margin-bottom:8px;font-size:1.25rem;font-weight:600}.card-meta{color:var(--accent-3);flex-wrap:wrap;gap:12px;margin-bottom:10px;font-size:.82rem;display:flex}.card-desc{color:var(--text-dim);flex:1}.card-thumb{aspect-ratio:16/9;background:linear-gradient(135deg,#6ea8fe40,#b388ff40);border-radius:12px;justify-content:center;align-items:center;margin-bottom:16px;display:flex;position:relative;overflow:hidden}.card-thumb img{object-fit:cover;width:100%;height:100%}.card-thumb-fallback{opacity:.6;font-size:2rem}.card-link{color:var(--accent);margin-top:16px;font-size:.9rem;font-weight:600}.section-lead{max-width:560px;color:var(--text-dim);margin-top:14px;font-size:1.05rem}.project-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;display:grid}.project-card{flex-direction:column;display:flex}.project-logo{aspect-ratio:4/3;border-radius:var(--radius);border:1px solid var(--panel-border);background:radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--glow) 38%, transparent), transparent 68%), var(--panel);justify-content:center;align-items:center;transition:border-color .3s;display:flex;position:relative;overflow:hidden}.project-card:hover .project-logo{border-color:color-mix(in srgb, var(--glow) 50%, transparent)}.project-logo img{object-fit:contain;filter:blur(18px)saturate(1.25);opacity:.85;width:60%;height:60%;transition:filter .4s,transform .4s;transform:scale(1.12)}.project-card:hover .project-logo img{filter:blur(15px)saturate(1.35);transform:scale(1.2)}.project-badge{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:#fff;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05060a80;border:1px solid #fff3;border-radius:999px;padding:9px 20px;font-size:.78rem;font-weight:600;animation:2.6s ease-out infinite badgePulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes badgePulse{0%{box-shadow:0 0 #ffffff47}70%,to{box-shadow:0 0 0 16px #fff0}}.project-teaser{color:var(--text-dim);margin-top:18px;font-size:1rem;line-height:1.6}.footer{border-top:1px solid var(--panel-border);text-align:center;color:var(--text-dim);background:radial-gradient(ellipse at 50% 120%, #14102899, var(--bg) 70%);padding:90px 0 56px;position:relative;overflow:hidden}.footer-canvas{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.footer-inner{z-index:1;position:relative}.footer-origin-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.3em;color:var(--accent-3);opacity:.8;margin-bottom:14px;font-size:.68rem}.footer-origin{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;margin:0 0 32px;font-size:clamp(.85rem,2.4vw,1.15rem);display:inline-flex}.footer-origin>span{opacity:0;filter:blur(3px);animation:.6s cubic-bezier(.2,.7,.2,1) forwards paused cosmicIn;display:inline-block;transform:translateY(10px)scale(.96)}.footer-origin.visible>span{animation-play-state:running}.footer-origin>span:first-child{animation-delay:.1s}.footer-origin>span:nth-child(2){animation-delay:.23s}.footer-origin>span:nth-child(3){animation-delay:.36s}.footer-origin>span:nth-child(4){animation-delay:.49s}.footer-origin>span:nth-child(5){animation-delay:.62s}.footer-origin>span:nth-child(6){animation-delay:.75s}.footer-origin>span:nth-child(7){animation-delay:.88s}.footer-origin>span:nth-child(8){animation-delay:1.01s}.footer-origin .sep{color:var(--accent);opacity:.5}.footer-origin .here{color:#fff;font-weight:700;animation:.6s cubic-bezier(.2,.7,.2,1) 1.15s forwards paused cosmicIn,2.4s ease-in-out 1.85s infinite paused hereGlow}.footer-origin.visible .here{animation-play-state:running,running}.footer-socials{flex-wrap:wrap;justify-content:center;gap:22px;margin-bottom:20px;display:flex}.footer-socials a{transition:color .2s}.footer-socials a:hover{color:var(--accent)}.footer small{font-size:.8rem}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(28px)}.reveal.visible{opacity:1;transform:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes bob{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(8px)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}.reveal{opacity:1;transform:none}.footer-origin>span,.footer-origin .here{opacity:1!important;filter:none!important;transform:none!important}}.cv-page{min-height:100vh;padding:40px 20px 80px}.cv-actions{justify-content:space-between;align-items:center;gap:12px;max-width:820px;margin:0 auto 22px;display:flex}.cv-back{color:var(--text-dim);font-size:.9rem;transition:color .2s}.cv-back:hover{color:var(--text)}.cv-doc{color:#1b2030;background:#fff;border-radius:14px;max-width:820px;margin:0 auto;padding:56px 60px;font-size:14px;line-height:1.55;box-shadow:0 30px 80px #00000080}.cv-header{border-bottom:2px solid #e6e8ee;margin-bottom:26px;padding-bottom:20px}.cv-header h1{font-family:var(--font-display);letter-spacing:-.02em;color:#101521;font-size:2.2rem;font-weight:700}.cv-role{font-family:var(--font-display);color:#3a6ea5;margin-top:4px;font-size:1.05rem;font-weight:500}.cv-contact{color:#5a6376;flex-wrap:wrap;gap:4px 14px;margin-top:12px;font-size:.85rem;display:flex}.cv-contact a{color:#3a6ea5}.cv-section{margin-top:26px}.cv-section>h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;color:#3a6ea5;border-bottom:1px solid #e6e8ee;margin-bottom:16px;padding-bottom:6px;font-size:.85rem;font-weight:700}.cv-summary-text{color:#2b3142}.cv-summary-text p{margin-bottom:8px}.cv-achievements ul{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f1f5fb;border:1px solid #dfe5f0;border-left:3px solid #3a6ea5;border-radius:8px;margin:0;padding:12px 16px}.cv-achievements ul li{font-weight:500}.cv-company{margin-bottom:22px}.cv-block-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.cv-company>.cv-block-head strong{font-family:var(--font-display);color:#101521;font-size:1.15rem}.cv-period{color:#6a7286;white-space:nowrap;font-size:.82rem}.cv-block-sub{color:#5a6376;margin-bottom:6px;font-size:.9rem}.cv-role-block{break-inside:avoid;border-left:2px solid #e6e8ee;margin:14px 0 14px 14px;padding-left:16px}.cv-role-block .cv-block-head strong{font-family:var(--font-display);color:#1b2030;font-size:1rem}.cv-summary{color:#4a5266;margin:4px 0 6px;font-style:italic}.cv-doc ul{margin:6px 0;list-style:none}.cv-doc ul li{color:#2b3142;margin-bottom:4px;padding-left:16px;position:relative}.cv-doc ul li:before{content:"▸";color:#3a6ea5;position:absolute;left:0}.cv-tech{color:#6a7286;margin-top:6px;font-size:.8rem}.cv-tech strong{color:#4a5266}.cv-skill-row{align-items:baseline;gap:14px;margin-bottom:7px;font-size:.9rem;display:flex}.cv-skill-row strong{font-family:var(--font-display);color:#101521;flex:0 0 168px}@media (max-width:640px){.cv-doc{padding:32px 22px}}@media print{body{background:#fff!important}.cv-page{padding:0}.cv-actions{display:none!important}.cv-doc{max-width:none;box-shadow:none;border-radius:0;margin:0;padding:0;font-size:10pt;line-height:1.32}.cv-role-block,.cv-company{break-inside:auto}.cv-role-block .cv-block-head{break-after:avoid}.cv-section{margin-top:15px}.cv-section>h2{break-after:avoid;margin-bottom:9px;padding-bottom:4px}.cv-company{margin-bottom:13px}.cv-role-block{margin:9px 0 9px 12px}.cv-doc ul{margin:4px 0}.cv-doc ul li{margin-bottom:2px}.cv-tech{margin-top:3px}.cv-skill-row{margin-bottom:4px}@page{margin:12mm 14mm}}.u3d-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.page-hero{text-align:center;justify-content:center;align-items:center;min-height:64vh;padding-top:72px;display:flex;position:relative;overflow:hidden}.page-hero-vignette,.proj-hero-vignette{z-index:1;pointer-events:none;background:radial-gradient(#0000 28%,#05060a9e 100%);position:absolute;inset:0}.page-hero-content{z-index:2;max-width:820px;padding:0 24px;animation:1s both fadeUp;position:relative}.page-hero-eyebrow{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.3em;color:var(--glow,var(--accent-3));margin-bottom:16px;font-size:.78rem;font-weight:500}.page-hero-title{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(2.4rem,7vw,4.6rem);font-weight:700;line-height:1.02}.page-hero-sub{color:var(--text-dim);max-width:620px;margin:18px auto 0;font-size:clamp(1rem,2vw,1.2rem);line-height:1.6}.site-footer{border-top:1px solid var(--panel-border);text-align:center;color:var(--text-dim);padding:46px 0}.hub-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.hub-card{border-radius:var(--radius);background:var(--panel);border:1px solid var(--panel-border);flex-direction:column;gap:6px;padding:26px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;position:relative}.hub-card:hover{border-color:#6ea8fe66;transform:translateY(-4px);box-shadow:0 16px 38px #0000006b}.hub-title{font-family:var(--font-display);font-size:1.2rem;font-weight:600}.hub-desc{color:var(--text-dim);font-size:.95rem}.hub-arrow{color:var(--accent);transition:transform .2s;position:absolute;top:24px;right:24px}.hub-card:hover .hub-arrow{transform:translate(5px)}.project-card{cursor:pointer}.project-explore{font-family:var(--font-display);letter-spacing:.02em;color:var(--glow,var(--accent));margin-top:14px;font-size:.85rem;font-weight:600;transition:transform .2s;display:inline-block}.project-card:hover .project-explore{transform:translate(4px)}.contact-block{text-align:center;flex-direction:column;align-items:center;gap:24px;display:flex}.contact-links{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.contact-email{font-family:var(--font-display);color:#fff;font-size:clamp(1.2rem,3.5vw,2rem);font-weight:600;transition:color .2s}.contact-email:hover{color:var(--accent)}.contact-phone{color:var(--text-dim)}.proj-hero{text-align:center;justify-content:center;align-items:center;min-height:100vh;padding:90px 24px 40px;display:flex;position:relative;overflow:hidden}.proj-hero-content{z-index:2;flex-direction:column;align-items:center;max-width:720px;animation:1s both fadeUp;display:flex;position:relative}.proj-logo-wrap{justify-content:center;align-items:center;width:200px;height:150px;margin-bottom:28px;display:flex;position:relative}.proj-logo-wrap img{object-fit:contain;filter:blur(20px)saturate(1.3);opacity:.85;width:72%;height:72%}.proj-eyebrow{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.3em;color:var(--glow,var(--accent-3));margin-bottom:12px;font-size:.8rem}.proj-title{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(2rem,6vw,3.6rem);font-weight:700;line-height:1.05}.proj-lead{color:var(--text-dim);margin-top:18px;font-size:1.1rem;line-height:1.65}.social-icons{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.icon-btn{border:1px solid var(--panel-border);background:var(--panel);width:46px;height:46px;color:var(--text-dim);border-radius:50%;justify-content:center;align-items:center;transition:color .2s,border-color .2s,transform .2s,background .2s,box-shadow .2s;display:inline-flex}.icon-btn svg{fill:currentColor;width:20px;height:20px}.icon-btn:hover,.icon-btn:focus-visible{color:#fff;background:#6ea8fe1f;border-color:#6ea8fe8c;outline:none;transform:translateY(-3px);box-shadow:0 10px 24px #0006}.achievements-list{max-width:780px}.achievements-list li{margin-bottom:10px;font-size:1.06rem}.car-hero{border-radius:var(--radius);background:var(--panel);border:1px solid #ff9d6e73;grid-template-columns:1.05fr 1fr;margin:0 0 32px;display:grid;overflow:hidden;box-shadow:0 30px 90px #0009}.car-hero-media{min-height:440px;position:relative}.car-hero-media img{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.car-hero-badge{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;color:#05060a;background:linear-gradient(90deg,#ff9d6e,#f6c453);border-radius:999px;padding:6px 12px;font-size:.64rem;font-weight:600;position:absolute;top:16px;left:16px;box-shadow:0 6px 20px #ff9d6e66}.car-hero-body{flex-direction:column;justify-content:center;padding:34px;display:flex}.car-hero-eyebrow{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.18em;color:#ff9d6e;margin-bottom:12px;font-size:.72rem}.car-hero-name{font-family:var(--font-display);margin-bottom:14px;font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.04}.car-hero-story{color:var(--text-dim);font-size:1.06rem}@media (max-width:760px){.car-hero{grid-template-columns:1fr}.car-hero-media{min-height:300px}.car-hero-body{padding:26px 22px}}.car-intro{color:var(--text-dim);margin-bottom:24px;font-size:1.08rem}.car-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.car-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;margin:0;transition:transform .3s,border-color .3s,box-shadow .3s;overflow:hidden}.car-card:hover{border-color:#6ea8fe66;transform:translateY(-4px);box-shadow:0 18px 50px #00000073}.car-card.current{border-color:#ff9d6e8c}.car-photo{aspect-ratio:4/3;position:relative;overflow:hidden}.car-photo img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.car-card:hover .car-photo img{transform:scale(1.04)}.car-badge{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;color:#05060a;background:linear-gradient(90deg,#ff9d6e,#f6c453);border-radius:999px;padding:4px 10px;font-size:.62rem;font-weight:600;position:absolute;top:10px;right:10px}.car-card figcaption{flex-direction:column;gap:3px;padding:14px 16px 16px;display:flex}.car-name{font-family:var(--font-display);font-size:1.02rem;font-weight:600}.car-note{color:var(--text-dim);font-size:.9rem}.life-other{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;display:grid}.life-block{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:22px 24px}.life-block-title{font-family:var(--font-display);align-items:center;gap:10px;margin-bottom:8px;font-size:1.2rem;display:flex}.life-fresh{text-transform:uppercase;letter-spacing:.14em;color:#05060a;background:var(--accent-3);border-radius:999px;padding:3px 8px;font-size:.6rem;font-weight:600}.life-block p{color:var(--text-dim)}.about-layout{grid-template-columns:minmax(220px,300px) 1fr;align-items:start;gap:40px;display:grid}.about-portrait{border-radius:var(--radius);border:1px solid var(--panel-border);margin:0;overflow:hidden;box-shadow:0 24px 60px #00000080}.about-portrait img{aspect-ratio:4/5;object-fit:cover;object-position:center top;width:100%;display:block}@media (max-width:760px){.about-layout{grid-template-columns:1fr;justify-items:center;gap:26px}.about-portrait{max-width:280px}.about-body{text-align:left}}
