@font-face{font-family:Bebas Neue;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2039e8342bda6056-s.0h2amv7e1wlhq.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bebas Neue;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fabcf92ba1ccea36-s.p.0lwj123ije5i..woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bebas Neue Fallback;src:local(Arial);ascent-override:117.32%;descent-override:39.11%;line-gap-override:0.0%;size-adjust:76.72%}.bebas_neue_7af210d2-module__mKzL6q__className{font-family:Bebas Neue,Bebas Neue Fallback;font-style:normal;font-weight:400}.bebas_neue_7af210d2-module__mKzL6q__variable{--font-bebas:"Bebas Neue", "Bebas Neue Fallback"}
@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_efc253b3-module__w1i8Da__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_efc253b3-module__w1i8Da__variable{--font-dm-sans:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:DM Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/ba8e772932784a28-s.0ikzyuq3itqgg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:300;font-display:swap;src:url(../media/7546fe8f902b88b8-s.p.0ezg~kdx4q-_h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b12e986493c137cf-s.0unhoe1q6hp6-.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/36363bfb06833f56-s.p.0-pny06~-x26a.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b2fa3ef4ca165ab4-s.0cnogfwvi2_o-.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a73419dd2ba2d841-s.p.0x-0vqtj_fzf1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono Fallback;src:local(Arial);ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.0%;size-adjust:134.59%}.dm_mono_e5abb08a-module__iCfcmG__className{font-family:DM Mono,DM Mono Fallback;font-style:normal}.dm_mono_e5abb08a-module__iCfcmG__variable{--font-dm-mono:"DM Mono", "DM Mono Fallback"}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--ink:#0b0b0f;--ink2:#101015;--ink3:#17171e;--ink4:#1e1e27;--glass:#ffffff08;--edge:#ffffff12;--edge2:#ffffff1f;--neon:#d4ff1e;--hot:#ff5757;--ice:#38bdf8;--react:#61dafb;--text:#e0e0ed;--dim:#919194;--dim2:#b7b7b9;--sp1:.25rem;--sp2:.5rem;--sp3:.75rem;--sp4:1rem;--sp5:1.25rem;--sp6:1.5rem;--sp8:2rem;--sp10:2.5rem;--sp12:3rem;--sp16:4rem;--sp20:5rem;--sp24:6rem;--px:clamp(1.25rem, 5vw, 5rem);--section-py:clamp(3.5rem, 8vw, 7rem)}html{scroll-behavior:smooth;font-size:16px}body{background:var(--ink);color:var(--text);font-family:var(--font-dm-sans);cursor:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}#dot{background:var(--neon);pointer-events:none;z-index:9999;border-radius:50%;width:6px;height:6px;transition:width .12s,height .12s,background .15s;position:fixed;transform:translate(-50%,-50%)}#ring{pointer-events:none;z-index:9998;border:1px solid #d4ff1e61;border-radius:50%;width:28px;height:28px;transition:width .22s,height .22s,opacity .2s;position:fixed;transform:translate(-50%,-50%)}#dot.on{width:14px;height:14px}#ring.on{opacity:.22;width:46px;height:46px}@media (hover:none){body{cursor:auto}#dot,#ring{display:none}}body:before{content:"";pointer-events:none;z-index:998;opacity:.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.03'/%3E%3C/svg%3E");position:fixed;inset:0}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--ink2)}::-webkit-scrollbar-thumb{background:var(--dim2);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--neon)}nav{z-index:100;padding:1rem var(--px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--edge);background:#0b0b0fe0;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:fixed;top:0;left:0;right:0}.logo{font-family:var(--font-dm-mono);color:var(--neon);letter-spacing:.06em;white-space:nowrap;flex-shrink:0;font-size:clamp(.72rem,1.5vw,.85rem);text-decoration:none}.logo b{color:var(--dim);font-weight:400}.navlinks{gap:clamp(1rem,2.5vw,2.2rem);list-style:none;display:flex}.navlinks a{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.14em;text-transform:uppercase;font-size:clamp(.6rem,1.1vw,.68rem);text-decoration:none;transition:color .2s}.navlinks a:hover{color:var(--neon)}.nav-hire{font-family:var(--font-dm-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--neon);color:var(--neon);white-space:nowrap;border-radius:2px;flex-shrink:0;padding:.5rem 1.2rem;font-size:clamp(.6rem,1.1vw,.68rem);text-decoration:none;transition:background .22s,color .22s}.nav-hire:hover{background:var(--neon);color:var(--ink)}.nav-burger{cursor:pointer;background:0 0;border:none;flex-direction:column;flex-shrink:0;gap:5px;padding:4px;display:none}.nav-burger span{background:var(--text);border-radius:2px;width:22px;height:1.5px;transition:transform .3s,opacity .3s;display:block}.nav-burger.open span:first-child{transform:translateY(6.5px)rotate(45deg)}.nav-burger.open span:nth-child(2){opacity:0}.nav-burger.open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.mobile-menu{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--edge);padding:1.5rem var(--px) 2rem;z-index:99;background:#0b0b0ff7;flex-direction:column;gap:1.5rem;display:none;position:fixed;top:57px;left:0;right:0}.mobile-menu.open{display:flex}.mobile-menu a{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.12em;text-transform:uppercase;font-size:.9rem;text-decoration:none;transition:color .2s}.mobile-menu a:hover,.mobile-menu a:focus{color:var(--neon)}.mobile-menu .mob-hire{border:1px solid var(--neon);color:var(--neon);border-radius:2px;align-self:flex-start;margin-top:.5rem;padding:.7rem 1.8rem}@media (max-width:767px){.navlinks,.nav-hire{display:none}.nav-burger{display:flex}}@media (max-width:479px){.logo{font-size:.72rem}}#hero{min-height:100svh;padding:0 var(--px) clamp(3rem, 6vw, 5rem);grid-template-rows:1fr auto;grid-template-columns:1fr 340px;align-items:end;gap:0 clamp(2rem,4vw,4rem);padding-top:80px;display:grid;position:relative;overflow:hidden}.hero-mesh{pointer-events:none;background:radial-gradient(55% 55% at 68% 35%,#d4ff1e14 0%,#0000 65%),radial-gradient(35% 45% at 12% 72%,#38bdf812 0%,#0000 60%),radial-gradient(25% 30% at 88% 88%,#ff57570d 0%,#0000 60%);position:absolute;inset:0}.hero-ticker{background:linear-gradient(90deg, transparent, var(--neon), transparent);height:2px;animation:5s ease-in-out infinite sweep;position:absolute;top:0;left:0;right:0}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.hero-l{grid-area:1/1;align-self:end;padding-bottom:0;position:relative}.hero-eyebrow{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.18em;text-transform:uppercase;opacity:0;flex-wrap:wrap;align-items:center;gap:.6rem .9rem;margin-bottom:clamp(.8rem,1.5vw,1.2rem);font-size:clamp(.6rem,1.2vw,.72rem);animation:.6s .1s forwards fadeup;display:flex}.hero-eyebrow:before{content:"";background:var(--neon);width:22px;height:1px}.avail-dot{background:#22c55e;border-radius:50%;width:6px;height:6px;animation:2s infinite blink;box-shadow:0 0 8px #22c55e}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}.hero-name{font-family:var(--font-bebas);letter-spacing:.01em;opacity:0;margin-bottom:clamp(1.2rem,2.5vw,2rem);font-size:clamp(4rem,12vw,11rem);line-height:.88;animation:.7s .2s forwards fadeup}.hero-name .ghost{color:#0000;-webkit-text-stroke:1.5px #d4ff1e52}.hero-name .accent{color:var(--neon)}.hero-bio{color:var(--dim);opacity:0;max-width:500px;margin-bottom:clamp(1.5rem,3vw,2.5rem);font-size:clamp(.85rem,1.5vw,1rem);line-height:1.8;animation:.7s .35s forwards fadeup}.hero-bio strong{color:var(--text);font-weight:500}.hero-actions{opacity:0;flex-wrap:wrap;gap:.7rem;animation:.7s .5s forwards fadeup;display:flex}.hero-r{background:var(--edge);opacity:0;flex-direction:column;grid-area:1/2/3;align-self:end;gap:1px;animation:.7s .62s forwards fadeup;display:flex}.stat-block{background:var(--ink);flex-direction:column;gap:.3rem;padding:clamp(1rem,2vw,1.6rem) clamp(1.2rem,2.5vw,2rem);transition:background .25s;display:flex}.stat-block:hover{background:var(--ink3)}.stat-n{font-family:var(--font-bebas);color:var(--neon);font-size:clamp(1.8rem,3vw,2.8rem);line-height:1}.stat-l{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.12em;text-transform:uppercase;font-size:clamp(.55rem,.9vw,.62rem)}.hero-scroll{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.2em;text-transform:uppercase;writing-mode:vertical-rl;right:calc(var(--px) - 1rem);opacity:0;align-items:center;gap:.6rem;font-size:.58rem;animation:.6s 1s forwards fadeup;display:flex;position:absolute;bottom:clamp(2rem,4vw,3rem)}.hero-scroll:after{content:"";background:linear-gradient(to bottom, var(--neon), transparent);width:1px;height:45px}@keyframes fadeup{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1023px){#hero{grid-template-rows:auto auto;grid-template-columns:1fr;align-items:start;padding-bottom:clamp(2.5rem,5vw,4rem)}.hero-l{grid-area:1/1}.hero-r{flex-flow:wrap;grid-area:2/1;margin-top:clamp(2rem,4vw,3rem)}.stat-block{flex:calc(50% - 1px);min-width:120px}.hero-scroll{display:none}}@media (max-width:479px){.hero-r{flex-direction:row}.stat-block{flex:calc(50% - 1px)}}section{padding:var(--section-py) var(--px)}.tag{font-family:var(--font-dm-mono);color:var(--neon);letter-spacing:.22em;text-transform:uppercase;align-items:center;gap:.6rem;margin-bottom:.7rem;font-size:clamp(.58rem,1vw,.65rem);display:inline-flex}.tag:before{content:attr(data-i);color:#d4ff1e38;font-size:.9rem}.sec-h{font-family:var(--font-bebas);letter-spacing:.02em;margin-bottom:clamp(2.5rem,5vw,4rem);font-size:clamp(2.2rem,5.5vw,4.5rem);line-height:.95}.rv{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(22px)}.rv2{opacity:0;transition:opacity .7s .13s,transform .7s .13s;transform:translateY(22px)}.rv3{opacity:0;transition:opacity .7s .26s,transform .7s .26s;transform:translateY(22px)}.rv.on,.rv2.on,.rv3.on{opacity:1;transform:none}.btn{font-family:var(--font-dm-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;border-radius:2px;align-items:center;gap:.45rem;padding:.8rem clamp(1.2rem,2.5vw,2rem);font-size:clamp(.62rem,1.1vw,.7rem);text-decoration:none;transition:all .22s;display:inline-flex}.btn-solid{background:var(--neon);color:var(--ink);font-weight:700}.btn-solid:hover{background:#fff;transform:translateY(-2px)}.btn-line{border:1px solid var(--edge2);color:var(--dim)}.btn-line:hover{border-color:var(--neon);color:var(--neon);transform:translateY(-2px)}#about{background:var(--ink2)}.about-grid{grid-template-columns:1.2fr 1fr;align-items:start;gap:clamp(2.5rem,5vw,5rem);max-width:1200px;display:grid}.about-text p{color:var(--dim);margin-bottom:1.1rem;font-size:clamp(.85rem,1.4vw,.95rem);line-height:1.9}.about-text p strong{color:var(--text);font-weight:500}.about-text p a{color:var(--neon);text-decoration:none}.about-text p a:hover{text-decoration:underline}.stack-cloud{flex-wrap:wrap;gap:.45rem;margin-top:1.5rem;display:flex}.stack-pill{font-family:var(--font-dm-mono);border:1px solid var(--edge);color:var(--dim);letter-spacing:.05em;border-radius:999px;padding:.28rem .75rem;font-size:clamp(.58rem,.9vw,.65rem);transition:border-color .2s,color .2s}.stack-pill:hover{border-color:var(--neon);color:var(--neon)}.about-cards{background:var(--edge);flex-direction:column;gap:1px;display:flex}.acard{background:var(--ink2);padding:clamp(1rem,1.8vw,1.4rem) clamp(1.2rem,2vw,1.8rem);transition:background .25s;position:relative;overflow:hidden}.acard:hover{background:var(--ink3)}.acard:after{content:"";background:var(--neon);transform-origin:bottom;width:2px;transition:transform .3s;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.acard:hover:after{transform:scaleY(1)}.acard-label{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.32rem;font-size:clamp(.55rem,.9vw,.6rem)}.acard-val{color:var(--text);font-size:clamp(.85rem,1.3vw,.95rem);font-weight:500}.acard-val a{color:var(--ice);text-decoration:none}.acard-val a:hover{color:var(--neon)}@media (max-width:767px){.about-grid{grid-template-columns:1fr}}#projects{background:var(--ink)}.proj-list{background:var(--edge);flex-direction:column;gap:1px;max-width:1200px;display:flex}.pcard{background:var(--ink);grid-template-columns:120px 1fr auto;align-items:start;gap:clamp(1rem,2vw,2rem) clamp(1.5rem,3vw,3rem);padding:clamp(1.8rem,3.5vw,2.8rem) clamp(1.5rem,3vw,3rem);transition:background .3s;display:grid;position:relative;overflow:hidden}.pcard:hover{background:var(--ink3)}.pcard:before{content:"";background:linear-gradient(90deg, transparent, var(--neon), transparent);opacity:0;height:1px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.pcard:hover:before{opacity:.55}.pcard-meta{flex-direction:column;gap:.5rem;display:flex}.pcard-idx{font-family:var(--font-bebas);color:var(--edge);font-size:clamp(2.5rem,4vw,4rem);line-height:1;transition:color .3s}.pcard:hover .pcard-idx{color:#d4ff1e1a}.pcard-lang{font-family:var(--font-dm-mono);color:var(--hot);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.4rem;font-size:clamp(.56rem,.9vw,.62rem);display:flex}.pcard-lang:before{content:"";background:var(--hot);border-radius:50%;width:5px;height:5px}.pcard-lang.ts{color:var(--ice)}.pcard-lang.ts:before{background:var(--ice)}.pcard-lang.react{color:var(--react)}.pcard-lang.react:before{background:var(--react)}.pcard-lang.npm{color:var(--neon)}.pcard-lang.npm:before{background:var(--neon)}.pcard-title{font-family:var(--font-bebas);letter-spacing:.03em;color:var(--text);margin-bottom:.65rem;font-size:clamp(1.5rem,2.8vw,2rem);line-height:1}.pcard-desc{color:var(--dim);margin-bottom:1.1rem;font-size:clamp(.8rem,1.3vw,.88rem);line-height:1.85}.pcard-chips{flex-wrap:wrap;gap:.32rem;display:flex}.chip{font-family:var(--font-dm-mono);background:var(--glass);border:1px solid var(--edge);color:var(--dim);letter-spacing:.04em;border-radius:2px;padding:.2rem .55rem;font-size:clamp(.55rem,.85vw,.6rem)}.pcard-actions{flex-direction:column;gap:.65rem;min-width:100px;padding-top:.3rem;display:flex}.plink{font-family:var(--font-dm-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);white-space:nowrap;align-items:center;gap:.4rem;font-size:clamp(.6rem,.95vw,.65rem);text-decoration:none;transition:color .2s,gap .2s;display:flex}.plink:hover{color:var(--neon);gap:.7rem}.plink.hi{color:var(--neon)}.plink.hi:hover{color:#fff}@media (max-width:1023px){.pcard{grid-template-columns:80px 1fr}.pcard-actions{flex-flow:wrap;grid-column:1/-1;gap:.5rem 1.2rem}}@media (max-width:767px){.pcard{grid-template-columns:1fr;gap:1rem}.pcard-meta{flex-direction:row;align-items:center;gap:.8rem}.pcard-idx{font-size:2rem}.pcard-actions{flex-flow:wrap}}#skills{background:var(--ink2)}.skills-wrap{grid-template-columns:240px 1fr;align-items:start;gap:clamp(2.5rem,5vw,5rem);max-width:1200px;display:grid}.skills-sidebar{position:sticky;top:90px}.skills-sidebar p{font-family:var(--font-dm-mono);color:var(--dim);margin-top:.8rem;font-size:clamp(.75rem,1.2vw,.82rem);line-height:2}.skill-groups{flex-direction:column;gap:clamp(2rem,3.5vw,3rem);display:flex}.sgroup-title{font-family:var(--font-dm-mono);color:var(--neon);letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid var(--edge);margin-bottom:1.2rem;padding-bottom:.7rem;font-size:clamp(.56rem,.9vw,.62rem)}.srow{grid-template-columns:clamp(110px,18vw,155px) 1fr 38px;align-items:center;gap:.8rem;margin-bottom:.8rem;display:grid}.sname{font-family:var(--font-dm-mono);color:var(--dim);font-size:clamp(.68rem,1.1vw,.74rem)}.bbar{background:var(--ink4);border-radius:2px;height:2px;overflow:hidden}.bfill{background:linear-gradient(90deg, var(--ice), var(--neon));transform-origin:0;height:100%;transition:transform 1.1s cubic-bezier(.4,0,.2,1);transform:scaleX(0)}.bfill.go{transform:scaleX(1)}.spct{font-family:var(--font-dm-mono);color:var(--dim);text-align:right;font-size:clamp(.55rem,.85vw,.6rem)}@media (max-width:767px){.skills-wrap{grid-template-columns:1fr}.skills-sidebar{position:static}.srow{grid-template-columns:clamp(100px,30vw,140px) 1fr 34px}}#contact{background:var(--ink);position:relative;overflow:hidden}#contact:before{content:"";pointer-events:none;background:radial-gradient(65% 55% at 50% 105%,#d4ff1e0e,#0000 65%);position:absolute;inset:0}.contact-wrap{max-width:1000px;position:relative}.contact-h{font-family:var(--font-bebas);letter-spacing:.02em;margin-bottom:clamp(1rem,2vw,1.5rem);font-size:clamp(3rem,9vw,8rem);line-height:.9}.contact-h span{color:var(--neon)}.contact-h .ghost{color:#0000;-webkit-text-stroke:1px #d4ff1e47}.contact-sub{font-family:var(--font-dm-mono);color:var(--dim);max-width:480px;margin-bottom:clamp(2rem,4vw,3.5rem);font-size:clamp(.75rem,1.3vw,.85rem);line-height:2}.contact-grid{background:var(--edge);grid-template-columns:1fr 1fr;gap:1px;display:grid}.citem{background:var(--ink);color:var(--text);justify-content:space-between;align-items:center;gap:1rem;padding:clamp(1.4rem,2.5vw,2rem) clamp(1.5rem,2.5vw,2.2rem);text-decoration:none;transition:background .25s,padding-left .28s;display:flex}.citem:hover{background:var(--ink3);padding-left:clamp(2rem,3.5vw,2.8rem)}.citem-l{align-items:center;gap:clamp(.8rem,1.5vw,1.2rem);min-width:0;display:flex}.cico{border:1px solid var(--edge);width:clamp(34px,5vw,42px);height:clamp(34px,5vw,42px);font-family:var(--font-dm-mono);color:var(--neon);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:clamp(.6rem,1vw,.7rem);transition:all .2s;display:flex}.citem:hover .cico{background:var(--neon);color:var(--ink);border-color:var(--neon)}.cplatform{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.18rem;font-size:clamp(.54rem,.9vw,.6rem)}.chandle{white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.82rem,1.3vw,.92rem);font-weight:500;overflow:hidden}.carrow{color:var(--dim);flex-shrink:0;font-size:1.05rem;transition:transform .25s,color .25s}.citem:hover .carrow{color:var(--neon);transform:translate(4px,-4px)}@media (max-width:767px){.contact-grid{grid-template-columns:1fr}}@media (max-width:479px){.chandle{font-size:.8rem}}footer{background:var(--ink2);border-top:1px solid var(--edge);padding:1.6rem var(--px);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}footer span{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.06em;font-size:clamp(.58rem,.9vw,.65rem)}footer span em{color:var(--neon);font-style:normal}footer a{color:var(--dim);text-decoration:none;transition:color .2s}footer a:hover{color:var(--neon)}.footer-links{flex-wrap:wrap;gap:1.2rem;display:flex}@media (max-width:479px){footer{text-align:center;flex-direction:column}.footer-links{justify-content:center}}#log{background:var(--ink3);position:relative;overflow:hidden}#log:before{content:"";pointer-events:none;background-image:linear-gradient(#d4ff1e05 1px,#0000 1px),linear-gradient(90deg,#d4ff1e05 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(100% 100% at 50% 0,#000 40%,#0000 100%);mask-image:radial-gradient(100% 100% at 50% 0,#000 40%,#0000 100%)}.log-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.2rem;margin-bottom:clamp(2.5rem,4vw,3.5rem);display:flex}.log-filters{flex-wrap:wrap;gap:.4rem;display:flex}.log-filter{font-family:var(--font-dm-mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--edge);color:var(--dim);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:.38rem .9rem;font-size:clamp(.58rem,.9vw,.65rem);transition:border-color .2s,color .2s,background .2s}.log-filter:hover{border-color:var(--edge2);color:var(--text)}.log-filter.active{border-color:var(--neon);color:var(--neon);background:#d4ff1e12}.log-feed{background:var(--edge);grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1px;max-width:90vw;display:grid}.log-entry[data-hidden]{display:none}.log-entry{background:var(--ink3);cursor:default;flex-direction:column;gap:1rem;padding:clamp(1.6rem,2.8vw,2.2rem);transition:background .28s;display:flex;position:relative;overflow:hidden}.log-entry:hover{background:var(--ink4)}.log-entry:after{content:"";opacity:0;height:2px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.log-entry:hover:after{opacity:1}.log-entry[data-type=blog]:after{background:linear-gradient(90deg, var(--ice), transparent)}.log-entry[data-type=thought]:after{background:linear-gradient(90deg, var(--neon), transparent)}.log-entry[data-type=working-on]:after{background:linear-gradient(90deg, var(--hot), transparent)}.log-entry[data-type=update]:after{background:linear-gradient(90deg, var(--react), transparent)}.log-entry-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.log-badge{font-family:var(--font-dm-mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid;border-radius:2px;flex-shrink:0;padding:.22rem .65rem;font-size:clamp(.54rem,.85vw,.6rem)}.log-badge.blog{color:var(--ice);background:#38bdf812;border-color:#38bdf859}.log-badge.thought{color:var(--neon);background:#d4ff1e0f;border-color:#d4ff1e4d}.log-badge.working-on{color:var(--hot);background:#ff575712;border-color:#ff575759}.log-badge.update{color:var(--react);background:#61dafb0f;border-color:#61dafb4d}.log-date{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.08em;white-space:nowrap;font-size:clamp(.54rem,.85vw,.6rem)}.log-title{font-family:var(--font-bebas);letter-spacing:.02em;color:var(--text);font-size:clamp(1.1rem,2vw,1.55rem);line-height:1.05}.log-body{font-family:var(--font-dm-mono);color:var(--dim);flex:1;font-size:clamp(.75rem,1.2vw,.82rem);line-height:1.85}.log-body strong{color:var(--text);font-weight:500}.log-body code{font-family:var(--font-dm-mono);background:var(--glass);border:1px solid var(--edge);color:var(--neon);border-radius:3px;padding:.1em .4em;font-size:.85em}.log-entry-foot{border-top:1px solid var(--edge);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:auto;padding-top:.8rem;display:flex}.log-tags{flex-wrap:wrap;gap:.3rem;display:flex}.log-tag{font-family:var(--font-dm-mono);color:var(--dim2);letter-spacing:.06em;font-size:clamp(.52rem,.8vw,.58rem)}.log-tag:before{content:"#";opacity:.5}.log-read{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;align-items:center;gap:.35rem;font-size:clamp(.58rem,.9vw,.65rem);text-decoration:none;transition:color .2s,gap .2s;display:inline-flex}.log-read:hover{color:var(--neon);gap:.6rem}.log-empty{text-align:center;font-family:var(--font-dm-mono);color:var(--dim);background:var(--ink3);grid-column:1/-1;padding:3rem 2rem;font-size:.8rem;display:none}.log-empty.show{display:block}.log-more{flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:clamp(1.5rem,3vw,2.5rem);display:flex}.log-count{font-family:var(--font-dm-mono);color:var(--dim);letter-spacing:.1em;font-size:clamp(.6rem,.95vw,.68rem)}.log-count em{color:var(--neon);font-style:normal}@media (max-width:767px){.log-header{flex-direction:column;align-items:flex-start;gap:1rem}}@media (min-width:1600px){:root{--px:clamp(5rem, 8vw, 9rem);--section-py:8rem}.about-grid,.proj-list,.skills-wrap,.log-feed{max-width:1400px}}@media print{#dot,#ring,body:before,nav,.hero-ticker,.hero-mesh,.hero-scroll,.log-filters,.log-more{display:none!important}body{color:#000;cursor:auto;background:#fff}section{padding:2rem 1.5rem}}
