:root,[data-theme=dark]{--bg: #060812;--navy: #0D0F1E;--panel: #0F1225;--screen: #060C1A;--violet: #5757FF;--cyan: #03CBF9;--orange: #FF962E;--coral: #FF5A5A;--green: #3BE287;--amber: #FFB020;--white: #F0F0FF;--dim: rgba(240,240,255,.45);--border: rgba(87,87,255,.18);--text: #F0F0FF;--text-muted: rgba(240,240,255,.45);--text-faint: rgba(240,240,255,.25);--card-bg: #0F1225;--card-hover: rgba(87,87,255,.06);--tag-bg: rgba(87,87,255,.1);--tag-border: rgba(87,87,255,.2);--overlay: rgba(0,0,0,.7);--divider-glow: var(--violet);--stats-bg: #5757FF;--stats-text: #FFFFFF;--stats-dim: rgba(255,255,255,.6);--stats-border: rgba(255,255,255,.2)}[data-theme=light]{--bg: #F5F5FA;--navy: #EAEAF2;--panel: #FFFFFF;--screen: #E8E8F0;--violet: #5757FF;--cyan: #0888B0;--orange: #D06A10;--coral: #D03030;--green: #239956;--amber: #B87A08;--white: #1A1A2E;--dim: rgba(26,26,46,.6);--border: rgba(87,87,255,.18);--text: #1A1A2E;--text-muted: rgba(26,26,46,.6);--text-faint: rgba(26,26,46,.35);--card-bg: #FFFFFF;--card-hover: rgba(87,87,255,.05);--tag-bg: rgba(87,87,255,.08);--tag-border: rgba(87,87,255,.18);--overlay: rgba(255,255,255,.8);--divider-glow: var(--violet);--stats-bg: #5757FF;--stats-text: #FFFFFF;--stats-dim: rgba(255,255,255,.7);--stats-border: rgba(255,255,255,.25)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:DM Sans,sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;transition:background .3s,color .3s}[data-theme=dark] body{cursor:none}[data-theme=light] body{cursor:auto}[data-theme=dark] body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.025) 2px,rgba(0,0,0,.025) 4px);pointer-events:none;z-index:9990}[data-theme=dark] body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9985;opacity:.3;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");animation:grain .8s steps(1) infinite}@keyframes grain{0%,to{transform:translate(0)}10%{transform:translate(-2%,-3%)}20%{transform:translate(3%,2%)}30%{transform:translate(-1%,4%)}40%{transform:translate(2%,-1%)}50%{transform:translate(-3%,3%)}60%{transform:translate(4%,-2%)}70%{transform:translate(-2%,1%)}80%{transform:translate(3%,-3%)}90%{transform:translate(-1%,2%)}}[data-theme=light] #cursor,[data-theme=light] #cursor-ring{display:none!important}.divider{height:2px;background:linear-gradient(90deg,transparent,var(--violet),transparent);margin:0 3rem;position:relative;overflow:hidden}.divider:after{content:"";position:absolute;top:0;left:-5%;width:5%;height:100%;background:var(--violet);box-shadow:0 0 12px var(--violet),0 0 4px var(--violet);animation:scan 4s linear infinite}@keyframes scan{to{left:105%}}[data-theme=light] .divider{height:2px;background:linear-gradient(90deg,transparent,rgba(87,87,255,.4),transparent)}[data-theme=light] .divider:after{box-shadow:0 0 16px var(--violet),0 0 6px var(--violet)}.btn-clip{clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%)}.reveal{opacity:0;transform:translateY(32px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}.reveal-l{opacity:0;transform:translate(-40px);transition:opacity .7s ease,transform .7s ease}.reveal-l.visible{opacity:1;transform:none}[data-theme=light] .proj-card{box-shadow:0 1px 4px #0000000f}[data-theme=light] .proj-card:hover{box-shadow:0 4px 20px #5757ff1f!important}[data-theme=light] .exp-card{box-shadow:0 1px 3px #0000000a}[data-theme=light] .nav.stuck{background:#f5f5faeb!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.form-field input:focus~label,.form-field input:not(:placeholder-shown)~label,.form-field textarea:focus~label,.form-field textarea:not(:placeholder-shown)~label{top:-.8rem;font-size:.5rem;color:var(--violet)}.btn-clip{transition:opacity .2s,transform .2s,background .2s}.btn-clip:hover{opacity:.85;transform:translateY(-1px)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--violet);border-radius:2px}
