.scene-canvas{position:fixed;z-index:0;top:0;left:0;right:0;height:100vh;height:100lvh;overflow:hidden;isolation:isolate;background:#6d5d9f;pointer-events:none}.scene-canvas:before{content:"";position:absolute;z-index:10;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(200deg,#16244f,#1c3170 40%,#2a3d78,#3a3564);mix-blend-mode:color;opacity:0;transition:opacity 1.1s ease}.scene-canvas.is-night:before{opacity:.92}.scene-canvas:after{content:"";position:absolute;z-index:11;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,#04071a9e,#080a2052 40%,#0e0c1e38);mix-blend-mode:multiply;opacity:0;transition:opacity 1.1s ease}.scene-canvas.is-night:after{opacity:1}.scene-canvas.is-night .scene-sky,.scene-canvas.is-night .scene-cloud-interactive{filter:brightness(.75);transition:filter 1.1s ease}.scene-sky,.scene-cloud-interactive{transition:filter 1.1s ease}.scene-night-moon{position:absolute;z-index:12;top:10%;right:16%;width:clamp(4rem,7vw,7rem);height:clamp(4rem,7vw,7rem);opacity:0;transform:scale(.7);transition:opacity 1.1s ease,transform 1.1s ease;filter:drop-shadow(0 0 1.8rem rgba(230,236,255,.55)) drop-shadow(0 0 4rem rgba(180,200,255,.3))}.scene-canvas.is-night .scene-night-moon{opacity:1;transform:scale(1)}.scene-night-moon svg{display:block;width:100%;height:100%}.scene-shooting-star{position:absolute;z-index:12;top:8%;left:55%;width:3px;height:3px;border-radius:50%;background:#fff;opacity:0;pointer-events:none}.scene-canvas.is-night .scene-shooting-star{animation:scene-shooting-star 7s ease-in 1.4s infinite}@keyframes scene-shooting-star{0%,8%{opacity:0;transform:translate(0)}9%{opacity:1}22%{opacity:0;transform:translate(-16rem,9rem);box-shadow:-1px -1px 0 1px #fff0}to{opacity:0;transform:translate(-16rem,9rem)}}.scene-shooting-star:before{content:"";position:absolute;top:50%;right:0;width:5rem;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8));transform-origin:right center;transform:translateY(-50%) rotate(29deg)}@media (prefers-reduced-motion: reduce){.scene-canvas.is-night .scene-shooting-star{animation:none}}.scene-sky,.scene-sun{position:absolute;display:block;max-width:none;-webkit-user-select:none;user-select:none}.scene-sky{z-index:0;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.scene-sun{z-index:1;width:clamp(15rem,32vw,35rem);left:20%;bottom:clamp(10%,18vh,22%);transform:translate(-20%)}.scene-stars{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;overflow:hidden}.scene-star{position:absolute;border-radius:50%;background:#fff;opacity:0;animation-name:star-twinkle;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.scene-star--glow{box-shadow:0 0 4px 1px #ffffffa6}@keyframes star-twinkle{0%,to{opacity:0;transform:scale(.6)}50%{opacity:var(--star-peak, .8);transform:scale(1)}}@media (prefers-reduced-motion: reduce){.scene-star{animation:none;opacity:var(--star-peak, .8)}}.scene-cloud-interactive{position:absolute}.scene-cloud-interactive--1{z-index:3;left:40%;bottom:-10%;width:clamp(42rem,50vw,94rem);height:clamp(18rem,25vw,41rem);transform:translate(-50%)}.scene-cloud-interactive--2{z-index:2;right:17%;bottom:-5%;width:clamp(20rem,50vw,34rem);height:clamp(9rem,20vw,15rem);animation:cloud-drift 22s ease-in-out infinite alternate;animation-delay:-6s}.scene-cloud-interactive--3{z-index:3;bottom:-10%;right:-15%;width:clamp(30rem,48vw,58rem);height:clamp(17rem,27vw,33rem);animation:cloud-drift 30s ease-in-out infinite alternate;animation-delay:-12s}.scene-cloud-interactive--4{z-index:4;bottom:5%;right:-30%;width:clamp(56rem,92vw,124rem);height:clamp(12rem,25vw,22rem);opacity:.8;animation:cloud-drift 42s ease-in-out infinite alternate;animation-delay:-20s}@keyframes cloud-drift{0%{transform:translate(-1.5%)}50%{transform:translate(1.5%)}to{transform:translate(-1.5%)}}@media (prefers-reduced-motion: reduce){.scene-cloud-interactive--2,.scene-cloud-interactive--3,.scene-cloud-interactive--4{animation:none}}.scene-cloud-interactive--5{z-index:1;left:-28%;bottom:-5%;width:clamp(46rem,78vw,98rem);height:clamp(20rem,30vw,50rem)}@media (max-width: 640px){.scene-sky{object-position:52% center}.scene-sun{width:19rem;bottom:25%}.scene-cloud-interactive--4{top:2%;width:46rem;height:10rem}.scene-cloud-interactive--3{top:16%;right:-18%;width:26rem;height:15rem}.scene-cloud-interactive--2{left:-6%;bottom:-2%;width:17rem}.scene-cloud-interactive--1{width:44rem;height:17rem;bottom:-2%}.scene-cloud-interactive--5{right:-10%;bottom:-4%;width:40rem;height:22rem}}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:.75rem;padding:clamp(1rem,2.5vw,2.5rem) clamp(1rem,2.5vw,2.5rem) 0;pointer-events:none}.site-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(180deg,#060612a6,#06061266 55%,#06061200);pointer-events:none}.site-nav{grid-column:2;justify-self:center;--nav-bg: rgba(20, 12, 38, .78);--nav-border: rgba(168, 120, 255, .35);position:relative;display:flex;align-items:center;gap:clamp(.15rem,.6vw,.4rem);padding:.4rem;border-radius:999px;background:var(--nav-bg);border:1px solid var(--nav-border);box-shadow:0 10px 30px #0f06208c,0 0 18px #8c5aff40,inset 0 1px #ffffff14;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);pointer-events:auto}.site-nav__home{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;padding:.5rem;border-radius:999px;color:#ffffffd1;background:none;border:none;box-shadow:none;text-decoration:none;transition:background .25s ease,color .25s ease}.site-nav__home:hover{color:#fff;background:#ffffff14}.site-nav__home--active{color:#fff;background:#ffffff2e;box-shadow:inset 0 1px #ffffff47,0 2px 14px #7843e966}.site-nav__link{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.15rem;border-radius:999px;color:#ffffffd1;font-size:.95rem;font-weight:500;line-height:1;text-decoration:none;white-space:nowrap;transition:background .25s ease,color .25s ease}.site-nav__link-icon{width:1.05rem;height:1.05rem;flex-shrink:0}.site-nav__link:hover{color:#fff;background:#ffffff14}.site-nav__link--active{color:#fff;font-weight:700;background:#ffffff2e;box-shadow:inset 0 1px #ffffff47,0 2px 14px #7843e966}.site-nav__link--active:hover{background:#ffffff38}.header-night-toggle{grid-column:3;justify-self:end;position:relative;display:block;width:4rem;height:2rem;padding:0;border-radius:999px;border:1px solid rgba(0,0,0,.1);background:#ffffffd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;pointer-events:auto;transition:background-color .3s ease,border-color .3s ease}.header-night-toggle.is-night{border-color:#ffffff2e;background:#09090bd9}.header-night-toggle:focus-visible{outline:2px solid #fff;outline-offset:2px}.header-night-toggle__track-icon{position:absolute;top:50%;width:.9rem;height:.9rem;transform:translateY(-50%);pointer-events:none;transition:opacity .3s ease}.header-night-toggle__track-icon--sun{left:.55rem;color:#d97706;opacity:.55}.header-night-toggle__track-icon--moon{right:.55rem;color:#c9d3f5;opacity:.2}.header-night-toggle.is-night .header-night-toggle__track-icon--sun{opacity:.2}.header-night-toggle.is-night .header-night-toggle__track-icon--moon{opacity:.55}.header-night-toggle__thumb{position:absolute;top:.25rem;left:.25rem;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000059;transition:transform .3s ease,background-color .3s ease}.header-night-toggle.is-night .header-night-toggle__thumb{background:#27272a;transform:translate(2rem)}.header-night-toggle__icon{width:.9rem;height:.9rem;color:#78716c;transition:color .3s ease}.header-night-toggle.is-night .header-night-toggle__icon{color:#f4f4f5}@media (prefers-reduced-motion: reduce){.header-night-toggle,.header-night-toggle__thumb,.header-night-toggle__track-icon,.header-night-toggle__icon{transition:none}}@media (max-width: 640px){.site-nav{gap:.25rem;padding:.25rem}.site-nav__link{width:1.9rem;height:1.9rem;padding:0;justify-content:center}.site-nav__link-icon{width:1rem;height:1rem}.site-nav__link-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-nav__home{width:1.9rem;height:1.9rem;padding:.4rem}.header-night-toggle{width:2.75rem;height:1.5rem}.header-night-toggle__track-icon{width:.7rem;height:.7rem}.header-night-toggle__track-icon--sun{left:.35rem}.header-night-toggle__track-icon--moon{right:.35rem}.header-night-toggle__thumb{top:.2rem;left:.2rem;width:1.1rem;height:1.1rem}.header-night-toggle.is-night .header-night-toggle__thumb{transform:translate(1.25rem)}.header-night-toggle__icon{width:.7rem;height:.7rem}}.social-sidebar{position:fixed;z-index:20;top:50%;left:clamp(1rem,3vw,2rem);transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:clamp(.5rem,1.2vw,.75rem);padding:.55rem;border-radius:999px;background:#140c26c7;border:1px solid rgba(168,120,255,.35);box-shadow:0 10px 30px #0f06208c,0 0 18px #8c5aff40,inset 0 1px #ffffff14;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);pointer-events:auto;transition:left .5s cubic-bezier(.16,1,.3,1),gap .45s cubic-bezier(.16,1,.3,1),padding .45s cubic-bezier(.16,1,.3,1),border-radius .45s ease,box-shadow .4s ease}.social-sidebar.is-collapsed{left:0;gap:0;padding:.3rem .2rem;border-radius:0 999px 999px 0;border-left:none}.social-sidebar__toggle{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;padding:0;border-radius:50%;border:none;background:#ffffff0f;color:#ffffffbf;cursor:pointer;transition:background .2s ease,color .2s ease,transform .15s ease,width .45s cubic-bezier(.16,1,.3,1),height .45s cubic-bezier(.16,1,.3,1)}.social-sidebar.is-collapsed .social-sidebar__toggle{width:1.2rem;height:2.75rem;border-radius:999px}.social-sidebar__toggle:hover{color:#fff;background:#ffffff24}.social-sidebar__toggle:active{transform:scale(.9)}.social-sidebar__toggle-icon{width:15px;height:15px;transition:transform .45s cubic-bezier(.16,1,.3,1)}.social-sidebar.is-collapsed .social-sidebar__toggle-icon{transform:rotate(180deg)}.social-sidebar__nav{display:flex;flex-direction:column;align-items:center;gap:clamp(.6rem,1.4vw,.9rem);overflow:hidden;max-height:12rem;opacity:1;transform:scaleY(1);transform-origin:top center;transition:max-height .45s cubic-bezier(.16,1,.3,1),opacity .3s ease .05s,transform .45s cubic-bezier(.16,1,.3,1),width .45s cubic-bezier(.16,1,.3,1) .1s}.social-sidebar.is-collapsed .social-sidebar__nav{max-height:0;width:0;opacity:0;transform:scaleY(.85);pointer-events:none;transition:max-height .4s cubic-bezier(.16,1,.3,1),opacity .2s ease,transform .4s cubic-bezier(.16,1,.3,1),width .4s cubic-bezier(.16,1,.3,1)}.social-sidebar__link{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:50%;color:#ffffffd1;background:#ffffff0a;border:1px solid rgba(168,120,255,.3);box-shadow:inset 0 1px #ffffff14;transition:background .25s ease,color .25s ease,box-shadow .25s ease,transform .25s ease}.social-sidebar__link:hover{color:#fff;background:#ffffff1a;box-shadow:inset 0 1px #fff3,0 0 16px #8c5aff8c;transform:translateY(-2px)}@media (prefers-reduced-motion: reduce){.social-sidebar,.social-sidebar__toggle-icon,.social-sidebar__nav{transition:none}}@media (max-width: 640px){.social-sidebar{left:.75rem}.social-sidebar__toggle{width:1.5rem;height:1.5rem}.social-sidebar.is-collapsed .social-sidebar__toggle{width:1.05rem;height:2.35rem}.social-sidebar__toggle-icon{width:13px;height:13px}.social-sidebar__nav{gap:.45rem}.social-sidebar__link{width:2.1rem;height:2.1rem}.social-sidebar__link svg{width:16px;height:16px}}.app-main{position:relative;z-index:1}.home-hero{display:flex;align-items:center;justify-content:flex-start;gap:clamp(2rem,6vw,5rem);min-height:100vh;padding:clamp(6rem,12vh,8rem) clamp(1.5rem,6vw,5rem) clamp(3rem,6vh,5rem) clamp(1rem,3vw,2.5rem);max-width:90rem;margin:0 auto}.home-hero__photo{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:center}.home-hero__glow{position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;z-index:0;border-radius:50%;background:radial-gradient(closest-side,#9d7aff8c,#9d7aff38 55%,#9d7aff00 75%);filter:blur(30px)}.home-hero__portrait-wrap{position:relative;z-index:1;display:inline-block;line-height:0}.home-hero__portrait-shadow{display:block;line-height:0;filter:drop-shadow(0 20px 40px rgba(15,6,32,.45))}.home-hero__portrait{display:block;width:clamp(15rem,24vw,23rem);height:auto;-webkit-user-select:none;user-select:none;pointer-events:none;filter:saturate(.9) contrast(.96) brightness(1.03);mask-image:linear-gradient(to bottom,#000 0%,#000 85%,transparent 99%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 85%,transparent 99%)}.home-hero__portrait-sparkles{position:absolute;left:-40%;top:-12%;width:180%;height:116%;opacity:0;pointer-events:auto;mix-blend-mode:screen;transition:opacity .6s ease;mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 99%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 88%,transparent 99%)}.home-hero__portrait-wrap[data-particles=ready] .home-hero__portrait-sparkles{opacity:1}.home-hero__portrait-tint{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;mix-blend-mode:soft-light;mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;background:radial-gradient(130% 90% at 50% 8%,#ffd6b380,#ffd6b300 55%),linear-gradient(205deg,#b79bff66,#6d5d9f8c 55%,#6d5d9f00 88%)}.home-hero__content{position:relative;z-index:1;flex:1 1 32rem;max-width:34rem;color:#fff}.home-hero__greeting{margin:0 0 .25rem;font-size:clamp(1rem,1.6vw,1.15rem);font-weight:500;color:#ffffffb3}.home-hero__name{margin:0;font-size:clamp(2.75rem,6vw,4.75rem);line-height:1.05;font-weight:800;letter-spacing:-.01em}.home-hero__name-accent{display:inline-block;font-style:italic;font-family:Georgia,Times New Roman,serif;font-weight:500;background:linear-gradient(120deg,#ffe3d0,#e7c6ff 55%,#b79bff);-webkit-background-clip:text;background-clip:text;color:transparent}.home-hero__role{display:inline-block;margin:.85rem 0 0;font-size:clamp(1rem,1.8vw,1.3rem);font-weight:400;color:#ffffffd1;max-width:37ch;overflow:hidden;white-space:nowrap;vertical-align:top;border-right:2px solid rgba(255,255,255,.75);animation:home-role-typing 2.4s steps(37,end) .4s 1 both,home-role-caret .8s step-end infinite}@keyframes home-role-typing{0%{width:0}to{width:37ch}}@keyframes home-role-caret{0%,to{border-color:transparent}50%{border-color:#ffffffbf}}@media (prefers-reduced-motion: reduce){.home-hero__role{width:37ch;animation:none;border-right-color:transparent}}.home-hero__description{margin:1.1rem 0 0;max-width:32rem;font-size:clamp(.92rem,1.2vw,1.02rem);line-height:1.6;color:#ffffffb8}.home-hero__description.section-text-scrim:before{top:-1.25rem;right:-1.75rem;bottom:-1.25rem;left:-1.75rem;filter:blur(6px);background:radial-gradient(ellipse at center,#0a0614bd,#0a061475 55%,#0a061400 85%)}.home-hero__highlight{font-weight:700;color:#fff;text-shadow:0 0 22px rgba(199,163,255,.4)}.home-hero__actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}.home-hero__btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.6rem;border-radius:999px;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .2s ease,background .2s ease,box-shadow .2s ease}.home-hero__btn:hover{transform:translateY(-2px)}.home-hero__btn--solid{color:#241640;background:#f5f0ff;box-shadow:0 10px 24px #0f062059}.home-hero__btn--solid:hover{background:#fff}.home-hero__btn--glass{color:#fff;background:#ffffff1a;border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.home-hero__btn--glass:hover{background:#ffffff2e}@media (max-width: 900px){.home-hero{flex-direction:column;text-align:center;padding-top:clamp(3rem,20vh,1.5rem)}.home-hero__content{max-width:30rem}.home-hero__description{margin-left:auto;margin-right:auto}.home-hero__actions{justify-content:center}}@media (max-width: 480px){.home-hero__portrait{width:12rem}}@media (max-width: 640px){.home-hero{gap:1.1rem;padding-top:2.25rem;padding-bottom:2rem}.home-hero__content{margin-top:-1rem}.home-hero__greeting{margin:0 0 .15rem}.home-hero__role{margin:.4rem 0 0}.home-hero__description{margin-top:.6rem;font-size:.85rem}.home-hero__actions{gap:.55rem;margin-top:.6rem}.home-hero__btn{padding:.55rem 1.2rem;font-size:.85rem}.home-hero__description.section-text-scrim:before{background:radial-gradient(ellipse at center,#0a0614e0,#0a061499 55%,#0a061400 85%)}}.not-found-section{position:relative;display:flex;align-items:center;justify-content:center;min-height:70vh;padding:clamp(6rem,14vh,9rem) clamp(1.5rem,6vw,5rem);text-align:center}.not-found-content{position:relative;z-index:1;max-width:32rem;color:#fff}.not-found-eyebrow{margin:0 0 .5rem;font-size:.9rem;font-weight:700;letter-spacing:.1em;color:#c9b3ff}.not-found-heading{margin:0 0 .75rem;font-size:clamp(1.8rem,4vw,2.5rem);font-weight:800}.not-found-paragraph{margin:0 0 1.5rem;font-size:1rem;line-height:1.6;color:#ffffffbf}.not-found-link{display:inline-flex;align-items:center;padding:.6rem 1.25rem;border-radius:999px;font-size:.9rem;font-weight:600;color:#120a26;background:#c9b3ff;text-decoration:none}.not-found-link:hover{background:#dcf}.projects-section{position:relative;display:flex;justify-content:center;padding:clamp(1.25rem,2.5vh,2.25rem) clamp(1.5rem,6vw,5rem) clamp(5rem,12vh,8rem)}.projects-content{position:relative;z-index:1;max-width:64rem;width:100%;color:#fff}.projects-eyebrow{margin:0 0 .5rem;font-size:clamp(.85rem,1.2vw,.95rem);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#c9b3ff}.projects-heading{margin:0 0 .75rem;font-size:clamp(1.9rem,4vw,2.75rem);line-height:1.15;font-weight:800;letter-spacing:-.01em}.projects-paragraph{margin:0;max-width:34rem;font-size:clamp(.95rem,1.2vw,1.05rem);line-height:1.7;color:#ffffffbf}.projects-subheading{margin:0 0 1rem;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c}.projects-featured{margin-top:2.5rem}.projects-others{margin-top:3rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.25rem}.projects-featured-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:1.75rem;align-items:stretch}.project-card.project-card--featured{height:100%;overflow:visible;background:transparent;border:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.project-card.project-card--featured:hover{transform:none;border-color:transparent}.project-card--featured .project-card__media{display:none}.project-card--featured .project-card__body{height:100%;padding:10px 2px}.project-card--featured .project-card__description.section-text-scrim{z-index:1}.project-card--featured .project-card__description.section-text-scrim:before{top:-.6rem;right:-.7rem;bottom:-.6rem;left:-.7rem;border-radius:1rem;background:radial-gradient(ellipse at center,#120a2699,#120a2652 55%,#120a2600 82%);filter:blur(3px)}.project-card--featured .project-card__title{font-size:1.5rem}.project-card--featured .project-card__title-icon{width:2.6rem;height:2.6rem;padding:.35rem;border-radius:.65rem;background:#ffffffeb;box-shadow:0 2px 8px #00000040;box-sizing:border-box}.project-card--featured .project-card__summary{font-size:1rem}.project-card--featured .project-card__tech-tag{background:linear-gradient(#89ddff1f,#89ddff1f),#0a081ab8;border-color:#89ddff59}.project-showcase{position:relative;display:flex;flex-direction:column;aspect-ratio:1 / 1;overflow:hidden;border-radius:1.25rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);text-decoration:none;transition:transform .2s ease,border-color .2s ease}.project-showcase:hover{transform:translateY(-3px);border-color:#ffffff42}.project-showcase__chrome{display:flex;align-items:center;flex:0 0 auto;gap:.4rem;padding:.7rem .9rem;background:#0003;border-bottom:1px solid rgba(255,255,255,.1)}.project-showcase__chrome span:not(.project-showcase__url){width:.55rem;height:.55rem;border-radius:50%;background:#fff3}.project-showcase__chrome span:nth-child(1){background:#ff5f57}.project-showcase__chrome span:nth-child(2){background:#febc2e}.project-showcase__chrome span:nth-child(3){background:#28c840}.project-showcase__url{margin-left:.5rem;font-size:.72rem;color:#ffffff73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-showcase__frame{position:relative;flex:1 1 auto;overflow:hidden;background:#0c0916}.project-showcase__video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:left top;pointer-events:none}.project-showcase__badge{position:absolute;top:.9rem;right:.9rem;padding:.35rem .75rem;border-radius:999px;font-size:.72rem;font-weight:600;color:#fff;background:#0000008c;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.project-card{display:flex;flex-direction:column;overflow:hidden;border-radius:1.25rem;background:#090c1ecc;border:1px solid rgba(125,140,255,.28);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 30px 80px #0606208c;transition:transform .2s ease,border-color .2s ease}.project-card:hover{transform:translateY(-3px);border-color:#7d8cff73}.project-card__titlebar{display:flex;align-items:center;gap:.5rem;padding:.7rem .9rem;background:#0003;border-bottom:1px solid rgba(255,255,255,.1);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.project-card__lights{display:flex;gap:.4rem;flex-shrink:0}.project-card__lights span{width:.55rem;height:.55rem;border-radius:50%;background:#ff5f57}.project-card__lights span:nth-child(2){background:#febc2e}.project-card__lights span:nth-child(3){background:#28c840}.project-card__tab{display:flex;align-items:center;gap:.4rem;min-width:0;font-size:.72rem;color:#ffffff8c}.project-card__tab svg{flex-shrink:0;color:#7dd3fc}.project-card__tab span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card__statusbar{display:flex;align-items:center;gap:1rem;padding:.45rem .9rem;border-top:1px solid rgba(255,255,255,.1);background:#00000026;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;color:#ffffff73}.project-card__branch{display:flex;align-items:center;gap:.35rem;color:#ffffff8c}.project-card__filetype{margin-left:auto}.project-card__media{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16 / 10;background:linear-gradient(150deg,#b79bff47,#6d5d9f52 55%,#120a2666)}.project-card:not(.project-card--featured) .project-card__media[role=button]{cursor:zoom-in}.project-card:not(.project-card--featured) .project-card__media[role=button]:hover .project-card__image{transform:scale(1.03)}.project-card:not(.project-card--featured) .project-card__media[role=button]:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:-2px}.project-card__image{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card__media .project-card__image{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .6s ease,transform .3s ease}.project-card__media .project-card__image--active{opacity:1}.project-card__dots{position:absolute;bottom:.7rem;left:50%;transform:translate(-50%);z-index:1;display:flex;gap:.35rem}.project-card__dot{width:.35rem;height:.35rem;border-radius:50%;background:#fff6;transition:background .2s ease,transform .2s ease}.project-card__dot--active{background:#fff;transform:scale(1.3)}.project-card__placeholder{font-size:1.15rem;font-weight:700;color:#fffc}.project-card__body{display:flex;flex-direction:column;flex:1 1 auto;padding:1.25rem 1.4rem 1.5rem}.project-card__title{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1.1rem;font-weight:700;color:#fff}.project-card__title-icon{width:1.4rem;height:1.4rem;object-fit:contain;flex-shrink:0}.project-card__summary{margin:0;font-size:.9rem;line-height:1.6;color:#ffffffb3}.project-card__problem{margin:.6rem 0 0;font-size:.85rem;line-height:1.6;color:#ffffff8c}.project-card__tech{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 0;padding:0;list-style:none}.project-card__tech-tag{padding:.3rem .7rem;border-radius:999px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;font-weight:500;color:#89ddff;background:#89ddff14;border:1px solid rgba(137,221,255,.25)}.project-card__links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.1rem}.project-card:not(.project-card--featured) .project-card__links{margin-top:auto;padding-top:1.1rem}.project-card__link{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .85rem;border-radius:.55rem;border:1px solid rgba(255,255,255,.16);background:#ffffff0d;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;font-weight:500;color:#ffffffbf;text-decoration:none;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .15s ease}.project-card__link:hover{color:#fff;border-color:#ffffff52;background:#ffffff1a;text-decoration:none;transform:translateY(-1px)}.project-card--featured .project-card__link:not(.project-card__link--primary){background:#0a0616a6;border-color:#ffffff38}.project-card--featured .project-card__link:not(.project-card__link--primary):hover{background:#0a0616cc;border-color:#fff6}.project-card__link--primary{border-color:#4ade808c;background:#4ade8014;color:#4ade80}.project-card__link--primary:hover{border-color:#4ade80cc;background:#4ade8029;color:#86efac}.project-card__link--play{flex:1 0 100%;justify-content:center;cursor:pointer;border-color:#c9b3ff80;background:#c9b3ff1a;color:#c9b3ff}.project-card__link--play:hover{border-color:#c9b3ffd9;background:#c9b3ff2e;color:#dcf}.project-card__link-arrow{transition:transform .2s ease}.project-card__link--primary:hover .project-card__link-arrow{transform:translate(3px)}.featured-gallery{display:flex;flex-direction:column;gap:.5rem;height:640px;margin-top:1.75rem}.featured-gallery__item{position:relative;flex:1;cursor:pointer;overflow:hidden;border-radius:1.25rem;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;filter:brightness(.92);transition:flex .7s cubic-bezier(.25,1,.5,1),filter .7s cubic-bezier(.25,1,.5,1)}.featured-gallery__item:hover{filter:brightness(1)}.featured-gallery__item--active,.featured-gallery__item--active:hover{flex:4;filter:brightness(1);cursor:zoom-in}.featured-gallery__item:focus-visible{outline:2px solid rgba(183,155,255,.9);outline-offset:3px}.featured-gallery__media{position:absolute;top:0;left:0;right:0;width:100%;height:42%;object-fit:cover;object-position:center top;background-size:cover;background-position:center;transition:height .7s cubic-bezier(.25,1,.5,1)}.featured-gallery__item--active .featured-gallery__media{height:100%}.featured-gallery__video{object-fit:cover;background:#120a26}.featured-gallery__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.8),rgba(0,0,0,.2) 60%,transparent);transition:opacity .5s ease}.featured-gallery__item--active .featured-gallery__overlay{opacity:1}.featured-gallery__content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1.25rem}.featured-gallery__active-content{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;opacity:0;transform:translateY(2rem);transition:opacity .5s ease,transform .5s ease}.featured-gallery__item--active .featured-gallery__active-content{opacity:1;transform:translateY(0);transition-delay:.2s}.featured-gallery__tag{padding:.3rem .7rem;border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#fff;background:#ffffff1f;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.featured-gallery__title{margin:0;font-size:1.3rem;font-weight:800;text-transform:uppercase;line-height:1;color:#fff}.featured-gallery__cta{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#ffffffd9}.featured-gallery__inactive-label{position:absolute;bottom:1rem;left:50%;transform:translate(-50%) scale(1);opacity:1;transition:opacity .5s ease,transform .5s ease;transition-delay:.5s;color:#fff}.featured-gallery__item--active .featured-gallery__inactive-label{opacity:0;transform:translate(-50%) scale(.5);transition-delay:0ms}.featured-gallery__inactive-label-vertical{display:block;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;text-align:center}.featured-gallery__inactive-label-id{display:none}@media (min-width: 768px){.featured-gallery{flex-direction:row;gap:1rem;height:460px}.featured-gallery__content{padding:2rem}.featured-gallery__title{font-size:2.2rem}.featured-gallery__inactive-label-vertical{display:block;white-space:nowrap;writing-mode:vertical-rl;font-size:1.1rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.featured-gallery__inactive-label-id{display:none}}@media (max-width: 900px){.projects-section{text-align:center}.projects-paragraph{margin-left:auto;margin-right:auto}.projects-subheading{text-align:left}.project-card__tech,.project-card__links{justify-content:center}.projects-featured-grid{grid-template-columns:1fr}}@media (max-width: 480px){.projects-grid{grid-template-columns:1fr}}.project-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem;background:#080412d9;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:project-lightbox-fade-in .2s ease}@keyframes project-lightbox-fade-in{0%{opacity:0}to{opacity:1}}.project-lightbox__image{display:block;max-width:min(90vw,1100px);max-height:85vh;width:auto;height:auto;border-radius:1rem;object-fit:contain;box-shadow:0 25px 60px #0000008c}.project-lightbox__image--video{width:min(90vw,1100px);background:#120a26}.project-lightbox__close{position:fixed;top:1.5rem;right:1.75rem;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:#ffffff1a;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;transition:background .2s ease,border-color .2s ease}.project-lightbox__close:hover{background:#fff3;border-color:#ffffff80}.project-lightbox__nav{position:fixed;top:50%;transform:translateY(-50%);width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:#ffffff1a;color:#fff;font-size:2rem;line-height:1;cursor:pointer;transition:background .2s ease,border-color .2s ease}.project-lightbox__nav:hover{background:#fff3;border-color:#ffffff80}.project-lightbox__nav--prev{left:1.5rem}.project-lightbox__nav--next{right:1.5rem}@media (max-width: 640px){.project-lightbox__nav{width:2.5rem;height:2.5rem;font-size:1.6rem}.project-lightbox__nav--prev{left:.5rem}.project-lightbox__nav--next{right:.5rem}.project-card--featured .project-card__description.section-text-scrim:before{background:radial-gradient(ellipse at center,#120a26d1,#120a2680 55%,#120a2600 82%)}}.naruto-game__wrap{width:100%;margin-top:1.5rem}.naruto-game{display:flex;flex-direction:column;align-items:center;gap:1rem}.naruto-game__stage{position:relative;width:100%;max-width:42rem;aspect-ratio:4 / 3;border-radius:1rem;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#05070f}.naruto-game__canvas{display:block;width:100%;height:100%}.naruto-game__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1rem;border:none;cursor:pointer;color:#fff;background:#05070fb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.naruto-game__overlay--gameover{cursor:default}.naruto-game__overlay-title{font-size:1.3rem;font-weight:800}.naruto-game__overlay-hint{max-width:22rem;text-align:center;font-size:.9rem;color:#ffffffb3}.naruto-game__retry{padding:.6rem 1.4rem;border-radius:999px;font-size:.9rem;font-weight:700;color:#120a26;background:#c9b3ff;border:1px solid #c9b3ff;cursor:pointer}.naruto-game__retry:hover{background:#dcf}.naruto-game__dpad{display:grid;grid-template-columns:repeat(3,3rem);grid-template-rows:repeat(3,3rem);gap:.35rem;-webkit-user-select:none;user-select:none;touch-action:none}.naruto-game__dpad-btn{display:flex;align-items:center;justify-content:center;border-radius:.75rem;font-size:1.2rem;color:#fff;background:#ffffff14;border:1px solid rgba(255,255,255,.2);cursor:pointer}.naruto-game__dpad-btn:active{background:#c9b3ff59;border-color:#c9b3ff}.naruto-game__dpad-btn--up{grid-column:2;grid-row:1}.naruto-game__dpad-btn--left{grid-column:1;grid-row:2}.naruto-game__dpad-btn--down{grid-column:2;grid-row:2}.naruto-game__dpad-btn--right{grid-column:3;grid-row:2}.naruto-game-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem;background:#080412d9;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.naruto-game-modal__content{width:100%;max-width:42rem}.naruto-game-modal__close{position:fixed;top:1.5rem;right:1.75rem;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:#ffffff1a;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;transition:background .2s ease,border-color .2s ease}.naruto-game-modal__close:hover{background:#fff3;border-color:#ffffff80}.project-detail{position:relative;display:flex;justify-content:center;padding:clamp(6rem,14vh,9rem) clamp(1.5rem,6vw,5rem) clamp(4rem,8vh,6rem)}.project-detail__content{position:relative;z-index:1;max-width:52rem;width:100%;color:#fff}.project-detail__hero{display:flex;flex-direction:column;align-items:flex-start;gap:.85rem}.project-detail__hero.section-text-scrim:before{top:-1.5rem;right:-2rem;bottom:-1.5rem;left:-2rem;filter:blur(6px);background:radial-gradient(ellipse at center,#0a0614b8,#0a061470 55%,#0a061400 85%)}.project-detail__back{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.5rem;font-size:.85rem;font-weight:600;color:#fff9;text-decoration:none}.project-detail__back:hover{color:#fff}.project-detail__title{display:flex;align-items:center;gap:.65rem;margin:0;font-size:clamp(2rem,4.5vw,3rem);line-height:1.1;font-weight:800;letter-spacing:-.01em}.project-detail__title-icon{width:clamp(1.9rem,3vw,2.4rem);height:clamp(1.9rem,3vw,2.4rem);object-fit:contain;flex-shrink:0}.project-detail__meta{margin:0;font-size:.85rem;font-weight:600;letter-spacing:.03em;color:#c9b3ff}.project-detail__summary{margin:0;max-width:42rem;font-size:clamp(1rem,1.3vw,1.1rem);line-height:1.7;color:#ffffffc7}.project-detail__tech{display:flex;flex-wrap:wrap;gap:.5rem;margin:.25rem 0 0;padding:0;list-style:none}.project-detail__tech-tag{padding:.32rem .75rem;border-radius:999px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;font-weight:500;color:#89ddff;background:linear-gradient(#89ddff1f,#89ddff1f),#0a081ab8;border:1px solid rgba(137,221,255,.35)}.project-detail__links{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:.5rem}.project-detail__link{display:inline-flex;align-items:center;gap:.3rem;padding:.55rem 1rem;border-radius:.55rem;border:1px solid rgba(255,255,255,.22);background:#0a0616a6;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;font-weight:500;color:#ffffffbf;text-decoration:none;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .15s ease}.project-detail__link:hover{color:#fff;border-color:#fff6;background:#0a0616cc;transform:translateY(-1px)}.project-detail__section{margin-top:clamp(2.5rem,6vh,3.5rem);padding-top:clamp(2.5rem,6vh,3.5rem);border-top:1px solid rgba(255,255,255,.12)}.project-detail__section.section-text-scrim:before{top:-1.5rem;right:-2rem;bottom:-1.5rem;left:-2rem;filter:blur(6px);background:radial-gradient(ellipse at center,#0a0614b8,#0a061470 55%,#0a061400 85%)}.project-detail__section-heading{margin:0 0 1rem;font-size:clamp(1.3rem,2.4vw,1.6rem);font-weight:800;letter-spacing:-.01em;color:#fff}.project-detail__section-text{margin:0;max-width:42rem;font-size:1rem;line-height:1.75;color:#ffffffc7}.project-detail__section-text+.project-detail__section-text{margin-top:1rem}.project-detail__feature-list{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.project-detail__feature-item{position:relative;padding-left:1.5rem;font-size:.96rem;line-height:1.65;color:#ffffffd1}.project-detail__feature-item:before{content:"";position:absolute;left:0;top:.55rem;width:.45rem;height:.45rem;border-radius:50%;background:#c9b3ff}.project-detail__architecture-list{display:grid;gap:1.25rem;margin:1.5rem 0 0}.project-detail__architecture-item{padding:1.1rem 1.3rem;border-radius:1.1rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 28px -18px #c9b3ff99;transition:transform .4s cubic-bezier(.16,1,.3,1),background .4s ease,border-color .4s ease,box-shadow .4s ease}.project-detail__architecture-item:hover{background:#c9b3ff1f;border-color:#c9b3ff73;transform:translateY(-4px);box-shadow:0 18px 40px -16px #c9b3ff8c,0 0 0 1px #c9b3ff4d inset}.project-detail__architecture-title{margin:0 0 .4rem;font-size:.95rem;font-weight:700;color:#fff}.project-detail__architecture-description{margin:0;font-size:.92rem;line-height:1.65;color:#ffffffb8}.project-detail__image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.9rem}.project-detail__image{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:1rem;border:1px solid rgba(255,255,255,.14);transition:transform .3s ease,border-color .3s ease}.project-detail__image--single{aspect-ratio:16 / 9}.project-detail__image-button{display:block;width:100%;padding:0;border:none;background:none;cursor:pointer}.project-detail__image-button:hover .project-detail__image,.project-detail__image-button:focus-visible .project-detail__image{transform:scale(1.02);border-color:#ffffff52}.project-detail__image-button:focus-visible{outline:2px solid rgba(255,255,255,.6);outline-offset:3px;border-radius:1rem}.project-detail__subsection+.project-detail__subsection{margin-top:1.75rem}.project-detail__subheading{margin:0 0 .75rem;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#ffffff8c}.project-detail__nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:clamp(3rem,7vh,4rem);padding-top:clamp(2rem,5vh,3rem);border-top:1px solid rgba(255,255,255,.12)}.project-detail__nav-link{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.25rem;border-radius:.6rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;background:linear-gradient(#4ade801a,#4ade801a),#0a081ab8;border:1px solid rgba(74,222,128,.75);box-shadow:0 0 18px #4ade801f;text-decoration:none;transition:background .2s ease,box-shadow .25s ease,transform .15s ease}.project-detail__nav-link:hover{background:linear-gradient(#4ade8033,#4ade8033),#0a081acc;box-shadow:0 0 0 3px #4ade801f,0 0 28px #4ade8047;transform:translateY(-2px)}.project-detail__nav-link--next{text-align:right;align-items:flex-end}.project-detail__nav-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#4ade80}.project-detail__nav-name{font-size:.95rem;font-weight:700;color:#eafff2}@media (max-width: 640px){.project-detail__nav{grid-template-columns:1fr}.project-detail__nav-link--next{text-align:left;align-items:flex-start}}:root{color:#f5f5f5;background:#0a0a0b;font-family:Inter,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--header-height: 5.5rem}#home,#about,#skills,#projects,#contact{scroll-margin-top:calc(var(--header-height) + 1rem)}*{box-sizing:border-box}html{min-width:320px;overflow-x:hidden;background:inherit;scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}#app{min-height:100vh;isolation:isolate}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.section-text-scrim{position:relative}.section-text-scrim:before{content:"";position:absolute;z-index:-1;top:-2rem;right:-2.75rem;bottom:-2rem;left:-2.75rem;border-radius:2.5rem;background:radial-gradient(ellipse at center,#120a2661,#120a262e 50%,#120a2600 78%);filter:blur(4px);pointer-events:none}[id].is-active-section{position:relative}[id].is-active-section:after{content:"";position:absolute;z-index:5;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,transparent,rgba(168,120,255,.9),transparent);box-shadow:0 0 26px 4px #a878ff8c;pointer-events:none;animation:section-highlight-pulse 1.4s ease-out}@keyframes section-highlight-pulse{0%{opacity:0;transform:scaleX(.3)}30%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}
