:root{color-scheme:dark;--bg: #07080b;--bg-elev: #0c0e13;--surface: rgba(255, 255, 255, .028);--surface-2: rgba(255, 255, 255, .05);--border: rgba(255, 255, 255, .075);--border-strong: rgba(255, 255, 255, .14);--text: #eef0f6;--text-2: #a4aab8;--text-3: #7c8394;--accent: #a5b4ff;--accent-2: #5eead4;--accent-soft: rgba(165, 180, 255, .12);--danger: #fca5a5;--success: #86efac;--font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius-sm: 10px;--radius: 16px;--radius-lg: 24px;--container: 1180px;--gutter: clamp(16px, 4vw, 32px);--section-y: clamp(84px, 11vw, 140px);--nav-h: 72px;--ease: cubic-bezier(.2, .8, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--shadow: 0 1px 0 rgba(255, 255, 255, .04) inset, 0 24px 60px -30px rgba(0, 0, 0, .8)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 8px);background:var(--bg)}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:1rem;line-height:1.65;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}body.menu-open{overflow:hidden}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}ul[role=list],ol[role=list]{list-style:none;padding:0}img,svg,iframe{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}::selection{background:#a5b4ff4d;color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}main:focus{outline:none}.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}.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:10px 16px;border-radius:10px;background:var(--text);color:var(--bg);font-weight:600;transform:translateY(-160%);transition:transform .2s var(--ease)}.skip-link:focus{transform:none}@supports (scrollbar-color: auto){html{scrollbar-color:rgba(255,255,255,.14) transparent;scrollbar-width:thin}}.container{width:100%;max-width:calc(var(--container) + var(--gutter) * 2);margin-inline:auto;padding-inline:var(--gutter)}.section{position:relative;padding-block:var(--section-y)}.section-wrap .section:before{content:"";position:absolute;top:0;left:50%;width:min(var(--container),calc(100% - var(--gutter) * 2));height:1px;transform:translate(-50%);background:linear-gradient(90deg,transparent,var(--border) 20%,var(--border) 80%,transparent)}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.eyebrow__index{color:var(--text-3);display:inline-flex;align-items:center;gap:10px}.eyebrow__index:after{content:"";width:24px;height:1px;background:var(--border-strong)}.section-header{display:grid;gap:14px;margin-bottom:clamp(36px,5vw,56px);max-width:760px}.section-header--center{margin-inline:auto;text-align:center;justify-items:center}.section-title{font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.08;letter-spacing:-.035em;font-weight:600;text-wrap:balance}.section-lead{color:var(--text-2);font-size:clamp(1rem,1.4vw,1.1rem);max-width:62ch;text-wrap:pretty}.card{position:relative;background:linear-gradient(180deg,#ffffff09,#ffffff04);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);isolation:isolate}[data-spotlight]{--mx: 50%;--my: 50%}[data-spotlight]:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;opacity:0;transition:opacity .35s var(--ease);background:radial-gradient(420px circle at var(--mx) var(--my),rgba(165,180,255,.075),transparent 60%)}[data-spotlight]:hover:after{opacity:1}.btn{--h: 48px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:var(--h);padding:0 22px;border-radius:999px;border:1px solid transparent;font-weight:500;font-size:.95rem;letter-spacing:-.005em;white-space:nowrap;transition:transform .25s var(--ease),background-color .25s var(--ease),border-color .25s var(--ease),box-shadow .3s var(--ease),color .25s var(--ease)}.btn--sm{--h: 40px;padding:0 16px;font-size:.875rem;gap:8px}.btn__icon{flex:none;transition:transform .3s var(--ease)}.btn:hover .btn__icon--end{transform:translate(3px)}.btn:active{transform:translateY(1px) scale(.985)}.btn--primary{background:var(--text);color:#0a0b0f;box-shadow:0 0 #a5b4ff00}.btn--primary:hover{background:#fff;box-shadow:0 0 0 4px #a5b4ff24,0 12px 32px -12px #a5b4ff8c;transform:translateY(-1px)}.btn--secondary{background:var(--surface-2);border-color:var(--border-strong);color:var(--text);backdrop-filter:blur(8px)}.btn--secondary:hover{background:#ffffff14;border-color:#ffffff3d;transform:translateY(-1px)}.btn--ghost{color:var(--text-2);padding-inline:14px}.btn--ghost:hover{color:var(--text);background:var(--surface-2)}.btn:disabled{opacity:.6;cursor:progress;transform:none}.link-arrow{display:inline-flex;align-items:center;gap:6px;margin-top:12px;color:var(--accent);font-size:.9rem;font-weight:500}.link-arrow:hover .icon{transform:translate(2px,-2px)}.link-arrow .icon{transition:transform .25s var(--ease)}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.01em;white-space:nowrap}.tag--accent{color:var(--accent);border-color:#a5b4ff47;background:var(--accent-soft)}.tag--live{color:var(--accent-2);border-color:#5eead44d;background:#5eead414}.tag--live:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px #5eead42e}.tag--done{color:var(--text)}.socials{display:flex;gap:8px}.socials__link{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);transition:color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease),background-color .25s var(--ease)}.socials__link:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-2);transform:translateY(-2px)}.nav{position:fixed;inset:0 0 auto;z-index:100;height:var(--nav-h);display:flex;flex-direction:column;transition:background-color .35s var(--ease),border-color .35s var(--ease),height .35s var(--ease),backdrop-filter .35s var(--ease);border-bottom:1px solid transparent}.nav--scrolled{--nav-h: 64px;background:#07080bb8;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border-bottom-color:var(--border)}.nav--open{background:var(--bg)}.nav__progress{position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform-origin:left;transform:scaleX(var(--scroll-progress, 0));opacity:0;transition:opacity .3s}.nav--scrolled .nav__progress{opacity:.8}.nav__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.nav__brand{display:inline-flex;align-items:center;gap:12px;font-weight:600;letter-spacing:-.02em;flex:none}.nav__mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;font-family:var(--font-mono);font-size:.8rem;font-weight:500;color:var(--text);background:linear-gradient(var(--bg-elev),var(--bg-elev)) padding-box,linear-gradient(135deg,var(--accent),var(--accent-2) 60%,transparent) border-box;border:1px solid transparent;transition:transform .4s var(--ease)}.nav__brand:hover .nav__mark{transform:rotate(-6deg) scale(1.04)}.nav__name{font-size:.98rem}.nav__primary{flex:1;display:flex;justify-content:center}.nav__track{position:relative;padding:4px;border-radius:999px;border:1px solid transparent;transition:border-color .35s var(--ease),background-color .35s var(--ease)}.nav--scrolled .nav__track,.nav__track:hover{border-color:var(--border);background:#ffffff05}.nav__list{display:flex;gap:2px;position:relative}.nav__indicator{position:absolute;top:4px;bottom:4px;left:0;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);transition:transform .45s var(--ease-out),width .45s var(--ease-out),opacity .3s}.nav__link{position:relative;display:block;padding:6px 14px;border-radius:999px;font-size:.875rem;color:var(--text-2);transition:color .25s var(--ease)}.nav__link:hover,.nav__link.is-active{color:var(--text)}.nav__actions{display:flex;align-items:center;gap:6px;flex:none}.nav__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:var(--text-2);transition:color .25s,background-color .25s}.nav__icon:hover{color:var(--text);background:var(--surface-2)}.nav__cv{margin-left:6px}.nav__toggle{display:none;width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--surface);place-items:center}.nav__burger{position:relative;width:18px;height:10px}.nav__burger span{position:absolute;left:0;width:100%;height:1.5px;border-radius:2px;background:var(--text);transition:transform .35s var(--ease),top .35s var(--ease)}.nav__burger span:first-child{top:0}.nav__burger span:last-child{top:8.5px}.nav--open .nav__burger span:first-child{top:4.25px;transform:rotate(45deg)}.nav--open .nav__burger span:last-child{top:4.25px;transform:rotate(-45deg)}.nav__panel{position:fixed;inset:var(--nav-h) 0 0;background:var(--bg);padding:24px var(--gutter) calc(32px + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:space-between;gap:32px;overflow-y:auto;animation:panel-in .35s var(--ease-out)}.nav__panel[hidden]{display:none}.nav__mobile-list{display:grid}.nav__mobile-list li{animation:item-in .5s var(--ease-out) both;animation-delay:calc(var(--i) * 40ms + 60ms)}.nav__mobile-link{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--border);font-size:clamp(1.5rem,7vw,2rem);font-weight:500;letter-spacing:-.03em;color:var(--text-2)}.nav__mobile-link.is-active,.nav__mobile-link:hover{color:var(--text)}.nav__mobile-index{font-family:var(--font-mono);font-size:.75rem;color:var(--text-3);letter-spacing:0}.nav__mobile-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.nav__mobile-socials{display:flex;gap:4px}@keyframes panel-in{0%{opacity:0}}@keyframes item-in{0%{opacity:0;transform:translateY(12px)}}@media(max-width:1080px){.nav__link{padding:6px 10px}}@media(max-width:960px){.nav__primary,.nav__actions>.nav__icon{display:none}.nav__toggle{display:grid}}@media(max-width:520px){.nav__cv{display:none}}@media(max-width:360px){.nav__name{display:none}}.cursor-ring{position:fixed;top:0;left:0;z-index:10000;width:0;height:0;pointer-events:none;opacity:0;transition:opacity .3s;will-change:transform}.cursor-ring:after{content:"";position:absolute;left:-16px;top:-16px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(238,240,246,.35);transition:transform .35s var(--ease-out),background-color .35s,border-color .35s}.cursor-ring.is-visible{opacity:1}.cursor-ring.is-hover:after{transform:scale(1.55);border-color:#a5b4ff8c;background:#a5b4ff0f}.cursor-ring.is-down:after{transform:scale(.8)}.stat{padding:22px;display:grid;gap:4px;align-content:start;transition:transform .35s var(--ease),border-color .35s}.stat:hover{transform:translateY(-3px);border-color:var(--border-strong)}.stat__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;margin-bottom:14px;background:var(--accent-soft);color:var(--accent)}.stat__value{font-size:clamp(1.4rem,2.4vw,1.75rem);font-weight:600;letter-spacing:-.03em;line-height:1.2}.stat__label{color:var(--text-2);font-size:.875rem;line-height:1.45}.tech{--brand: var(--accent);position:relative;display:grid;justify-items:center;gap:12px;padding:22px 12px 18px;border-radius:14px;border:1px solid var(--border);background:var(--surface);isolation:isolate;transition:transform .35s var(--ease),border-color .35s,box-shadow .4s,background-color .35s}.tech__icon{color:var(--text-2);transition:color .35s var(--ease),transform .45s var(--ease-out),filter .35s}.tech__name{font-size:.85rem;color:var(--text-2);transition:color .3s}.tech:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--brand) 40%,transparent);background:color-mix(in srgb,var(--brand) 6%,transparent);box-shadow:0 16px 36px -18px color-mix(in srgb,var(--brand) 60%,transparent)}.tech:hover .tech__icon{color:var(--brand);transform:translateY(-2px) scale(1.08);filter:drop-shadow(0 4px 14px color-mix(in srgb,var(--brand) 45%,transparent))}.tech:hover .tech__name{color:var(--text)}.service{padding:26px;display:flex;flex-direction:column;gap:12px;transition:transform .4s var(--ease),border-color .4s}.service:hover{transform:translateY(-4px);border-color:var(--border-strong)}.service__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.service__icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:12px;color:var(--accent);background:linear-gradient(135deg,#a5b4ff29,#5eead40f);border:1px solid rgba(165,180,255,.18);transition:transform .45s var(--ease-out)}.service:hover .service__icon{transform:rotate(-6deg) scale(1.06)}.service__index{font-family:var(--font-mono);font-size:.75rem;color:var(--text-3)}.service__title{font-size:1.15rem;font-weight:600;letter-spacing:-.02em}.service__text{color:var(--text-2);font-size:.95rem}.timeline{position:relative;display:grid;gap:22px;max-width:880px}.timeline:before{content:"";position:absolute;left:17px;top:8px;bottom:8px;width:1px;background:linear-gradient(180deg,var(--accent),rgba(165,180,255,.25) 40%,var(--border) 80%,transparent)}.timeline__item{position:relative;padding-left:60px}.timeline__node{position:absolute;left:0;top:22px;display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--bg-elev);border:1px solid var(--border-strong);color:var(--text-2);z-index:1}.timeline__item.is-current .timeline__node{color:var(--accent);border-color:#a5b4ff80;box-shadow:0 0 0 6px #a5b4ff14;animation:node-pulse 3s ease-in-out infinite}@keyframes node-pulse{50%{box-shadow:0 0 0 10px #a5b4ff08}}.timeline__card{padding:24px 26px;transition:border-color .35s,transform .35s var(--ease)}.timeline__card:hover{border-color:var(--border-strong);transform:translate(3px)}.timeline__head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 20px}.timeline__kicker{font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:6px}.timeline__title{font-size:clamp(1.1rem,2vw,1.3rem);font-weight:600;letter-spacing:-.02em;line-height:1.3}.timeline__org{color:var(--text-2);margin-top:4px}.timeline__org a:hover{color:var(--text)}.timeline__badges{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.timeline__period{font-family:var(--font-mono);font-size:.75rem;color:var(--text-3)}.timeline__text{margin-top:14px;color:var(--text-2);font-size:.95rem}.timeline__card .tags{margin-top:16px}.bullets{margin-top:12px;display:grid;gap:6px;color:var(--text-2);font-size:.95rem}.bullets li{position:relative;padding-left:18px}.bullets li:before{content:"";position:absolute;left:2px;top:.7em;width:5px;height:5px;border-radius:50%;background:var(--accent)}@media(max-width:560px){.timeline:before{left:13px}.timeline__item{padding-left:42px}.timeline__node{width:27px;height:27px;top:24px}.timeline__node .icon{width:13px;height:13px}.timeline__card{padding:20px}.timeline__badges{flex-direction:row;align-items:center}}.project{display:grid;overflow:hidden}.project--featured{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);border-radius:var(--radius-lg)}.project--compact{grid-template-rows:auto 1fr}.project--compact .project__title{font-size:1.45rem;letter-spacing:-.03em}.project--compact .project__body{gap:12px;padding:22px 24px 26px}.project__media{position:relative;padding:14px}.project--featured .project__media{padding:18px 0 18px 18px}.project__body{padding:clamp(24px,3.4vw,40px);display:flex;flex-direction:column;gap:16px}.project__badges{display:flex;flex-wrap:wrap;gap:8px}.project__title{font-size:clamp(1.7rem,3.2vw,2.3rem);font-weight:600;letter-spacing:-.04em;line-height:1.05}.project__summary{font-size:1.05rem;color:var(--text)}.project__text{color:var(--text-2);font-size:.95rem}.project__highlights{display:grid;gap:8px;font-size:.92rem;color:var(--text-2)}.project__highlights li{display:flex;gap:10px;align-items:flex-start}.project__highlights .icon{flex:none;margin-top:4px;color:var(--accent-2)}.project__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:8px}@media(max-width:900px){.project--featured{grid-template-columns:1fr}.project--featured .project__media{padding:14px 14px 0}}.preview{position:relative;width:100%;aspect-ratio:16 / 10;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:#0e1016}.project--featured .preview{height:100%;aspect-ratio:auto;min-height:360px}@media(max-width:900px){.project--featured .preview{aspect-ratio:16 / 10;min-height:0}}.preview__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.02);transition:opacity .6s var(--ease),transform 1.2s var(--ease-out)}.preview__img.is-loaded{opacity:1}.project:hover .preview__img.is-loaded{transform:scale(1.05)}.preview--video{aspect-ratio:16 / 9;min-height:0!important;height:auto}.preview--video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.preview__play{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-start;gap:12px;padding:18px;cursor:pointer;border:0;background:linear-gradient(180deg,transparent 45%,rgba(7,8,11,.75));color:var(--text);text-align:left}.preview__play-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#ffffffeb;color:#0a0b0f;box-shadow:0 10px 30px -10px #000000b3;transition:transform .35s var(--ease-out),box-shadow .35s}.preview__play-icon .icon{margin-left:3px}.preview__play-label{font-size:.9rem;font-weight:500;padding:6px 12px;border-radius:999px;background:#07080b99;backdrop-filter:blur(8px);border:1px solid var(--border);margin-bottom:9px}.preview__play:hover .preview__play-icon{transform:scale(1.08);box-shadow:0 0 0 8px #ffffff1a,0 10px 30px -10px #000000b3}.preview__play:focus-visible{outline-offset:-4px;border-radius:14px}.mock{--m-accent: var(--accent);position:absolute;inset:0;padding:7% 7% 0;background:radial-gradient(600px 300px at 80% -10%,color-mix(in srgb,var(--m-accent) 22%,transparent),transparent 70%),linear-gradient(160deg,#10121a,#0a0b10);overflow:hidden}.mock--punakosova{--m-accent: #e5383b}.mock__bar{display:flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:10px 10px 0 0;background:#181b24;border:1px solid rgba(255,255,255,.07);border-bottom:0}.mock__bar>span{width:8px;height:8px;border-radius:50%;background:#ffffff26}.mock__url{margin-left:12px;flex:1;max-width:220px;height:16px;border-radius:6px;background:#ffffff0d;font-family:var(--font-mono);font-size:9px;line-height:16px;padding:0 8px;color:var(--text-3);overflow:hidden}.mock__body{height:100%;padding:16px;background:#f6f6f7;border:1px solid rgba(255,255,255,.07);display:grid;align-content:start;gap:14px}.mock__nav{display:flex;align-items:center;gap:10px}.mock__logo{font-weight:700;font-size:13px;letter-spacing:-.02em;color:#111;margin-right:auto}.mock__logo:first-letter{color:var(--m-accent)}.mock__pill{width:34px;height:6px;border-radius:4px;background:#d4d4d8}.mock__btn{width:46px;height:18px;border-radius:6px;background:var(--m-accent)}.mock__search{display:flex;gap:8px;padding:14px;border-radius:10px;background:#111}.mock__input{flex:1;height:24px;border-radius:6px;background:#fff;color:#9ca3af;display:flex;align-items:center;padding-left:8px}.mock__go{width:56px;height:24px;border-radius:6px;background:var(--m-accent)}.mock__grid{display:grid;gap:8px}.mock__row{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;background:#fff;border:1px solid #e4e4e7;animation:mock-row 6s var(--ease) infinite;animation-delay:calc(var(--i) * .4s)}@keyframes mock-row{0%,70%,to{transform:none;border-color:#e4e4e7}80%{transform:translate(4px);border-color:color-mix(in srgb,var(--m-accent) 50%,#e4e4e7)}}.mock__avatar{width:22px;height:22px;border-radius:6px;background:#e4e4e7;flex:none}.mock__lines{flex:1;display:grid;gap:5px}.mock__lines span{height:5px;border-radius:3px;background:#d4d4d8;width:70%}.mock__lines span+span{width:42%;background:#e4e4e7}.mock__chip{width:38px;height:14px;border-radius:999px;background:color-mix(in srgb,var(--m-accent) 18%,#fff)}.form{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;padding:clamp(22px,3vw,32px);align-content:start}.field{display:grid;gap:8px;min-width:0}.field--full{grid-column:1 / -1}.field__label{font-size:.875rem;font-weight:500;color:var(--text)}.field__label span{color:var(--text-3)}.field__control{width:100%;min-height:48px;padding:12px 14px;border-radius:12px;border:1px solid var(--border-strong);background:#ffffff06;color:var(--text);font-size:1rem;transition:border-color .25s,box-shadow .25s,background-color .25s}textarea.field__control{resize:vertical;min-height:140px;line-height:1.55}.field__control::placeholder{color:var(--text-3)}.field__control:hover{border-color:#ffffff38}.field__control:focus{outline:none;border-color:var(--accent);background:#a5b4ff0a;box-shadow:0 0 0 4px #a5b4ff24}.has-error .field__control{border-color:#fca5a5b3}.has-error .field__control:focus{box-shadow:0 0 0 4px #fca5a524}.field__error{display:flex;align-items:center;gap:6px;min-height:1.5em;font-size:.82rem;line-height:1.5;color:var(--danger)}.form__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}.form__note{font-size:.82rem;color:var(--text-3);max-width:36ch}.form__status{margin-top:8px;font-size:.9rem;min-height:1px}.form__status:empty{display:none}.form__status--success{color:var(--success)}.form__status--error{color:var(--danger)}.form__status--sending{color:var(--text-2)}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}@media(max-width:560px){.form{grid-template-columns:1fr}.form__footer .btn{width:100%}}.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:calc(var(--nav-h) + 48px) 0 96px;overflow:hidden;isolation:isolate}.hero__bg{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:hidden}.hero__grid{position:absolute;inset:-1px;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:64px 64px;background-position:center top;mask-image:radial-gradient(ellipse 75% 60% at 50% 30%,#000 20%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 75% 60% at 50% 30%,#000 20%,transparent 75%);animation:grid-drift 40s linear infinite}@keyframes grid-drift{to{background-position:center 64px}}.orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;will-change:transform}.orb--a{width:520px;height:520px;top:-180px;right:-120px;background:radial-gradient(circle,rgba(124,140,255,.55),transparent 65%);animation:orb-a 22s ease-in-out infinite alternate}.orb--b{width:420px;height:420px;bottom:-160px;left:-140px;background:radial-gradient(circle,rgba(45,212,191,.32),transparent 65%);animation:orb-b 26s ease-in-out infinite alternate}@keyframes orb-a{to{transform:translate(-80px,60px) scale(1.1)}}@keyframes orb-b{to{transform:translate(90px,-50px) scale(1.15)}}.hero__inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(40px,6vw,80px)}.hero__content{display:grid;justify-items:start}.hero__status{display:inline-flex;align-items:center;gap:10px;padding:6px 14px 6px 10px;margin-bottom:28px;border-radius:999px;border:1px solid var(--border);background:#ffffff08;backdrop-filter:blur(8px);font-size:.85rem;color:var(--text-2)}.pulse{position:relative;width:8px;height:8px;border-radius:50%;background:var(--accent-2)}.pulse:after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--accent-2);animation:pulse 2.2s ease-out infinite}@keyframes pulse{to{transform:scale(3);opacity:0}}.hero__title{font-size:clamp(3rem,9vw,6.4rem);line-height:.95;letter-spacing:-.055em;font-weight:600;background:linear-gradient(180deg,#fff 30%,#a7adbd);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.08em}.hero__role{margin-top:18px;font-size:clamp(1.1rem,2.2vw,1.45rem);font-weight:500;letter-spacing:-.02em;color:var(--text);display:flex;align-items:center;gap:12px}.hero__role:before{content:"";width:28px;height:1px;background:linear-gradient(90deg,var(--accent),var(--accent-2));flex:none}.hero__tagline{margin-top:16px;max-width:34ch;font-size:clamp(1rem,1.6vw,1.15rem);color:var(--text-2);text-wrap:pretty}.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}.hero__socials{margin-top:36px}.hero__visual{position:relative;min-width:0}.hero__scroll{position:absolute;left:50%;bottom:28px;transform:translate(-50%);display:grid;justify-items:center;gap:10px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);transition:color .25s}.hero__scroll:hover{color:var(--text)}.hero__scroll-line{position:relative;width:1px;height:40px;background:var(--border);overflow:hidden}.hero__scroll-line:after{content:"";position:absolute;left:0;top:0;width:100%;height:40%;background:var(--text-2);animation:scroll-line 2s var(--ease) infinite}@keyframes scroll-line{0%{transform:translateY(-100%)}to{transform:translateY(260%)}}.hero-in{animation:hero-in 1s var(--ease-out) both;animation-delay:calc(var(--d, 0ms) + .1s)}html:not(.is-loaded) .hero-in{animation-play-state:paused}@keyframes hero-in{0%{opacity:0;transform:translateY(22px);filter:blur(6px)}}.code{position:relative;border-radius:18px;background:#0d0f15b8;border:1px solid var(--border-strong);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px #ffffff0f inset,0 40px 80px -40px #000000e6,0 0 0 1px #0006;overflow:hidden;animation:float 9s ease-in-out infinite}.code:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(140deg,rgba(165,180,255,.45),transparent 35%,transparent 70%,rgba(94,234,212,.3));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}@keyframes float{50%{transform:translateY(-10px)}}.code__bar{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border);background:#ffffff05}.code__dots{display:flex;gap:6px}.code__dots span{width:10px;height:10px;border-radius:50%;background:#ffffff1f}.code__file{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.75rem;color:var(--text-3)}.code__body{margin:0;padding:18px 18px 22px 0;font-family:var(--font-mono);font-size:clamp(.72rem,1.05vw,.82rem);line-height:1.85;overflow-x:auto;white-space:pre}.code__line{display:flex;opacity:0;animation:line-in .5s var(--ease-out) forwards;animation-delay:calc(var(--i) * 70ms + .7s)}html:not(.is-loaded) .code__line{animation-play-state:paused}@keyframes line-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}.code__ln{flex:none;width:44px;padding-right:16px;text-align:right;color:#3a404d;user-select:none}.code__line code{font:inherit}.code__caret{display:inline-block;width:7px;height:1.1em;margin-left:3px;vertical-align:text-bottom;background:var(--accent);animation:blink 1.1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.tk-kw{color:#c4b5fd}.tk-var{color:var(--text)}.tk-key{color:var(--accent)}.tk-str{color:var(--accent-2)}.tk-bool{color:#fda4af}.tk-fn{color:#fcd34d}.tk-op{color:var(--text-3)}@media(max-width:1024px){.hero__inner{grid-template-columns:minmax(0,1fr)}.hero__visual{max-width:560px;min-width:0}}@media(max-width:1024px)and (min-height:0){.hero{min-height:auto;padding-bottom:120px}}@media(max-width:560px){.hero{padding-top:calc(var(--nav-h) + 32px)}.hero__actions .btn{flex:1 1 auto}.hero__actions .btn--primary{flex-basis:100%}.code__body{font-size:.68rem}.code__ln{width:34px;padding-right:12px}.hero__scroll{display:none}}.about__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:clamp(36px,6vw,80px);align-items:end}.about__text{display:grid;gap:18px;color:var(--text-2);font-size:clamp(1rem,1.3vw,1.08rem);max-width:64ch}.about__text p:first-child{color:var(--text)}.about__facts{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:28px;font-size:.9rem;color:var(--text-2)}.about__facts li{display:inline-flex;align-items:center;gap:8px}.about__facts .icon{color:var(--accent)}.about__stats{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:900px){.about__grid{grid-template-columns:1fr}}@media(max-width:380px){.about__stats{grid-template-columns:1fr}}.skills__groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.skills__group{display:flex;flex-direction:column;gap:20px;padding:24px;border-radius:var(--radius-lg);border:1px solid var(--border);background:#ffffff03}.skills__group-title{font-size:1.05rem;font-weight:600;letter-spacing:-.015em}.skills__group-desc{margin-top:4px;font-size:.875rem;color:var(--text-3)}.skills__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.marquee{margin-top:48px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.marquee__track{display:flex;gap:40px;width:max-content;animation:marquee 45s linear infinite}.marquee:hover .marquee__track{animation-play-state:paused}.marquee__item{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.85rem;color:var(--text-3);white-space:nowrap}@keyframes marquee{to{transform:translate(calc(-50% - 20px))}}@media(max-width:1024px){.skills__groups{grid-template-columns:minmax(0,1fr)}.skills__grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}@media(max-width:600px){.skills__group{padding:18px;gap:16px}.skills__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tech{grid-auto-flow:column;justify-content:start;align-items:center;padding:12px 14px}.tech__icon .icon{width:22px;height:22px}}.services__grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.services__grid>li{grid-column:span 2}.services__grid>li:nth-child(4),.services__grid>li:nth-child(5){grid-column:span 3}@media(max-width:960px){.services__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.services__grid>li,.services__grid>li:nth-child(4){grid-column:span 1}.services__grid>li:nth-child(5){grid-column:span 2}}@media(max-width:600px){.services__grid{grid-template-columns:1fr}.services__grid>li:nth-child(5){grid-column:span 1}}.projects__featured{display:grid;gap:24px}.projects__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:20px;margin-top:24px}.projects__more{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 14px;margin-top:36px;color:var(--text-3);font-size:.92rem}.leetcode__panel{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center;padding:clamp(28px,5vw,56px);border-radius:var(--radius-lg);overflow:hidden}.leetcode__panel .section-header{margin-bottom:18px}.leetcode__text{color:var(--text-2);max-width:58ch;margin-bottom:22px}.leetcode__cta{margin-top:24px}.leetcode__side{display:grid;gap:18px}.leetcode__emblem{position:relative;display:grid;place-items:center;aspect-ratio:1;width:min(260px,100%);margin-inline:auto;color:#ffa116}.leetcode__emblem>.icon{position:relative;z-index:1;filter:drop-shadow(0 8px 24px rgba(255,161,22,.35))}.leetcode__rings{position:absolute;inset:0}.leetcode__rings span{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(255,255,255,.12);animation:spin 40s linear infinite}.leetcode__rings span:nth-child(2){inset:16%;border-style:solid;border-color:#ffa11633;animation-duration:30s;animation-direction:reverse}.leetcode__rings span:nth-child(3){inset:32%;border-color:#ffffff14;background:radial-gradient(circle,rgba(255,161,22,.1),transparent 70%)}.leetcode__rings span:nth-child(2):before{content:"";position:absolute;top:-4px;left:50%;width:7px;height:7px;border-radius:50%;background:#ffa116;box-shadow:0 0 12px #ffa116}@keyframes spin{to{transform:rotate(360deg)}}.leetcode__stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.leetcode__stat{padding:16px 18px;border-radius:14px;border:1px solid var(--border);background:var(--surface)}.leetcode__stat:first-child{grid-column:1 / -1}.leetcode__stat dt{font-size:.8rem;color:var(--text-3)}.leetcode__stat dd{font-size:1.6rem;font-weight:600;letter-spacing:-.03em}.leetcode__stat.is-easy dd{color:#5eead4}.leetcode__stat.is-medium dd{color:#fcd34d}.leetcode__stat.is-hard dd{color:#fca5a5}.leetcode__bar{display:flex;gap:4px;height:6px}.leetcode__bar span{border-radius:4px}.leetcode__bar .is-easy{background:#5eead4}.leetcode__bar .is-medium{background:#fcd34d}.leetcode__bar .is-hard{background:#fca5a5}@media(max-width:860px){.leetcode__panel{grid-template-columns:1fr}.leetcode__emblem{width:180px}}.cardlist__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:16px}.cardlist__item{display:flex;gap:16px;padding:22px}.cardlist__title{font-size:1.05rem;font-weight:600;letter-spacing:-.015em}.cardlist__meta{margin-top:4px;font-size:.85rem;color:var(--text-3)}.cardlist__text{margin-top:10px;color:var(--text-2);font-size:.92rem}.cta{padding-block:clamp(40px,6vw,80px)}.cta__panel{position:relative;display:grid;justify-items:center;gap:20px;padding:clamp(48px,8vw,96px) clamp(22px,5vw,64px);border-radius:28px;border:1px solid var(--border);text-align:center;overflow:hidden;isolation:isolate;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0 / 48px 48px,linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0 / 48px 48px,#0a0c11}.cta__panel:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 60% 70% at 50% 120%,rgba(165,180,255,.22),transparent 70%)}.cta__glow{position:absolute;z-index:-1;top:-1px;left:50%;width:60%;height:1px;transform:translate(-50%);background:linear-gradient(90deg,transparent,var(--accent),var(--accent-2),transparent)}.cta__title{font-size:clamp(2rem,5.4vw,3.8rem);font-weight:600;letter-spacing:-.045em;line-height:1.04;max-width:16ch;text-wrap:balance}.cta__text{color:var(--text-2);max-width:54ch;margin-bottom:12px}.contact__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,72px);align-items:start}.contact__list{display:grid;gap:12px}.contact__item{display:flex;gap:8px}.contact__link{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:14px;border:1px solid var(--border);background:var(--surface);isolation:isolate;transition:border-color .3s,transform .3s var(--ease),background-color .3s}.contact__link:hover{border-color:var(--border-strong);transform:translate(3px)}.contact__icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:var(--surface-2);color:var(--text)}.contact__text{display:grid;min-width:0}.contact__label{font-size:.78rem;color:var(--text-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.contact__value{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact__arrow{margin-left:auto;flex:none;color:var(--text-3);transition:transform .3s var(--ease),color .3s}.contact__link:hover .contact__arrow{color:var(--text);transform:translate(2px,-2px)}.contact__copy{position:relative;flex:none;width:52px;display:grid;place-items:center;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);transition:color .25s,border-color .25s}.contact__copy:hover{color:var(--text);border-color:var(--border-strong)}.contact__copy-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:4px 8px;border-radius:6px;background:var(--text);color:var(--bg);font-size:.72rem;font-weight:500;white-space:nowrap}.contact__copy-tip:empty{display:none}@media(max-width:900px){.contact__grid{grid-template-columns:1fr}}.footer{border-top:1px solid var(--border);padding:56px 0 calc(32px + env(safe-area-inset-bottom))}.footer__top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:32px}.footer__tagline{margin-top:14px;color:var(--text-3);font-size:.9rem;max-width:36ch}.footer__nav{display:grid;grid-template-columns:repeat(2,auto);gap:8px 40px;font-size:.9rem}.footer__nav a{color:var(--text-2);transition:color .25s}.footer__nav a:hover{color:var(--text)}.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:48px;padding-top:24px;border-top:1px solid var(--border);font-size:.85rem;color:var(--text-3)}.footer__top-link{display:inline-flex;align-items:center;gap:6px;transition:color .25s}.footer__top-link:hover{color:var(--text)}.notfound{position:relative;min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:48px var(--gutter);overflow:hidden;isolation:isolate}.notfound__inner{display:grid;justify-items:center;text-align:center;gap:18px;max-width:560px;animation:hero-in 1s var(--ease-out) both}.notfound__brand{margin-bottom:12px}.notfound__code{font-size:clamp(6rem,24vw,12rem);font-weight:600;letter-spacing:-.07em;line-height:.9;background:linear-gradient(180deg,#fff 20%,#a5b4ff40);-webkit-background-clip:text;background-clip:text;color:transparent}.notfound__title{font-size:clamp(1.5rem,4vw,2rem);font-weight:600;letter-spacing:-.03em}.notfound__text{color:var(--text-2)}.notfound__term{font-family:var(--font-mono);font-size:.9rem;padding:10px 16px;margin:8px 0 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text-2)}[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out),border-color .35s,background-color .35s,box-shadow .4s;transition-delay:var(--d, 0ms),var(--d, 0ms),0ms,0ms,0ms}[data-reveal].is-visible{opacity:1;transform:none}[data-reveal].reveal-done{transition-delay:0ms}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.001ms!important;transition-delay:0ms!important}[data-reveal],.hero-in,.code__line{opacity:1!important;transform:none!important;filter:none!important}.marquee{display:none}}
