:root{--bg: #05050c;--ink: #eef0ff;--muted: #b7bcda;--accent: #7c5cff;--accent-2: #22d3ee;--accent-3: #f472b6;--card: rgba(16, 17, 30, .74);--border: rgba(255, 255, 255, .12);font-synthesis:none}*{box-sizing:border-box}html{scroll-snap-type:y mandatory;scroll-behavior:smooth}html.flow{scroll-snap-type:none}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:3px}.bg3d{position:fixed;top:0;left:0;width:100%;height:100vh;height:100lvh;z-index:-1;pointer-events:none}.bg3d:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 95% at 50% 12%,transparent 42%,rgba(5,5,12,.6) 100%)}.bg3d--static{background:radial-gradient(55% 75% at 12% 8%,rgba(124,92,255,.2),transparent 60%),radial-gradient(65% 80% at 100% 100%,rgba(34,211,238,.14),transparent 55%),#05050c}.perf-lite .lang,.perf-lite .card,.perf-lite .project,.perf-lite .cta,.perf-lite .topbar{-webkit-backdrop-filter:none;backdrop-filter:none}.scroll-driver{position:relative;z-index:0;pointer-events:none}.snap-seg{height:100vh;scroll-snap-align:center;scroll-snap-stop:always}.stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;perspective:1300px;perspective-origin:50% 45%;overflow:hidden}.panel{position:absolute;top:50%;left:50%;width:min(960px,92vw);transform-style:preserve-3d;will-change:transform,opacity,filter}.panel__inner{padding:0 8px}.panel__inner.center{text-align:center}.stage--flow{position:relative;inset:auto;perspective:none;overflow:visible;max-width:940px;margin:0 auto;padding:0 20px;--flow-gap: 168px;--flow-header: 60px}.stage--flow .panel{position:relative;top:auto;left:auto;width:100%;margin:0 0 var(--flow-gap);scroll-margin-top:88px;transform:none;opacity:1;filter:none;pointer-events:auto;transform-style:flat}.stage--flow .panel:first-child,.stage--flow .panel:last-child{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding-top:var(--flow-header)}.stage--flow .panel:last-child{margin-bottom:0}.stage--flow .panel:not(:last-child):after{content:"";position:absolute;left:50%;bottom:calc(var(--flow-gap) / -2 - 1px);transform:translate(-50%);width:min(64%,360px);height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 60%,transparent),color-mix(in srgb,var(--accent-2) 60%,transparent),transparent)}.stage--flow .panel:not(:last-child):before{content:"";position:absolute;left:50%;bottom:calc(var(--flow-gap) / -2 - 4px);transform:translate(-50%) rotate(45deg);width:8px;height:8px;border-radius:2px;background:linear-gradient(120deg,var(--accent),var(--accent-2));box-shadow:0 0 12px -2px var(--accent)}.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:50;background:#ffffff0f}.scroll-progress__bar{height:100%;width:100%;transform-origin:left center;transform:scaleX(0);background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3))}.topbar{position:fixed;top:0;left:0;right:0;z-index:45;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px;-webkit-user-select:none;user-select:none;min-width:0}.brand__mark{display:block;filter:drop-shadow(0 4px 14px rgba(124,92,255,.35))}.brand__text{display:flex;flex-direction:column;line-height:1}.brand__word{font-weight:800;font-size:1.15rem;letter-spacing:.14em}.brand__sub{margin-top:4px;font-size:.58rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--muted)}.lang{display:flex;flex-shrink:0;padding:4px;gap:2px;border-radius:999px;border:1px solid var(--border);background:#0a0a148c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lang__btn{display:inline-block;padding:6px 12px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-decoration:none;cursor:pointer;transition:color .2s,background .2s}.lang__btn:hover{color:var(--ink)}.lang__btn.is-active{color:#05050c;background:linear-gradient(120deg,var(--accent),var(--accent-2))}.dots{position:fixed;top:50%;right:22px;transform:translateY(-50%);z-index:45;display:flex;flex-direction:column;gap:6px}.dot{position:relative;width:24px;height:24px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}.dot:before{content:"";width:11px;height:11px;border-radius:999px;background:#ffffff4d;transition:background .3s,transform .3s}.dot:hover:before{background:#ffffff8c}.dot.is-active:before{background:linear-gradient(135deg,var(--accent),var(--accent-2));transform:scale(1.4)}.dot__label{position:absolute;right:calc(100% + 4px);top:50%;transform:translateY(-50%);white-space:nowrap;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);opacity:0;pointer-events:none;transition:opacity .25s}.dot:hover .dot__label,.dot.is-active .dot__label{opacity:1}.eyebrow{display:inline-block;font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent-2);margin-bottom:16px}.grad{background:linear-gradient(120deg,var(--accent),var(--accent-2),var(--accent-3));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}.title{font-size:clamp(1.9rem,4.4vw,3.1rem);line-height:1.06;letter-spacing:-.02em;margin:0 0 22px;font-weight:800}.lead{color:var(--muted);font-size:clamp(1rem,1.5vw,1.22rem);line-height:1.66;margin:0 auto 18px;max-width:60ch}.center .lead{margin-left:auto;margin-right:auto}.hero__title,.title,.lead,.eyebrow,.hero__hint{text-shadow:0 0 16px rgba(2,2,8,.85),0 1px 3px rgba(2,2,8,.7)}.hero{text-align:center}.hero__title{font-size:clamp(2.4rem,6.6vw,5.2rem);line-height:1.02;letter-spacing:-.03em;font-weight:800;margin:0 0 24px}.hero .lead{margin-bottom:34px}.actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.hero__hint{margin-top:52px;color:var(--muted);font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;animation:bob 2.4s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0);opacity:.55}50%{transform:translateY(6px);opacity:1}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 26px;border-radius:999px;font-weight:600;font-size:1rem;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background .2s}.icon{flex-shrink:0}.btn--primary{background:linear-gradient(120deg,var(--accent),var(--accent-2));color:#05050c;box-shadow:0 10px 44px -12px #7c5cffd9}.btn--primary:hover{box-shadow:0 14px 54px -10px #22d3eeb3;transform:translateY(-2px)}.btn--ghost{border-color:var(--border);color:var(--ink)}.btn--ghost:hover{border-color:var(--accent-2);background:#ffffff08}.btn--lg{padding:18px 40px;font-size:1.15rem}.cards{margin-top:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.card{padding:20px 22px;border-radius:16px;background:var(--card);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left;transition:transform .25s ease,border-color .25s ease,background .25s}.card:hover{transform:translateY(-5px);border-color:#7c5cff80;background:#201c3ad1}.card__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;font-size:1.15rem;margin-bottom:12px;background:linear-gradient(135deg,#7c5cff40,#22d3ee40);color:var(--accent-2)}.card h3{margin:0 0 6px;font-size:1.1rem}.card p{margin:0;color:var(--muted);line-height:1.5;font-size:.92rem}.card__note{margin-top:10px!important;padding-top:9px;border-top:1px solid var(--border);font-size:.76rem!important;line-height:1.45!important;color:var(--muted)!important;font-style:italic}.showcase{margin-top:26px;display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:16px;align-items:stretch}.project{--proj: var(--accent);display:flex;flex-direction:column;gap:14px;text-align:left;padding:20px;border-radius:18px;border:1px solid var(--border);background:var(--card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:inherit;transition:transform .25s ease,border-color .25s ease,background .25s}.project__body{display:flex;flex-direction:column;flex:1}.project:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--proj) 60%,transparent);background:color-mix(in srgb,var(--proj) 16%,var(--card))}.project__logo{display:grid;place-items:center;width:54px;height:54px;border-radius:14px;background:#14162b;overflow:hidden;box-shadow:0 10px 26px -12px var(--proj)}.project__logo svg{display:block;width:100%;height:100%;border-radius:14px}.project__logo-img{width:100%;height:100%;object-fit:contain;padding:7px}.project__emoji{font-size:30px;line-height:1}.project__head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.project__head h3{margin:0;font-size:1.2rem}.project__tagline{color:var(--muted);font-size:.9rem}.project__kind{align-self:center;font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:999px;color:var(--proj);background:color-mix(in srgb,var(--proj) 15%,transparent)}.project__body>p{margin:0 0 12px;color:var(--muted);line-height:1.55;font-size:.95rem}.project__quote{margin:0 0 14px;padding-left:14px;border-left:2px solid color-mix(in srgb,var(--proj) 55%,transparent);color:var(--ink);font-style:italic;line-height:1.5;font-size:.95rem}.project__quote cite{display:block;margin-top:7px;font-style:normal;font-weight:600;font-size:.82rem;color:var(--muted)}.project__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:auto}.project__tags{display:flex;gap:8px;flex-wrap:wrap}.tag{font-size:.75rem;font-weight:600;letter-spacing:.03em;padding:5px 11px;border-radius:999px;border:1px solid var(--border);color:var(--ink);background:#ffffff08}.project__visit{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem;color:var(--proj);white-space:nowrap}.about{display:grid;grid-template-columns:1fr minmax(0,480px);gap:44px;align-items:center}.about__text{text-align:left}.about__text .lead{margin-left:0;margin-right:0}.about__photo{margin:0}.about__photo img{width:100%;max-height:46vh;aspect-ratio:3 / 2;object-fit:cover}.about-me{display:grid;grid-template-columns:300px 1fr;gap:44px;align-items:center}.about-me__photo img{display:block;width:100%;height:auto;border-radius:20px;border:1px solid var(--border)}.about-me__role{margin:0 0 20px;color:var(--accent-2);font-weight:600;font-size:1.02rem}.about-me .lead{margin-left:0;margin-right:0}.skills{margin-top:22px}.skills__label{display:block;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.skills__chips{display:flex;flex-wrap:wrap;gap:8px}.deep-work__frame{position:relative;margin:0;border-radius:22px;overflow:hidden;border:1px solid var(--border)}.deep-work__frame img{display:block;width:100%;height:auto}.gallery__tabs{display:inline-flex;gap:6px;margin:12px auto 0;padding:5px;border-radius:999px;border:1px solid var(--border);background:#ffffff0d}.gallery__tab{padding:9px 24px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:.95rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:color .2s,background .2s}.gallery__tab:hover{color:var(--ink)}.gallery__tab.is-active{color:#05050c;background:linear-gradient(120deg,var(--accent),var(--accent-2))}.carousel{position:relative;margin-top:20px;display:flex;align-items:center;gap:14px}.carousel__track{flex:1;min-width:0;display:flex;gap:12px;height:42vh;max-height:430px;margin:0;padding:4px;list-style:none;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}.carousel__track::-webkit-scrollbar{display:none}.carousel__slide{flex:0 0 min(78vw,560px);height:100%;scroll-snap-align:center}.carousel__zoom{display:block;width:100%;height:100%;padding:0;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:#0b0b16;cursor:zoom-in}.carousel__slide img{display:block;width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.carousel__nav{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:999px;border:1px solid var(--border);background:#ffffff0a;color:var(--ink);font-size:1.6rem;line-height:1;cursor:pointer;transition:border-color .2s,background .2s,color .2s}.carousel__nav:hover{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:#fff}.carousel__count{margin-top:14px;color:var(--muted);font-size:.9rem;font-weight:600;letter-spacing:.04em;font-variant-numeric:tabular-nums}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:24px;background:#030308ed;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lightbox__figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px}.lightbox__figure img{max-width:92vw;max-height:80vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px -20px #000c}.lightbox__close,.lightbox__nav{position:absolute;display:grid;place-items:center;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:#ffffff14;color:#fff;cursor:pointer;line-height:1}.lightbox__close{top:16px;right:18px;width:44px;height:44px;font-size:1.6rem}.lightbox__nav{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:1.9rem}.lightbox__nav--prev{left:16px}.lightbox__nav--next{right:16px}.lightbox__close:hover,.lightbox__nav:hover{background:#ffffff29}.lightbox__count{position:absolute;bottom:18px;left:50%;transform:translate(-50%);color:#ffffffbf;font-size:.9rem;font-weight:600;letter-spacing:.05em;font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){.carousel__track{scroll-behavior:auto}}@media (max-width: 820px){.carousel{gap:0}.carousel__slide{flex-basis:86vw}.carousel__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;font-size:1.5rem;color:#fff;background:#0a0a1280;border-color:#ffffff38}.carousel__nav--prev{left:8px}.carousel__nav--next{right:8px}}.placeholder-badge{font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:999px;border:1px dashed rgba(244,114,182,.6);color:var(--accent-3);align-self:center}.cta{padding:60px 40px;border-radius:28px;border:1px solid var(--border);background:radial-gradient(120% 120% at 50% 0%,rgba(124,92,255,.22),transparent 60%),var(--card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cta .btn{margin-top:10px}.cta__reassure{margin:14px 0 0;color:var(--muted);font-size:.9rem}.socials{display:flex;justify-content:center;gap:24px;margin-top:24px}.socials a{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:600;font-size:.98rem;transition:color .2s}.socials a:hover{color:var(--accent-2)}.cta__location{display:inline-flex;align-items:center;gap:7px;margin:24px 0 0;color:var(--muted);font-size:.9rem}@media (max-width: 820px){html{scroll-snap-type:none!important}html,body{overflow-x:hidden}.topbar{padding:10px 14px;background:#080810d1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.brand__sub{font-size:.52rem;letter-spacing:.1em}.brand__mark{width:34px;height:34px}.btn--lg{font-size:.92rem;padding:14px 18px}.cta .btn{max-width:100%;overflow-wrap:anywhere}.dots{display:none}.cards{grid-template-columns:1fr;gap:12px;margin-top:22px}.card{padding:18px}.card p{font-size:.92rem}.about{grid-template-columns:1fr;gap:22px}.about__text{text-align:center}.about__text .lead{margin-left:auto;margin-right:auto}.about-me{grid-template-columns:1fr;gap:22px;text-align:center}.about-me__photo img{max-width:230px;margin:0 auto}.about-me .lead{margin-left:auto;margin-right:auto}.skills__label,.skills__chips{justify-content:center;text-align:center}.panel{width:92vw}}@media (prefers-reduced-motion: reduce){html{scroll-snap-type:none}.scroll-driver{display:none}.stage{position:static;perspective:none;overflow:visible;max-width:960px;margin:0 auto;padding:90px 20px}.panel{position:relative;top:auto;left:auto;width:100%;margin:0 auto 110px;transform:none!important;opacity:1!important;filter:none!important;pointer-events:auto!important}.hero__hint{animation:none}}
