*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#ebebeb;--bg2:#f7f7f8;--accent:#111;--accent-dim:#0009;--accent2:#333;--text:#111;--text-dim:#00000080;--text-muted:#00000059;--border:#0000001a;--border-hover:#00000040;--surface:#f7f7f8;--surface-hover:#efefef;--font-head:"Syne", sans-serif;--font-mono:"Space Mono", monospace;--font-pixel:"Press Start 2P", monospace;--r-sm:8px;--r-md:12px;--r-lg:16px;--ease:cubic-bezier(.25, .46, .45, .94);--spring:cubic-bezier(.34, 1.56, .64, 1);--smooth:cubic-bezier(.4, 0, .2, 1)}html{scroll-behavior:auto;scroll-padding-top:80px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:99px}*{scrollbar-width:thin;scrollbar-color:var(--accent) transparent}body{background:var(--bg);color:var(--text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;position:relative;overflow-x:hidden}::selection{background:var(--accent);color:var(--bg)}.scanlines{display:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.term-header{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:none;align-items:center;gap:6px;padding:10px 16px;display:flex;position:relative}.term-dot{background:var(--border);border-radius:50%;width:10px;height:10px}.term-title{color:var(--text-dim);letter-spacing:.12em;text-transform:uppercase;font-size:.6rem;position:absolute;left:50%;transform:translate(-50%)}.term-body{border:1px solid var(--border);border-radius:0 0 var(--r-lg) var(--r-lg);background:var(--bg2);border-top:none;padding:2rem 2rem 2.5rem}.loading-screen{z-index:100;background:var(--bg);transition:opacity .8s var(--ease), transform .8s var(--ease);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-screen.phase-exit{opacity:0;pointer-events:none;transform:scale(1.04)}.loading-inner{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;display:flex}.loading-avatar{border:2px solid var(--accent);opacity:0;width:72px;height:72px;transition:opacity .55s var(--spring), transform .55s var(--spring);border-radius:50%;padding:2px;transform:scale(.75)}.loading-avatar.visible{opacity:1;transform:scale(1)}.loading-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.loading-name{font-family:var(--font-mono);color:var(--accent);font-size:clamp(1.4rem,5vw,2.6rem);font-weight:400}.loading-prompt{opacity:.5;margin-right:.3em}.loading-cursor{color:var(--accent);margin-left:.05em;animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.loading-letter{opacity:0;transition:opacity .4s var(--ease), transform .4s var(--spring);display:inline;transform:translateY(18px)}.loading-letter.visible{opacity:1;transform:translateY(0)}.loading-line{background:var(--accent);width:0;height:2px;transition:width .8s var(--ease);border-radius:99px}.loading-line.expand{width:320px}.loading-subtitle{color:var(--text-dim);letter-spacing:.18em;text-transform:uppercase;opacity:0;transition:opacity .5s var(--ease) .1s, transform .5s var(--ease) .1s;font-size:.65rem;font-family:var(--font-mono);transform:translateY(8px)}.loading-subtitle.visible{opacity:1;transform:translateY(0)}.main-wrapper{z-index:1;opacity:0;transition:opacity .75s var(--ease), transform .75s var(--ease);position:relative;transform:translateY(8px)}.main-wrapper.visible{opacity:1;transform:translateY(0)}.nav-container{z-index:50;justify-content:center;width:100%;display:flex;position:sticky;top:.8rem;overflow-x:auto}.nav-pill{border-radius:var(--r-lg);border:1px solid var(--border);-webkit-backdrop-filter:blur(16px);transition:border-color .3s var(--ease);background:#ffffffeb;align-items:center;gap:1rem;min-width:580px;padding:.4rem .8rem;display:flex;box-shadow:0 1px 3px #0000000f,0 0 0 1px #00000008}.nav-pill:hover{border-color:var(--border-hover)}.nav-pill>*{z-index:1;position:relative}.nav-logo{font-family:var(--font-mono);color:var(--accent);white-space:nowrap;align-items:center;gap:.45rem;font-size:.78rem;display:flex}.nav-logo-prompt{opacity:.5}.nav-pfp{object-fit:cover;border:1.5px solid var(--border);width:22px;height:22px;transition:border-color .3s var(--ease), transform .3s var(--spring);border-radius:50%}.nav-pfp:hover{border-color:var(--accent);transform:scale(1.12)}.nav-divider{background:var(--border);flex-shrink:0;width:1px;height:14px}.nav-divider-li{align-items:center;list-style:none;display:flex}.nav-links{align-items:center;gap:.05rem;list-style:none;display:flex}.nav-links a{color:var(--text-dim);transition:color .22s var(--ease), background .22s var(--ease);letter-spacing:.04em;border-radius:99px;flex-shrink:0;padding:.28rem .6rem;font-size:.65rem;text-decoration:none}.nav-links a:hover{color:var(--accent);background:#0000000a}.nav-links a svg{opacity:.6;transition:opacity .2s var(--ease);flex-shrink:0}.nav-links a:hover svg{opacity:1}.lang-btn{font-family:var(--font-mono);cursor:pointer;color:var(--text-dim);letter-spacing:.05em;transition:color .2s var(--ease);background:0 0;border:none;padding:.2rem .15rem;font-size:.6rem}.lang-btn:before{content:"["}.lang-btn:after{content:"]"}.lang-btn.active,.lang-btn:hover{color:var(--accent)}.btn{border-radius:var(--r-sm);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);cursor:pointer;white-space:nowrap;transition:background .2s, border-color .2s, transform .25s var(--spring);background:0 0;align-items:center;gap:.45rem;padding:.5rem 1.1rem;font-size:.72rem;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-hover);border-color:var(--border-hover);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}.btn-primary:hover{background:var(--accent2);border-color:var(--accent2);color:var(--bg)}.btn-sm{padding:.25rem .7rem;font-size:.65rem}.hero{align-items:center;gap:4rem;max-width:1100px;min-height:100vh;margin:0 auto;padding:8rem 6vw 4rem;display:flex;position:relative}.hero-left{flex:1}.hero-badge{color:var(--text-dim);animation:fadein .8s var(--ease) 2.6s both;align-items:center;gap:.45rem;margin-bottom:1.2rem;font-size:.6rem;display:inline-flex}.hero-badge-dot{background:var(--accent);width:5px;height:5px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.hero h1{font-family:var(--font-mono);animation:slideup .85s var(--spring) 2.65s both;margin-bottom:1rem;font-size:clamp(2rem,4.5vw,4rem);font-weight:400;line-height:1.15}.hero h1 .prompt{color:var(--accent);opacity:.6;margin-right:.2em;animation:1.2s step-end infinite blink}.hero h1 .accent{color:var(--accent)}.hero-desc{color:var(--text-dim);max-width:460px;animation:slideup .8s var(--ease) 2.75s both;margin-bottom:1.8rem;font-size:.78rem;line-height:1.9}.hero-buttons{animation:slideup .8s var(--ease) 2.85s both;flex-wrap:wrap;gap:.7rem;display:flex}.hero-right{animation:scalein .95s var(--spring) 2.7s both;flex-shrink:0}.hero-avatar-ring{border:2px solid var(--border);border-radius:50%;width:220px;height:220px;padding:3px;animation:7s ease-in-out infinite floatAvatar}@keyframes floatAvatar{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.hero-avatar-inner{background:var(--bg2);border-radius:50%;width:100%;height:100%;overflow:hidden}.hero-avatar-inner img{object-fit:cover;width:100%;height:100%;display:block}.scroll-label{color:inherit;font:inherit;cursor:pointer;opacity:.3;animation:fadein 1s var(--ease) 3.2s both;background:0 0;border:none;flex-direction:column;align-items:center;gap:.4rem;transition:opacity .3s;display:flex;position:absolute;bottom:3.5rem;left:50%;transform:translate(-50%)}.scroll-label:hover{opacity:.7}.scroll-label-tag{letter-spacing:.1em;font-size:.5rem}.scroll-label-arrow{background:linear-gradient(to bottom, var(--accent), transparent);width:1px;height:22px;animation:2.4s ease-in-out infinite scrollArrow}@keyframes scrollArrow{0%,to{opacity:.3}50%{opacity:.8}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes slideup{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scalein{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}section{max-width:1100px;margin:0 auto;padding:3rem 6vw}.section-header{margin-bottom:2rem}.section-header h2{font-family:var(--font-mono);color:var(--accent);margin-bottom:.3rem;font-size:clamp(1.2rem,2.5vw,1.8rem);font-weight:400}.section-header p{color:var(--text-dim);font-size:.7rem}.section-badge{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.4rem;margin-bottom:.6rem;font-size:.55rem;display:inline-flex}.reveal-up{opacity:0;transition:opacity .6s var(--ease), transform .6s var(--spring);transform:translateY(24px)}.reveal-up.revealed{opacity:1;transform:translateY(0)}.d1{transition-delay:40ms}.d2{transition-delay:80ms}.d3{transition-delay:.12s}.d4{transition-delay:.16s}.d5{transition-delay:.2s}.d6{transition-delay:.24s}.d7{transition-delay:.28s}.d8{transition-delay:.32s}.about-content{grid-template-columns:1fr 1fr;align-items:start;gap:2.5rem;display:grid}.about-text p{color:var(--text-dim);margin-bottom:1rem;font-size:.78rem;line-height:1.85}.about-stats{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.stat-card{text-align:center;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);border-top:2px solid var(--accent-dim);transition:border-color .25s var(--ease), background .25s var(--ease);padding:1.1rem;position:relative}.stat-card:before{content:"$";color:var(--text-muted);font-size:.5rem;position:absolute;top:.3rem;left:.5rem}.stat-card:hover{border-color:var(--border-hover);background:var(--surface-hover)}.stat-card .number{font-family:var(--font-mono);color:var(--accent);font-size:1.6rem;font-weight:400}.stat-card .label{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;margin-top:.25rem;font-size:.55rem}.exp-timeline{flex-direction:column;gap:.8rem;display:flex}.exp-card{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);transition:border-color .25s var(--ease), background .25s var(--ease);align-items:flex-start;gap:1rem;padding:1.2rem 1.4rem;display:flex}.exp-card:hover{border-color:var(--border-hover);background:var(--surface-hover)}.exp-dot{background:var(--accent);flex-shrink:0;width:8px;height:8px;margin-top:.35rem}.exp-content{flex:1}.exp-period{color:var(--text-dim);letter-spacing:.1em;font-size:.55rem;font-family:var(--font-mono);margin-bottom:.15rem}.exp-content h3{font-family:var(--font-mono);color:var(--text);margin-bottom:.35rem;font-size:.88rem;font-weight:400}.exp-content p{color:var(--text-dim);margin-bottom:.4rem;font-size:.72rem;line-height:1.7}.exp-link{color:var(--accent);border-bottom:1px solid #0000;align-items:center;gap:.3rem;font-size:.68rem;text-decoration:none;transition:border-color .2s;display:inline-flex}.exp-link:hover{border-bottom-color:var(--accent)}.exp-link-arrow{font-family:var(--font-mono);transition:transform .2s}.exp-link:hover .exp-link-arrow{transform:translate(3px)}.skills-split{grid-template-columns:1fr 1fr;gap:2rem;display:grid}.skills-col{flex-direction:column;display:flex}.skills-col-title{font-family:var(--font-mono);color:var(--text-dim);border-bottom:1px solid var(--border);margin-bottom:.8rem;padding-bottom:.3rem;font-size:.75rem;font-weight:400}.skills-col-grid{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}.skill-card{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);transition:border-color .25s var(--ease), background .25s var(--ease);padding:1rem}.skill-card:hover{border-color:var(--border-hover);background:var(--surface-hover)}.skill-card.mc-card{border-color:#00000026}.skill-card.mc-card:hover{border-color:#0000004d}.skill-icon{border:1px solid var(--border);width:30px;height:30px;color:var(--accent);border-radius:var(--r-sm);transition:border-color .25s var(--ease), transform .3s var(--spring);justify-content:center;align-items:center;margin-bottom:.5rem;display:flex}.skill-card.mc-card .skill-icon{border-color:#0003}.skill-card:hover .skill-icon{border-color:var(--border-hover);transform:scale(1.05)}.skill-icon svg{width:14px;height:14px}.skill-name{margin-bottom:.5rem;font-size:.72rem}.skill-bar{background:var(--border);border-radius:99px;height:3px}.skill-fill{background:var(--accent);height:100%;width:var(--tw);transition:width 1s var(--ease) .3s;border-radius:99px}.skill-card.mc-card .skill-fill{background:var(--accent-dim)}.contact-grid{gap:.9rem;display:grid}.contact-split{grid-template-columns:1fr 1fr;align-items:start;gap:1.2rem;display:grid}.contact-links-col{flex-direction:column;gap:.9rem;display:flex}.contact-form{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);flex-direction:column;gap:.6rem;padding:1.2rem;display:flex}.contact-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-mono);resize:vertical;outline:none;padding:.55rem .75rem;font-size:.68rem;transition:border-color .2s}.contact-input::placeholder{color:var(--text-muted)}.contact-input:focus{border-color:var(--border-hover)}.contact-textarea{min-height:80px}.contact-submit{background:var(--accent);border-radius:var(--r-sm);color:var(--bg);font-family:var(--font-mono);cursor:pointer;border:none;padding:.5rem;font-size:.68rem;font-weight:700;transition:background .2s}.contact-submit:hover{background:var(--accent2)}.contact-submit:disabled{opacity:.6;cursor:default}.contact-submit.sent{background:#238636}.contact-submit.error{background:#da3633}.contact-link-card{color:var(--text);border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);transition:border-color .25s var(--ease), background .25s var(--ease);align-items:center;gap:.9rem;padding:1.3rem;text-decoration:none;display:flex}.contact-link-card:hover{border-color:var(--border-hover);background:var(--surface-hover)}.contact-link-icon{border:1px solid var(--border);width:40px;height:40px;color:var(--accent);border-radius:var(--r-sm);transition:border-color .25s var(--ease), transform .3s var(--spring);flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-link-card:hover .contact-link-icon{border-color:var(--border-hover);transform:scale(1.06)}.contact-link-info h3{font-family:var(--font-mono);margin-bottom:.1rem;font-size:.82rem;font-weight:400}.contact-link-info p{color:var(--text-dim);font-size:.65rem}.github-stats-grid{grid-template-columns:repeat(4,1fr);gap:.7rem;margin-bottom:2rem;display:grid}.github-stat-card{text-align:center;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);transition:border-color .25s var(--ease), background .25s var(--ease);padding:1.1rem}.github-stat-card.lg{grid-column:span 2}.github-stat-card:hover{border-color:var(--border-hover);background:var(--surface-hover)}.github-stat-card .number{font-family:var(--font-mono);color:var(--accent);font-size:1.6rem;font-weight:400}.github-stat-card .label{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;margin-top:.25rem;font-size:.55rem}.github-repos-grid{grid-template-columns:repeat(2,1fr);gap:.9rem;display:grid}.repo-link{color:inherit;text-decoration:none}.repo-card{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);transition:border-color .25s var(--ease), background .25s var(--ease);flex-direction:column;gap:.6rem;padding:1.3rem;display:flex}.repo-card:hover{border-color:var(--border-hover);background:var(--surface-hover)}.repo-card.soon{opacity:.5}.repo-header{align-items:center;gap:.6rem;display:flex}.repo-icon{border:1px solid var(--border);width:30px;height:30px;color:var(--accent);border-radius:var(--r-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.repo-header h3{font-family:var(--font-mono);color:var(--text);font-size:.8rem;font-weight:400}.repo-meta{color:var(--text-dim);align-items:center;gap:.8rem;font-size:.6rem;display:flex}.repo-lang{align-items:center;gap:.3rem;display:inline-flex}.repo-lang:before{content:"";background:var(--accent-dim);border-radius:50%;width:8px;height:8px}.projects-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.project-card{color:inherit;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);transition:border-color .25s var(--ease), background .25s var(--ease), transform .25s var(--spring);flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.project-card:hover{border-color:var(--border-hover);background:var(--surface-hover);transform:translateY(-2px)}.project-img-wrap{aspect-ratio:16/9;background:var(--bg);width:100%;overflow:hidden}.project-img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--ease);display:block}.project-card:hover .project-img{transform:scale(1.04)}.project-info{flex-direction:column;flex:1;gap:.5rem;padding:1.2rem;display:flex}.project-title{font-family:var(--font-mono);color:var(--accent);font-size:.85rem;font-weight:400}.project-desc{color:var(--text-dim);flex:1;font-size:.7rem;line-height:1.7}.project-links{flex-wrap:wrap;gap:.5rem;margin-top:.3rem;display:flex}.project-link-btn{border:1px solid var(--border);border-radius:var(--r-sm);font-family:var(--font-mono);color:var(--text-dim);transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);background:0 0;align-items:center;gap:.35rem;padding:.3rem .65rem;font-size:.6rem;display:inline-flex}.project-link-btn:hover{border-color:var(--border-hover);color:var(--accent);background:var(--surface-hover)}.project-link-btn svg{flex-shrink:0}.projects-all-link{color:var(--text-dim);text-align:center;margin-top:1.5rem;font-size:.65rem}.projects-all-link a{color:var(--accent);border-bottom:1px solid #0000;align-items:center;gap:.3rem;text-decoration:none;transition:border-color .2s;display:inline-flex}.projects-all-link a:hover{border-bottom-color:var(--accent)}.projects-all-link a svg{flex-shrink:0}.github-skeleton{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-sm);animation:1.5s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.footer{text-align:center;color:var(--text-dim);border-top:1px solid var(--border);padding:2rem;font-size:.6rem}.footer-prompt{color:var(--accent);opacity:.5;margin-right:.3em}.footer-links{justify-content:center;gap:1.2rem;margin-top:.5rem;display:flex}.footer-link{color:var(--text-muted);font-size:.55rem;font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none;transition:color .2s}.footer-link:hover{color:var(--accent)}.cookie-box{z-index:999;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);max-width:340px;animation:slideUpCookie .5s var(--spring);padding:1.2rem;position:fixed;bottom:1.2rem;left:1.2rem;box-shadow:0 4px 20px #00000014}.cookie-box-wide{max-width:380px}@keyframes slideUpCookie{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.cookie-title{font-family:var(--font-mono);color:var(--accent);margin-bottom:.4rem;font-size:.75rem;font-weight:400}.cookie-desc{color:var(--text-dim);margin-bottom:.8rem;font-size:.62rem;line-height:1.7}.cookie-buttons{flex-wrap:wrap;gap:.4rem;display:flex}.cookie-accept{background:var(--accent);color:var(--bg);font-family:var(--font-mono);border-radius:var(--r-sm);cursor:pointer;border:none;flex:1;min-width:80px;padding:.4rem;font-size:.6rem;font-weight:700;transition:background .2s}.cookie-accept:hover{background:var(--accent2)}.cookie-decline{border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);border-radius:var(--r-sm);cursor:pointer;background:0 0;padding:.4rem .6rem;font-size:.6rem;transition:background .2s,color .2s}.cookie-decline:hover{background:var(--surface-hover);color:var(--text)}.cookie-settings-btn{width:100%;color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;margin-top:.2rem;padding:.35rem;font-size:.55rem;transition:color .2s}.cookie-settings-btn:hover{color:var(--text-dim)}.cookie-category{background:var(--surface);border-radius:var(--r-sm);border:1px solid var(--border);margin-bottom:.8rem;padding:.6rem}.cookie-cat-header{justify-content:space-between;align-items:center;margin-bottom:.3rem;display:flex}.cookie-cat-name{font-family:var(--font-mono);color:var(--text);font-size:.65rem}.cookie-always{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.5rem}.cookie-cat-desc{color:var(--text-dim);font-size:.55rem;line-height:1.6}.cookie-toggle{cursor:pointer;width:32px;height:18px;display:inline-block;position:relative}.cookie-toggle input{opacity:0;width:0;height:0}.cookie-toggle-slider{background:var(--border);border-radius:99px;transition:background .25s;position:absolute;inset:0}.cookie-toggle-slider:before{content:"";background:var(--bg);border-radius:50%;width:14px;height:14px;transition:transform .25s;position:absolute;top:2px;left:2px}.cookie-toggle input:checked+.cookie-toggle-slider{background:var(--accent)}.cookie-toggle input:checked+.cookie-toggle-slider:before{transform:translate(14px)}.consent-bar{z-index:999;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);max-width:280px;animation:slideUpCookie .5s var(--spring);padding:1rem;position:fixed;bottom:1.2rem;left:1.2rem;box-shadow:0 4px 20px #00000014}.consent-bar p{color:var(--text-dim);margin-bottom:.7rem;font-size:.65rem;line-height:1.6}.consent-buttons{gap:.45rem;display:flex}.consent-accept{background:var(--accent);color:var(--bg);font-family:var(--font-mono);border-radius:var(--r-sm);cursor:pointer;border:none;flex:1;padding:.38rem;font-size:.62rem;font-weight:700;transition:background .2s}.consent-accept:hover{background:var(--accent2)}.consent-decline{border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);border-radius:var(--r-sm);cursor:pointer;background:0 0;padding:.38rem .65rem;font-size:.62rem;transition:background .2s,color .2s}.consent-decline:hover{background:var(--surface-hover);color:var(--text)}@media (width<=900px){.hero{flex-direction:column;gap:2.5rem;padding:8rem 1.5rem 4rem}.hero-right{display:none}.about-content{grid-template-columns:1fr}.skills-split{grid-template-columns:1fr;gap:2rem}.skills-col-grid{grid-template-columns:1fr 1fr}section{padding:2.5rem 1.2rem}.term-body{padding:1.5rem}.github-stats-grid{grid-template-columns:repeat(2,1fr)}.github-repos-grid,.projects-grid,.contact-split{grid-template-columns:1fr}}@media (width<=640px){.nav-pill{min-width:auto}.nav-logo,.nav-divider-li{display:none}.skills-col-grid{grid-template-columns:1fr}.hero-buttons{flex-direction:column}.hero-buttons .btn{justify-content:center;width:100%}.contact-grid{grid-template-columns:1fr!important}.contact-split,.about-stats,.github-stats-grid{grid-template-columns:1fr}}.admin-login{background:#0d1117;justify-content:center;align-items:center;min-height:100vh;font-family:Space Mono,monospace;display:flex}.admin-login-box{text-align:center;background:#161b22;border:1px solid #30363d;border-radius:8px;width:320px;padding:2.5rem}.admin-login-box h1{color:#e6edf3;margin-bottom:.3rem;font-family:Space Mono,monospace;font-size:1.4rem;font-weight:400}.admin-login-box p{color:#8b949e;margin-bottom:1.5rem;font-size:.7rem}.admin-login-box input{color:#e6edf3;background:#0d1117;border:1px solid #30363d;border-radius:6px;outline:none;width:100%;margin-bottom:.8rem;padding:.6rem .8rem;font-family:Space Mono,monospace;font-size:.75rem;transition:border-color .2s}.admin-login-box input:focus{border-color:#58a6ff}.admin-login-box button{color:#fff;cursor:pointer;background:#238636;border:none;border-radius:6px;width:100%;padding:.6rem;font-family:Space Mono,monospace;font-size:.75rem;font-weight:700;transition:background .2s}.admin-login-box button:hover{background:#2ea043}.admin-error{color:#f85149;margin-bottom:.6rem;font-size:.65rem;display:block}.admin-layout{background:#0d1117;min-height:100vh;font-family:Space Mono,monospace;display:flex}.admin-sidebar{z-index:10;background:#161b22;border-right:1px solid #30363d;flex-direction:column;width:240px;display:flex;position:fixed;top:0;bottom:0;left:0}.admin-sidebar-top{border-bottom:1px solid #30363d;padding:1.2rem}.admin-logo{color:#e6edf3;margin-bottom:.8rem;font-size:.85rem;font-weight:400}.admin-lang-switch{gap:.3rem;display:flex}.admin-lang-switch button{color:#8b949e;cursor:pointer;background:#0d1117;border:1px solid #30363d;border-radius:4px;flex:1;padding:.3rem;font-family:Space Mono,monospace;font-size:.6rem;transition:all .2s}.admin-lang-switch button.active{color:#fff;background:#1f6feb;border-color:#1f6feb}.admin-lang-switch button:hover:not(.active){border-color:#8b949e}.admin-nav{flex-direction:column;flex:1;gap:.2rem;padding:.6rem;display:flex}.admin-nav-btn{color:#8b949e;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:.6rem;padding:.55rem .7rem;font-family:Space Mono,monospace;font-size:.7rem;transition:all .15s;display:flex}.admin-nav-btn:hover{color:#e6edf3;background:#21262d}.admin-nav-btn.active{color:#58a6ff;background:#1f6feb22;border-color:#1f6feb44}.admin-nav-icon{text-align:center;width:1.2rem;font-size:.75rem;font-weight:700}.admin-sidebar-bottom{border-top:1px solid #30363d;flex-direction:column;gap:.3rem;padding:.8rem;display:flex}.admin-btn-sm{color:#8b949e;cursor:pointer;text-align:center;background:#21262d;border:1px solid #30363d;border-radius:4px;padding:.35rem .6rem;font-family:Space Mono,monospace;font-size:.6rem;text-decoration:none;transition:all .15s}.admin-btn-sm:hover{color:#e6edf3;border-color:#8b949e}.admin-btn-link{display:block}.admin-main{flex:1;min-height:100vh;margin-left:240px;padding:2rem 2.5rem}.admin-section{max-width:900px}.admin-section-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.admin-section-header h2{color:#e6edf3;font-size:1.1rem;font-weight:400}.admin-section-actions{gap:.4rem;display:flex}.admin-btn{color:#c9d1d9;cursor:pointer;background:#21262d;border:1px solid #30363d;border-radius:6px;padding:.45rem .9rem;font-family:Space Mono,monospace;font-size:.68rem;transition:all .15s}.admin-btn:hover{border-color:#8b949e}.admin-btn-primary{color:#fff;background:#238636;border-color:#238636}.admin-btn-primary:hover{background:#2ea043}.admin-btn-ghost{color:#8b949e;background:0 0;border-color:#30363d}.admin-btn-ghost:hover{color:#f85149;border-color:#f85149}.admin-danger{color:#f85149}.admin-table{border:1px solid #30363d;border-radius:6px;overflow:hidden}.admin-table-head{color:#8b949e;text-transform:uppercase;letter-spacing:.08em;background:#161b22;border-bottom:1px solid #30363d;grid-template-columns:1fr 140px 100px 120px;padding:.6rem 1rem;font-size:.6rem;display:grid}.admin-table-row{color:#c9d1d9;border-bottom:1px solid #21262d;grid-template-columns:1fr 140px 100px 120px;align-items:center;padding:.7rem 1rem;font-size:.72rem;transition:background .15s;display:grid}.admin-table-row:last-child{border-bottom:none}.admin-table-row:hover{background:#161b22}.admin-table-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-level-bar{background:#21262d;border-radius:99px;align-items:center;height:6px;display:flex;position:relative;overflow:visible}.admin-level-fill{background:#58a6ff;border-radius:99px;height:100%;position:absolute;top:0;left:0}.admin-table-row .admin-level-bar:after{content:attr(data-level)}.admin-icon-badge{color:#8b949e;background:#21262d;border-radius:4px;padding:.15rem .4rem;font-size:.6rem;display:inline-block}.admin-row-actions{gap:.3rem;display:flex}.admin-row-actions button{color:#8b949e;cursor:pointer;background:0 0;border:1px solid #30363d;border-radius:4px;padding:.2rem .5rem;font-family:Space Mono,monospace;font-size:.6rem;transition:all .15s}.admin-row-actions button:hover{color:#58a6ff;border-color:#58a6ff}.admin-row-actions button.admin-danger:hover{color:#f85149;border-color:#f85149}.admin-cards{flex-direction:column;gap:.7rem;display:flex}.admin-project-card{background:#161b22;border:1px solid #30363d;border-radius:6px;align-items:center;gap:1rem;padding:.8rem 1rem;transition:border-color .2s;display:flex}.admin-project-card:hover{border-color:#484f58}.admin-project-thumb{object-fit:cover;background:#0d1117;border-radius:4px;flex-shrink:0;width:80px;height:50px}.admin-project-info{flex:1;min-width:0}.admin-project-info h4{color:#e6edf3;margin-bottom:.2rem;font-size:.78rem;font-weight:400}.admin-project-info p{color:#8b949e;white-space:nowrap;text-overflow:ellipsis;font-size:.62rem;overflow:hidden}.admin-project-links-preview{flex-wrap:wrap;gap:.3rem;margin-top:.3rem;display:flex}.admin-link-chip{color:#8b949e;background:#21262d;border-radius:3px;padding:.1rem .4rem;font-size:.55rem}.admin-project-actions{flex-shrink:0;gap:.3rem;display:flex}.admin-project-actions button{color:#8b949e;cursor:pointer;background:0 0;border:1px solid #30363d;border-radius:4px;padding:.25rem .6rem;font-family:Space Mono,monospace;font-size:.6rem;transition:all .15s}.admin-project-actions button:hover{color:#58a6ff;border-color:#58a6ff}.admin-project-actions button.admin-danger:hover{color:#f85149;border-color:#f85149}.admin-modal{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal-box{background:#161b22;border:1px solid #30363d;border-radius:8px;width:380px;max-height:85vh;padding:1.8rem;overflow-y:auto}.admin-modal-lg{width:520px}.admin-modal-box h3{color:#e6edf3;margin-bottom:1.2rem;font-size:.9rem;font-weight:400}.admin-modal-box label{color:#8b949e;flex-direction:column;gap:.3rem;margin-bottom:.9rem;font-size:.62rem;display:flex}.admin-modal-box input,.admin-modal-box select,.admin-modal-box textarea{color:#e6edf3;resize:vertical;background:#0d1117;border:1px solid #30363d;border-radius:4px;outline:none;padding:.5rem .7rem;font-family:Space Mono,monospace;font-size:.72rem;transition:border-color .2s}.admin-modal-box input:focus,.admin-modal-box select:focus,.admin-modal-box textarea:focus{border-color:#58a6ff}.admin-modal-actions{gap:.4rem;margin-top:1.2rem;display:flex}.admin-img-preview{border:1px solid #30363d;border-radius:4px;margin-bottom:.9rem;overflow:hidden}.admin-img-preview img{object-fit:cover;width:100%;max-height:160px;display:block}.admin-links-section{margin-bottom:.5rem}.admin-links-header{color:#8b949e;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.62rem;display:flex}.admin-link-row{gap:.3rem;margin-bottom:.4rem;display:flex}.admin-link-row input{color:#e6edf3;background:#0d1117;border:1px solid #30363d;border-radius:4px;outline:none;flex:1;padding:.4rem .6rem;font-family:Space Mono,monospace;font-size:.65rem}.admin-link-row input:focus{border-color:#58a6ff}.admin-link-row select{color:#e6edf3;background:#0d1117;border:1px solid #30363d;border-radius:4px;outline:none;padding:.4rem;font-family:Space Mono,monospace;font-size:.65rem}.admin-heatmap-card{background:#161b22;border:1px solid #30363d;border-radius:6px;margin-bottom:1.5rem;padding:1.5rem;overflow-x:auto}.heatmap-wrap{gap:.5rem;display:flex}.heatmap-labels{color:#8b949e;flex-direction:column;gap:3px;padding-top:22px;font-size:.5rem;display:flex}.heatmap-labels span{height:13px;line-height:13px}.heatmap-grid{position:relative}.heatmap-months{height:18px;position:relative}.heatmap-month{color:#8b949e;font-size:.5rem;position:absolute;top:0}.heatmap-svg{margin-top:4px;display:block}.heatmap-cell{transition:opacity .15s}.heatmap-cell.level-0{fill:#161b22}.heatmap-cell.level-1{fill:#0e4429}.heatmap-cell.level-2{fill:#006d32}.heatmap-cell.level-3{fill:#26a641}.heatmap-cell.level-4{fill:#39d353}.heatmap-cell:hover{stroke:#e6edf3;stroke-width:1px}.heatmap-legend{color:#8b949e;justify-content:flex-end;align-items:center;gap:.3rem;margin-top:.8rem;font-size:.5rem;display:flex}.heatmap-legend .heatmap-cell{border-radius:2px;width:11px;height:11px}.admin-heatmap-entries h3{color:#e6edf3;margin-bottom:.7rem;font-size:.8rem;font-weight:400}.admin-heatmap-entry{color:#c9d1d9;background:#161b22;border:1px solid #30363d;border-radius:4px;align-items:center;gap:.8rem;margin-bottom:.3rem;padding:.5rem .7rem;font-size:.7rem;display:flex}.admin-level-badge{border-radius:3px;padding:.1rem .45rem;font-size:.55rem;font-weight:700}.admin-level-badge.level-0{color:#8b949e;background:#161b22}.admin-level-badge.level-1{color:#39d353;background:#0e4429}.admin-level-badge.level-2{color:#39d353;background:#006d32}.admin-level-badge.level-3{color:#fff;background:#26a641}.admin-level-badge.level-4{color:#000;background:#39d353}.admin-empty{color:#484f58;padding:.5rem 0;font-size:.65rem}@media (width<=768px){.admin-sidebar{width:60px}.admin-sidebar-top{padding:.8rem .4rem}.admin-logo{font-size:0}.admin-lang-switch{flex-direction:column}.admin-nav-btn{justify-content:center;padding:.5rem;font-size:0}.admin-nav-icon{width:auto;font-size:.85rem}.admin-sidebar-bottom{padding:.4rem}.admin-btn-sm{padding:.4rem;font-size:0}.admin-btn-link{font-size:0}.admin-main{margin-left:60px;padding:1.2rem}.admin-table-head,.admin-table-row{grid-template-columns:1fr 80px 80px}.admin-table-head span:nth-child(4),.admin-table-row .admin-row-actions{display:none}}.privacy-page{background:var(--bg);min-height:100vh;padding:2rem 1rem}.privacy-container{max-width:720px;font-family:var(--font-mono);margin:0 auto}.privacy-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:2.5rem;padding-bottom:1rem;display:flex}.privacy-back,.privacy-back-bottom{color:var(--text-dim);font-size:.7rem;text-decoration:none;transition:color .2s}.privacy-back:hover,.privacy-back-bottom:hover{color:var(--accent)}.privacy-lang{gap:.3rem;display:flex}.privacy-lang a{color:var(--text-muted);border-radius:4px;padding:.15rem .35rem;font-size:.6rem;text-decoration:none;transition:all .2s}.privacy-lang a.active{color:var(--accent);background:#0000000d}.privacy-lang a:hover:not(.active){color:var(--text-dim)}.privacy-page h1{font-family:var(--font-mono);color:var(--accent);margin-bottom:.3rem;font-size:clamp(1.2rem,3vw,1.8rem);font-weight:400}.privacy-updated{color:var(--text-muted);margin-bottom:2rem;font-size:.6rem}.privacy-page h2{font-family:var(--font-mono);color:var(--accent);margin-top:1.8rem;margin-bottom:.5rem;font-size:.85rem;font-weight:400}.privacy-page p{color:var(--text-dim);margin-bottom:.8rem;font-size:.72rem;line-height:1.8}.privacy-list{margin-bottom:1rem;padding:0;list-style:none}.privacy-list li{color:var(--text-dim);margin-bottom:.3rem;padding-left:1.2rem;font-size:.72rem;line-height:1.8;position:relative}.privacy-list li:before{content:"—";color:var(--text-muted);position:absolute;left:0}.privacy-list li strong{color:var(--text)}.privacy-table-wrap{margin:1rem 0;overflow-x:auto}.privacy-table{border-collapse:collapse;width:100%;font-size:.62rem}.privacy-table th{text-align:left;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:.5rem .6rem;font-weight:400}.privacy-table td{border:1px solid var(--border);color:var(--text-dim);padding:.5rem .6rem}.privacy-table code{font-family:var(--font-mono);color:var(--accent);font-size:.6rem}.privacy-table tr:hover td{background:var(--surface)}.privacy-footer{border-top:1px solid var(--border);margin-top:3rem;padding-top:1.5rem}.privacy-back-bottom{display:inline-block}@media (width<=640px){.privacy-page{padding:1.2rem .8rem}.privacy-table{font-size:.55rem}.privacy-table th,.privacy-table td{padding:.35rem .4rem}}
