@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes revealUp{0%{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0% 0 0 0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes scrollBounce{0%{transform:translateY(0);opacity:.6}to{transform:translateY(0);opacity:.6}50%{transform:translateY(6px);opacity:1}}@keyframes softPulse{0%{opacity:.4}to{opacity:.4}50%{opacity:1}}@keyframes cursorBlink{0%,49%{opacity:1}50%{opacity:0}to{opacity:0}}@keyframes floatA{0%{transform:translate(0)}to{transform:translate(0)}40%{transform:translate(22px,-28px)}70%{transform:translate(-14px,-12px)}}@keyframes floatB{0%{transform:translate(0)}to{transform:translate(0)}35%{transform:translate(-20px,18px)}65%{transform:translate(14px,-20px)}}@keyframes floatAvatar{0%{transform:translateY(0)}to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes floatIcon{0%{transform:translateY(0)}to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes headerEnter{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}[data-reveal].in-view{opacity:1;transform:translateY(0)}[data-reveal=left]{transform:translate(-20px)}[data-reveal=left].in-view{transform:translate(0)}[data-reveal=right]{transform:translate(20px)}[data-reveal=right].in-view{transform:translate(0)}[data-reveal=scale]{transform:scale(.95)}[data-reveal=scale].in-view{transform:scale(1)}[data-stagger]>*{opacity:0;transform:translateY(16px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}[data-stagger].in-view>*:nth-child(1){opacity:1;transform:none;transition-delay:0ms}[data-stagger].in-view>*:nth-child(2){opacity:1;transform:none;transition-delay:70ms}[data-stagger].in-view>*:nth-child(3){opacity:1;transform:none;transition-delay:.14s}[data-stagger].in-view>*:nth-child(4){opacity:1;transform:none;transition-delay:.21s}[data-stagger].in-view>*:nth-child(5){opacity:1;transform:none;transition-delay:.28s}[data-stagger].in-view>*:nth-child(6){opacity:1;transform:none;transition-delay:.35s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.site-header{position:fixed;top:0;left:0;right:0;z-index:var(--z-fixed);height:var(--nav-h);display:flex;align-items:center;transition:background-color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);border-bottom:1px solid transparent;opacity:0;transform:translateY(-20px);will-change:transform,opacity}.site-header--scrolled{background:#07080de0;backdrop-filter:var(--glass-blur-md);-webkit-backdrop-filter:var(--glass-blur-md);border-bottom-color:var(--glass-border);box-shadow:0 2px 20px #00000059}.header-nav{display:flex;align-items:center;gap:var(--sp-8)}.logo{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:var(--fw-bold);display:flex;align-items:center;gap:0;flex-shrink:0;transition:opacity var(--dur-fast) var(--ease-out)}.logo-name{color:var(--text-primary);letter-spacing:.02em;white-space:nowrap}.logo:hover .logo-name{color:var(--accent-fog)}.nav-links{display:flex;align-items:center;gap:var(--sp-6);margin-left:auto}.nav-link{position:relative;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);letter-spacing:var(--ls-wide);padding:var(--sp-1) 0;transition:color var(--dur-fast) var(--ease-out)}.nav-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--accent-slate);transition:width var(--dur-base) var(--ease-out)}.nav-link:hover,.nav-link--active{color:var(--text-primary)}.nav-link:hover:after,.nav-link--active:after{width:100%}.header-cta{font-size:var(--fs-sm);font-weight:var(--fw-medium);letter-spacing:var(--ls-wide);padding:var(--sp-2) var(--sp-5);border:1px solid var(--glass-border-md);border-radius:var(--r-full);background:#ffffff0a;color:var(--text-secondary);white-space:nowrap;transition:background-color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.header-cta:hover{background:#7b9fbb1a;border-color:#7b9fbb59;color:var(--text-primary);box-shadow:var(--glow-slate)}.hamburger{display:none;flex-direction:column;gap:5px;padding:var(--sp-2);margin-left:auto}.hamburger span{display:block;width:22px;height:1.5px;background:var(--text-secondary);border-radius:var(--r-full);transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out);transform-origin:center}.hamburger--open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);background:var(--text-primary)}.hamburger--open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger--open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);background:var(--text-primary)}.mobile-menu{position:absolute;top:var(--nav-h);left:0;right:0;background:#07080df5;backdrop-filter:var(--glass-blur-lg);-webkit-backdrop-filter:var(--glass-blur-lg);border-bottom:1px solid var(--glass-border);padding:var(--sp-6) var(--container-px);animation:fadeDown .22s var(--ease-out) both}.mobile-menu ul{display:flex;flex-direction:column;gap:var(--sp-4)}.mobile-menu li{animation:fadeUp .25s var(--ease-out) both}.mobile-menu a{display:block;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--text-secondary);padding:var(--sp-3) 0;border-bottom:1px solid var(--glass-border);transition:color var(--dur-fast) var(--ease-out)}.mobile-menu a:hover,.mobile-menu a.active{color:var(--text-primary)}@media(max-width:768px){.nav-links,.header-cta{display:none}.hamburger{display:flex}}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:var(--z-cursor);will-change:transform,width,height;border-radius:50%}.cursor-dot{width:6px;height:6px;background:var(--text-primary);transition:opacity .2s}.cursor-ring{width:36px;height:36px;border:1px solid rgba(255,255,255,.45);background:transparent;transition:opacity .2s,width .3s cubic-bezier(.25,1,.5,1),height .3s cubic-bezier(.25,1,.5,1)}.cursor-ring--click{animation:cursorRipple .4s ease-out forwards}@keyframes cursorRipple{0%{transform:translate(var(--cx, 0),var(--cy, 0)) translate(-50%,-50%) scale(1);opacity:.5}to{transform:translate(var(--cx, 0),var(--cy, 0)) translate(-50%,-50%) scale(1.8);opacity:0}}@media(pointer:fine){body,a,button,[data-cursor=magnetic]{cursor:none}}@media(pointer:coarse){.cursor-dot,.cursor-ring{display:none}}.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:var(--bg-base);padding-top:var(--nav-h)}.hero:after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");opacity:.03;pointer-events:none;z-index:1}.hero-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.blob{position:absolute;border-radius:50%}.blob--1{width:clamp(25rem,55vw,50rem);height:clamp(25rem,55vw,50rem);background:radial-gradient(circle,rgba(123,159,187,.1) 0%,rgba(123,159,187,.04) 40%,transparent 70%);top:-20%;left:-10%;will-change:transform}.blob--2{width:clamp(20rem,40vw,40rem);height:clamp(20rem,40vw,40rem);background:radial-gradient(circle,rgba(110,155,155,.09) 0%,rgba(110,155,155,.03) 40%,transparent 70%);bottom:-5%;right:-10%;will-change:transform}.hero-grid{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.05) .06rem,transparent .06rem);background-size:2.5rem 2.5rem;-webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 30%,transparent 100%);mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 30%,transparent 100%);opacity:0;will-change:opacity}.hero-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;padding-top:var(--sp-20);padding-bottom:var(--sp-20)}.hero-label{margin-bottom:var(--sp-8)}.hero-label:before{content:"";display:inline-block;width:.5rem;height:.5rem;background:var(--accent-slate);border-radius:50%;margin-right:var(--sp-3);animation:softPulse 2.5s ease-in-out infinite;vertical-align:middle}.hero-heading{font-size:var(--fs-5xl);font-weight:var(--fw-black);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--text-primary);margin-bottom:var(--sp-6)}.hero-heading--tilt{transform-style:preserve-3d}.word{display:inline-block;opacity:0;transform:translateY(30px);will-change:transform,opacity}.word--accent{color:transparent;-webkit-text-stroke:.06rem rgba(123,159,187,.7);position:relative}.word--accent:after{content:attr(data-text);position:absolute;inset:0;background:linear-gradient(135deg,#7b9fbbe6,#6e9b9bb3);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;pointer-events:none}.hero-subtitle{font-size:var(--fs-md);color:var(--text-secondary);font-weight:var(--fw-regular);line-height:var(--lh-relaxed);max-width:clamp(20rem,80vw,35rem);margin-bottom:var(--sp-3);opacity:0;transform:translateY(20px);will-change:transform,opacity}.hero-roles{display:flex;align-items:center;gap:var(--sp-1);font-family:var(--font-mono);font-size:var(--fs-base);color:var(--text-secondary);margin-bottom:var(--sp-12);min-height:1.6em;opacity:0;transform:translateY(15px);will-change:transform,opacity}.roles-static{color:var(--accent-stone);-webkit-user-select:none;-moz-user-select:none;user-select:none}.roles-type{color:var(--accent-fog);min-width:1px}.roles-cursor{color:var(--accent-slate);animation:cursorBlink .8s step-end infinite;font-weight:var(--fw-light)}.hero-ctas{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-16);opacity:0;transform:translateY(20px);will-change:transform,opacity}.btn-primary{display:inline-flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-8);background:#7b9fbb1a;border:.06rem solid var(--glass-border-md);border-radius:var(--r-full);color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-medium);letter-spacing:var(--ls-wide);transition:border-color var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.btn-primary:hover{background:#7b9fbb29;border-color:#7b9fbb59;box-shadow:var(--glow-slate)}.btn-primary svg{transition:transform var(--dur-base) var(--ease-spring)}.btn-primary:hover svg{transform:translate(.2rem)}.btn-ghost{display:inline-flex;align-items:center;padding:var(--sp-4) var(--sp-6);border-radius:var(--r-full);color:var(--text-tertiary);font-size:var(--fs-sm);font-weight:var(--fw-medium);letter-spacing:var(--ls-wide);transition:color var(--dur-fast) var(--ease-out)}.btn-ghost:hover{color:var(--text-secondary)}.hero-stats{display:flex;align-items:center;gap:var(--sp-10)}.stat-item{display:flex;flex-direction:column;gap:var(--sp-1)}.stat-value{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-black);color:var(--text-primary);letter-spacing:var(--ls-tight);line-height:1}.stat-label{font-size:var(--fs-xs);color:var(--text-tertiary);letter-spacing:var(--ls-wider);text-transform:uppercase}.hero-stats .stat-item+.stat-item{padding-left:var(--sp-10);border-left:.06rem solid var(--glass-border)}.scroll-indicator{position:absolute;bottom:var(--sp-10);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);z-index:2}.scroll-line{width:.06rem;height:2.75rem;background:linear-gradient(to bottom,transparent,var(--accent-slate));animation:scrollBounce 2.2s ease-in-out infinite}.scroll-indicator span{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--text-tertiary);transform:rotate(90deg);white-space:nowrap;margin-top:var(--sp-3)}@media(max-width:767px){.hero-inner{padding-top:var(--sp-12);padding-bottom:var(--sp-12)}.hero-heading{font-size:var(--fs-3xl);margin-bottom:var(--sp-4)}.hero-subtitle{margin-bottom:var(--sp-6)}.hero-roles{margin-bottom:var(--sp-10)}.hero-ctas{gap:var(--sp-3);margin-bottom:var(--sp-12)}.hero-stats{gap:var(--sp-6);width:100%;justify-content:space-between}.hero-stats .stat-item+.stat-item{padding-left:var(--sp-4)}.scroll-indicator{display:none}.hero-ctas{flex-direction:column;align-items:stretch;width:100%}.btn-primary,.btn-ghost{width:100%;justify-content:center}}@media(min-width:768px)and (max-width:1023px){.hero-heading{font-size:var(--fs-4xl)}}@media(min-width:1920px){.hero-inner{padding-top:var(--sp-32)}}.about{background:var(--bg-raised)}.about-container{display:grid;grid-template-columns:1fr 1fr;gap:clamp(var(--sp-10),8vw,var(--sp-24));align-items:start}.about-left{display:flex;flex-direction:column;gap:var(--sp-8);padding-top:var(--sp-4)}.about-heading{line-height:var(--lh-snug)}.heading-muted{color:var(--text-tertiary);font-style:italic;display:block;font-weight:var(--fw-light)}.about-body{display:flex;flex-direction:column;gap:var(--sp-4)}.about-body p{font-size:var(--fs-base);color:var(--text-secondary);line-height:var(--lh-relaxed)}.about-body em{font-style:normal;color:var(--accent-fog);font-weight:var(--fw-medium)}.about-traits{display:flex;flex-direction:column;gap:var(--sp-3)}.trait-item{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-secondary);font-weight:var(--fw-medium);letter-spacing:var(--ls-wide)}.trait-dot{width:.35rem;height:.35rem;border-radius:50%;background:var(--accent-slate);opacity:.6;flex-shrink:0}.about-ctas{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;padding-top:var(--sp-2)}.about .btn-primary{display:inline-flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-6);background:#7b9fbb14;border:1px solid var(--glass-border-md);border-radius:var(--r-full);color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-medium);letter-spacing:var(--ls-wide);transition:var(--t-base)}.about .btn-primary:hover{border-color:#7b9fbb59;box-shadow:var(--glow-slate)}.about .btn-primary svg{transition:transform var(--dur-base) var(--ease-spring)}.about .btn-primary:hover svg{transform:translate(3px)}.about .btn-ghost{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-tertiary);padding:var(--sp-3) var(--sp-4);letter-spacing:var(--ls-wide);transition:color var(--dur-fast) var(--ease-out)}.about .btn-ghost:hover{color:var(--text-secondary)}.about-right{display:flex;flex-direction:column;gap:var(--sp-6)}.profile-card{border-radius:var(--r-2xl);padding:var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-8);backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;transform:translateZ(0)}.profile-card--tilting{transform-style:preserve-3d}.avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);position:relative}.avatar-ring{position:absolute;top:-12px;left:50%;transform:translate(-50%);width:8rem;height:8rem;border-radius:50%;border:.06rem solid rgba(123,159,187,.15);pointer-events:none}.avatar-img{width:6.5rem;height:6.5rem;border-radius:50%;-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;border:.06rem solid var(--glass-border-md);display:block}.status-badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:#7b9fbb0f;border:1px solid rgba(123,159,187,.15);border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--accent-fog);letter-spacing:var(--ls-wide)}.status-dot{width:.4rem;height:.4rem;border-radius:50%;background:#6e9b7e;animation:softPulse 2s ease-in-out infinite;flex-shrink:0}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--glass-border);border-radius:var(--r-lg);overflow:hidden}.stat-cell{background:var(--bg-raised);padding:var(--sp-5) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-1);align-items:center;text-align:center;transition:background var(--dur-fast) var(--ease-out)}.stat-cell:hover{background:var(--glass-fill-md)}.stat-number{display:flex;align-items:baseline;gap:2px;font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-black);color:var(--text-primary);line-height:1}.stat-suffix{font-size:var(--fs-md);color:var(--accent-slate);font-weight:var(--fw-medium)}.stat-desc{font-size:var(--fs-xs);color:var(--text-tertiary);letter-spacing:var(--ls-wide);text-transform:uppercase;line-height:var(--lh-snug)}.tech-stack{display:flex;flex-direction:column;gap:var(--sp-4)}.tech-label{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary);letter-spacing:var(--ls-wide)}.tech-badges{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.tech-badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--glass-fill);border:1px solid var(--glass-border);border-radius:var(--r-md);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-secondary);letter-spacing:var(--ls-wide);transition:var(--t-fast);cursor:default}.tech-badge:hover{background:var(--glass-fill-md);border-color:#7b9fbb33;color:var(--text-primary);transform:translateY(-2px)}.badge-icon{font-size:.65rem;color:var(--accent-slate);opacity:.7;font-style:normal;line-height:1}@media(max-width:1024px){.about-container{grid-template-columns:1fr;gap:var(--sp-16)}.about-right{max-width:560px;margin:0 auto;width:100%}}@media(max-width:767px){.about-container{gap:var(--sp-10)}.about-left{gap:var(--sp-6)}.tech-stack{display:none}.profile-card{padding:var(--sp-6)}.about-ctas{flex-direction:column;align-items:stretch;width:100%}.about-ctas .btn-primary,.about-ctas .btn-ghost{width:100%;justify-content:center}}.avatar-float{animation:floatAvatar 4s ease-in-out infinite}.skills{background:var(--bg-base)}.skills-orbs{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-16);padding-bottom:var(--sp-16);border-bottom:.06rem solid var(--glass-border)}.skill-orb{display:inline-flex;align-items:center;padding:var(--sp-2) var(--sp-4);background:var(--glass-fill);border:.06rem solid var(--glass-border);border-radius:var(--r-full);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary);letter-spacing:var(--ls-wide);transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.skill-orb:hover{color:var(--text-secondary);border-color:var(--glass-border-md)}.skills-heading{margin-bottom:var(--sp-12)}.heading-dim{color:var(--text-tertiary);font-weight:var(--fw-light);font-style:italic}.skills-body{display:grid;grid-template-columns:clamp(12rem,20vw,15rem) 1fr;gap:var(--sp-6);align-items:start}.skills-tabs{display:flex;flex-direction:column;gap:var(--sp-2);position:sticky;top:calc(var(--nav-h) + var(--sp-8))}.skills-tab{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4);border-radius:var(--r-lg);background:transparent;border:.06rem solid transparent;color:var(--text-tertiary);font-size:var(--fs-sm);font-weight:var(--fw-medium);letter-spacing:var(--ls-wide);text-align:left;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);cursor:pointer;overflow:hidden}.skills-tab:hover{color:var(--text-secondary);background:var(--glass-fill);border-color:var(--glass-border)}.skills-tab--active{color:var(--text-primary);background:var(--glass-fill-md);border-color:var(--glass-border-md)}.tab-icon{flex-shrink:0;opacity:.5;transition:opacity var(--dur-fast) var(--ease-out);display:flex}.skills-tab--active .tab-icon,.skills-tab:hover .tab-icon{opacity:1}.tab-label{flex:1}.tab-indicator{position:absolute;left:0;top:20%;bottom:20%;width:.125rem;background:var(--accent-slate);border-radius:var(--r-full);opacity:.7}.skills-panel{border-radius:var(--r-2xl);padding:var(--sp-10);display:flex;flex-direction:column;min-height:clamp(20rem,40vh,25rem);transform-style:preserve-3d;backface-visibility:hidden}.panel-header{display:flex;align-items:flex-start;gap:var(--sp-5);padding-bottom:var(--sp-8);border-bottom:.06rem solid var(--glass-border)}.panel-icon{width:2.75rem;height:2.75rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--glass-fill-md);border:.06rem solid var(--glass-border-md);border-radius:var(--r-lg);color:var(--accent-slate)}.panel-title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);margin-bottom:var(--sp-2);line-height:var(--lh-snug)}.panel-desc{font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-relaxed);max-width:clamp(20rem,80vw,34rem)}.panel-chips{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.skill-chip{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);background:var(--glass-fill);border:.06rem solid var(--glass-border);border-radius:var(--r-lg);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.skill-chip:hover{background:var(--glass-fill-md);border-color:#7b9fbb2e}.chip-dot{width:.35rem;height:.35rem;border-radius:50%;background:var(--accent-slate);opacity:.5;flex-shrink:0}.chip-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);letter-spacing:var(--ls-normal);line-height:var(--lh-snug)}.skill-chip:hover .chip-dot{opacity:1}.skill-chip:hover .chip-name{color:var(--text-primary)}.panel-tags{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding-top:var(--sp-6);border-top:.06rem solid var(--glass-border)}.panel-tag{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-3);background:var(--glass-fill);border:.06rem solid var(--glass-border);border-radius:var(--r-md);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary);letter-spacing:var(--ls-wide);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.panel-tag:hover{background:var(--glass-fill-md);border-color:#7b9fbb33;color:var(--text-secondary)}@media(max-width:1023px){.skills-body{grid-template-columns:1fr;gap:var(--sp-4)}.skills-tabs{position:static;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:var(--sp-2)}.skills-tab{flex:1;min-width:9rem;justify-content:center;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);text-align:center}.tab-indicator{inset:auto 20% 0;width:auto;height:.125rem}.tab-icon{justify-content:center}}@media(max-width:767px){.skills-panel{padding:var(--sp-6);min-height:unset}.panel-header{flex-direction:column;gap:var(--sp-4)}.panel-chips{grid-template-columns:1fr}.skills-tab{min-width:7.5rem;font-size:var(--fs-xs)}.skills-orbs{gap:var(--sp-2);padding-bottom:var(--sp-10);margin-bottom:var(--sp-10)}}.orb-float{animation:floatIcon var(--dur, 3s) ease-in-out infinite}.projects{background:var(--bg-raised)}.projects-heading{margin-bottom:var(--sp-12)}.featured-wrap{margin-bottom:var(--sp-4)}.project-card--featured{display:grid;grid-template-columns:1fr clamp(18rem,30vw,24rem);gap:0;align-items:stretch;min-height:clamp(18rem,30vh,22rem)}.project-card--featured .card-art{grid-column:2;grid-row:1 / 3;border-radius:0 var(--r-2xl) var(--r-2xl) 0;border-left:.06rem solid var(--glass-border)}.project-card--featured .card-badges{grid-column:1;grid-row:1}.project-card--featured .card-body{grid-column:1;grid-row:2}.project-card{position:relative;background:var(--glass-fill);border:.06rem solid var(--glass-border);border-radius:var(--r-2xl);overflow:hidden;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.card--tilting{transform-style:preserve-3d;will-change:transform}.project-card:hover,.project-card--active{border-color:var(--glass-border-md);box-shadow:var(--shadow-md)}.card-art{background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:11.25rem;transition:background var(--dur-base) var(--ease-out)}.card-art svg{width:100%;height:100%;max-height:200px}.project-card--featured .card-art{min-height:unset;height:100%}.project-card--featured .card-art svg{max-height:unset;height:100%}.card-badges{display:flex;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-5) var(--sp-6) 0}.card-badge{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-3);background:var(--glass-fill-md);border:.06rem solid var(--glass-border-md);border-radius:var(--r-full);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary);letter-spacing:var(--ls-wider);text-transform:uppercase}.card-body{padding:var(--sp-5) var(--sp-6) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-5);flex:1}.card-header{display:flex;flex-direction:column;gap:var(--sp-1)}.card-tagline{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent-slate);letter-spacing:var(--ls-wide);opacity:.7}.card-title{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary);line-height:var(--lh-snug)}.project-card--featured .card-title{font-size:var(--fs-2xl)}.card-desc{font-size:var(--fs-sm);color:var(--text-secondary);line-height:var(--lh-relaxed);flex:1}.card-tech{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.tech-pill{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-3);background:var(--glass-fill);border:.06rem solid var(--glass-border);border-radius:var(--r-md);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary);letter-spacing:var(--ls-wide);transition:var(--t-fast)}.tech-pill:hover{border-color:var(--glass-border-md);color:var(--text-secondary)}.card-actions{display:flex;align-items:center;gap:var(--sp-3);margin-top:auto}.btn-case-study{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);background:var(--glass-fill-md);border:.06rem solid var(--glass-border-md);border-radius:var(--r-full);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);letter-spacing:var(--ls-wide);transition:var(--t-base);cursor:pointer}.btn-case-study:hover,.btn-case-study--active{border-color:#7b9fbb59;color:var(--text-primary);box-shadow:var(--glow-slate)}.btn-gh{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-tertiary);border-radius:var(--r-full);border:.06rem solid transparent;text-decoration:none;transition:var(--t-fast)}.btn-gh:hover{color:var(--text-secondary);border-color:var(--glass-border);background:var(--glass-fill)}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin-top:var(--sp-4)}.modal-backdrop{position:fixed;inset:0;z-index:200;background:#05070bbf;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);cursor:pointer;will-change:opacity}.modal-wrap{position:fixed;inset:0;z-index:201;display:flex;align-items:center;justify-content:center;padding:clamp(14px,2.4vw,28px);pointer-events:none}.modal-box{pointer-events:auto;position:relative;width:min(70rem,94vw);height:min(35rem,80vh);display:flex;flex-direction:column;background:var(--bg-deep, #0c1018);border:.06rem solid rgba(123,159,187,.14);border-radius:var(--r-2xl);box-shadow:0 2.5rem 6.25rem #0009,0 0 0 .06rem #ffffff0a inset;overflow:hidden;will-change:transform,opacity}.modal-close{position:absolute;top:1.125rem;right:1.125rem;z-index:10;display:flex;align-items:center;justify-content:center;width:2.125rem;height:2.125rem;background:var(--glass-fill-md);border:.06rem solid var(--glass-border-md);border-radius:var(--r-full);color:var(--text-tertiary);cursor:pointer;transition:var(--t-fast);flex-shrink:0}.modal-close:hover{color:var(--text-primary);border-color:#7b9fbb4d}.modal-body{display:grid;grid-template-columns:clamp(16rem,30vw,20rem) 1fr;flex:1;min-height:0;align-items:stretch;overflow:hidden}.modal-left{display:flex;flex-direction:column;gap:var(--sp-5);padding:clamp(1.375rem,2.3vw,2.125rem) clamp(1.25rem,2.2vw,2rem) clamp(1.125rem,1.9vw,1.625rem);border-right:.06rem solid var(--glass-border);background:#ffffff04;height:100%;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.modal-left::-webkit-scrollbar{display:none}.modal-label{font-family:var(--font-mono);font-size:.6875rem;color:var(--text-tertiary);letter-spacing:var(--ls-wider);flex-shrink:0}.modal-title{font-family:var(--font-display);font-size:clamp(30px,2.8vw,42px);font-weight:var(--fw-bold);color:var(--text-primary);line-height:1.05;letter-spacing:-.01em;word-break:normal;overflow-wrap:normal;hyphens:none;flex-shrink:0}.modal-tagline{font-family:var(--font-mono);font-size:.6875rem;color:var(--accent-slate);letter-spacing:.11em;opacity:.6;flex-shrink:0}.modal-divider{height:.06rem;background:var(--glass-border);flex-shrink:0}.modal-desc{font-size:var(--fs-xs);color:var(--text-secondary);line-height:1.75;flex-shrink:0;max-width:34ch}.modal-meta-block{display:flex;flex-direction:column;gap:var(--sp-3);flex-shrink:0}.modal-meta-label{font-family:var(--font-mono);font-size:.625rem;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--text-tertiary);opacity:.5}.modal-tech{display:flex;flex-wrap:wrap;gap:.625rem}.modal-badges{display:flex;flex-wrap:wrap;gap:10px}.modal-left .tech-pill{padding:.5rem .875rem;font-size:.6875rem;letter-spacing:.08em}.modal-left .card-badge{padding:.4375rem .75rem;font-size:.625rem;letter-spacing:.08em}.modal-left-spacer{flex:1}.modal-gh-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:.6875rem .875rem;background:var(--glass-fill-md);border:.06rem solid var(--glass-border-md);border-radius:var(--r-xl);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-secondary);text-decoration:none;transition:var(--t-base);flex-shrink:0}.modal-gh-btn:hover{border-color:#7b9fbb4d;color:var(--text-primary);box-shadow:var(--glow-slate)}.modal-right{display:flex;flex-direction:column;gap:var(--sp-8);padding:clamp(18px,2.1vw,28px) clamp(18px,2.2vw,30px) clamp(16px,1.9vw,24px) clamp(16px,2vw,26px);height:100%;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--glass-border-md) transparent}.modal-right::-webkit-scrollbar{width:4px}.modal-right::-webkit-scrollbar-track{background:transparent}.modal-right::-webkit-scrollbar-thumb{background:var(--glass-border-md);border-radius:2px}.modal-right-meta{display:flex;flex-direction:column;gap:var(--sp-4);padding-bottom:var(--sp-3);border-bottom:.06rem solid var(--glass-border)}.modal-right-meta .modal-meta-label{font-size:10px}.modal-right-meta .tech-pill{padding:.4375rem .75rem;font-size:.625rem;letter-spacing:.07em}.modal-right-meta .card-badge{padding:.4375rem .6875rem;font-size:.625rem;letter-spacing:.08em}.case-section{display:flex;flex-direction:column;gap:var(--sp-3);padding:clamp(.875rem,1.6vw,1.375rem);background:var(--glass-fill);border:.06rem solid var(--glass-border-md);border-radius:var(--r-lg);box-shadow:0 0 0 1px #ffffff04 inset}.modal-right .case-section+.case-section{margin-top:2px}.case-section-title{display:flex;align-items:center;gap:var(--sp-3);font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);padding-bottom:var(--sp-2);border-bottom:.06rem solid var(--glass-border)}.case-icon{color:var(--accent-slate);font-size:var(--fs-xs);opacity:.7}.case-checklist{display:flex;flex-direction:column;gap:var(--sp-2)}.case-checklist li{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-secondary);line-height:var(--lh-relaxed)}.check-dot{width:.3125rem;height:.3125rem;border-radius:50%;background:var(--accent-slate);opacity:.5;flex-shrink:0;margin-top:6px}.case-layers{display:flex;flex-direction:column;gap:var(--sp-3)}.case-layer{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3);background:var(--glass-fill);border-left:.125rem solid rgba(123,159,187,.25);border-radius:0 var(--r-md) var(--r-md) 0;transition:border-color var(--dur-fast) var(--ease-out)}.case-layer:hover{border-color:#7b9fbb80}.layer-name{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-primary);letter-spacing:var(--ls-wide)}.layer-desc{font-size:var(--fs-xs);color:var(--text-tertiary);line-height:var(--lh-relaxed)}.case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}.case-grid-item{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3);background:var(--glass-fill);border:.06rem solid var(--glass-border);border-radius:var(--r-md);transition:background var(--dur-fast) var(--ease-out)}.case-grid-item:hover{background:var(--glass-fill-md)}.cgi-label{font-family:var(--font-mono);font-size:.625rem;color:var(--accent-slate);letter-spacing:var(--ls-wider);text-transform:uppercase;opacity:.7}.cgi-value{font-size:var(--fs-xs);color:var(--text-secondary);line-height:var(--lh-snug)}.case-code-list{display:flex;flex-direction:column;gap:var(--sp-3)}.case-code-item{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3);background:var(--bg-void);border:.06rem solid var(--glass-border);border-radius:var(--r-md)}.case-code-item code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--accent-fog);letter-spacing:var(--ls-wide)}.case-code-item span{font-size:var(--fs-xs);color:var(--text-tertiary)}.case-sync{display:flex;flex-direction:column;gap:var(--sp-3)}.sync-row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-secondary);padding:var(--sp-2) var(--sp-3);background:#6e9b9b0a;border-radius:var(--r-md);transition:background var(--dur-fast) var(--ease-out)}.sync-row:hover{background:#6e9b9b14}.sync-row .sync-dot{width:.375rem;height:.375rem;border-radius:50%;background:#6e9b7e;flex-shrink:0;animation:softPulse 2s ease-in-out infinite}.case-challenges{display:flex;flex-direction:column;gap:var(--sp-3)}.challenge-row{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3);background:var(--glass-fill);border-left:.125rem solid rgba(142,142,160,.25);border-radius:0 var(--r-md) var(--r-md) 0;transition:border-color var(--dur-fast) var(--ease-out)}.challenge-row:hover{border-color:#8e8ea080}.challenge-label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-primary)}.challenge-desc{font-size:var(--fs-xs);color:var(--text-tertiary);line-height:var(--lh-relaxed)}@media(max-width:1439px){.project-card--featured{grid-template-columns:1fr}.project-card--featured .card-art{grid-column:1;grid-row:1;border-left:none;border-bottom:.06rem solid var(--glass-border);border-radius:var(--r-2xl) var(--r-2xl) 0 0;min-height:11.25rem}.project-card--featured .card-badges{grid-row:2}.project-card--featured .card-body{grid-row:3}}@media(max-width:1023px){.projects-grid{grid-template-columns:repeat(2,1fr)}.modal-body{grid-template-columns:1fr}.modal-left{border-right:none;border-bottom:.06rem solid var(--glass-border);padding:var(--sp-5) var(--sp-6) var(--sp-4);overflow-y:visible}.modal-left-spacer{display:none}.modal-gh-btn{width:100%}.modal-right{flex:1;min-height:0;padding:var(--sp-5) var(--sp-6);gap:var(--sp-6)}.modal-right-meta{padding-bottom:var(--sp-3)}.modal-box{width:min(62.5rem,95vw);height:min(84vh,42.5rem)}}@media(max-width:767px){.projects-grid,.case-grid{grid-template-columns:1fr}.modal-wrap{padding:12px}.modal-box{width:100%;height:min(90dvh,760px);border-radius:var(--r-2xl) var(--r-2xl) var(--r-md) var(--r-md)}.modal-left{padding:var(--sp-5)}.modal-right{padding:var(--sp-4);gap:var(--sp-4)}.case-section{padding:var(--sp-3)}.modal-right-meta{padding-bottom:var(--sp-2)}.modal-title{font-size:clamp(24px,8vw,34px);line-height:1}.project-card--featured .card-title{font-size:var(--fs-xl)}}.contact{background:var(--bg-base)}.contact-body{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-16);align-items:center}.contact-left{display:flex;flex-direction:column;gap:var(--sp-6);opacity:0;transform:translateY(3vh)}.contact-heading{margin-bottom:0}.contact-desc{font-size:var(--fs-base);color:var(--text-secondary);line-height:var(--lh-relaxed);margin:0}.availability-badge{display:inline-flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);border-radius:var(--r-xl);align-self:flex-start;margin-top:var(--sp-2)}.avail-dot{width:.5rem;height:.5rem;border-radius:50%;background:#6e9b7e;flex-shrink:0;animation:softPulse 2.5s ease-in-out infinite}.avail-title{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary)}.avail-sub{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:2px}.contact-form{border-radius:var(--r-2xl);padding:var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-6);opacity:0;transform:translate(2vw);transform-style:preserve-3d;backface-visibility:hidden;transform:translateZ(0)}.form-field{display:flex;flex-direction:column;gap:var(--sp-2)}.field-label{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary);letter-spacing:var(--ls-wider);text-transform:uppercase}.field-input{width:100%;padding:var(--sp-4) var(--sp-5);background:var(--glass-fill);border:.06rem solid var(--glass-border);border-radius:var(--r-lg);font-size:var(--fs-sm);color:var(--text-primary);font-family:var(--font-body);line-height:var(--lh-relaxed);transition:var(--t-fast);resize:none}.field-input::-moz-placeholder{color:var(--text-tertiary);opacity:.5}.field-input::placeholder{color:var(--text-tertiary);opacity:.5}.field-input:focus{outline:none;border-color:#7b9fbb66;background:var(--glass-fill-md);box-shadow:0 0 0 3px #7b9fbb0f}@media(max-width:1023px){.field-input{font-size:1rem}}.field-input:disabled{opacity:.5;cursor:not-allowed}.field-input--textarea{min-height:8.125rem;field-sizing:content}.form-field--error .field-input{border-color:#b46e6e66}.form-field--error .field-input:focus{border-color:#b46e6e99;box-shadow:0 0 0 3px #b46e6e0f}.field-error{font-family:var(--font-mono);font-size:var(--fs-xs);color:#b46e6ecc;letter-spacing:var(--ls-wide);min-height:1rem}.form-submit{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-8);background:var(--glass-fill-md);border:.06rem solid var(--glass-border-md);border-radius:var(--r-full);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);letter-spacing:var(--ls-wide);cursor:pointer;transition:var(--t-base);align-self:flex-start;min-width:10rem;min-height:3rem}.form-submit:hover:not(:disabled){border-color:#7b9fbb59;box-shadow:var(--glow-slate)}.form-submit:disabled{cursor:not-allowed;opacity:.7}.submit-loader{display:flex;align-items:center;gap:5px}.loader-dot{width:.3125rem;height:.3125rem;border-radius:50%;background:var(--text-tertiary);animation:loaderBounce 1.2s ease-in-out infinite}.loader-dot:nth-child(1){animation-delay:0s}.loader-dot:nth-child(2){animation-delay:.2s}.loader-dot:nth-child(3){animation-delay:.4s}@keyframes loaderBounce{0%,80%,to{transform:scale(.7);opacity:.3}40%{transform:scale(1);opacity:1}}.form-success{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);background:#6e9b7e14;border:.06rem solid rgba(110,155,126,.2);border-radius:var(--r-lg);font-size:var(--fs-sm);color:#6e9b7ee6;animation:contactFadeIn var(--dur-base) var(--ease-out)}@keyframes contactFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1023px){.contact-body{grid-template-columns:1fr;gap:var(--sp-10);align-items:start}}@media(max-width:767px){.contact-form{padding:var(--sp-6)}}.footer{background:var(--bg-void);position:relative;overflow:hidden;opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}.footer--visible{opacity:1;transform:translateY(0)}.footer:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(123,139,159,.04) 0%,transparent 70%);pointer-events:none}.footer-marquee-wrap{width:100%;border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border);overflow:hidden;padding:var(--sp-4) 0;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 8%,black 92%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,black 8%,black 92%,transparent 100%)}.footer-marquee-track{display:flex;gap:var(--sp-8);width:-moz-max-content;width:max-content;animation:marquee 18s linear infinite}.footer-marquee-item{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-secondary);letter-spacing:var(--ls-wider);text-transform:uppercase;opacity:.7;white-space:nowrap;display:flex;align-items:center;gap:var(--sp-8)}.footer-marquee-item:after{content:"//";opacity:.5}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.footer-inner{padding:var(--sp-14) 0 var(--sp-10);display:flex;flex-direction:column;gap:var(--sp-8)}.footer-top{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-8)}.footer-logotype{display:flex;flex-direction:column;gap:var(--sp-3)}.footer-wordmark{font-family:var(--font-mono);font-size:clamp(2rem,4.8vw,3.6rem);font-weight:var(--fw-bold);color:var(--text-primary);letter-spacing:-.01em;line-height:1.02}.footer-descriptor{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-secondary);letter-spacing:var(--ls-wider);text-transform:uppercase;opacity:.8;padding-left:2px}.footer-social-col{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-3)}.footer-social-label{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-secondary);letter-spacing:var(--ls-wider);text-transform:uppercase;opacity:.7}.footer-social-row{display:flex;gap:var(--sp-2)}.social-pill{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);background:var(--glass-fill);border:1px solid var(--glass-border);border-radius:999px;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-wide);text-decoration:none;transition:var(--t-fast);white-space:nowrap}.social-pill:hover{background:var(--glass-fill-md);border-color:var(--glass-border-md);color:var(--text-secondary);transform:translateY(-2px)}.social-pill svg{flex-shrink:0}.footer-rule{width:100%;height:1px;background:var(--glass-border)}.footer-nav-strip{display:flex;align-items:center}.footer-nav-index{display:flex;align-items:center;flex-wrap:wrap;flex:1}.footer-nav-item{display:flex;align-items:center}.footer-nav-link{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-secondary);letter-spacing:var(--ls-wider);text-decoration:none;text-transform:uppercase;padding:var(--sp-2) var(--sp-4);position:relative;transition:color var(--dur-fast) var(--ease-out)}.footer-nav-link:after{content:"";position:absolute;bottom:0;left:var(--sp-4);right:var(--sp-4);height:1px;background:var(--text-primary);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-fast) var(--ease-out)}.footer-nav-link:hover{color:var(--text-primary)}.footer-nav-link:hover:after{transform:scaleX(1)}.footer-nav-sep{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-secondary);opacity:.4;-webkit-user-select:none;-moz-user-select:none;user-select:none}.footer-nav-tagline{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-secondary);letter-spacing:var(--ls-wide);opacity:.6;margin-left:auto}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-top:var(--sp-6);border-top:1px solid var(--glass-border)}.footer-copy,.footer-built{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-secondary);letter-spacing:var(--ls-wide);opacity:.8}.built-mono{color:var(--text-tertiary);opacity:1}.footer-status{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-secondary);letter-spacing:var(--ls-wide);opacity:.8}.status-dot{width:6px;height:6px;border-radius:50%;background:#4ade80;box-shadow:0 0 6px #4ade8088;animation:pulse-dot 2.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}@media(max-width:768px){.footer-top{flex-direction:column;align-items:flex-start;gap:var(--sp-6)}.footer-social-col{align-items:flex-start}.footer-social-row{flex-wrap:wrap}.footer-nav-strip{flex-direction:column;align-items:flex-start;gap:var(--sp-4)}.footer-nav-tagline{margin-left:0}.footer-wordmark{font-size:clamp(2rem,10vw,3rem)}}@media(max-width:480px){.footer-bottom{flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.footer-status{display:none}}
