/* ══ KINEMATIC ENGINE v1.0 — kinematic.css ═══════════════════════════════
 *  Vesta glass system + Kinematic governor response classes:
 *    .km-reduce-glass   → strips noise overlay, mix-blend-mode, inner shine
 *    .km-reduce-aurora  → reduces aurora to 4 blobs
 *    .km-minimal        → strips all heavy compositing
 * ═════════════════════════════════════════════════════════════════════════ */

/* ── TOKENS ──────────────────────────────────────────────────────────────── */
:root{
  --pink1:#f9c8d9;--pink2:#e8829a;--blue1:#c3d9f5;--blue2:#5a8fd4;
  --purple1:#d9c8f5;--purple2:#7c5cbf;--peach:#fde8d8;--mint:#c8f5e8;
  --accent-dim:#b094d4;--obsidian:#06030d;--paper:#f3f0f7;
  --pl-mu:1;
  --glass-blur:calc(var(--pl-mu) * 48px);
  --bg:var(--paper);--fg:#160d20;
  --glass-tint:rgba(252,248,255,0.52);--glass-tint-hi:rgba(255,252,255,0.72);
  --glass-border:rgba(200,160,230,0.28);--glass-border-hi:rgba(220,170,255,0.60);
  --glass-shine:rgba(255,255,255,0.72);--glass-shine2:rgba(255,255,255,0.28);
  --glass-rim:rgba(255,255,255,0.90);
  --glass-shadow:rgba(120,60,180,0.10);--glass-shadow-hi:rgba(120,60,180,0.22);
  --glass-noise-op:0.032;--glass-sat:180%;--glass-bright:104%;
  --spec-x:50%;--spec-y:30%;--ior-dx:0px;--ior-dy:0px;
  --card-bg:var(--glass-tint);
  --font-mono:"IBM Plex Mono",monospace;
  --font-serif:"Playfair Display",serif;
  --font-sans:"DM Sans",sans-serif;
  --ta:0.55s cubic-bezier(.4,0,.2,1);--radius:28px;
}
[data-theme="dark"]{
  --bg:var(--obsidian);--fg:#f0e8fa;
  --glass-tint:rgba(22,8,38,0.58);--glass-tint-hi:rgba(32,12,52,0.72);
  --glass-border:rgba(160,110,220,0.22);--glass-border-hi:rgba(200,140,255,0.45);
  --glass-shine:rgba(255,255,255,0.10);--glass-shine2:rgba(255,255,255,0.05);
  --glass-rim:rgba(255,255,255,0.14);
  --glass-shadow:rgba(0,0,0,0.45);--glass-shadow-hi:rgba(0,0,0,0.65);
  --glass-noise-op:0.045;--glass-sat:200%;--glass-bright:110%;
  --card-bg:var(--glass-tint);
}

/* ── RESET ───────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
::selection{background:var(--accent-dim);color:#fff}
html{scroll-behavior:smooth;font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);transition:background var(--ta),color var(--ta);min-height:100dvh;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.80' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  opacity:0.50;mix-blend-mode:overlay}
/* Governor: strip body noise on weak devices */
.km-reduce-glass body::before{display:none}

/* ══ ACTIVE RNG AURORA ══════════════════════════════════════════════════════ */
#aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
[data-theme="light"] #aurora{opacity:0.72}
[data-theme="dark"]  #aurora{opacity:0.88;mix-blend-mode:screen}
/* Governor: strip expensive blend on weak devices */
.km-reduce-glass [data-theme="dark"] #aurora{mix-blend-mode:normal;opacity:0.55}
.km-reduce-aurora .ab5,.km-reduce-aurora .ab6,.km-reduce-aurora .ab7,.km-reduce-aurora .ab8{display:none}

.aurora-blob{
  position:absolute;border-radius:50%;will-change:transform;
  transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1));
  transition:transform 9s cubic-bezier(0.45,0.05,0.55,0.95),opacity 5s ease;
}
.ab1{width:80vw;height:70vw;top:-20%;left:-15%;background:radial-gradient(ellipse at 40% 44%,rgba(249,200,217,0.90) 0%,rgba(249,200,217,0.50) 22%,rgba(232,130,154,0.18) 52%,transparent 72%);animation:ab1d 44s ease-in-out infinite}
@keyframes ab1d{0%,100%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(0,0)}33%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(3vw,4vh)}66%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(-2vw,7vh)}}
.ab2{width:65vw;height:58vw;top:-6%;right:-18%;background:radial-gradient(ellipse at 55% 40%,rgba(217,200,245,0.88) 0%,rgba(217,200,245,0.48) 22%,rgba(175,130,230,0.16) 52%,transparent 72%);animation:ab2d 38s ease-in-out infinite}
@keyframes ab2d{0%,100%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(0,0)}40%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(-4vw,5vh)}75%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(-2vw,-3vh)}}
.ab3{width:58vw;height:52vw;top:30%;right:-10%;background:radial-gradient(ellipse at 50% 50%,rgba(195,217,245,0.82) 0%,rgba(100,160,230,0.40) 26%,rgba(90,143,212,0.12) 54%,transparent 74%);animation:ab3d 51s ease-in-out infinite}
@keyframes ab3d{0%,100%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(0,0)}25%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(-6vw,8vh)}60%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(-3vw,14vh)}}
.ab4{width:55vw;height:50vw;bottom:-14%;right:-14%;background:radial-gradient(ellipse at 45% 55%,rgba(232,130,154,0.78) 0%,rgba(232,130,154,0.38) 24%,rgba(249,200,217,0.12) 52%,transparent 72%);animation:ab4d 63s ease-in-out infinite}
@keyframes ab4d{0%,100%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(0,0)}20%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(5vw,-6vh)}55%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(2vw,-12vh)}}
.ab5{width:60vw;height:54vw;bottom:-16%;left:-10%;background:radial-gradient(ellipse at 50% 50%,rgba(124,92,191,0.74) 0%,rgba(124,92,191,0.36) 24%,rgba(175,130,230,0.10) 54%,transparent 72%);animation:ab5d 41s ease-in-out infinite}
@keyframes ab5d{0%,100%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(0,0)}35%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(8vw,-5vh)}}
.ab6{width:50vw;height:45vw;top:38%;left:26%;background:radial-gradient(ellipse at 50% 50%,rgba(90,143,212,0.68) 0%,rgba(90,143,212,0.30) 24%,rgba(195,217,245,0.08) 54%,transparent 72%);animation:ab6d 35s ease-in-out infinite}
@keyframes ab6d{0%,100%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(0,0)}30%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(5vw,6vh)}}
.ab7{width:55vw;height:48vw;bottom:-10%;left:18%;background:radial-gradient(ellipse at 50% 50%,rgba(253,210,190,0.72) 0%,rgba(253,210,190,0.34) 24%,rgba(255,215,200,0.10) 54%,transparent 72%);animation:ab7d 57s ease-in-out infinite}
@keyframes ab7d{0%,100%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(0,0)}25%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(-4vw,-6vh)}}
.ab8{width:48vw;height:42vw;top:-12%;left:26%;background:radial-gradient(ellipse at 50% 50%,rgba(190,240,220,0.64) 0%,rgba(190,240,220,0.28) 24%,rgba(200,245,232,0.08) 54%,transparent 72%);animation:ab8d 67s ease-in-out infinite}
@keyframes ab8d{0%,100%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(0,0)}20%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(7vw,5vh)}50%{transform:translate(var(--ab-tx,0px),var(--ab-ty,0px)) scale(var(--ab-s,1)) translate(12vw,10vh)}}

/* ══ LOADER ═════════════════════════════════════════════════════════════════ */
#vs-loader{position:fixed;inset:0;z-index:99999;background:#04020a;overflow:hidden;clip-path:circle(150% at 50% 50%);transition:clip-path 2.2s cubic-bezier(0.86,0,0.07,1)}
#vs-loader.vs-exit{clip-path:circle(0% at 50% 50%)}
#vs-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#vs-loader-ui{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;pointer-events:none;z-index:2}
#vs-name{font-family:var(--font-serif);font-size:clamp(2rem,5.5vw,4rem);font-weight:700;letter-spacing:-0.03em;background:linear-gradient(135deg,#f9c8d9 0%,#d9c8f5 40%,#c3d9f5 75%,#f9c8d9 100%);background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:0;transform:scale(0.92) translateY(14px);transition:opacity 1.1s cubic-bezier(.22,.68,0,1.2),transform 1.1s cubic-bezier(.22,.68,0,1.2);animation:vs-shimmer 4s ease-in-out infinite alternate paused}
#vs-name.vis{opacity:1;transform:scale(1) translateY(0);animation-play-state:running}
@keyframes vs-shimmer{0%{background-position:0% 50%}100%{background-position:100% 50%}}
#vs-sub{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.22em;text-transform:uppercase;color:rgba(210,185,250,0.38);opacity:0;transition:opacity 0.9s ease 0.5s}
#vs-sub.vis{opacity:1}
#vs-bar-wrap{width:min(280px,58vw);display:flex;flex-direction:column;align-items:center;gap:8px}
#vs-track{width:100%;height:1.5px;background:rgba(255,255,255,0.06);border-radius:999px;overflow:hidden}
#vs-fill{height:100%;width:0%;background:linear-gradient(90deg,#e8829a,#a070e0,#5a8fd4,#e8829a);background-size:300% 100%;border-radius:999px;transition:width 0.12s linear;animation:vs-flow 2.2s linear infinite;will-change:width}
@keyframes vs-flow{0%{background-position:100% 0%}100%{background-position:-200% 0%}}
#vs-pct{font-family:var(--font-mono);font-size:0.6rem;letter-spacing:0.12em;color:rgba(200,175,240,0.26)}

/* ── SITE REVEAL ─────────────────────────────────────────────────────────── */
.shell{opacity:0;transition:opacity 1.1s ease}
@keyframes kmReveal{0%{opacity:0;transform:scale(1.03) translateY(18px);filter:blur(6px)}100%{opacity:1;transform:none;filter:none}}
body.vs-ready .shell{animation:kmReveal 1.6s cubic-bezier(0.16,1,0.3,1) both}

/* ══ LIQUID GLASS ENGINE ════════════════════════════════════════════════════ */
.card-engine{
  position:relative;transform-style:preserve-3d;perspective:1400px;
  contain:layout style paint;
  /* Base isolation — will-change is added/removed dynamically by JS */
  transform:translateZ(0);
}
.card-engine.card-interactive{cursor:pointer}

/* The pane — full 7-layer glass stack */
.card-bg{
  position:absolute;inset:0;border-radius:inherit;
  backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat)) brightness(var(--glass-bright));
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat)) brightness(var(--glass-bright));
  background:var(--glass-tint);
  border:1px solid var(--glass-border);
  box-shadow:0 8px 32px var(--glass-shadow),inset 0 1.5px 0 var(--glass-rim),inset 0 -1px 0 rgba(160,100,255,0.18);
  transition:border-color .42s cubic-bezier(0.16,1,0.3,1),box-shadow .42s,background .32s;
  pointer-events:none;overflow:hidden;
}
/* Inner shine stripe (layer 4) */
.card-bg::before{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(175deg,var(--glass-shine) 0%,var(--glass-shine2) 20%,transparent 45%);
  pointer-events:none;
}
/* Grain noise overlay (layer 3) */
.card-bg::after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity:var(--glass-noise-op);mix-blend-mode:overlay;pointer-events:none;
}
/* Governor: strip noise + blend from card-bg (saves ~30% composite cost) */
.km-reduce-glass .card-bg::after{display:none}
.km-reduce-glass .card-bg::before{opacity:0.4}

/* Specular + IOR layers (JS-driven) */
.glass-spec{
  position:absolute;inset:0;border-radius:inherit;
  background:radial-gradient(ellipse 52% 42% at var(--spec-x,50%) var(--spec-y,28%),rgba(255,255,255,0.22),rgba(255,255,255,0.06) 40%,transparent 65%);
  opacity:0;transition:opacity .3s;pointer-events:none;z-index:1;
}
.glass-ior{
  position:absolute;inset:0;border-radius:inherit;
  background:radial-gradient(ellipse 56% 46% at 50% 50%,rgba(255,255,255,0.06),transparent 68%);
  transform:translate(var(--ior-dx,0px),var(--ior-dy,0px));
  pointer-events:none;transition:transform .16s linear;z-index:1;
}
.card-engine:hover .card-bg,
.card-engine:focus-visible .card-bg,
.card-engine.card-aether-glow .card-bg{
  background:var(--glass-tint-hi);border-color:var(--glass-border-hi);
  box-shadow:0 20px 56px var(--glass-shadow-hi),0 0 0 0.5px var(--glass-border-hi),inset 0 2px 0 var(--glass-rim),inset 0 -1px 0 rgba(180,120,255,0.30),0 0 28px rgba(180,100,255,0.10);
}
.card-engine:hover .glass-spec,
.card-engine.card-aether-glow .glass-spec{opacity:1}
.card-engine.card-aether-glow{transform:translateZ(0) translateY(-3px) scale(1.006);transition:transform .38s cubic-bezier(.22,.68,0,1.2)}
/* DOM paint isolation — will-change managed dynamically by JS (not static CSS)
   to avoid permanent layer promotion cost on all cards during scroll */
.card-content{position:relative;z-index:2}
.card{border-radius:var(--radius);padding:28px 30px}
.card-hover{transition:transform .35s cubic-bezier(.22,.68,0,1.2),box-shadow .35s}
@keyframes vs-pulse{0%,100%{box-shadow:0 8px 24px rgba(160,100,220,.06)}50%{box-shadow:0 24px 72px rgba(160,100,220,.28),0 8px 32px rgba(200,140,240,.16)}}
.card-hover:hover{animation:vs-pulse 2.5s ease-in-out infinite}
@keyframes contact-pulse{0%,100%{box-shadow:0 0 40px rgba(180,100,230,.05)}50%{box-shadow:0 0 100px rgba(180,100,230,.26),0 20px 70px rgba(140,80,200,.26)}}
.contact-card:hover{animation:contact-pulse 2.5s ease-in-out infinite!important}
.ripple,.mob-ripple{position:absolute;border-radius:50%;background:rgba(180,140,220,0.32);transform:scale(0);animation:rpl 0.55s ease-out forwards;pointer-events:none}
@keyframes rpl{to{transform:scale(4);opacity:0}}

/* ══ BUTTONS ════════════════════════════════════════════════════════════════ */
.cta-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 32px;border-radius:999px;
  background:linear-gradient(135deg,var(--pink2) 0%,var(--purple2) 60%,var(--blue2) 100%);
  background-size:200% 200%;color:#fff;
  font-family:var(--font-mono);font-size:0.82rem;letter-spacing:0.04em;
  text-decoration:none;font-weight:600;
  position:relative;overflow:hidden;
  border:1px solid rgba(255,255,255,0.22);
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.30),inset 0 -1px 0 rgba(0,0,0,0.12),0 4px 18px rgba(160,80,200,0.28);
  transition:transform .2s cubic-bezier(.22,.68,0,1.2),box-shadow .2s,filter .2s,background-position .4s;
}
.cta-btn::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--btn-mx,50%) var(--btn-my,40%),rgba(255,255,255,0.30),transparent 60%);opacity:0;transition:opacity .25s}
.cta-btn::after{content:"";position:absolute;inset:0;border-radius:inherit;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.90' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='80' height='80' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");opacity:0.04;mix-blend-mode:overlay;pointer-events:none}
.km-reduce-glass .cta-btn::after{display:none}
.cta-btn:hover{transform:translateY(-3px);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.35),inset 0 -1px 0 rgba(0,0,0,0.14),0 16px 50px rgba(180,80,200,.44),0 4px 18px rgba(160,80,200,0.28);filter:brightness(1.08);background-position:right center}
.cta-btn:hover::before{opacity:1}
.cta-btn svg,.cta-btn-label{position:relative;z-index:1}
.cta-btn-linkedin{background:linear-gradient(135deg,#0a66c2,#004182)}
.cta-btn-linkedin:hover{box-shadow:0 16px 50px rgba(10,102,194,.50)}
@keyframes btn-entry-glow{0%{box-shadow:0 0 0 rgba(180,80,180,0)}50%{box-shadow:0 0 50px rgba(180,80,180,0.50),0 8px 32px rgba(180,80,180,0.30)}100%{box-shadow:0 8px 32px rgba(180,80,180,0.18)}}
.cta-btn.iv{animation:btn-entry-glow 1.5s cubic-bezier(0.16,1,0.3,1) forwards}

.pill-link{
  display:inline-flex;align-items:center;justify-content:center;
  padding:8px 18px;border-radius:999px;
  border:1px solid var(--glass-border-hi);
  font-family:var(--font-mono);font-size:0.72rem;text-decoration:none;color:var(--pink2);
  backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);
  background:linear-gradient(175deg,rgba(255,255,255,0.22) 0%,rgba(255,255,255,0.05) 100%);
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.55),inset 0 -1px 0 rgba(160,100,220,0.15),0 4px 16px rgba(160,80,220,0.12);
  transition:color .22s,transform .2s,box-shadow .2s,background .22s;
  position:relative;overflow:hidden;min-width:90px;
}
.pill-link::before{content:"";position:absolute;inset:0;background:linear-gradient(175deg,rgba(255,255,255,0.28) 0%,rgba(255,255,255,0.0) 50%);border-radius:inherit;pointer-events:none}
[data-theme="dark"] .pill-link{background:linear-gradient(175deg,rgba(255,255,255,0.10) 0%,rgba(255,255,255,0.02) 100%);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.14),inset 0 -1px 0 rgba(160,100,220,0.25),0 4px 16px rgba(0,0,0,0.28)}
.pill-link:hover{color:var(--purple2);transform:translateY(-2px);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.60),inset 0 -1px 0 rgba(160,100,220,0.28),0 8px 24px rgba(180,100,220,.28)}
.pill-link-inner{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;width:100%}

.theme-btn{
  margin-top:12px;background:none;border:1px solid var(--glass-border);border-radius:999px;
  backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);
  padding:7px 18px;
  background:linear-gradient(175deg,rgba(255,255,255,0.18) 0%,rgba(255,255,255,0.04) 100%);
  box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.50),inset 0 -1px 0 rgba(160,100,220,0.12);
  font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.06em;cursor:pointer;color:var(--fg);
  transition:all .22s;position:relative;overflow:hidden;
}
[data-theme="dark"] .theme-btn{background:linear-gradient(175deg,rgba(255,255,255,0.08) 0%,rgba(255,255,255,0.01) 100%);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.12),inset 0 -1px 0 rgba(160,100,220,0.22)}
.theme-btn::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(175deg,rgba(255,255,255,0.22) 0%,rgba(255,255,255,0) 50%);pointer-events:none}
.theme-btn:hover{border-color:var(--pink2);color:var(--purple2);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.60),inset 0 -1px 0 rgba(232,130,154,0.30),0 0 20px rgba(232,130,154,0.18)}
.theme-btn-label{position:relative;z-index:2}

/* ── CURSOR ──────────────────────────────────────────────────────────────── */
@media(pointer:fine){body{cursor:none}a,button,.nav-link,.pill-link,.skill-chip,.badge,.cta-btn,.theme-btn{cursor:none}}
#vs-cursor{position:fixed;top:0;left:0;z-index:99998;pointer-events:none;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;background:radial-gradient(circle,rgba(200,160,240,0.92) 0%,rgba(200,160,240,0.4) 40%,transparent 70%);transition:transform .12s cubic-bezier(.22,.68,0,1.2),opacity .2s;will-change:transform;mix-blend-mode:overlay}
#vs-cursor.hov{transform:scale(2.2)}
#vs-cursor.click{transform:scale(0.6)}
@media(pointer:coarse){#vs-cursor{display:none}}

/* ── LAYOUT ──────────────────────────────────────────────────────────────── */
.shell{position:relative;z-index:1;display:grid;grid-template-columns:300px 1fr;min-height:100vh;max-width:1280px;margin:0 auto}
@media(max-width:860px){.shell{grid-template-columns:1fr}}

/* ── FLOATING PILL NAV ───────────────────────────────────────────────────── */
#mob-bar{display:none;position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:500;align-items:center;justify-content:space-between;padding:10px 16px 10px 20px;gap:12px;backdrop-filter:blur(32px) saturate(220%) brightness(110%);-webkit-backdrop-filter:blur(32px) saturate(220%) brightness(110%);background:linear-gradient(175deg,rgba(255,255,255,0.22) 0%,rgba(255,255,255,0.06) 100%);border:1px solid rgba(200,160,230,0.30);border-radius:999px;box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.55),inset 0 -1px 0 rgba(160,100,220,0.15),0 8px 32px rgba(0,0,0,0.18),0 0 0 1px rgba(180,140,220,0.08);width:auto;max-width:calc(100vw - 24px)}
[data-theme="dark"] #mob-bar{background:linear-gradient(175deg,rgba(255,255,255,0.10) 0%,rgba(255,255,255,0.02) 100%);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.12),inset 0 -1px 0 rgba(160,100,220,0.28),0 8px 32px rgba(0,0,0,0.45)}
#mob-bar::before{content:"";position:absolute;inset:-18px;border-radius:999px;background:radial-gradient(ellipse at 50% 50%,rgba(180,100,220,0.20) 0%,rgba(100,140,240,0.08) 50%,transparent 75%);filter:blur(16px);z-index:-1;pointer-events:none;animation:pill-halo 8s ease-in-out infinite alternate}
@keyframes pill-halo{0%{opacity:0.55;transform:scale(1)}100%{opacity:1;transform:scale(1.08)}}
#mob-bar::after{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;border-radius:999px;background:rgba(255,255,255,0.50);pointer-events:none}
@media(max-width:860px){#mob-bar{display:flex}.main{padding-top:80px!important}}
#mob-site-name{font-family:var(--font-serif);font-size:1rem;font-weight:700;background:linear-gradient(135deg,var(--pink2),var(--purple2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap}
#mob-nav-btn{background:linear-gradient(175deg,rgba(255,255,255,0.20) 0%,rgba(255,255,255,0.06) 100%);border:1px solid rgba(180,140,220,0.32);border-radius:14px;padding:7px 10px;cursor:pointer;color:var(--fg);display:flex;flex-direction:column;gap:4px;min-width:40px;min-height:36px;align-items:center;justify-content:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.40),0 2px 8px rgba(0,0,0,0.10);transition:background .2s,border-color .2s,box-shadow .2s}
#mob-nav-btn:hover{background:rgba(249,200,217,0.22);border-color:var(--pink2);box-shadow:inset 0 1px 0 rgba(255,255,255,0.50),0 0 16px rgba(232,130,154,0.28)}
.hbr-line{width:18px;height:1.5px;background:var(--fg);border-radius:2px;transition:transform 0.35s cubic-bezier(.22,.68,0,1.2),opacity 0.3s,background 0.2s}
#mob-nav-btn.open .hbr-line{background:var(--pink2)}
#mob-nav-btn.open .hbr-line:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
#mob-nav-btn.open .hbr-line:nth-child(2){opacity:0;transform:scaleX(0)}
#mob-nav-btn.open .hbr-line:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* ── MOBILE OVERLAY + DRAWER ─────────────────────────────────────────────── */
#mob-overlay{display:none;position:fixed;inset:0;z-index:600;background:rgba(4,2,10,0.52);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity 0.38s ease}
#mob-overlay.open{opacity:1}
#mob-drawer{position:fixed;top:0;right:0;bottom:0;z-index:700;width:min(340px,88vw);backdrop-filter:blur(48px) saturate(220%) brightness(108%);-webkit-backdrop-filter:blur(48px) saturate(220%) brightness(108%);background:linear-gradient(175deg,rgba(255,255,255,0.24) 0%,rgba(255,255,255,0.06) 100%);border-left:1px solid rgba(200,160,230,0.30);box-shadow:inset 1px 0 0 rgba(255,255,255,0.50),-20px 0 60px rgba(0,0,0,0.18),-4px 0 40px rgba(124,92,191,0.12);transform:translateX(110%);transition:transform 0.48s cubic-bezier(0.16,1,0.3,1);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}
[data-theme="dark"] #mob-drawer{background:linear-gradient(175deg,rgba(255,255,255,0.10) 0%,rgba(255,255,255,0.02) 100%);border-left:1px solid rgba(160,110,220,0.25);box-shadow:inset 1px 0 0 rgba(255,255,255,0.10),-20px 0 60px rgba(0,0,0,0.55),-4px 0 40px rgba(124,92,191,0.18)}
#mob-drawer.open{transform:translateX(0)}
#mob-drawer::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--pink2),var(--purple2),var(--blue2),transparent);background-size:200% 100%;animation:drawer-shimmer 3s linear infinite}
@keyframes drawer-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
#mob-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 18px;border-bottom:1px solid rgba(180,140,220,0.16);position:relative;z-index:1}
#mob-drawer-name{font-family:var(--font-serif);font-size:1.15rem;font-weight:700;background:linear-gradient(135deg,var(--pink2),var(--purple2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
#mob-close-btn{background:linear-gradient(175deg,rgba(255,255,255,0.22) 0%,rgba(255,255,255,0.06) 100%);border:1px solid rgba(180,140,220,0.30);border-radius:12px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--fg);font-size:1.2rem;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.45);transition:border-color .2s,background .2s,transform .2s,box-shadow .2s}
#mob-close-btn:hover{border-color:var(--pink2);transform:rotate(90deg);box-shadow:inset 0 1px 0 rgba(255,255,255,0.55),0 0 14px rgba(232,130,154,0.28)}
#mob-drawer-nav{display:flex;flex-direction:column;padding:16px;flex:1;gap:6px;position:relative;z-index:1}
.mob-nav-link{display:flex;align-items:center;gap:14px;padding:14px 18px;text-decoration:none;color:var(--fg);font-family:var(--font-sans);font-size:0.95rem;font-weight:500;border-radius:18px;border:1px solid transparent;background:transparent;transition:background .22s,color .22s,border-color .22s,transform .22s,box-shadow .22s;position:relative;overflow:hidden;opacity:0;transform:translateX(24px)}
.mob-nav-link.dr-vis{opacity:1;transform:translateX(0);transition:background .22s,color .22s,border-color .22s,transform 0.45s cubic-bezier(.22,.68,0,1.2),box-shadow .22s,opacity 0.35s ease}
.mob-nav-link:hover,.mob-nav-link.active{color:var(--purple2);border-color:rgba(180,140,220,0.35);background:linear-gradient(175deg,rgba(255,255,255,0.20) 0%,rgba(255,255,255,0.05) 100%);backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.40),0 4px 20px rgba(124,92,191,0.16);transform:translateX(4px)}
.mob-nav-link.active{color:var(--pink2);border-color:rgba(232,130,154,0.40)}
.mob-nav-icon{width:36px;height:36px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(249,200,217,0.35),rgba(217,200,245,0.35));color:var(--purple2);transition:transform .22s,box-shadow .22s}
.mob-nav-link:hover .mob-nav-icon,.mob-nav-link.active .mob-nav-icon{transform:scale(1.12) rotate(-4deg);box-shadow:0 4px 12px rgba(124,92,191,0.25)}
.mob-nav-label{position:relative;z-index:2;font-weight:500}
#mob-drawer-footer{padding:16px 16px 24px;display:flex;flex-direction:column;gap:10px;border-top:1px solid rgba(180,140,220,0.14);position:relative;z-index:1}
.mob-pill{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;border-radius:16px;text-decoration:none;font-family:var(--font-mono);font-size:0.8rem;font-weight:600;border:1px solid rgba(232,130,154,0.40);color:var(--pink2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:linear-gradient(175deg,rgba(255,255,255,0.16) 0%,rgba(255,255,255,0.04) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,0.40);transition:background .2s,color .2s,transform .2s,box-shadow .2s;min-height:48px}
.mob-pill:hover{background:rgba(249,200,217,0.22);color:var(--purple2);transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.50),0 8px 24px rgba(180,100,220,0.22)}
#mob-theme-btn{background:linear-gradient(175deg,rgba(255,255,255,0.14) 0%,rgba(255,255,255,0.03) 100%);border:1px solid rgba(180,140,220,0.30);border-radius:16px;padding:13px 20px;font-family:var(--font-mono);font-size:0.72rem;cursor:pointer;color:var(--fg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.40);transition:border-color .2s,background .2s,color .2s,box-shadow .2s;min-height:44px}
#mob-theme-btn:hover{border-color:var(--pink2);color:var(--pink2);background:rgba(249,200,217,0.16);box-shadow:inset 0 1px 0 rgba(255,255,255,0.50),0 0 18px rgba(232,130,154,0.20)}

/* ── SIDEBAR ─────────────────────────────────────────────────────────────── */
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;padding:48px 28px;gap:20px;border-right:1px solid var(--glass-border)}
@media(max-width:860px){.sidebar{display:none}}
.avatar-wrap{width:130px;height:130px;border-radius:50%;background:linear-gradient(135deg,var(--pink2),var(--purple2),var(--blue2));padding:3px;flex-shrink:0;position:relative}
.avatar-wrap::after{content:"";position:absolute;inset:-4px;border-radius:50%;background:inherit;z-index:-1;filter:blur(14px);opacity:0.38;animation:av-glow 5s ease-in-out infinite alternate}
@keyframes av-glow{0%{opacity:0.22;filter:blur(8px)}100%{opacity:0.50;filter:blur(20px)}}
.avatar-wrap img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center top;display:block}
.avatar-placeholder{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,rgba(217,200,245,0.30),rgba(195,217,245,0.20));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:8px;border:1.5px dashed rgba(180,140,220,0.50);box-sizing:border-box}
.avatar-placeholder-icon{color:var(--purple2);opacity:0.7}
.avatar-placeholder-label{font-family:var(--font-mono);font-size:0.55rem;font-weight:600;color:var(--purple2);letter-spacing:0.06em;text-transform:uppercase;line-height:1.2}
.avatar-placeholder-path{font-family:var(--font-mono);font-size:0.42rem;color:var(--purple2);opacity:0.7;line-height:1.4;word-break:break-all}
.sidebar-name{font-family:var(--font-serif);font-size:1.35rem;font-weight:700;text-align:center;line-height:1.2}
.sidebar-title{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.10em;text-transform:uppercase;color:var(--purple2);text-align:center;line-height:1.6;max-width:200px;word-break:break-word}
.sidebar-nav{display:flex;flex-direction:column;gap:4px;width:100%;margin-top:8px}
.nav-link{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:16px;text-decoration:none;color:var(--fg);font-family:var(--font-sans);font-size:0.88rem;font-weight:500;border:1px solid transparent;background:transparent;transition:color .22s,transform .22s,box-shadow .22s,background .22s,border-color .22s;position:relative;overflow:hidden}
.nav-link:hover,.nav-link.active{color:var(--purple2);transform:translateX(3px);background:linear-gradient(175deg,rgba(255,255,255,0.22) 0%,rgba(255,255,255,0.06) 100%);border-color:var(--glass-border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.48),inset 0 -1px 0 rgba(160,100,220,0.12),0 4px 16px rgba(180,140,220,0.14)}
[data-theme="dark"] .nav-link:hover,[data-theme="dark"] .nav-link.active{background:linear-gradient(175deg,rgba(255,255,255,0.10) 0%,rgba(255,255,255,0.02) 100%);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.12),inset 0 -1px 0 rgba(160,100,220,0.25),0 4px 16px rgba(0,0,0,0.30)}
.nav-link.active{color:var(--pink2);border-color:rgba(232,130,154,0.30)}
.nav-link::before{content:"";position:absolute;top:0;left:0;right:0;height:1.5px;border-radius:inherit;background:rgba(255,255,255,0.55);opacity:0;transition:opacity .25s;pointer-events:none}
.nav-link:hover::before,.nav-link.active::before{opacity:1}
.nav-icon{width:22px;flex-shrink:0;color:var(--pink2);display:flex;align-items:center;position:relative;z-index:2}
.nav-label{position:relative;z-index:2}
.sidebar-links{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:auto;width:100%}

/* ── MAIN ────────────────────────────────────────────────────────────────── */
.main{padding:56px 48px 80px;display:flex;flex-direction:column;gap:72px}
@media(max-width:860px){.main{padding:32px 18px 60px;gap:56px}}

/* ── HERO ────────────────────────────────────────────────────────────────── */
.hero{display:flex;flex-direction:column;gap:18px}
.hero-eyebrow{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--pink2)}
.hero-name{font-family:var(--font-serif);font-size:clamp(2.2rem,5vw,3.6rem);font-weight:700;letter-spacing:-0.04em;line-height:1.2;overflow:visible}
.hero-name .wave-line{display:inline-block;padding-bottom:0.08em;background:linear-gradient(105deg,#e8829a 0%,#c8a0e8 18%,#7c5cbf 34%,#5a8fd4 50%,#7c5cbf 66%,#e8829a 82%,#f9c8d9 100%);background-size:400% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:glass-wave 8s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(180,100,220,0.50)) drop-shadow(0 0 28px rgba(180,100,220,0.22))}
@keyframes glass-wave{0%{background-position:100% 0%;filter:drop-shadow(0 0 10px rgba(232,130,154,0.55)) drop-shadow(0 0 28px rgba(232,130,154,0.22))}33%{background-position:50% 0%;filter:drop-shadow(0 0 14px rgba(124,92,191,0.65)) drop-shadow(0 0 36px rgba(124,92,191,0.28))}66%{background-position:0% 0%;filter:drop-shadow(0 0 12px rgba(90,143,212,0.60)) drop-shadow(0 0 32px rgba(90,143,212,0.25))}100%{background-position:100% 0%;filter:drop-shadow(0 0 10px rgba(232,130,154,0.55)) drop-shadow(0 0 28px rgba(232,130,154,0.22))}}
.hero-name .wave-line .lr{color:inherit;-webkit-text-fill-color:inherit}
.lr{display:inline-block;opacity:0;transform:translateY(18px) rotate(-2deg);animation:lr-in 0.45s cubic-bezier(.22,.68,0,1.2) forwards}
@keyframes lr-in{to{opacity:1;transform:none}}
.hero-bio{max-width:560px;line-height:1.75;font-size:1.02rem;opacity:0.88}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.04em;font-weight:600;border:1px solid rgba(255,255,255,0.30);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.50),0 3px 10px rgba(0,0,0,0.08);transition:transform .2s cubic-bezier(.22,.68,0,1.2),box-shadow .2s;cursor:default;position:relative;overflow:hidden}
.badge::before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:rgba(255,255,255,0.18);border-radius:inherit;pointer-events:none}
.badge:hover{transform:translateY(-2px);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.55),0 8px 20px rgba(180,120,200,.22)}
.badge-pink{background:linear-gradient(175deg,rgba(249,200,217,0.80),rgba(249,200,217,0.55));color:var(--pink2)}
.badge-blue{background:linear-gradient(175deg,rgba(195,217,245,0.80),rgba(195,217,245,0.55));color:var(--blue2)}
.badge-purple{background:linear-gradient(175deg,rgba(217,200,245,0.80),rgba(217,200,245,0.55));color:var(--purple2)}
.badge-peach{background:linear-gradient(175deg,rgba(253,232,216,0.80),rgba(253,232,216,0.55));color:#c06040}
[data-theme="dark"] .badge-pink{background:rgba(232,130,154,0.22);color:#f9c8d9}
[data-theme="dark"] .badge-blue{background:rgba(90,143,212,0.22);color:#c3d9f5}
[data-theme="dark"] .badge-purple{background:rgba(124,92,191,0.22);color:#d9c8f5}
[data-theme="dark"] .badge-peach{background:rgba(253,210,190,0.18);color:#fde8d8}

/* ── SECTION HEADERS ─────────────────────────────────────────────────────── */
.section-header{display:flex;align-items:center;gap:14px;margin-bottom:28px}
.section-icon{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:box-shadow .3s;transform:scale(0) rotate(-90deg);opacity:0}
.section-icon.si-vis{transform:scale(1) rotate(0deg);opacity:1;transition:transform 0.6s cubic-bezier(.22,.68,0,1.2),opacity 0.4s ease,box-shadow .3s}
.section-icon:hover{box-shadow:0 8px 24px rgba(180,120,200,.25)}
.icon-pink{background:linear-gradient(135deg,rgba(249,200,217,0.82),rgba(249,200,217,0.55));color:var(--pink2);border:1px solid rgba(232,130,154,0.30);box-shadow:inset 0 1px 0 rgba(255,255,255,0.55)}
.icon-blue{background:linear-gradient(135deg,rgba(195,217,245,0.82),rgba(195,217,245,0.55));color:var(--blue2);border:1px solid rgba(90,143,212,0.30);box-shadow:inset 0 1px 0 rgba(255,255,255,0.55)}
.icon-purple{background:linear-gradient(135deg,rgba(217,200,245,0.82),rgba(217,200,245,0.55));color:var(--purple2);border:1px solid rgba(124,92,191,0.30);box-shadow:inset 0 1px 0 rgba(255,255,255,0.55)}
.icon-peach{background:linear-gradient(135deg,rgba(253,232,216,0.82),rgba(253,232,216,0.55));color:#c06040;border:1px solid rgba(180,80,48,0.24);box-shadow:inset 0 1px 0 rgba(255,255,255,0.55)}
[data-theme="dark"] .icon-pink{background:rgba(232,130,154,0.20);box-shadow:inset 0 1px 0 rgba(255,255,255,0.12)}
[data-theme="dark"] .icon-blue{background:rgba(90,143,212,0.20);box-shadow:inset 0 1px 0 rgba(255,255,255,0.12)}
[data-theme="dark"] .icon-purple{background:rgba(124,92,191,0.20);box-shadow:inset 0 1px 0 rgba(255,255,255,0.12)}
[data-theme="dark"] .icon-peach{background:rgba(253,210,190,0.15);box-shadow:inset 0 1px 0 rgba(255,255,255,0.08)}
.section-title{font-family:var(--font-serif);font-size:1.55rem;font-weight:700;letter-spacing:-0.03em}
.doodle-line{flex:1;height:1px;opacity:0;background:linear-gradient(90deg,var(--pink2),transparent);transform-origin:left;transform:scaleX(0)}
.doodle-line.dl-vis{opacity:0.28;transform:scaleX(1);transition:transform 0.9s cubic-bezier(0.16,1,0.3,1) 0.3s,opacity 0.4s ease 0.3s}

/* ── CONTENT ─────────────────────────────────────────────────────────────── */
.exp-cards{display:flex;flex-direction:column;gap:18px}
.exp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.exp-role{font-family:var(--font-serif);font-size:1.08rem;font-weight:700}
.exp-date{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.06em;color:var(--pink2);white-space:nowrap;padding-top:3px}
.exp-org{font-family:var(--font-mono);font-size:0.78rem;font-weight:600;color:var(--purple2);margin-bottom:10px}
.exp-bullets{list-style:none;display:flex;flex-direction:column;gap:6px}
.exp-bullets li{font-size:0.9rem;line-height:1.65;padding-left:18px;position:relative;opacity:0.88}
.exp-bullets li::before{content:"\2736";position:absolute;left:0;color:var(--pink2);font-size:0.65rem;top:4px}
.edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
@media(max-width:600px){.edu-grid{grid-template-columns:1fr}}
.edu-stat{background:linear-gradient(135deg,rgba(249,200,217,0.55),rgba(217,200,245,0.55));border:1px solid rgba(220,170,255,0.30);border-radius:20px;padding:16px 18px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.55),0 4px 16px rgba(180,100,220,0.10);transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}
.edu-stat::before{content:"";position:absolute;top:0;left:0;right:0;height:45%;background:rgba(255,255,255,0.18);border-radius:inherit;pointer-events:none}
.edu-stat:hover{transform:translateY(-2px);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.60),0 8px 24px rgba(180,120,220,.2)}
.edu-stat-val{font-family:var(--font-mono);font-size:1.3rem;font-weight:700;color:#1e0836;letter-spacing:-0.04em;position:relative;z-index:1}
.edu-stat-label{font-size:0.75rem;color:#2a0e48;margin-top:3px;font-weight:700;letter-spacing:0.02em;position:relative;z-index:1}
.skills-cloud{display:flex;flex-wrap:wrap;gap:10px}
.skill-chip{padding:7px 16px;border-radius:999px;font-family:var(--font-sans);font-size:0.83rem;font-weight:600;border:1px solid transparent;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.45),0 2px 8px rgba(0,0,0,0.06);transition:transform .2s cubic-bezier(.22,.68,0,1.2),box-shadow .2s;cursor:default;position:relative;overflow:hidden;opacity:0;transform:translateY(14px) scale(0.9)}
.skill-chip.sc-vis{opacity:1;transform:none;transition:transform .4s cubic-bezier(.22,.68,0,1.2),box-shadow .2s,opacity .4s ease}
.skill-chip::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--chip-x,50%) var(--chip-y,50%),rgba(255,255,255,.28),transparent 62%);opacity:0;transition:opacity .2s}
.skill-chip::after{content:"";position:absolute;top:0;left:0;right:0;height:45%;background:rgba(255,255,255,0.22);border-radius:inherit;pointer-events:none}
.skill-chip:hover{transform:translateY(-3px)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,0.55),0 8px 22px rgba(120,80,180,.18)}
.skill-chip:hover::before{opacity:1}
.sc-pink{background:linear-gradient(175deg,rgba(249,200,217,0.75),rgba(249,200,217,0.50));color:#7a1030;border-color:rgba(232,130,154,.35)}
.sc-blue{background:linear-gradient(175deg,rgba(195,217,245,0.75),rgba(195,217,245,0.50));color:#0e2d6e;border-color:rgba(90,143,212,.35)}
.sc-purple{background:linear-gradient(175deg,rgba(217,200,245,0.75),rgba(217,200,245,0.50));color:#2d0a70;border-color:rgba(124,92,191,.35)}
.sc-peach{background:linear-gradient(175deg,rgba(253,232,216,0.75),rgba(253,232,216,0.50));color:#6e1e00;border-color:rgba(180,80,48,.28)}
.sc-mint{background:linear-gradient(175deg,rgba(200,245,232,0.75),rgba(200,245,232,0.50));color:#0a4a2a;border-color:rgba(42,128,96,.28)}
[data-theme="dark"] .sc-pink{background:rgba(232,130,154,0.22);color:#f9c8d9;border-color:rgba(232,130,154,.35)}
[data-theme="dark"] .sc-blue{background:rgba(90,143,212,0.22);color:#c3d9f5;border-color:rgba(90,143,212,.35)}
[data-theme="dark"] .sc-purple{background:rgba(124,92,191,0.22);color:#d9c8f5;border-color:rgba(124,92,191,.35)}
[data-theme="dark"] .sc-peach{background:rgba(253,210,190,0.18);color:#fde8d8;border-color:rgba(180,80,48,.28)}
[data-theme="dark"] .sc-mint{background:rgba(200,245,232,0.15);color:#c8f5e8;border-color:rgba(42,128,96,.28)}
.involvement-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.inv-wide{grid-column:1/-1}
@media(max-width:700px){.involvement-grid{grid-template-columns:1fr}.inv-wide{grid-column:1}}
.inv-card-inner{display:flex;flex-direction:column;gap:0}
.inv-card-accent{position:absolute;top:12px;right:16px;opacity:0.28;transform:rotate(15deg);pointer-events:none;z-index:3}
.contact-card{text-align:center;padding:48px 36px;transition:border-color .4s}
@media(max-width:860px){.contact-card{padding:36px 20px}}
.contact-big{font-family:var(--font-serif);font-size:clamp(1.4rem,3vw,2rem);font-weight:700;margin:16px 0 10px;letter-spacing:-0.03em}
.contact-sub{font-size:0.9rem;margin-bottom:28px;max-width:400px;margin-left:auto;margin-right:auto;line-height:1.65;opacity:0.82}
.contact-btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:36px}
.contact-form{text-align:left;max-width:460px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.contact-form-group{display:flex;flex-direction:column;gap:6px}
.contact-form-label{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--purple2)}
.contact-form-input,.contact-form-textarea{background:linear-gradient(175deg,rgba(255,255,255,0.22) 0%,rgba(255,255,255,0.08) 100%);border:1px solid var(--glass-border);border-radius:16px;padding:12px 16px;font-family:var(--font-sans);font-size:0.92rem;color:var(--fg);width:100%;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.45),0 2px 8px rgba(0,0,0,0.06);transition:border-color .22s,box-shadow .22s;outline:none}
[data-theme="dark"] .contact-form-input,[data-theme="dark"] .contact-form-textarea{background:linear-gradient(175deg,rgba(255,255,255,0.08) 0%,rgba(255,255,255,0.02) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,0.10),0 2px 8px rgba(0,0,0,0.30)}
.contact-form-input:focus,.contact-form-textarea:focus{border-color:var(--glass-border-hi);box-shadow:inset 0 1.5px 0 rgba(255,255,255,0.55),0 0 0 3px rgba(124,92,191,0.18)}
.contact-form-textarea{min-height:120px;resize:vertical}
.contact-form-submit{align-self:center}
.contact-form-status{font-family:var(--font-mono);font-size:0.78rem;text-align:center;padding:10px 16px;border-radius:12px;display:none;backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.35)}
.contact-form-status.ok{display:block;background:rgba(200,245,232,0.25);color:#0a4a2a;border:1px solid rgba(42,128,96,.3)}
.contact-form-status.err{display:block;background:rgba(249,200,217,0.25);color:#7a1030;border:1px solid rgba(232,130,154,.3)}
[data-theme="dark"] .contact-form-status.ok{color:#c8f5e8}
[data-theme="dark"] .contact-form-status.err{color:#f9c8d9}
.fade-up{opacity:0;transform:translateY(28px);transition:opacity .78s cubic-bezier(0.16,1,0.3,1),transform .78s cubic-bezier(0.16,1,0.3,1)}
.fade-up.vis{opacity:1;transform:none}
.floating-doodle{position:absolute;pointer-events:none;opacity:0.18;animation:flt 8s ease-in-out infinite alternate}
@keyframes flt{0%{transform:translateY(0) rotate(-4deg)}100%{transform:translateY(-12px) rotate(5deg)}}
::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--accent-dim);border-radius:99px}
.footer-doodles{display:flex;align-items:center;justify-content:center;gap:20px;opacity:0.22;margin-top:40px;color:var(--purple2)}
.footer-copy{text-align:center;font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.08em;opacity:0.5;margin-top:12px}
