:root{--bg:#0a0a0a;--text:#e0e0e0;--text-muted:#888;--accent:#fff;--card:#111;--card-border:#1a1a1a;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--transition:all .28s var(--ease-out)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}body{background:radial-gradient(circle at 18% 12%, #ffffff09, transparent 28rem), linear-gradient(180deg, #ffffff04, transparent 26rem), var(--bg);overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:200;opacity:.12;background-image:linear-gradient(#ffffff0a 1px,#0000 1px);background-size:100% 4px;position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:199;opacity:.018;background-image:radial-gradient(#fff .75px,#0000 .75px);background-size:18px 18px;position:fixed;inset:0}.app-shell{isolation:isolate;min-height:100vh;position:relative}.site-bg{z-index:-1;pointer-events:none;contain:strict;background:radial-gradient(circle at 68% 14%,#00ff660e,#0000 22rem),radial-gradient(circle at 14% 78%,#ffffff0b,#0000 24rem);position:fixed;inset:0;overflow:hidden}.site-bg:before{content:"";opacity:.16;will-change:transform;background:linear-gradient(115deg,#0000 0 44%,#ffffff0f 50%,#0000 58%),repeating-linear-gradient(90deg,#0000 0 118px,#00ff6614 119px,#0000 120px);animation:24s linear infinite bgSwapDown;position:absolute;inset:-20% 0;transform:translateY(-12%)}.site-bg:after{content:"";background:linear-gradient(90deg, var(--bg) 0%, transparent 18%, transparent 82%, var(--bg) 100%), linear-gradient(180deg, #0a0a0a29, var(--bg) 92%);position:absolute;inset:0}.bg-grid{opacity:.09;transform-origin:top;will-change:transform;background-image:linear-gradient(#ffffff1f 1px,#0000 1px),linear-gradient(90deg,#ffffff1f 1px,#0000 1px);background-size:96px 96px;animation:14s linear infinite gridSwapDown;position:absolute;inset:-80px;transform:perspective(900px)rotateX(58deg)translateY(-120px)}.bg-code{color:#00ff6624;text-shadow:0 0 12px #00ff6614;will-change:transform;flex-direction:column;gap:32px;width:min(34vw,430px);font-family:Courier New,Courier,monospace;font-size:clamp(.62rem,.82vw,.78rem);line-height:1.35;animation:34s linear infinite codeSwapDown;display:flex;position:absolute;top:-70vh}.bg-code span{white-space:pre;max-width:100%;padding:4px 0;display:block;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 78%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 78%,#0000)}.bg-code-left{left:max(22px,3vw)}.bg-code-right{color:#ffffff17;animation-duration:42s;animation-delay:-10s;right:max(22px,3vw)}.bg-console-panel{color:#e0e0e038;will-change:transform, opacity;background:#0808089e;border:1px solid #ffffff12;border-radius:6px;width:min(320px,32vw);padding:14px 16px;font-family:Courier New,Courier,monospace;font-size:clamp(.58rem,.72vw,.72rem);animation:12s ease-in-out infinite panelFloat;position:absolute;box-shadow:0 18px 48px #0000003d,inset 0 1px #ffffff0a}.bg-console-panel span{white-space:nowrap;display:block;overflow:hidden}.bg-console-panel-one{top:22%;right:8%}.bg-console-panel-two{color:#0f63;animation-delay:-4s;bottom:16%;left:6%}main,footer{z-index:1;position:relative}.container{max-width:1200px;margin:0 auto;padding:0 40px}section{border-bottom:1px solid var(--card-border);padding:100px 0}h1,h2,h3{color:#fff;letter-spacing:-.02em;font-weight:700}h2{text-transform:uppercase;letter-spacing:.05em;margin-bottom:40px;font-size:2rem}p{color:var(--text-muted);line-height:1.6}a{color:inherit;text-decoration:none}.btn{background:var(--accent);color:#000;letter-spacing:.05em;transition:var(--transition);cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:14px 28px;font-size:.85rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden;transform:translateZ(0)}.btn:before{content:"";transition:transform .7s var(--ease-out);background:linear-gradient(120deg,#0000 15%,#ffffffbf 45%,#0000 70%);position:absolute;inset:0;transform:translate(-120%)skew(-18deg)}.btn:hover{color:var(--accent);border-color:var(--accent);background:0 0;transform:translateY(-2px);box-shadow:0 12px 32px #ffffff14}.btn:hover:before{transform:translate(120%)skew(-18deg)}.btn-neon{color:#0f6;background:0 0;border:1px solid #0f6;box-shadow:0 0 15px #00ff660d}.btn-neon:hover{color:#000;background:#0f6;box-shadow:0 0 20px #0f63}.card-meta{color:var(--text-muted);letter-spacing:.1em;margin-bottom:15px;font-family:monospace;font-size:.75rem}header{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--card-border);z-index:100;width:100%;animation:headerDrop .8s var(--ease-out) both;background:#0a0a0acc;position:fixed;top:0;left:0}nav{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:20px 40px;display:flex}.logo{letter-spacing:.05em;font-size:1.1rem;font-weight:700;animation:.9s steps(2,end) both textGlitchIn}.logo span{color:var(--text-muted);font-weight:400}nav ul{align-items:center;gap:30px;list-style:none;display:flex}nav ul li a{color:var(--text-muted);transition:var(--transition);font-size:.85rem;font-weight:500;position:relative}nav ul li a:after{content:"";transform-origin:100%;height:1px;transition:transform .35s var(--ease-out);background:#fff;position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}nav ul li a:hover{color:#fff}nav ul li a:hover:after{transform-origin:0;transform:scaleX(1)}.lang-picker{border:1px solid var(--card-border);background:#141414;border-radius:4px;gap:5px;padding:3px;display:flex}.lang-btn{color:var(--text-muted);cursor:pointer;text-transform:uppercase;transition:var(--transition);background:0 0;border:none;border-radius:3px;padding:4px 8px;font-size:.75rem;font-weight:600}.lang-btn.active,.lang-btn:hover{color:#fff;background:#222}.hero{padding-top:180px;padding-bottom:120px;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;opacity:.055;will-change:transform;background:linear-gradient(90deg,#0000 0,#ffffff29 50%,#0000 100%),repeating-linear-gradient(90deg,#0000 0 46px,#ffffff2e 47px,#0000 48px);height:360px;animation:22s linear infinite circuitDrift;position:absolute;inset:96px 0 auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000);mask-image:linear-gradient(90deg,#0000,#000 20% 80%,#0000)}.hero-content{grid-template-columns:minmax(280px,360px) 1fr;align-items:center;gap:64px;display:grid}.hero-content .ascii-portrait{animation:fadeUp .8s var(--ease-out) both 50ms}.greeting{color:var(--text-muted);animation:fadeUp .7s var(--ease-out) both .1s;margin-bottom:10px;font-family:monospace;font-size:.9rem;display:block}.hero h1{animation:titleReveal .9s var(--ease-out) both .18s;margin-bottom:5px;font-size:3.5rem;line-height:1}.hero h2{color:var(--text-muted);text-transform:none;letter-spacing:0;animation:fadeUp .7s var(--ease-out) both .28s;margin-bottom:25px;font-size:1.5rem}.hero-desc{max-width:650px;animation:fadeUp .7s var(--ease-out) both .38s;margin-bottom:35px;font-size:1.1rem}.hero-actions{animation:fadeUp .7s var(--ease-out) both .48s}.story-card{background:var(--card);border:1px solid var(--card-border);border-radius:8px;padding:50px;position:relative;overflow:hidden}.story-card:before,.blog-card:before{content:"";pointer-events:none;transition:transform 1s var(--ease-out);background:linear-gradient(120deg,#0000 20%,#ffffff0b 45%,#0000 70%);position:absolute;inset:0;transform:translate(-115%)}.story-card:hover:before,.blog-card:hover:before{transform:translate(115%)}.story-card p{margin-bottom:20px;font-size:1.05rem}.story-card p:last-child{margin-bottom:0}.skills-grid{grid-template-columns:repeat(2,1fr);gap:25px;display:grid}.skill-card:last-child{grid-column:span 2}.skill-card{background:var(--card);border:1px solid var(--card-border);transition:var(--transition);border-radius:8px;flex-direction:column;padding:35px;display:flex;position:relative;overflow:hidden;transform:translateY(0)}.skill-card:hover{border-color:#343434;transform:translateY(-6px);box-shadow:0 22px 70px #00000047}.skill-card:after,.review-card:after,.project-card:after{content:"";pointer-events:none;opacity:0;transition:opacity .35s var(--ease-out);background:radial-gradient(circle at 50% 0,#ffffff17,#0000 38%);position:absolute;inset:0}.skill-card:hover:after,.review-card:hover:after,.project-card:hover:after{opacity:1}.skill-card h3{margin-bottom:10px;font-size:1.25rem}.skill-desc{flex-grow:1;margin-bottom:25px;font-size:.9rem}.tags{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.tags span{border:1px solid var(--card-border);color:#fff;transition:transform .25s var(--ease-bounce), border-color .25s var(--ease-out), background .25s var(--ease-out);background:#141414;border-radius:4px;padding:4px 10px;font-size:.75rem;font-weight:500}.tags span:hover{background:#191919;border-color:#3a3a3a;transform:translateY(-2px)}.portfolio-grid{flex-direction:column;gap:40px;display:flex}.project-card{background:var(--card);border:1px solid var(--card-border);transition:transform .45s var(--ease-out), border-color .45s var(--ease-out), box-shadow .45s var(--ease-out);border-radius:8px;grid-template-columns:450px 1fr;display:grid;position:relative;overflow:hidden}.project-card:hover{border-color:#303030;transform:translateY(-4px);box-shadow:0 24px 90px #00000059}.project-image{border-right:1px solid var(--card-border);width:100%;height:100%;min-height:280px;position:relative;overflow:hidden}.project-image img{object-fit:cover;filter:grayscale();width:100%;height:100%;transition:var(--transition)}.project-card:hover .project-image img{filter:grayscale(0%);transform:scale(1.045)}.project-placeholder{color:var(--text-muted);background:#0d0d0d;flex-direction:column;justify-content:center;align-items:center;font-family:monospace;font-size:.8rem;display:flex}.placeholder-pattern{opacity:.03;background-image:radial-gradient(#fff 1px,#0000 0);background-size:20px 20px;width:100%;height:100%;animation:18s linear infinite patternPan;position:absolute}.project-info{flex-direction:column;padding:40px;display:flex}.project-category{color:var(--text-muted);text-transform:uppercase;margin-bottom:10px;font-family:monospace;font-size:.75rem;display:block}.project-info h3{margin-bottom:15px;font-size:1.5rem}.project-info p{flex-grow:1;margin-bottom:25px;font-size:.95rem}.project-links{margin-top:20px}.proj-link{transition:color .25s var(--ease-out);border-bottom:1px solid #fff;padding-bottom:2px;font-size:.85rem;font-weight:600;position:relative}.proj-link:not(.disabled):after{content:"";transform-origin:0;height:1px;transition:transform .35s var(--ease-out);background:#0f6;position:absolute;inset:auto 0 -3px;transform:scaleX(0)}.proj-link:not(.disabled):hover:after{transform:scaleX(1)}.proj-link.disabled{color:var(--text-muted);border-bottom:none;font-family:monospace;font-size:.75rem}.reviews-grid{grid-template-columns:1fr 1fr;gap:30px;display:grid}.review-card{background:var(--card);border:1px solid var(--card-border);transition:transform .35s var(--ease-out), border-color .35s var(--ease-out);border-radius:8px;padding:40px;position:relative;overflow:hidden}.review-card:hover{border-color:#303030;transform:translateY(-5px)}.review-header{margin-bottom:20px}.review-author{color:#fff;font-weight:600;display:block}.review-company{color:var(--text-muted);margin-top:4px;font-family:monospace;font-size:.75rem;display:block}.review-text{font-size:.95rem;font-style:italic}.goals-grid{grid-template-columns:repeat(3,1fr);gap:30px;display:grid}.goal-item h3{margin-bottom:15px;font-family:monospace;font-size:1.1rem}.goal-item{transition:transform .35s var(--ease-out)}.goal-item:hover{transform:translate(6px)}.blog-card{background:var(--card);border:1px solid var(--card-border);border-radius:8px;padding:50px;position:relative;overflow:hidden}.blog-content{grid-template-columns:1fr 1fr;align-items:center;gap:50px;display:grid}.ascii-wrapper{background:#000;border:1px solid #111;border-radius:6px;justify-content:center;align-items:center;padding:20px;font-family:Courier New,Courier,monospace;display:flex;position:relative;overflow:hidden}.ascii-wrapper:before{content:"";background:linear-gradient(#0000,#00ff6614,#0000);animation:4.5s ease-in-out infinite terminalSweep;position:absolute;inset:0;transform:translateY(-100%)}.ascii-art{z-index:1;color:#0f6;text-shadow:0 0 10px #00ff6626;white-space:pre;margin:0;font-size:clamp(.55rem,1.1vw,.8rem);line-height:1.2;animation:5s step-end infinite terminalFlicker;position:relative}.blog-info h2{margin-bottom:1.5rem}.blog-info p{margin-bottom:2rem;font-size:.95rem;line-height:1.6}form{flex-direction:column;gap:20px;max-width:600px;display:flex}.form-group input,.form-group textarea{background:var(--card);border:1px solid var(--card-border);color:#fff;width:100%;transition:var(--transition);border-radius:4px;padding:16px;font-family:inherit;font-size:.95rem}.form-group input:focus,.form-group textarea:focus{border-color:#454545;outline:none;transform:translateY(-1px);box-shadow:0 0 0 3px #ffffff09}form button{color:#000;letter-spacing:.05em;cursor:pointer;transition:var(--transition);background:#fff;border:none;border-radius:4px;align-self:flex-start;padding:16px 32px;font-family:monospace;font-size:.85rem;font-weight:700}form button:hover{color:#fff;background:#c00;transform:translateY(-2px);box-shadow:0 16px 40px #cc00002e}footer{border-top:1px solid var(--card-border);justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:60px 40px;display:flex}.footer-socials{color:var(--text-muted);gap:25px;font-size:.85rem;font-weight:500;display:flex}.footer-socials a:hover{color:#fff}.footer-copy{color:var(--text-muted);font-family:monospace;font-size:.8rem}[data-reveal]{opacity:0;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);transform:translateY(42px)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}[data-reveal].is-visible .skill-card,[data-reveal].is-visible .project-card,[data-reveal].is-visible .review-card,[data-reveal].is-visible .goal-item{animation:itemRise .7s var(--ease-out) both}[data-reveal].is-visible .skill-card:nth-child(2),[data-reveal].is-visible .project-card:nth-child(2),[data-reveal].is-visible .review-card:nth-child(2),[data-reveal].is-visible .goal-item:nth-child(2){animation-delay:80ms}[data-reveal].is-visible .skill-card:nth-child(3),[data-reveal].is-visible .project-card:nth-child(3),[data-reveal].is-visible .goal-item:nth-child(3){animation-delay:.16s}[data-reveal].is-visible .skill-card:nth-child(4){animation-delay:.24s}[data-reveal].is-visible .skill-card:nth-child(5){animation-delay:.32s}@keyframes headerDrop{0%{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes titleReveal{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(20px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}@keyframes textGlitchIn{0%{opacity:0;transform:translate(-8px)}18%{opacity:1;transform:translate(6px)}36%{transform:translate(-3px)}to{opacity:1;transform:translate(0)}}@keyframes itemRise{0%{opacity:0;transform:translateY(24px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes circuitDrift{0%{transform:translate(-12%)}to{transform:translate(12%)}}@keyframes patternPan{0%{background-position:0 0}to{background-position:80px 80px}}@keyframes terminalSweep{0%,42%{transform:translateY(-100%)}58%,to{transform:translateY(100%)}}@keyframes terminalFlicker{0%,to{opacity:1}48%{opacity:.92}49%{opacity:1}}@keyframes scanline{0%{background-position-y:0}to{background-position-y:120px}}@keyframes bgSwapDown{0%{transform:translateY(-12%)}48%{transform:translateY(6%)}50%{transform:translateY(-28%)}to{transform:translateY(-12%)}}@keyframes gridSwapDown{0%{transform:perspective(900px)rotateX(58deg)translateY(-120px)}to{transform:perspective(900px)rotateX(58deg)translateY(-24px)}}@keyframes codeSwapDown{0%{transform:translate(0,0)}to{transform:translateY(50%)}}@keyframes panelFloat{0%,to{opacity:.5;transform:translate(0,0)}45%{opacity:.28;transform:translateY(12px)}55%{opacity:.54;transform:translateY(-14px)}}@media (width<=1024px){.hero-content{text-align:center;grid-template-columns:1fr;gap:40px}.hero-content .ascii-portrait{margin:0 auto}.hero-desc{margin-left:auto;margin-right:auto}.project-card{grid-template-columns:1fr}.project-image{border-right:none;border-bottom:1px solid var(--card-border)}}@media (width<=900px){.bg-code,.bg-console-panel{opacity:.52}.bg-code{width:70vw}.bg-code-right,.bg-console-panel-one{display:none}.skills-grid{grid-template-columns:1fr}.skill-card:last-child{grid-column:span 1}.reviews-grid,.goals-grid,.blog-content{grid-template-columns:1fr;gap:30px}.blog-card{padding:30px}nav ul{display:none}}@media (width<=480px){.site-bg:before{opacity:.14}.bg-code{width:calc(100vw - 36px);left:18px}.bg-console-panel{display:none}.container{padding:0 20px}section{padding:60px 0}.hero h1{font-size:2.4rem}footer{text-align:center;flex-direction:column;gap:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}.ascii-portrait[data-v-41c25b7a]{aspect-ratio:3/4;touch-action:pan-y;isolation:isolate;background:radial-gradient(circle at 50% 16%,#82aed21f,#0000 32%),linear-gradient(145deg,#0b0f15 0%,#05070a 100%);border:1px solid #aac6e029;border-radius:10px;width:min(360px,34vw);min-width:280px;position:relative;overflow:hidden;box-shadow:0 28px 90px #0000007a,inset 0 0 0 1px #ffffff08}.ascii-portrait[data-v-41c25b7a]:before,.ascii-portrait[data-v-41c25b7a]:after{content:"";pointer-events:none;z-index:2;position:absolute;inset:0}.ascii-portrait[data-v-41c25b7a]:before{mix-blend-mode:screen;opacity:.36;background:linear-gradient(#ffffff14,#0000 18% 78%,#00000052),repeating-linear-gradient(#ffffff07 0 1px,#0000 1px 4px)}.ascii-portrait[data-v-41c25b7a]:after{border-radius:inherit;box-shadow:inset 0 0 44px #00000080,inset 0 0 92px #0c141e73}.ascii-portrait__canvas[data-v-41c25b7a]{z-index:1;width:100%;height:100%;display:block;position:absolute;inset:0}@media (width<=1024px){.ascii-portrait[data-v-41c25b7a]{width:min(360px,78vw)}}@media (width<=480px){.ascii-portrait[data-v-41c25b7a]{width:min(320px,84vw);min-width:0}}
