:root{--scroll-y: 0;--mouse-x: 0;--mouse-y: 0;--bg-night: #1b1040;--bg-neon: #2f1f6b;--bg-pastel: #ffe0f4;--bg-sky: #b8f0ff;--ink: #221440;--ink-soft: #4e3d7c;--card: rgba(255, 244, 252, .82);--card-strong: rgba(255, 252, 255, .9);--edge: rgba(137, 110, 204, .35);--accent: #ff63bc;--accent-deep: #8c3a9d;--mint: #8cf8e9;--mint-deep: #247e84;--sun: #ffd37a;--shadow: 0 14px 30px rgba(28, 11, 63, .26);--radius-xl: 24px;--radius-md: 14px}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{overflow-x:hidden;color:var(--ink);font-family:Trebuchet MS,Segoe UI,Verdana,sans-serif;background:linear-gradient(180deg,#140b2f,#29165b 34%,#fbbee3 71%,#b8f0ff)}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.04) 0px,rgba(255,255,255,.04) 1px,transparent 2px,transparent 5px);opacity:.5}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 16% 22%,rgba(255,174,221,.25),transparent 36%),radial-gradient(circle at 83% 18%,rgba(157,255,241,.2),transparent 40%),radial-gradient(circle at 72% 68%,rgba(255,255,173,.24),transparent 39%)}a{color:#3f257b;text-decoration:none;transition:color .18s ease}a:hover{color:var(--accent-deep)}.ambient-scene{position:fixed;inset:0;pointer-events:none;z-index:-2;overflow:hidden}.ambient-sun{position:absolute;width:min(45vw,430px);aspect-ratio:1;border-radius:50%;left:50%;top:8%;translate:-50% 0;background:radial-gradient(circle at 40% 38%,#ffffebf2,#ffce79fa 35%,#ff6cbfe0 78%,#ff6cbf00);filter:blur(.3px);transform:translate3d(calc(var(--mouse-x) * -28px),calc(var(--scroll-y) * -.04px),0)}.ambient-grid{position:absolute;inset:36% -6% -25%;background:linear-gradient(to right,rgba(151,255,240,.24) 1px,transparent 1px) 0 0 / 72px 100%,linear-gradient(to bottom,rgba(151,255,240,.24) 1px,transparent 1px) 0 0 / 100% 56px;transform-origin:top;transform:perspective(620px) rotateX(66deg) translateY(calc(var(--scroll-y) * .05px));opacity:.55}.ambient-cloud{position:absolute;border-radius:999px;filter:blur(20px)}.ambient-cloud-a{width:420px;height:130px;top:17%;left:-10%;background:#ffc4e773;transform:translate3d(calc(var(--scroll-y) * .09px),calc(var(--mouse-y) * 20px),0)}.ambient-cloud-b{width:360px;height:120px;top:24%;right:-9%;background:#a6fff266;transform:translate3d(calc(var(--scroll-y) * -.11px),calc(var(--mouse-x) * -20px),0)}.ambient-stars{position:absolute;inset:0;opacity:.6;background-image:radial-gradient(circle,rgba(255,255,255,.65) 1.1px,transparent 1.5px),radial-gradient(circle,rgba(255,255,255,.6) .8px,transparent 1.2px),radial-gradient(circle,rgba(255,255,255,.6) .8px,transparent 1.2px);background-size:230px 230px,180px 180px,260px 260px;background-position:20px 20px,110px 80px,170px 130px;transform:translateY(calc(var(--scroll-y) * -.06px))}.site-shell{position:relative;z-index:2;width:min(1150px,100%);margin:0 auto;padding:1rem}.topbar{position:sticky;top:.75rem;z-index:12;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.95rem 1.1rem;border-radius:999px;border:1px solid rgba(255,255,255,.45);background:linear-gradient(120deg,#fff2fade,#e1f5ffd9);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand-name{margin:0;color:#3b1b64;font-size:1.08rem;font-weight:800;letter-spacing:.01em}.brand-role{margin:.1rem 0 0;color:var(--ink-soft);font-size:.86rem}.nav-links{display:flex;gap:.5rem;flex-wrap:wrap}.nav-links a{display:inline-block;padding:.42rem .82rem;border-radius:999px;border:1px solid rgba(130,96,203,.27);background:linear-gradient(120deg,#ffbde791,#bcf5ff94);color:#3d2a68;font-size:.82rem;font-weight:700;transition:transform .18s ease,box-shadow .18s ease}.nav-links a:hover{transform:translateY(-2px);box-shadow:0 8px 16px #5e2fa133}.nav-links a.router-link-active{background:linear-gradient(120deg,#ff72c2e6,#8dffe9d9);color:#2d1d59}.page{padding:1.2rem 0 2.4rem}.panel{position:relative;border-radius:var(--radius-xl);border:1px solid var(--edge);background:var(--card);box-shadow:var(--shadow);padding:1.2rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.panel:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(130deg,#ffffffe6,#ff91d459,#99f7ff73);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.panel-hero{background:radial-gradient(circle at 8% 14%,rgba(255,196,225,.43),transparent 42%),radial-gradient(circle at 93% 10%,rgba(166,255,246,.33),transparent 43%),var(--card-strong)}.section{margin-top:1rem}.eyebrow{margin:0;color:#7b4d96;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700}h1,h2,h3,h4{margin:0;color:#301a60}h1{margin-top:.25rem;font-size:clamp(1.95rem,4.2vw,3rem);line-height:1.06;text-wrap:balance}h2{margin-bottom:.75rem;font-size:clamp(1.2rem,2.4vw,1.6rem)}h3{margin:1rem 0 .5rem;font-size:1.06rem}h4{margin-top:.9rem;margin-bottom:.45rem;color:#4f2c8a}.lead{max-width:74ch;margin-top:.7rem;color:#3e2a6d}.subline{margin-top:.32rem;color:#5c4398;font-weight:700;font-size:.95rem}.hero-actions{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.65rem}.button{display:inline-block;border-radius:999px;padding:.62rem 1rem;border:1px solid rgba(102,60,162,.3);background:linear-gradient(120deg,#ff6ac6e6,#91ffe1f2);color:#2d1557;font-weight:800;font-size:.87rem;transition:transform .2s ease,box-shadow .2s ease}.button:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 12px 18px #6b3aaf45}.button-ghost{background:#ffffffb3;color:#3f2a71}.live-site-wrap{position:relative;display:inline-grid;place-items:center;margin-top:.25rem}.live-site-button{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;min-height:58px;min-width:168px;padding:.92rem 1.6rem;border-radius:999px;border:1px solid rgba(106,72,176,.4);background:linear-gradient(120deg,#ff7acdf0,#94ffe4f5);color:#2c1457;font-size:1rem;font-weight:800;letter-spacing:.02em;box-shadow:0 10px 18px #53279547;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}.live-site-button:hover{text-decoration:none;transform:translateY(-2px) scale(1.02);box-shadow:0 14px 24px #53279559;filter:saturate(1.08)}.live-site-icons{position:absolute;inset:0;pointer-events:none}.live-site-icon{position:absolute;left:50%;top:50%;width:50px;height:50px;display:grid;place-items:center;border:none;background:transparent;color:var(--icon-ink, #4f3388);box-shadow:none;opacity:0;transform:translate(-50%,-50%) rotate(var(--icon-angle)) translate(12px) rotate(calc(-1 * var(--icon-angle))) scale(.45);transition:transform .26s ease,opacity .23s ease;transition-delay:var(--icon-delay)}.live-site-icon svg{width:34px;height:34px;stroke-width:1.75;filter:drop-shadow(0 2px 4px rgba(92,52,148,.16))}.live-site-icon-ghost{opacity:0;filter:blur(.6px)}.live-site-sparks{position:absolute;inset:0;pointer-events:none}.live-site-spark{position:absolute;left:50%;top:50%;width:8px;height:8px;border-radius:999px;background:#fff8ff94;opacity:0;transform:translate(-50%,-50%) rotate(var(--spark-angle)) translate(10px) scale(.4);transition:transform .26s ease,opacity .22s ease;transition-delay:var(--spark-delay)}.live-site-icon.icon-cup,.live-site-icon.icon-card{--icon-ink: #d67caf}.live-site-icon.icon-box,.live-site-icon.icon-book{--icon-ink: #a889dc}.live-site-icon.icon-coin{--icon-ink: #c9b46b}.live-site-icon.icon-trophy{--icon-ink: #8bc9a7}.live-site-icon.icon-bot{--icon-ink: #7fc8cf}.live-site-icon.icon-network,.live-site-icon.icon-gamepad{--icon-ink: #8eb7ea}.live-site-icon.icon-hammer{--icon-ink: #8cc0a4}.live-site-icon.icon-spark{--icon-ink: #ef95cc}.live-site-spark:nth-child(3n+1){background:#ffd5eba3}.live-site-spark:nth-child(3n+2){background:#cef7ff9e}.live-site-spark:nth-child(3n+3){background:#f3ecbc94}.live-site-wrap:hover .live-site-icon,.live-site-wrap:focus-within .live-site-icon{opacity:1;transform:translate(-50%,-50%) rotate(var(--icon-angle)) translate(var(--icon-radius)) rotate(calc(-1 * var(--icon-angle))) scale(1)}.live-site-wrap:hover .live-site-icon-ghost,.live-site-wrap:focus-within .live-site-icon-ghost{opacity:.4}.live-site-wrap:hover .live-site-spark,.live-site-wrap:focus-within .live-site-spark{opacity:1;transform:translate(-50%,-50%) rotate(var(--spark-angle)) translate(var(--spark-radius)) scale(1)}.quick-links{margin-top:.95rem;display:grid;gap:.33rem}.quick-links a{width:fit-content;max-width:100%;font-size:.87rem;font-weight:600;color:#473281;word-break:break-all}.bullets{margin:0;padding-left:1.15rem;display:grid;gap:.42rem}.bullets li{color:#37205f}.aspiration-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.7rem}.focus-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;margin-top:.8rem}.focus-card{padding:.95rem}.focus-card h3{margin-top:0;margin-bottom:.55rem}.focus-summary{margin:0 0 .6rem;color:#4d397c}.shape-diagonal{clip-path:polygon(0 0,100% 0,100% 88%,92% 100%,0 100%)}.shape-notch{clip-path:polygon(0 0,100% 0,100% 100%,14% 100%,0 86%)}.shape-bubble{border-radius:26px 18px}.hobby-cloud{display:flex;flex-wrap:wrap;gap:.45rem;padding-top:.25rem}.hobby-pill{border-radius:999px;padding:.38rem .75rem;background:linear-gradient(120deg,#ffd6eef2,#cafff6eb);border:1px solid rgba(120,90,190,.3);color:#472679;font-size:.8rem;font-weight:700;transition:transform .18s ease}.hobby-pill:hover{transform:translateY(-2px) rotate(-1deg)}.section-header{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem;flex-wrap:wrap}.project-preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:.75rem}.project-preview-card,.project-card,.mini-card,.skill-group{position:relative;overflow:visible;border-radius:var(--radius-md);border:1px solid rgba(126,93,197,.28);background:#fffaffd1;padding:.92rem;box-shadow:0 10px 20px #3416661f}.project-preview-card h3,.project-card h3,.skill-group h3{margin-top:0}.project-preview-card p,.project-card p,.mini-card p{margin:.58rem 0;color:#4e3a7b}.project-preview-link{display:block;color:inherit;text-decoration:none}.project-preview-link:hover{color:inherit;text-decoration:none}.project-preview-cta{margin:.45rem 0 .15rem;font-size:.83rem;font-weight:800;color:#533486;text-transform:uppercase;letter-spacing:.03em}.bloom-card{transition:transform .26s ease,box-shadow .26s ease,border-color .26s ease}.bloom-card:after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(circle at 25% 10%,rgba(255,153,218,.24),transparent 50%),radial-gradient(circle at 80% 90%,rgba(160,247,255,.26),transparent 52%);transition:opacity .26s ease}.bloom-card:hover{transform:translateY(-5px) rotate(-.25deg);border-color:#ff65c38c;box-shadow:0 16px 26px #451e8133}.bloom-card:hover:after{opacity:1}.mini-stack{list-style:none;margin:.66rem 0 0;padding:0;display:flex;gap:.35rem;flex-wrap:wrap}.mini-stack li{border-radius:999px;border:1px solid rgba(120,88,196,.28);background:#ffe0f3b8;color:#4a2b83;font-size:.72rem;font-weight:700;padding:.2rem .52rem}.project-hover-card{isolation:isolate;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.project-hover-card:before{content:"";position:absolute;inset:-20%;z-index:-1;pointer-events:none;opacity:0;transition:opacity .28s ease,transform .28s ease}.project-hover-card:hover{transform:translateY(-6px);border-color:#ff66c19e;box-shadow:0 18px 30px #451e813d}.hover-sticker:hover{transform:translateY(-6px) rotate(-.4deg) scale(1.012)}.hover-sticker:before{inset:auto 20px -10px;height:18px;border-radius:999px;background:radial-gradient(ellipse at center,#40167c54,#40167c00);filter:blur(7px);transform:scaleX(.86)}.hover-sticker:hover:before{opacity:1;transform:scaleX(1.06)}.skills-categories{display:grid;gap:.75rem}.skill-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}.skill-chips li{border-radius:999px;border:1px solid rgba(120,90,190,.3);background:linear-gradient(120deg,#ffceecdb,#c5fff3c7);color:#472679;padding:.34rem .67rem;font-size:.79rem;font-weight:700;transition:transform .18s ease}.skill-chips li.bloom-chip:hover{transform:translateY(-2px) scale(1.03)}.skill-chips.compact li{background:linear-gradient(120deg,#f5d8ffeb,#ddf8ffe0)}.section-note{margin-top:0;color:#513d7f}.skill-layout{display:grid}.cosmos-stage{position:relative;min-height:460px;border-radius:22px;border:1px solid rgba(118,90,194,.3);overflow:hidden;background:radial-gradient(circle at 20% 12%,rgba(255,208,237,.34),transparent 42%),radial-gradient(circle at 82% 86%,rgba(183,237,255,.3),transparent 50%),linear-gradient(132deg,#26144eed,#1f2b5ceb,#162247f2);box-shadow:inset 0 0 42px #ffc9e814,0 14px 28px #2711593d}.cosmos-stage:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,214,240,.06),transparent 22%,transparent 78%,rgba(160,225,255,.07)),repeating-linear-gradient(180deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px);z-index:3}.cosmos-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.cosmos-stars{z-index:0}.cosmos-solar{z-index:1;mix-blend-mode:screen;opacity:.92}.cosmos-network{z-index:2;mix-blend-mode:screen;opacity:.92}.cosmos-content{position:relative;z-index:4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;align-content:start;min-height:100%;padding:.9rem}.cosmos-panel{border-radius:16px;border:1px solid rgba(173,139,255,.35);background:linear-gradient(145deg,#ffecf7e6,#e2f5ffe0);box-shadow:0 10px 20px #1c0e4838;padding:.72rem .78rem;-webkit-backdrop-filter:blur(1.6px);backdrop-filter:blur(1.6px)}.cosmos-panel h3{margin:0 0 .45rem;font-size:.88rem;color:#3b2a72}.cosmos-panel.wide{grid-column:1 / -1}.cosmos-chip-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.42rem}.cosmos-chip{border-radius:999px;border:1px solid rgba(105,71,179,.32);color:#352266;font-size:.72rem;font-weight:800;letter-spacing:.01em;padding:.25rem .55rem;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.cosmos-chip.is-language{background:linear-gradient(120deg,#ffd6eff2,#ffeffae6)}.cosmos-chip.is-framework{background:linear-gradient(120deg,#ccfff3f2,#e2f8ffe6)}.cosmos-chip:hover{transform:translateY(-1px);border-color:#ff69c88c;box-shadow:0 6px 12px #451e8129}.constellation-list{list-style:none;margin:0;padding:0;display:grid;gap:.52rem}.constellation-list li{display:grid;gap:.16rem;padding:.5rem .58rem;border-radius:12px;border:1px solid rgba(109,77,182,.24);background:#fcf5ffc7}.constellation-list strong{font-size:.77rem;color:#3b2770}.constellation-list span{font-size:.68rem;line-height:1.35;color:#4f3a81}.projects-header{margin-bottom:.9rem}.section-block{margin-top:1rem}.section-block h2{margin:0 0 .65rem;color:#f8efff;text-shadow:0 3px 8px rgba(35,13,77,.35)}.projects-list{display:grid;gap:.78rem}.project-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem;flex-wrap:wrap}.project-links{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.project-links a:not(.live-site-button){font-size:.82rem;font-weight:700;padding:.26rem .54rem;border-radius:999px;border:1px solid rgba(120,90,193,.28);background:#fcecffd1}.reveal{opacity:0;transform:translateY(14px) scale(.985);animation:section-reveal .72s cubic-bezier(.2,.95,.2,1) forwards;animation-delay:var(--reveal-delay, 0s)}@keyframes section-reveal{to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:820px){.site-shell{padding:.72rem}.topbar{border-radius:24px;position:static}.panel{padding:1rem}.section-block h2{color:#2f1b63;text-shadow:none}.shape-diagonal,.shape-notch{clip-path:none}.cosmos-stage{min-height:640px}.cosmos-content{grid-template-columns:1fr}.cosmos-panel.wide{grid-column:auto}}@media(hover:none){.cosmos-chip:hover{transform:none;box-shadow:none}}@media(prefers-reduced-motion:reduce){.ambient-sun,.ambient-grid,.ambient-cloud-a,.ambient-cloud-b,.ambient-stars,.reveal,.bloom-card,.project-hover-card,.project-hover-card:before,.button,.nav-links a,.skill-chips li,.cosmos-chip{animation:none!important;transition:none!important;transform:none!important}.reveal{opacity:1}.cosmos-solar{opacity:.8}.cosmos-network{opacity:.82}}
