@media (width<=640px){:root{--glass-bg:#ffffff0d;--glass-border:#9ec5ff38}}*,:before,:after{box-sizing:border-box}html,body{color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:0 0;margin:0;padding:0;line-height:1.6}html{overflow-x:clip}body{min-height:100vh;overflow-x:clip}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}:focus-visible{outline:2px solid var(--cobalt);outline-offset:3px;border-radius:4px}.skip-link{z-index:9999;background:var(--cobalt);color:#0a0a0f;border-radius:0 0 8px 8px;padding:10px 20px;font-size:14px;font-weight:600;transition:top .2s;position:fixed;top:-100%;left:50%;transform:translate(-50%)}.skip-link:focus{outline:none;top:0}::selection{color:#fff;background:#9ec5ff4d}img,svg{max-width:100%;display:block}.grad-text{background:var(--grad);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.section-label{text-transform:uppercase;letter-spacing:.14em;color:var(--cobalt);margin-bottom:clamp(6px,1.3vh,12px);font-size:11px;font-weight:600;display:block}.section-heading{font-family:var(--font-display);font-weight:800;font-size:var(--text-h2);color:var(--text-primary);margin:0 0 clamp(8px,4vh,36px);line-height:1.15}.container{max-width:var(--max-width);padding:0 var(--pad-x);margin:0 auto}@media (width<=640px){.container{padding:0 24px}}@keyframes floatA{0%,to{transform:translate(0%)scale(1)}33%{transform:translate(3%,-3%)scale(1.08)}66%{transform:translate(-2%,2%)scale(.95)}}@keyframes floatB{0%,to{transform:translate(0%)scale(1)}40%{transform:translate(-3%,2%)scale(1.09)}70%{transform:translate(2%,-2%)scale(.93)}}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(200%)}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.section-progress{background:#ffffff1a;height:2px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.section-progress__bar{background:linear-gradient(90deg, var(--cobalt), var(--lavender));transform-origin:0;will-change:transform;width:100%;height:100%;transform:scaleX(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.skills__marquee-track{animation:none!important}.hero-role__caret{opacity:1;animation:none!important}.hero-badge__dot{animation:none!important}}@media (width<=640px){:root{--glass-bg:#ffffff0d;--glass-border:#9ec5ff38}}.cosmos-bg{pointer-events:none;z-index:-1;background:radial-gradient(ellipse 80% 60% at 20% 0%, #9ec5ff21 0%, transparent 65%), radial-gradient(ellipse 60% 50% at 85% 90%, #c8a8ff1c 0%, transparent 60%), radial-gradient(ellipse 50% 40% at 90% 10%, #86efac12 0%, transparent 55%), var(--bg);width:100vw;height:100vh;position:fixed;inset:0}.cosmos-bg:before{content:"";background-image:radial-gradient(circle,#9ec5ff21 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0}.cosmos-bg:after{content:"";background:radial-gradient(100% 100%,#0000 45%,#07080d80 100%);position:absolute;inset:0}.cosmos-bg__nebula{filter:blur(72px);opacity:.8;will-change:transform;border-radius:50%;position:absolute}.cosmos-bg__nebula--a{background:radial-gradient(circle,#9ec5ff2e 0%,#0000 70%);width:520px;height:420px;animation:38s ease-in-out infinite nebula-drift-a;top:-80px;left:-60px}.cosmos-bg__nebula--b{background:radial-gradient(circle,#c8a8ff26 0%,#0000 70%);width:440px;height:360px;animation:46s ease-in-out infinite nebula-drift-b;bottom:-40px;right:-80px}.cosmos-bg__nebula--c{background:radial-gradient(circle,#86efac1a 0%,#0000 70%);width:360px;height:300px;animation:32s ease-in-out infinite nebula-drift-c;top:30%;right:10%}.cosmos-bg__nebula--d{background:radial-gradient(circle,#9ec5ff17 0%,#0000 70%);width:300px;height:260px;animation:28s ease-in-out infinite nebula-drift-d;bottom:20%;left:15%}.cosmos-bg__stars{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.cosmos-bg__stars circle{fill:#e7eaf2}.cosmos-bg__stars circle.is-bright{filter:drop-shadow(0 0 4px #9ec5ffe6)drop-shadow(0 0 8px #9ec5ff66)}.cosmos-bg__stars circle.is-twinkle{animation:4s ease-in-out infinite star-twinkle}@keyframes nebula-drift-a{0%,to{transform:translate(0)scale(1)}33%{transform:translate(40px,-30px)scale(1.07)}66%{transform:translate(-20px,20px)scale(.94)}}@keyframes nebula-drift-b{0%,to{transform:translate(0)scale(1)}40%{transform:translate(-35px,25px)scale(1.09)}70%{transform:translate(25px,-20px)scale(.92)}}@keyframes nebula-drift-c{0%,to{transform:translate(0)}50%{transform:translate(-20px,15px)}}@keyframes nebula-drift-d{0%,to{transform:translate(0)}50%{transform:translate(15px,-10px)}}@keyframes star-twinkle{0%,to{opacity:var(--base-op,.6)}50%{opacity:.15}}@media (prefers-reduced-motion:reduce){.cosmos-bg__nebula,.cosmos-bg__stars circle.is-twinkle{animation:none!important}}@media (width<=640px){:root{--glass-bg:#ffffff0d;--glass-border:#9ec5ff38}}.nav{z-index:var(--z-nav);border-bottom:1px solid #0000;align-items:center;height:64px;transition:-webkit-backdrop-filter .3s,backdrop-filter .3s,background .3s,border-color .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav--scrolled{-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--border-subtle);background:#09090f99}.nav__inner{max-width:var(--max-width);padding:0 var(--pad-x);margin:0 auto}@media (width<=640px){.nav__inner{padding:0 24px}}.nav__inner{justify-content:space-between;align-items:center;width:100%;display:flex}.nav__brand{font-family:var(--font-display);letter-spacing:.02em;align-items:center;gap:6px;font-size:20px;font-weight:800;display:inline-flex}.nav__brand-mark{font-size:22px}.nav__brand-dot{background:var(--cobalt);border-radius:50%;width:6px;height:6px}.nav__links{align-items:center;gap:4px;margin:0;padding:0;list-style:none;display:flex;position:relative}.nav__links a{font-size:var(--text-sm);color:var(--text-secondary);letter-spacing:.01em;font-weight:500;font-family:var(--font-body);padding:5px 11px;transition:color .2s,text-shadow .2s;display:block;position:relative}.nav__links a:after{content:"";background:var(--grad);transform-origin:0;height:1px;transition:transform .3s var(--ease-out);position:absolute;bottom:0;left:11px;right:11px;transform:scaleX(0)}.nav__links a:hover,.nav__links a.nav__link--active{color:var(--text-primary)}.nav__links a.nav__link--active:after{transform:scaleX(1)}@media (width<=640px){.nav__links{display:none}}.nav__indicator{pointer-events:none;opacity:0;background:#09090fbf;border:1px solid #ffffff24;border-radius:7px;width:0;height:30px;transition:left .28s cubic-bezier(.25,.46,.45,.94),width .28s cubic-bezier(.25,.46,.45,.94),opacity .18s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav__burger{cursor:pointer;width:36px;height:36px;z-index:calc(var(--z-nav) + 1);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:6px;display:none}.nav__burger span{background:var(--text-primary);transform-origin:50%;width:22px;height:2px;transition:transform .35s var(--ease-out), opacity .2s ease;border-radius:2px;display:block}.nav__burger--open span:first-child{transform:translateY(7px)rotate(45deg)}.nav__burger--open span:nth-child(2){opacity:0;transform:scaleX(0)}.nav__burger--open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (width<=640px){.nav__burger{display:flex}}.nav__mobile{z-index:calc(var(--z-nav) - 1);-webkit-backdrop-filter:blur(20px);transition:transform .4s var(--ease-out);pointer-events:none;background:#09090ff7;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;transform:translate(100%)}.nav__mobile--open{pointer-events:auto;transform:translate(0)}.nav__mobile-links{flex-direction:column;align-items:center;gap:4px;margin:0;padding:0;list-style:none;display:flex}.nav__mobile-links li{opacity:0;transition:opacity .35s ease, transform .45s var(--ease-out);transform:translate(24px)}.nav__mobile-links li:first-child{transition-delay:0s}.nav__mobile-links li:nth-child(2){transition-delay:50ms}.nav__mobile-links li:nth-child(3){transition-delay:.1s}.nav__mobile-links li:nth-child(4){transition-delay:.15s}.nav__mobile-links a{font-family:var(--font-display);color:var(--text-secondary);letter-spacing:-.02em;padding:12px 32px;font-size:clamp(32px,8vw,48px);font-weight:800;transition:color .2s;display:block}.nav__mobile-links a:hover,.nav__mobile-links a.nav__link--active{color:var(--text-primary)}.nav__mobile--open .nav__mobile-links li{opacity:1;transform:translate(0)}.ntrans{z-index:200;background:var(--bg);opacity:1;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:fixed;inset:0}.ntrans--out{opacity:0}.ntrans__inner{flex-direction:column;align-items:stretch;display:inline-flex}.ntrans__label{font-family:var(--font-display);letter-spacing:-.04em;background:var(--grad);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(48px,9vw,120px);font-weight:800;line-height:1}.ntrans__track{background:#9ec5ff1f;border-radius:2px;height:3px;margin-top:14px;overflow:hidden}.ntrans__bar{background:var(--grad);transform-origin:0;border-radius:2px;width:100%;height:100%;animation:.65s cubic-bezier(.4,0,.2,1) 50ms forwards ntrans-fill;transform:scaleX(0)}@keyframes ntrans-fill{to{transform:scaleX(1)}}@media (width<=640px){:root{--glass-bg:#ffffff0d;--glass-border:#9ec5ff38}}.hero{align-items:center;min-height:100vh;padding:120px 0 80px;display:flex;position:relative}@media (width<=640px){.hero{padding:100px 0 60px}}.hero__container{width:100%;max-width:var(--max-width);padding:0 var(--pad-x);margin:0 auto}.hero-content{z-index:var(--z-hero-content);position:relative}.hero-badge{color:var(--mint);letter-spacing:.02em;background:#86efac14;border:1px solid #86efac47;border-radius:999px;align-items:center;gap:10px;margin-bottom:clamp(20px,4vh,32px);padding:6px 14px 6px 10px;font-size:13px;font-weight:500;display:inline-flex}.hero-badge__dot{background:var(--mint);width:7px;height:7px;box-shadow:0 0 10px var(--mint);border-radius:50%;animation:2.4s ease-in-out infinite blink}.hero-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-hero);letter-spacing:-.04em;color:var(--text-primary);margin:0 0 clamp(20px,3vh,32px);line-height:.96}@media (width<=640px){.hero-name{font-size:clamp(48px,14vw,80px)}}.hero-name .name-word{white-space:nowrap;display:inline-block}.hero-name .name-char{will-change:transform, opacity;display:inline-block}.hero-role{font-family:var(--font-mono);color:var(--text-secondary);align-items:center;gap:10px;margin-bottom:clamp(20px,3vh,36px);font-size:clamp(14px,1.4vw,18px);font-weight:500;display:inline-flex}.hero-role__prefix{color:var(--cobalt);font-weight:600}.hero-role__typed{color:var(--text-primary);font-weight:500}.hero-role__caret{background:var(--cobalt);width:2px;height:1.05em;animation:1s step-end infinite blink;display:inline-block;transform:translateY(2px)}.hero-desc{color:var(--text-secondary);max-width:640px;margin:0 0 clamp(28px,5vh,40px);font-size:clamp(16px,1.4vw,19px);line-height:1.55}.hero-desc strong{color:var(--text-primary);font-weight:600}.hero-desc .desc-word{will-change:transform, opacity;display:inline-block}.hero-cta{flex-wrap:wrap;gap:14px;margin-bottom:clamp(48px,8vh,64px);display:inline-flex}.hero-cta__btn{transition:transform .25s var(--ease-out), border-color .25s ease, background .25s ease;border-radius:999px;align-items:center;gap:8px;padding:14px 24px;font-size:15px;font-weight:600;display:inline-flex}.hero-cta__btn:hover{transform:translateY(-2px)}.hero-cta__btn--primary{background:var(--grad);color:#0a0a0f;box-shadow:0 8px 24px -8px #9ec5ff73}.hero-cta__btn--ghost{border:1px solid var(--glass-border-h);color:var(--text-primary);background:0 0}.hero-cta__btn--ghost:hover{border-color:var(--glass-border-h);background:var(--glass-bg)}.hero-cta__arrow{transition:transform .3s var(--ease-out)}.hero-cta__btn:hover .hero-cta__arrow{transform:translate(3px)}.hero-stats{grid-template-columns:repeat(3,minmax(0,220px));gap:12px;max-width:700px;display:grid}.hero-stats__card{background:var(--glass-bg);border:1px solid var(--glass-border);transition:border-color .2s ease, transform .3s var(--ease-out);border-radius:14px;padding:18px 20px}.hero-stats__card:hover{border-color:var(--glass-border-h);transform:translateY(-2px)}.hero-stats__value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-primary);background:var(--grad);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:6px;font-size:clamp(20px,2.2vw,28px);font-weight:600;line-height:1}.hero-stats__label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-label);font-size:11px;font-weight:500}@media (width<=640px){.hero-stats{grid-template-columns:1fr 1fr;gap:10px}}@media (width<=640px){:root{--glass-bg:#ffffff0d;--glass-border:#9ec5ff38}}.skills{padding:clamp(80px,12vh,140px) 0;position:relative}.skills__head{margin-bottom:clamp(28px,5vh,48px)}.skills__chips{flex-wrap:wrap;gap:8px;max-width:880px;margin-bottom:clamp(40px,7vh,64px);display:flex}.skills__chip{font-family:var(--font-mono);border:1px solid var(--glass-border);color:var(--text-secondary);background:#ffffff0a;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:500}.skills__cards{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}@media (width<=1024px){.skills__cards{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.skills__cards{grid-template-columns:1fr}}.skills__card{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);transition:border-color .2s ease, transform .3s var(--ease-out);transition:transform .3s var(--ease-out), border-color .25s ease;border-radius:16px;padding:24px;position:relative;overflow:hidden}.skills__card:hover{border-color:var(--glass-border-h);transform:translateY(-3px)}.skills__card-body{z-index:1;position:relative}.skills__card-icon{width:36px;height:36px;margin-bottom:18px}.skills__card-icon svg{width:100%;height:100%}.skills__card-label{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-primary);margin-bottom:6px;font-size:19px;font-weight:600}.skills__card-sub{font-family:var(--font-mono);letter-spacing:.04em;margin-bottom:14px;font-size:12px;font-weight:500}.skills__card-desc{color:var(--text-secondary);font-size:14px;line-height:1.55}.skills__card:after{content:"";border-radius:inherit;pointer-events:none;opacity:calc(var(--dist,0) * .55);background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%), var(--glow,#9ec5ff2e), transparent 60%);transition:opacity .15s;position:absolute;inset:0}@media (width<=640px){:root{--glass-bg:#ffffff0d;--glass-border:#9ec5ff38}}.experience{padding:clamp(80px,12vh,140px) 0;position:relative}.experience__head{margin-bottom:clamp(32px,6vh,56px)}.experience__grid{flex-direction:column;gap:18px;display:flex}.exp-card{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);transition:border-color .2s ease, transform .3s var(--ease-out);border-radius:20px;grid-template-columns:240px 1fr;gap:40px;padding:clamp(28px,4vh,40px) clamp(28px,4vw,40px);transition:border-color .25s;display:grid;position:relative;overflow:hidden}@media (width<=1024px){.exp-card{grid-template-columns:1fr;gap:24px}}.exp-card:hover{border-color:var(--glass-border-h)}.exp-card__top{background:linear-gradient(90deg, var(--accent), transparent);height:2px;position:absolute;top:0;left:0;right:0}@media (width<=1024px){.exp-card__meta{border-bottom:1px solid var(--border-subtle);padding-bottom:24px}}.exp-card__period{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:14px;font-size:12px}.exp-card__company{font-family:var(--font-display);letter-spacing:-.01em;color:var(--accent);margin-bottom:4px;font-size:clamp(20px,2.2vw,24px);font-weight:600}.exp-card__role{color:var(--text-secondary);margin:0;font-size:14px}.exp-card__client{color:var(--text-muted);border-top:1px solid var(--border-subtle);margin:12px 0 0;padding-top:12px;font-size:13px}.exp-card__points{flex-direction:column;gap:12px;margin:0 0 24px;padding:0;list-style:none;display:flex}.exp-card__points li{color:var(--text-secondary);gap:14px;font-size:15px;line-height:1.55;display:flex}.exp-card__bullet{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:9px}.exp-card__tech{border-top:1px solid var(--border-subtle);flex-wrap:wrap;gap:6px;padding-top:20px;display:flex}.exp-card__tag{font-family:var(--font-mono);border:1px solid var(--border-subtle);color:var(--text-secondary);background:#ffffff0a;border-radius:6px;padding:4px 10px;font-size:11px}.exp-card:after{content:"";border-radius:inherit;pointer-events:none;opacity:calc(var(--dist,0) * .4);background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%), var(--glow,#9ec5ff29), transparent 60%);transition:opacity .15s;position:absolute;inset:0}@media (width<=640px){:root{--glass-bg:#ffffff0d;--glass-border:#9ec5ff38}}.projects{padding:clamp(80px,12vh,140px) 0;position:relative}.projects__head{margin-bottom:clamp(32px,6vh,56px)}.projects__grid{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}@media (width<=1024px){.projects__grid{grid-template-columns:1fr}}.proj-card{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);transition:border-color .2s ease, transform .3s var(--ease-out);cursor:pointer;transition:border-color .25s ease, transform .25s var(--ease-out);border-radius:20px;flex-direction:column;display:flex;position:relative;overflow:hidden}.proj-card:hover{border-color:var(--glass-border-h);transform:translateY(-4px)}.proj-card:hover .proj-card__expand-hint{opacity:1}.proj-card:hover .proj-card__shot img{transform:scale(1.04)}.proj-card__shot{aspect-ratio:16/10;background:repeating-linear-gradient(135deg, #9ec5ff0a 0 12px, transparent 12px 24px), var(--bg-soft);border-bottom:1px solid var(--glass-border);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.proj-card__shot img{object-fit:cover;width:100%;height:100%;transition:transform .45s var(--ease-out)}.proj-card__expand-hint{font-size:11px;font-family:var(--font-mono);letter-spacing:.05em;color:var(--text-primary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);opacity:0;pointer-events:none;background:#09090fb8;border-radius:999px;padding:4px 10px;transition:opacity .2s;position:absolute;bottom:10px;right:12px}.proj-card__placeholder{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.06em;text-align:center;font-size:12px;line-height:1.6}.proj-card__body{flex-direction:column;flex:1;padding:clamp(20px,3vh,28px) clamp(20px,3vw,32px) clamp(24px,3vh,32px);display:flex}.proj-card__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.proj-card__name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:clamp(18px,2vw,22px);font-weight:600}.proj-card__badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;background:color-mix(in srgb, var(--badge-color) 12%, transparent);color:var(--badge-color);border:1px solid color-mix(in srgb, var(--badge-color) 30%, transparent);border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:10px;font-weight:600}.proj-card__desc{color:var(--text-secondary);flex:1;margin:0 0 20px;font-size:15px;line-height:1.55}.proj-card__tech{flex-wrap:wrap;gap:6px;margin-bottom:24px;display:flex}.proj-card__tag{font-family:var(--font-mono);background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 24%, transparent);color:var(--accent);border-radius:6px;padding:4px 10px;font-size:11px}.proj-card__links{border-top:1px solid var(--border-subtle);gap:16px;padding-top:20px;display:flex}.proj-card__link{color:var(--text-primary);font-size:14px;font-weight:600;transition:color .2s}.proj-card__link:hover{color:var(--cobalt)}.proj-card__link--ghost{color:var(--text-secondary)}.proj-card__link--ghost:hover{color:var(--text-primary)}.proj-card__link--disabled{color:var(--text-muted);cursor:not-allowed;pointer-events:none}.proj-modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#09090fc7;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px;display:flex;position:fixed;inset:0}.proj-modal-outer{align-items:center;gap:16px;width:100%;max-width:756px;display:flex}.proj-modal-arrow{color:#ffffff8c;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;transition:background .2s,color .2s,border-color .2s;display:flex}.proj-modal-arrow:hover{color:#fff;background:#ffffff29;border-color:#ffffff4d}.proj-modal-dots{align-items:center;gap:8px;display:flex}.proj-modal-dot{cursor:pointer;background:#ffffff40;border:none;border-radius:50%;width:7px;height:7px;padding:0;transition:width .25s,background .2s,transform .2s}.proj-modal-dot--active{background:#9ec5ff;border-radius:4px;width:20px}.proj-modal-dot:hover:not(.proj-modal-dot--active){background:#ffffff80;transform:scale(1.2)}.proj-modal{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);transition:border-color .2s ease, transform .3s var(--ease-out);scrollbar-width:thin;scrollbar-color:var(--glass-border) transparent;border-radius:24px;flex-direction:column;width:100%;max-width:680px;max-height:calc(90vh - 60px);display:flex;position:relative;overflow:hidden auto}.proj-modal__close{z-index:10;border:1px solid var(--glass-border);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:#ffffff14;border-radius:50%;justify-content:center;align-items:center;font-size:13px;transition:background .2s,color .2s;display:flex;position:absolute;top:14px;right:16px}.proj-modal__close:hover{color:var(--text-primary);background:#ffffff24}.proj-modal__shot{aspect-ratio:16/10;background:repeating-linear-gradient(135deg, #9ec5ff0a 0 12px, transparent 12px 24px), var(--bg-soft);border-bottom:1px solid var(--glass-border);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.proj-modal__shot img{object-fit:cover;width:100%;height:100%}.proj-modal__placeholder{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.06em;text-align:center;font-size:12px;line-height:1.6}.proj-modal__body{flex-direction:column;gap:0;padding:clamp(24px,4vh,36px) clamp(24px,4vw,40px) clamp(28px,4vh,40px);display:flex}.proj-modal__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.proj-modal__name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:clamp(20px,2.5vw,26px);font-weight:700}.proj-modal__badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;background:color-mix(in srgb, var(--badge-color) 12%, transparent);color:var(--badge-color);border:1px solid color-mix(in srgb, var(--badge-color) 30%, transparent);border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:10px;font-weight:600}.proj-modal__desc{color:var(--text-secondary);margin:0 0 22px;font-size:15px;line-height:1.6}.proj-modal__highlights{flex-direction:column;gap:10px;margin:0 0 24px;padding:0;list-style:none;display:flex}.proj-modal__highlights li{color:var(--text-secondary);padding-left:18px;font-size:14px;line-height:1.5;position:relative}.proj-modal__highlights li:before{content:"";background:var(--accent);opacity:.7;border-radius:50%;width:6px;height:6px;position:absolute;top:8px;left:0}.proj-modal__tech{flex-wrap:wrap;gap:6px;margin-bottom:28px;display:flex}.proj-modal__tag{font-family:var(--font-mono);background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 24%, transparent);color:var(--accent);border-radius:6px;padding:4px 10px;font-size:11px}.proj-modal__links{border-top:1px solid var(--border-subtle);gap:16px;padding-top:20px;display:flex}.proj-modal__link{color:var(--text-primary);font-size:14px;font-weight:600;transition:color .2s}.proj-modal__link:hover{color:var(--cobalt)}.proj-modal__link--ghost{color:var(--text-secondary)}.proj-modal__link--ghost:hover{color:var(--text-primary)}.proj-modal__link--disabled{color:var(--text-muted);cursor:not-allowed;pointer-events:none}.proj-modal__slide{flex-direction:column;display:flex;overflow:hidden}.proj-card:after{content:"";border-radius:inherit;pointer-events:none;opacity:calc(var(--dist,0) * .55);background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), var(--glow,#9ec5ff2e), transparent 60%);transition:opacity .15s;position:absolute;inset:0}@media (width<=640px){:root{--glass-bg:#ffffff0d;--glass-border:#9ec5ff38}}.contact{z-index:1;padding:clamp(32px,12.5vh,112px) 0;position:relative}.contact__card{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);transition:border-color .2s ease, transform .3s var(--ease-out);text-align:center;border-radius:12px;max-width:720px;margin:0 auto;padding:clamp(28px,6vh,56px) 48px;position:relative;overflow:hidden}@media (width<=640px){.contact__card{padding:40px 26px}}.contact__glow{filter:blur(50px);pointer-events:none;background:radial-gradient(circle,#9ec5ff47 0%,#0000 60%);height:360px;position:absolute;inset:-80% 20% auto}.contact__heading{font-family:var(--font-display);color:var(--text-primary);margin:8px 0 clamp(10px,2vh,18px);font-size:clamp(28px,4vw,42px);font-weight:800;line-height:1.12;position:relative}.contact__sub{max-width:460px;color:var(--text-secondary);margin:0 auto clamp(16px,3.5vh,32px);font-size:14px;line-height:1.65;position:relative}.contact__actions{flex-direction:column;align-items:center;gap:16px;margin-bottom:clamp(18px,4vh,36px);display:flex;position:relative}.contact__social{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.contact__btn{transition:transform .25s var(--ease-out), border-color .25s ease, background .25s ease;border-radius:100px;align-items:center;gap:8px;padding:13px 22px;font-size:14px;font-weight:500;display:inline-flex}.contact__btn:hover{transform:translateY(-2px)}.contact__btn--primary{background:var(--grad);color:#04141b;font-weight:600;box-shadow:0 8px 24px -8px #9ec5ff73}.contact__btn--ghost{border:1px solid var(--glass-border);color:var(--text-primary);background:0 0;padding:10px 18px}.contact__btn--ghost:hover{border-color:var(--glass-border-h);background:var(--glass-bg)}.contact__meta{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;font-size:12px;display:flex;position:relative}.contact__dot{background:var(--text-muted);border-radius:50%;width:4px;height:4px}:root{--bg:#07080d;--bg-soft:#0c0e16;--glass-bg:#ffffff09;--glass-bg-strong:#ffffff0f;--glass-border:#9ec5ff24;--glass-border-h:#9ec5ff52;--cobalt:#9ec5ff;--lavender:#c8a8ff;--mint:#86efac;--amber:#fbbf24;--grad:linear-gradient(135deg, #9ec5ff, #c8a8ff);--text-primary:#e7eaf2;--text-secondary:#e7eaf2ad;--text-muted:#e7eaf28f;--color-label:#e7eaf285;--border-subtle:#9ec5ff1a;--border-card:#9ec5ff24;--border-cobalt:#9ec5ff6b;--border-lavender:#c8a8ff6b;--font-display:"Space Grotesk", system-ui, -apple-system, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--text-hero:clamp(56px, 9vw, 128px);--text-h2:clamp(36px, 4vw, 56px);--text-h3:22px;--text-body:17px;--text-sm:14px;--text-xs:12px;--text-label:11px;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-sm:.25s;--duration-md:.45s;--duration-lg:.65s;--max-width:1180px;--pad-x:clamp(24px, 5vw, 56px);--z-nav:100;--z-hero-bg:0;--z-hero-content:3;--z-progress:10}@media (width<=640px){:root{--glass-bg:#ffffff0d;--glass-border:#9ec5ff38}}.footer{z-index:1;border-top:1px solid var(--border-subtle);padding:40px 0 24px;position:relative}.footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding-bottom:20px;display:flex}.footer__left{flex-direction:column;gap:2px;display:flex}.footer__brand{font-family:var(--font-display);font-size:18px;font-weight:800}.footer__sub{color:var(--text-secondary);font-size:12px}.footer__right{gap:18px;display:flex}.footer__right a{color:var(--text-secondary);font-size:13px;transition:color .2s}.footer__right a:hover{color:var(--text-primary)}.footer__copy{color:var(--text-secondary);border-top:1px solid var(--border-subtle);padding-top:16px;font-size:11px}
