.home{--ink:#0a0616;--night:#120a28;--indigo:#1e1b73;--violet:#7c3aed;--purple:#a855f7;--magenta:#d946ef;--pink:#ec4899;--orange:#fb923c;--text:#f4efff;--text-muted:#b9aedb;--text-faint:#8a7fb0;--line:#c4aaff24;--glass:#1a10368c;--brand-gradient:linear-gradient(110deg, var(--orange), var(--pink) 16%, var(--magenta) 30%, var(--purple) 42%, #6366f1 50%, var(--purple) 58%, var(--magenta) 70%, var(--pink) 84%, var(--orange));--display-font:"Space Grotesk", "Inter", system-ui, sans-serif;--whimsy-font:"Fraunces", Georgia, serif;--script-font:"Great Vibes", "Fraunces", cursive;--body-font:"Inter", system-ui, sans-serif;background:radial-gradient(1200px 800px at 50% -10%, var(--night), var(--ink) 70%);min-height:100vh;color:var(--text);font-family:var(--body-font);line-height:1.6;position:relative;overflow-x:clip}html{scroll-behavior:smooth;background:#0a0616}.home ::selection{color:#fff;background:#d946ef73}.home a{color:inherit;text-decoration:none}.home h1,.home h2,.home h3{font-family:var(--display-font);margin:0}.aurora{z-index:0;pointer-events:none;background:linear-gradient(#07041a 0%,#0f0a2e 22%,#1e1b5c 42%,#3b1f6e 58%,#6b2a7a 70%,#a8407e 80%,#e0706a 89%,#f7a860 95%,#fdd9a0 100%);position:fixed;inset:0;overflow:hidden}.aurora-sun{filter:blur(30px);background:radial-gradient(closest-side,#fff4d6f2,#fdc882bf 22%,#f4727873 45%,#a8407e33 68%,#0000);border-radius:50%;width:170vmax;height:100vmax;animation:12s ease-in-out infinite alternate sun-breathe;position:absolute;bottom:-55vmax;left:50%;transform:translate(-50%)}.aurora-haze{filter:blur(18px);background:radial-gradient(60% 18% at 22% 62%,#fdba8c59,#0000 70%),radial-gradient(55% 14% at 74% 48%,#ec489947,#0000 70%),radial-gradient(80% 22% at 50% 88%,#ffecc866,#0000 70%);height:42vh;animation:40s ease-in-out infinite alternate haze-drift;position:absolute;bottom:0;left:-10vw;right:-10vw}.aurora-veil{background:linear-gradient(#0000 40%,#0a061659 100%);position:absolute;inset:0}@keyframes sun-breathe{0%{opacity:.75;transform:translate(-50%)translateY(3vh)scale(.94)}to{opacity:1;transform:translate(-50%)translateY(-2vh)scale(1.06)}}@keyframes haze-drift{to{transform:translate(6vw)}}.starlight{z-index:1;pointer-events:none;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000 45%,#0000 85%);mask-image:linear-gradient(#000 45%,#0000 85%)}.star{clip-path:polygon(50% 0%,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0% 50%,39% 39%);filter:drop-shadow(0 0 6px #fb923ce6);opacity:0;background:#fff4d6;animation:6s ease-in-out infinite twinkle;position:absolute}.star:nth-child(3n){background:#f5d0fe;animation-duration:7.5s}.star:nth-child(4n){animation-duration:9s}@keyframes twinkle{0%,to{opacity:0;transform:scale(.4)rotate(0)}50%{opacity:.85;transform:scale(1)rotate(45deg)}}.home-nav{z-index:20;box-sizing:border-box;border:1px solid #0000;border-radius:999px;align-items:center;gap:28px;width:max-content;max-width:calc(100% - 32px);padding:8px 10px 8px 8px;transition:background .4s,border-color .4s,box-shadow .4s;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.home-nav.is-scrolled{border-color:var(--line);-webkit-backdrop-filter:blur(16px)saturate(140%);background:#0e0820b8;box-shadow:0 10px 40px #08021880}.home-nav-brand{font-family:var(--display-font);align-items:center;gap:10px;font-weight:700;display:flex}.home-nav-links{gap:4px;display:flex}.home-nav-links a{color:var(--text-muted);border-radius:999px;padding:6px 14px;font-size:14px;transition:color .2s,background .2s}.home-nav-links a:hover{color:var(--text);background:#a855f729}.home-main{z-index:1;max-width:1120px;margin:0 auto;padding:0 24px;position:relative}.section{padding:72px 0;scroll-margin-top:72px}.section-heading{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:32px;display:flex}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin-bottom:8px;font-size:13px;font-weight:600}.section-title{letter-spacing:-.02em;font-size:clamp(30px,4vw,44px);line-height:1.1}.text-link{white-space:nowrap;align-items:center;gap:8px;font-size:15px;font-weight:600;transition:color .2s,gap .2s;display:inline-flex;color:var(--text-muted)!important}.text-link:hover{gap:12px;color:var(--text)!important}.gradient-text{background:var(--brand-gradient);color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:8s linear infinite shimmer}@keyframes shimmer{to{background-position:200%}}.hero{text-align:center;box-sizing:border-box;--text-muted:#f1e8ff;--text-faint:#e4d6f7;--line:#ffece152;text-shadow:0 1px 14px #0a06168c;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:120px 0 80px;display:flex;position:relative}.hero>*{animation:.9s cubic-bezier(.2,.7,.2,1) backwards rise}.hero>:nth-child(2){animation-delay:80ms}.hero>:nth-child(3){animation-delay:.16s}.hero>:nth-child(4){animation-delay:.24s}.hero>:nth-child(5){animation-delay:.32s}.hero>:nth-child(6){animation-delay:.4s}.hero>:nth-child(7){animation-delay:.48s}.hero>:nth-child(8){animation-delay:.56s}.hero>:nth-child(9){animation-delay:.9s}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.hero-logo{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;margin-bottom:28px;padding:6px;transition:transform .35s cubic-bezier(.3,1.6,.5,1);display:grid;position:relative}.hero-logo:hover{transform:rotate(-6deg)scale(1.04)}.hero-logo:focus-visible{outline:2px dashed var(--orange);outline-offset:8px}.hero-logo-body{z-index:1;place-items:center;display:grid;position:relative}.hero-logo-body.is-poked{animation:.6s cubic-bezier(.3,1.6,.5,1) hop}@keyframes hop{30%{transform:translateY(-18px)rotate(-8deg)scale(1.05,.95)}60%{transform:translateY(0)rotate(4deg)scale(.96,1.04)}}.hero-logo .logo{aspect-ratio:1;object-fit:cover;border:4px solid var(--ink)}.hero-spark{clip-path:polygon(50% 0%,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0% 50%,39% 39%);width:14px;height:14px;filter:drop-shadow(0 0 6px var(--magenta));pointer-events:none;background:#fff4d6;margin:-7px 0 0 -7px;animation:.8s ease-out forwards spark;position:absolute;top:50%;left:50%}.hero-spark:nth-child(odd){background:var(--orange)}@keyframes spark{0%{opacity:1;transform:rotate(var(--angle)) translateY(0) scale(.4)}to{opacity:0;transform:rotate(var(--angle)) translateY(-110px) scale(1.1) rotate(180deg)}}.hero-logo-ring{background:conic-gradient(from 0deg, var(--orange), var(--pink), var(--magenta), var(--purple), var(--indigo), var(--orange));border-radius:50%;animation:6s linear infinite spin;position:absolute;inset:0}.hero-logo-ring:after{content:"";background:inherit;filter:blur(28px);opacity:.55;border-radius:50%;position:absolute;inset:-14px}@keyframes spin{to{transform:rotate(360deg)}}.hero-greeting{color:var(--text-muted);margin-bottom:8px;font-size:16px}.hero-name{letter-spacing:-.04em;text-shadow:none;filter:drop-shadow(0 2px 16px #0a061680);padding-bottom:.08em;font-size:clamp(44px,8vw,92px);font-weight:700;line-height:1}.hero-name .gradient-text{margin-right:-.08em;padding-right:.08em}.hero-epithet{font-family:var(--script-font);color:#fde7c7;text-shadow:0 0 18px #fde7c759;margin-top:10px;font-size:clamp(28px,4.6vw,36px);font-weight:400;line-height:1.2}.hero-epithet span{font-family:var(--display-font);vertical-align:middle;color:var(--orange);font-size:.4em;animation:3.2s ease-in-out infinite glint;display:inline-block}.hero-epithet span:last-child{animation-delay:1.6s}@keyframes glint{0%,to{opacity:.6;transform:scale(.8)rotate(0)}50%{opacity:1;text-shadow:0 0 12px var(--orange);transform:scale(1.15)rotate(90deg)}}.hero-roles{font-family:var(--display-font);letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);height:1.6em;margin-top:14px;font-size:clamp(13px,1.6vw,15px);font-weight:600}.role-rotator{vertical-align:bottom;display:inline-block;position:relative;overflow:hidden}.role-rotator-word{animation:.6s cubic-bezier(.2,.7,.2,1) both role-in;display:inline-block}@keyframes role-in{0%{opacity:0;filter:blur(6px);transform:translateY(70%)}to{opacity:1;filter:none;transform:none}}.hero-description{max-width:640px;color:var(--text-muted);margin:24px auto 0;font-size:17px}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px;display:flex}.button{border-radius:999px;align-items:center;gap:10px;padding:13px 24px;font-size:15px;font-weight:600;transition:transform .25s,box-shadow .25s,background-position .6s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{background:linear-gradient(110deg, var(--orange), var(--magenta), var(--violet), var(--magenta), var(--orange));background-size:300% 100%;box-shadow:0 10px 30px -8px #d946efb3;color:#fff!important}.button-primary:hover{background-position:100% 0;box-shadow:0 14px 40px -8px #d946efe6}.button-ghost{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);background:#0a061647}.button-ghost:hover{border-color:#d946ef80}.hero-socials{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:32px;display:flex}.hero-socials a{width:44px;height:44px;color:var(--text-muted);border:1px solid var(--line);background:#0a061647;border-radius:50%;place-items:center;font-size:18px;transition:color .25s,transform .25s,border-color .25s,box-shadow .25s;display:grid}.hero-socials a:hover{color:#fff;border-color:var(--magenta);transform:translateY(-3px);box-shadow:0 8px 24px -6px #d946ef99}.hero-scroll{font-size:18px;position:absolute;bottom:28px;color:var(--text-faint)!important}.hero-scroll svg{animation:2s ease-in-out infinite bob}@keyframes bob{50%{transform:translateY(8px)}}.glass{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(130%);isolation:isolate;border-radius:24px;display:block;position:relative;overflow:hidden}.glow:before{content:"";z-index:-1;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), #d946ef29, transparent 45%);opacity:0;transition:opacity .4s;position:absolute;inset:0}.glow:after{content:"";border-radius:inherit;background:radial-gradient(300px circle at var(--mx,50%) var(--my,0%), var(--magenta), var(--orange) 30%, transparent 60%);-webkit-mask-composite:xor;opacity:0;pointer-events:none;padding:1px;transition:opacity .4s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.glow:hover:before,.glow:hover:after{opacity:1}.chip{color:var(--text);background:#a855f724;border:1px solid #a855f747;border-radius:999px;padding:5px 12px;font-size:13px;transition:transform .3s cubic-bezier(.3,1.6,.5,1),border-color .3s;display:inline-block}.chip:hover{border-color:#fb923c99;transform:rotate(-3deg)translateY(-2px)}.chip:nth-child(2n):hover{transform:rotate(3deg)translateY(-2px)}.skeleton{background:linear-gradient(100deg,#7c3aed14 30%,#d946ef2e 50%,#7c3aed14 70%) 0 0/300% 100%;animation:1.6s ease-in-out infinite skeleton}@keyframes skeleton{0%{background-position:100% 0}to{background-position:-100% 0}}.reveal{opacity:0;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:none}.about-grid,.journey-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.about-card,.journey-card{padding:32px}.about-card h3,.journey-card h3{margin-bottom:20px;font-size:20px}.chip-cloud{flex-wrap:wrap;gap:8px;display:flex}.about-note{color:var(--text-faint);margin:24px 0 0;font-size:14px}.skills{gap:14px;margin:0;display:grid}.skills-row{grid-template-columns:96px 1fr;align-items:baseline;gap:12px;display:grid}.skills dt{letter-spacing:.1em;text-transform:uppercase;color:var(--magenta);font-size:12px;font-weight:600}.skills dd{color:var(--text-muted);margin:0;font-size:15px}.timeline{margin:0;padding:0 0 0 24px;list-style:none;position:relative}.timeline:before{content:"";background:linear-gradient(var(--orange), var(--magenta), var(--violet), transparent);border-radius:2px;width:2px;position:absolute;top:6px;bottom:6px;left:5px}.timeline-item{padding-bottom:28px;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-dot{box-sizing:border-box;background:var(--ink);border:2px solid var(--magenta);border-radius:2px;width:16px;height:16px;transition:transform .4s cubic-bezier(.3,1.6,.5,1),background .3s;position:absolute;top:6px;left:-26px;transform:rotate(45deg)scale(.85);box-shadow:0 0 12px #d946efcc}.timeline-item:hover .timeline-dot{background:var(--orange);transform:rotate(225deg)scale(1.05)}.timeline-period{color:var(--orange);font-size:13px;font-weight:600}.timeline-role{font-family:var(--display-font);margin-top:2px;font-size:17px;font-weight:600}.timeline-org{color:var(--text-faint);font-size:14px}.timeline-points{color:var(--text-muted);margin:10px 0 0;padding-left:18px;font-size:14px}.timeline-points li::marker{color:var(--purple)}.projects-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.projects-grid>.reveal{display:flex}.project-card{flex:1;padding:28px;transition:transform .35s cubic-bezier(.2,.7,.2,1)}.project-card:hover{transform:translateY(-6px)}.project-card-icon{color:#fff;background:linear-gradient(135deg, var(--orange), var(--magenta) 50%, var(--violet));border-radius:14px;place-items:center;width:48px;height:48px;margin-bottom:20px;font-size:20px;transition:transform .4s;display:grid;box-shadow:0 10px 24px -8px #d946efb3}.project-card:hover .project-card-icon{transform:rotate(-8deg)scale(1.08)}.project-card h3{margin-bottom:8px;font-size:19px}.project-card p{color:var(--text-muted);margin:0 0 20px;font-size:15px}.project-card-link{color:var(--orange);align-items:center;gap:8px;font-size:14px;font-weight:600;transition:gap .25s;display:inline-flex}.project-card:hover .project-card-link{gap:12px}.home-footer{z-index:1;box-sizing:border-box;-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);width:calc(100% - 32px);max-width:1120px;color:var(--text-muted);background:#0a061699;border-radius:20px;justify-content:space-between;align-items:center;margin:40px auto 24px;padding:22px 28px;font-size:14px;display:flex;position:relative}.home-footer .gradient-text{font-family:var(--display-font);font-size:20px;font-weight:700}.home-footer-qed{font-family:var(--whimsy-font)}.home-footer-qed span{font-style:normal}@media (max-width:900px){.projects-grid{grid-template-columns:repeat(2,1fr)}.about-grid,.journey-grid{grid-template-columns:1fr}}@media (max-width:640px){.home-main{padding:0 16px}.home-nav-brand span{display:none}.home-nav{gap:8px}.home-nav-links a{padding:6px 9px;font-size:13px}.projects-grid{grid-template-columns:1fr}.section{padding:56px 0}.section-heading{flex-direction:column;align-items:flex-start}.about-card,.journey-card{padding:24px}.skills-row{grid-template-columns:1fr;gap:2px}.home-footer{flex-direction:column;gap:8px}}@media (max-width:420px){.home-nav-links a:nth-child(2){display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.home *,.home :before,.home :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}.star{opacity:.5}.hero-spark{display:none}}.vibe-notice{z-index:50;max-width:340px;padding:20px 22px;animation:.5s cubic-bezier(.2,.9,.3,1.2) both vibe-notice-in;position:fixed;bottom:24px;right:24px}.vibe-notice-title{font-family:var(--display-font);margin-bottom:6px;font-weight:600}.vibe-notice p{color:var(--text-muted);margin:0 0 14px;font-size:.92rem;line-height:1.5}.vibe-notice-close{cursor:pointer;color:inherit;padding:8px 16px;font-family:inherit;font-size:.85rem}@keyframes vibe-notice-in{0%{opacity:0;transform:translateY(24px)scale(.96)}}@media (max-width:520px){.vibe-notice{max-width:none;bottom:16px;left:16px;right:16px}}@media (prefers-reduced-motion:reduce){.vibe-notice{animation:none}}
