@property --hue{syntax: "<number>"; initial-value: 186; inherits: true;}:root{--hue: 186;--accent: hsl(var(--hue) 80% 62%);--accent2: hsl(calc(var(--hue) + 40) 78% 68%);--glow: hsl(var(--hue) 90% 60% / .45);--bg: #05070c;--panel: rgb(15 19 29 / .72);--panel2: rgb(20 25 37 / .85);--line: #1c2333;--text: #c6cee8;--bright: #eef3ff;--muted: #6b7590;--green: #9ece6a;--orange: #ff9e64;--purple: #bb9af7;--rail: 262px;--pad: 64px;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Helvetica, Arial, sans-serif;--fa: "Vazirmatn", "IRANSansX", "IRANSans", "Geeza Pro", Tahoma, system-ui, sans-serif;transition:--hue 1.1s cubic-bezier(.4,0,.2,1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.65;overflow-x:hidden;cursor:none}::selection{background:hsl(var(--hue) 80% 60% / .3);color:var(--bright)}a{color:inherit}.bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}#gl,#rain{position:absolute;inset:0;width:100%;height:100%}.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:0;mix-blend-mode:screen}body.no-gl .blob{opacity:.5}body.no-gl #gl{display:none}.b1{width:52vw;height:52vw;left:-12vw;top:-10vw;background:radial-gradient(circle,hsl(var(--hue) 85% 45% / .55),transparent 65%);animation:drift1 26s ease-in-out infinite}.b2{width:44vw;height:44vw;right:-8vw;top:22vh;background:radial-gradient(circle,hsl(calc(var(--hue) + 70) 80% 48% / .45),transparent 65%);animation:drift2 33s ease-in-out infinite}@keyframes drift1{0%,to{transform:none}50%{transform:translate3d(18vw,16vh,0) scale(1.15)}}@keyframes drift2{0%,to{transform:none}50%{transform:translate3d(-20vw,18vh,0) scale(.86)}}.scan{position:fixed;inset:0;z-index:55;pointer-events:none;opacity:.4;background:repeating-linear-gradient(180deg,rgb(255 255 255 / .035) 0 1px,transparent 1px 3px);animation:scanmove 8s linear infinite}@keyframes scanmove{to{transform:translateY(3px)}}.vig{position:fixed;inset:0;z-index:56;pointer-events:none;background:radial-gradient(125% 92% at 50% 0%,transparent 42%,rgb(0 0 0 / .7) 100%)}.cur-dot,.cur-ring{position:fixed;top:0;left:0;z-index:99;pointer-events:none;border-radius:50%;mix-blend-mode:difference;will-change:transform;opacity:0;transition:opacity .3s}body.pointer-live .cur-dot,body.pointer-live .cur-ring{opacity:1}.cur-dot{width:6px;height:6px;background:#fff;margin:-3px 0 0 -3px}.cur-ring{width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid rgb(255 255 255 / .7);transition:width .25s,height .25s,margin .25s,background .25s,opacity .3s}body.hot .cur-ring{width:62px;height:62px;margin:-31px 0 0 -31px;background:#ffffff1f}.curtain{position:fixed;inset:0;z-index:95;pointer-events:none;display:flex}.curtain i{flex:1;background:#04060a;border-right:1px solid rgb(255 255 255 / .05);transform:scaleY(0);transform-origin:bottom;transition:transform .52s cubic-bezier(.76,0,.24,1)}.curtain.in i{transform:scaleY(1)}.curtain.out i{transform-origin:top;transform:scaleY(0)}.curtain i:nth-child(1){transition-delay:0s}.curtain i:nth-child(2){transition-delay:.05s}.curtain i:nth-child(3){transition-delay:.1s}.curtain i:nth-child(4){transition-delay:.15s}.curtain i:nth-child(5){transition-delay:.2s}.curtain i:nth-child(6){transition-delay:.25s}.curtain.out i:nth-child(1){transition-delay:.25s}.curtain.out i:nth-child(2){transition-delay:.2s}.curtain.out i:nth-child(3){transition-delay:.15s}.curtain.out i:nth-child(4){transition-delay:.1s}.curtain.out i:nth-child(5){transition-delay:.05s}.curtain.out i:nth-child(6){transition-delay:0s}.clabel{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-size:clamp(1.4rem,5vw,3rem);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);opacity:0;transform:scale(.94);transition:opacity .3s .25s,transform .5s .25s}.curtain.in .clabel{opacity:1;transform:none}#boot{position:fixed;inset:0;z-index:100;background:#04060a;display:flex;flex-direction:column;justify-content:center;padding:0 8vw;font-family:var(--mono);font-size:13px;color:var(--green);clip-path:inset(0 0 0 0);transition:clip-path 1s cubic-bezier(.75,0,.2,1)}#boot.done{clip-path:inset(0 0 100% 0)}#boot .l{opacity:0;transform:translateY(6px);animation:bootline .35s forwards}@keyframes bootline{to{opacity:1;transform:none}}#boot .pct{color:#2ac3de;font-size:34px;margin-top:26px;letter-spacing:-.02em}#boot .track{height:2px;background:#141a26;margin-top:14px;max-width:420px;overflow:hidden}#boot .track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2ac3de,#bb9af7)}.rail{position:fixed;left:0;top:0;bottom:0;width:var(--rail);z-index:57;background:linear-gradient(180deg,#0a0d14e6,#05070ceb);backdrop-filter:blur(14px);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:34px 26px 26px}.rail:before{content:"";position:absolute;right:-1px;top:0;width:2px;height:var(--progress, 0%);background:linear-gradient(180deg,var(--accent),var(--accent2));box-shadow:0 0 16px var(--glow)}.logo{font-family:var(--mono);font-size:19px;color:var(--bright);text-decoration:none;white-space:nowrap}.logo .tilde{color:var(--accent)}.logo .caret{display:inline-block;width:8px;height:17px;background:var(--accent);vertical-align:-2px;margin-left:3px;animation:blink 1.05s steps(1) infinite}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.role{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:10px;white-space:nowrap}nav{margin-top:46px;display:flex;flex-direction:column;gap:2px}nav a{position:relative;display:flex;align-items:center;gap:12px;overflow:hidden;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;text-decoration:none;color:var(--muted);padding:11px 12px;border-radius:6px;transition:color .22s,transform .3s cubic-bezier(.2,.8,.2,1)}nav a .n{font-size:10px;color:#4a5470;transition:color .22s}nav a .fill{position:absolute;inset:0;z-index:-1;background:hsl(var(--hue) 80% 60% / .1);transform:translate(-101%);transition:transform .38s cubic-bezier(.2,.8,.2,1)}nav a:before{content:"";position:absolute;left:0;top:50%;translate:0 -50%;width:2px;height:0;background:var(--accent);transition:height .3s cubic-bezier(.2,.8,.2,1)}nav a:hover{color:var(--bright);transform:translate(6px)}nav a:hover .fill{transform:none}nav a.on{color:var(--bright)}nav a.on .fill{transform:none}nav a.on:before{height:62%}nav a.on .n{color:var(--accent)}.rail-foot{margin-top:auto;font-family:var(--mono);font-size:11px;color:var(--muted)}.pctread{font-size:26px;color:var(--bright);letter-spacing:-.02em;margin-bottom:6px}.pctread s{text-decoration:none;color:var(--accent);font-size:13px}.status{display:flex;align-items:center;gap:8px;margin:14px 0}.dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 2.1s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 #9ece6a8c}70%{box-shadow:0 0 0 10px #9ece6a00}to{box-shadow:0 0 #9ece6a00}}.socials{display:flex;align-items:center;gap:6px}.socials .snd{margin-left:auto;background:transparent;border:1px solid transparent;padding:0;cursor:none}.socials .snd .off,.socials .snd.off .on{display:none}.socials .snd.off .off{display:block}.socials .snd.off{color:#4a5470}.socials a,.socials .snd{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;border:1px solid transparent;text-decoration:none;color:var(--muted);transition:color .2s,transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s,background .25s}.socials a:hover,.socials .snd:hover{color:var(--accent);transform:translateY(-3px);border-color:hsl(var(--hue) 80% 60% / .3);background:hsl(var(--hue) 80% 55% / .08)}.socials svg{display:block}main{margin-left:var(--rail);position:relative;z-index:2}.sec{padding:130px var(--pad);position:relative;max-width:1180px}.sec-head{margin-bottom:66px;will-change:transform}.overline{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:12px;margin-bottom:14px}.overline:after{content:"";height:1px;width:0;background:linear-gradient(90deg,var(--accent),transparent);transition:width 1.1s cubic-bezier(.2,.8,.2,1) .2s}.in .overline:after{width:220px}.sec-head h2{font-size:clamp(2.2rem,4.8vw,3.7rem);line-height:1.02;letter-spacing:-.04em;font-weight:650;color:var(--bright)}.sec-head h2 .dim{color:var(--muted);font-weight:400}.glitch{position:relative;display:inline-block}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;white-space:nowrap;opacity:0;pointer-events:none;mix-blend-mode:screen}.glitch:before{color:#ff2e63}.glitch:after{color:#12f7ff}.glitch.g:before{animation:gl1 .5s steps(2,end) 3}.glitch.g:after{animation:gl2 .5s steps(2,end) 3}.glitch:hover:before{animation:gl1 .42s steps(2,end) infinite}.glitch:hover:after{animation:gl2 .42s steps(2,end) infinite}@keyframes gl1{0%{opacity:.9;clip-path:inset(8% 0 74% 0);transform:translate(-5px,-1px)}25%{clip-path:inset(58% 0 20% 0);transform:translate(4px,1px)}50%{clip-path:inset(32% 0 46% 0);transform:translate(-4px,2px)}75%{clip-path:inset(78% 0 6% 0);transform:translate(5px,-2px)}to{opacity:0;clip-path:inset(0 0 100% 0);transform:none}}@keyframes gl2{0%{opacity:.9;clip-path:inset(66% 0 12% 0);transform:translate(5px,2px)}25%{clip-path:inset(18% 0 62% 0);transform:translate(-4px,-2px)}50%{clip-path:inset(48% 0 30% 0);transform:translate(4px,-1px)}75%{clip-path:inset(4% 0 84% 0);transform:translate(-5px,1px)}to{opacity:0;clip-path:inset(0 0 100% 0);transform:none}}.rv{opacity:0;transform:translateY(34px);filter:blur(6px);transition:opacity .85s cubic-bezier(.2,.8,.2,1),transform .85s cubic-bezier(.2,.8,.2,1),filter .85s}.in .rv,.rv.in{opacity:1;transform:none;filter:none}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 var(--pad);position:relative;max-width:none}.hero-inner{max-width:960px}.prompt{font-family:var(--mono);font-size:13px;color:var(--muted);margin-bottom:26px}.prompt .sym{color:var(--green)}h1{font-size:clamp(3rem,9vw,7.2rem);line-height:.9;letter-spacing:-.055em;font-weight:680;color:var(--bright);margin-bottom:26px}h1 .ln{display:block;overflow:hidden;padding-bottom:.06em}h1.landed .ln{overflow:visible}h1 .ch{display:inline-block;transform:translateY(120%) rotate(7deg) scale(1.12);filter:blur(10px);opacity:0;animation:rise 1.05s cubic-bezier(.16,1,.3,1) forwards;animation-delay:var(--d, 0s)}@keyframes rise{0%{transform:translateY(120%) rotate(7deg) scale(1.12);filter:blur(10px);opacity:0}55%{filter:blur(0);opacity:1}to{transform:none;filter:blur(0);opacity:1}}h1 .chi{display:inline-block;will-change:transform;transform:translate3d(0,var(--lift, 0px),0) scale(var(--sc, 1));background-size:280% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;background-image:linear-gradient(100deg,#b9c6e6 0 34%,#fff 50%,#b9c6e6 66% 100%);animation:shine 5s ease-in-out infinite;animation-delay:calc(var(--i, 0) * 60ms);filter:drop-shadow(0 0 calc(var(--g, 0) * 26px) hsl(var(--hue) 95% 70% / var(--g, 0)))}h1 .accent .chi{background-image:linear-gradient(100deg,var(--accent) 0 34%,#ffffff 50%,var(--accent2) 66% 100%)}@keyframes shine{0%,62%{background-position:100% 0;text-shadow:none}80%{text-shadow:0 0 24px hsl(var(--hue) 95% 72% / .65)}95%,to{background-position:0 0;text-shadow:none}}h1 .ln{position:relative}h1 .ln:before,h1 .ln:after{content:attr(data-t);position:absolute;left:0;top:0;width:100%;white-space:nowrap;opacity:0;pointer-events:none;mix-blend-mode:screen}h1 .ln:before{color:#ff2e63}h1 .ln:after{color:#12f7ff}h1 .ln.g:before{animation:gl1 .45s steps(2,end) 2}h1 .ln.g:after{animation:gl2 .45s steps(2,end) 2}@supports not ((-webkit-background-clip: text) or (background-clip: text)){h1 .chi{background-image:none;color:var(--bright)}h1 .accent .chi{color:var(--accent)}.hero .fa .wi{background-image:none;color:var(--muted)}}.hero .fa{display:inline-block;font-family:var(--fa);font-size:clamp(.95rem,1.7vw,1.25rem);font-weight:400;line-height:1.9;color:var(--muted);margin:-10px 0 28px;transition:opacity .55s ease,filter .55s ease,transform .55s ease,visibility 0s linear .55s}.hero .fa.gone{opacity:0;filter:blur(7px);transform:translate(16px);visibility:hidden}.hero .fa .w{display:inline-block;opacity:0;animation:faWordIn .95s cubic-bezier(.16,1,.3,1) forwards;animation-delay:var(--d, 0s)}@keyframes faWordIn{0%{opacity:0;transform:translate(22px);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}.hero .fa .wi{display:inline-block;will-change:transform;transform:translate3d(0,var(--lift, 0px),0);background-size:280% 100%;background-position:100% 0;background-image:linear-gradient(100deg,#5d6785 0 34%,#e2e9fa 50%,#5d6785 66% 100%);-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 5s ease-in-out infinite;animation-delay:calc(.9s + var(--i, 0) * .2s);filter:drop-shadow(0 0 calc(var(--g, 0) * 18px) hsl(var(--hue) 92% 72% / calc(var(--g, 0) * .8)))}.typer{font-family:var(--mono);font-size:clamp(1rem,2vw,1.35rem);margin-bottom:8px;height:1.6em}.typer .fn{color:#7aa2f7}.tear{animation:tear .5s steps(2,end) infinite}@keyframes tear{0%{transform:none;text-shadow:none;clip-path:none}15%{transform:translate(-6px,1px);text-shadow:-4px 0 #ff2e63,4px 0 #12f7ff;clip-path:inset(0 0 58% 0)}32%{transform:translate(5px,-1px);clip-path:inset(46% 0 20% 0)}50%{transform:translate(-4px);clip-path:inset(18% 0 44% 0)}68%{transform:translate(6px,1px);clip-path:inset(66% 0 4% 0)}84%{transform:translate(-2px);text-shadow:-2px 0 #ff2e63,2px 0 #12f7ff;clip-path:none}to{transform:none;text-shadow:none;clip-path:none}}.typer .kw{color:var(--purple)}.typer .str{color:var(--green)}.typer .cur{display:inline-block;width:9px;height:1.05em;background:var(--accent);vertical-align:-3px;animation:blink 1s steps(1) infinite}.cta{display:flex;gap:14px;flex-wrap:wrap}.btn{font-family:var(--mono);font-size:13px;text-decoration:none;padding:14px 26px;border-radius:7px;border:1px solid var(--line);color:var(--text);background:var(--panel2);position:relative;overflow:hidden;display:inline-block;will-change:transform;cursor:none;transition:color .2s,border-color .3s,box-shadow .35s}.btn span{position:relative;z-index:2}.btn:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,var(--accent),var(--accent2));transform:translateY(115%) skewY(4deg);transition:transform .42s cubic-bezier(.16,1,.3,1)}.btn:hover{color:#05080d;border-color:transparent;box-shadow:0 14px 40px -12px var(--glow)}.btn:hover:before{transform:none}.btn.solid{background:transparent;border-color:hsl(var(--hue) 80% 60% / .4);color:var(--accent)}.scroll-cue{position:absolute;bottom:40px;left:var(--pad);font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:var(--muted);display:flex;align-items:center;gap:12px}.scroll-cue .bar{width:48px;height:1px;background:var(--line);position:relative;overflow:hidden}.scroll-cue .bar:after{content:"";position:absolute;inset:0;background:var(--accent);animation:sweep 1.9s cubic-bezier(.6,0,.4,1) infinite}@keyframes sweep{0%{transform:translate(-100%)}60%,to{transform:translate(100%)}}.ticker{position:relative;z-index:2;overflow:hidden;border-block:1px solid var(--line);background:#070a11b3;backdrop-filter:blur(6px);padding:16px 0}.ticker .run{display:flex;gap:44px;width:max-content;animation:run 26s linear infinite}.ticker span{font-family:var(--mono);font-size:13px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;white-space:nowrap;transition:color .2s}.ticker span b{color:var(--accent);font-weight:400}.ticker:hover .run{animation-play-state:paused}.ticker:hover span{color:var(--text)}@keyframes run{to{transform:translate(-50%)}}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}.about p{margin-bottom:18px;max-width:52ch}.about p .hl{color:var(--bright)}.meta{margin-top:34px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr}.meta div{padding:14px 0;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12.5px;transition:padding-left .25s,color .25s}.meta div:hover{padding-left:10px;color:var(--bright)}.meta k{color:var(--muted);display:block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:5px}.f{color:hsl(var(--hue) 75% 68%)}.about-side{display:flex;flex-direction:column;gap:22px}.portrait{position:relative}.portrait:before{content:"";position:absolute;inset:44px 0 0;border-radius:16px;border:1px solid var(--line);background:radial-gradient(58% 52% at 50% 24%,hsl(var(--hue) 85% 58% / .32),transparent 72%),repeating-linear-gradient(180deg,rgb(0 0 0 / .13) 0 2px,transparent 2px 4px),linear-gradient(180deg,#212a3eeb,#0f141ff5);box-shadow:0 34px 90px -55px #000,inset 0 1px #ffffff0f;transition:border-color .4s}.portrait:after{content:"";position:absolute;left:12%;right:12%;bottom:54px;height:1px;background:linear-gradient(90deg,transparent,hsl(var(--hue) 90% 62% / .5),transparent);box-shadow:0 0 20px var(--glow)}.portrait img{position:relative;z-index:2;display:block;width:100%;height:auto;filter:grayscale(1) contrast(1.1) brightness(.98) drop-shadow(0 24px 34px rgb(0 0 0 / .55));animation:portraitFloat 8s ease-in-out infinite;transition:filter .5s}@keyframes portraitFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.portrait figcaption{position:absolute;left:18px;bottom:16px;z-index:3;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);background:hsl(var(--hue) 80% 50% / .12);border:1px solid hsl(var(--hue) 80% 60% / .3);border-radius:20px;padding:5px 12px;backdrop-filter:blur(6px)}.portrait:hover img{filter:grayscale(.2) contrast(1.12) brightness(1.05) drop-shadow(0 24px 40px hsl(var(--hue) 90% 30% / .6));animation-play-state:paused}.portrait:hover:before{border-color:hsl(var(--hue) 80% 60% / .4)}.skills-intro{color:var(--muted);max-width:58ch;margin-bottom:46px}.skill-groups{border-top:1px solid var(--line)}.skill-group{position:relative;display:grid;grid-template-columns:220px 1fr;gap:28px;padding:24px 4px;border-bottom:1px solid var(--line)}.skill-group:after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:linear-gradient(90deg,var(--accent),transparent);transition:width .7s cubic-bezier(.2,.8,.2,1)}.skill-group:hover:after{width:100%}.sg-head{display:flex;align-items:baseline;gap:10px;font-family:var(--mono)}.sg-head .idx{font-size:10px;color:var(--accent)}.sg-head h3{font-size:12.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--bright)}.sg-head .count{margin-left:auto;font-size:10px;color:#3f4864}.sg-items{display:flex;flex-wrap:wrap;gap:9px;align-content:start}.chip{font-family:var(--mono);font-size:11.5px;color:var(--muted);border:1px solid var(--line);background:var(--panel);padding:7px 13px;border-radius:20px;cursor:none;transition:.28s cubic-bezier(.2,.8,.2,1)}.chip:hover{color:#05080d;background:var(--accent);border-color:transparent;transform:translateY(-4px) scale(1.06);box-shadow:0 10px 26px -10px var(--glow)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;perspective:1200px}.card{position:relative;background:var(--panel);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:13px;padding:28px 24px 30px;overflow:hidden;transform-style:preserve-3d;will-change:transform;transition:border-color .35s,box-shadow .35s,transform .12s linear}.card:before{content:"";position:absolute;inset:0;opacity:0;transition:opacity .3s;background:radial-gradient(360px circle at var(--mx, 50%) var(--my, 50%),hsl(var(--hue) 85% 60% / .16),transparent 62%)}.card:after{content:"";position:absolute;inset:-1px;border-radius:13px;padding:1px;opacity:0;background:conic-gradient(from var(--a, 0deg),transparent 55%,var(--accent),transparent 85%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;transition:opacity .3s}.card:hover{border-color:transparent;box-shadow:0 30px 70px -40px var(--glow)}.card:hover:before{opacity:1}.card:hover:after{opacity:1;animation:spin 3s linear infinite}@keyframes spin{to{--a: 360deg}}.card .ic{font-family:var(--mono);font-size:13px;color:var(--accent);width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:hsl(var(--hue) 80% 60% / .1);border:1px solid hsl(var(--hue) 80% 60% / .22);margin-bottom:18px;transition:transform .4s cubic-bezier(.16,1,.3,1)}.card:hover .ic{transform:translateZ(30px) rotate(-8deg) scale(1.1)}.card h3{font-size:1.03rem;font-weight:600;color:var(--bright);margin-bottom:9px}.card p{font-size:.9rem;color:var(--muted);line-height:1.6}.hsec{height:280vh;padding:0;max-width:none;position:relative}.hpin{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:38px;padding-left:var(--pad)}.hpin .sec-head{margin-bottom:0}.htrack{display:flex;gap:22px;will-change:transform}.pcard{flex:none;width:340px;height:392px;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel);backdrop-filter:blur(10px);padding:26px;display:flex;flex-direction:column;text-decoration:none;cursor:none;transition:border-color .35s,transform .45s cubic-bezier(.16,1,.3,1),box-shadow .35s}.pcard:before{content:"";position:absolute;inset:0;opacity:.5;transition:opacity .4s,transform .8s;background:linear-gradient(150deg,hsl(var(--hue) 70% 18%),transparent 60%)}.pcard:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgb(0 0 0 / .16) 0 2px,transparent 2px 4px)}.pcard>*{position:relative;z-index:2}.pcard:hover{transform:translateY(-10px);border-color:hsl(var(--hue) 80% 60% / .45);box-shadow:0 40px 80px -40px var(--glow)}.pcard:hover:before{opacity:1;transform:scale(1.1)}.pcard .num{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--accent)}.pcard h3{font-size:1.55rem;font-weight:600;color:var(--bright);letter-spacing:-.025em;margin:auto 0 12px}.pcard p{font-size:.9rem;color:var(--muted);line-height:1.6;margin-bottom:20px}.pcard .foot{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px}.pcard .foot em{font-style:normal;color:var(--accent);transition:transform .3s}.pcard:hover .foot em{transform:translate(6px)}.pcard.end{background:transparent;border-style:dashed;justify-content:center;align-items:flex-start}.pcard.end h3{margin:0 0 14px}.pcard p .hl{color:var(--text)}.hfoot{display:flex;align-items:center;gap:18px;width:calc(100% - var(--pad) * 2)}.hlabel{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.hbar{height:2px;background:var(--line);flex:1;position:relative;overflow:hidden}.hbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));box-shadow:0 0 12px var(--glow)}.hnote{color:var(--muted);max-width:62ch;margin-top:-22px;font-size:.95rem}.pcard.unlinked{cursor:default}.pcard.unlinked:hover{transform:none}.pcard .foot em.private{color:var(--muted);font-style:normal;letter-spacing:.14em;text-transform:uppercase;font-size:9.5px}.pcard:hover .foot em.private{transform:none}.contact-lead{color:var(--muted);max-width:58ch;margin-bottom:46px}.cinfo{border-top:1px solid var(--line)}.cinfo a{position:relative;display:flex;align-items:center;gap:16px;text-decoration:none;padding:22px 4px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:14.5px;color:var(--text);transition:padding-left .35s cubic-bezier(.2,.8,.2,1),color .28s}.cinfo a:after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:linear-gradient(90deg,var(--accent),transparent);transition:width .7s cubic-bezier(.2,.8,.2,1)}.cinfo a:hover:after{width:100%}.cinfo a k{color:var(--muted);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;width:86px;flex:none;transition:color .25s}.cinfo a .val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cinfo a em{font-style:normal;color:var(--accent);opacity:0;transition:opacity .28s,transform .28s}.cinfo a svg{flex:none;color:var(--muted);transition:color .25s}.cinfo a:hover{color:var(--accent);padding-left:14px}.cinfo a:hover svg,.cinfo a:hover k{color:var(--accent)}.cinfo a:hover em{opacity:1;transform:translate(4px)}@media(max-width:620px){.cinfo a{flex-wrap:wrap;gap:8px 12px;padding:18px 4px}.cinfo a k{width:auto}.cinfo a .val{flex-basis:100%}.cinfo a em{display:none}}footer{margin-left:var(--rail);padding:36px var(--pad);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;position:relative;z-index:57;font-family:var(--mono);font-size:12px;color:#7f8aa6;background:#070a11f0;backdrop-filter:blur(10px)}footer a{text-decoration:none;transition:color .2s}footer a:hover{color:var(--accent)}@media(max-width:1080px){.cards{grid-template-columns:repeat(2,1fr)}.about-grid{grid-template-columns:1fr;gap:40px}.skill-group{grid-template-columns:160px 1fr;gap:18px}}@media(max-width:820px){:root{--rail: 0px;--pad: 24px}body{cursor:auto}.cur-dot,.cur-ring{display:none}.rail{position:sticky;top:0;width:100%;height:auto;flex-direction:row;align-items:center;gap:12px;padding:8px 14px;border-right:none;border-bottom:1px solid var(--line);background:#070a11eb;backdrop-filter:blur(12px)}.rail:before{inset:auto auto -1px 0;width:var(--progress, 0%);height:2px}.logo{font-size:16px}.rail .role,.rail-foot{display:none}nav{margin:0 0 0 auto;flex-direction:row;gap:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}nav::-webkit-scrollbar{display:none}nav a{flex:none;white-space:nowrap;padding:10px 9px;font-size:11px}nav a:hover{transform:none}nav a .n{display:none}nav a:before{inset:auto 10px 3px;width:auto;height:0!important;translate:0}nav a.on:before{height:2px!important}main,footer{margin-left:0}.sec{padding-top:86px;padding-bottom:86px}.overline{white-space:nowrap}.in .overline:after{width:56px}.typer{font-size:.9rem;height:auto;min-height:3.2em;line-height:1.6}.cards{grid-template-columns:1fr}.skill-group{grid-template-columns:1fr;gap:14px}.hsec{height:auto;padding:86px 0}.hpin{position:static;height:auto;padding-left:var(--pad);gap:26px}.htrack{overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;transform:none!important}.pcard{scroll-snap-align:start;width:80vw;max-width:320px}.hbar{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.rv{opacity:1;transform:none;filter:none}h1 .ch{transform:none}.code{clip-path:none}body{cursor:auto}.cur-dot,.cur-ring{display:none}}
