*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;cursor:none;font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:1.6}*,:before,:after{transition:background-color .3s,border-color .3s,color .3s}:root{--bg:#f9f9f7;--text:#111110;--text2:#888884;--text3:#bbbbb7;--border:#e4e4e0;--green:#1a6b3c;--nav-bg:#f9f9f7eb}[data-theme=dark]{--bg:#111110;--text:#f0f0ec;--text2:#777772;--text3:#444440;--border:#222220;--green:#4caf78;--nav-bg:#111110eb}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(16px)}.reveal.visible{opacity:1;transform:translateY(0)}section{border-bottom:1px solid var(--border)}.section-inner{padding:5rem 2.5rem}.section-row{grid-template-columns:160px 1fr;align-items:start;gap:4rem;display:grid}.section-label{color:var(--text3);letter-spacing:.06em;text-transform:uppercase;padding-top:.15rem;font-size:11px}@media (width<=768px){.section-inner{padding:3rem 1.25rem}.section-row{grid-template-columns:1fr;gap:1.5rem}.section-label{font-size:10px}}.navbar{z-index:100;background:color-mix(in srgb, var(--bg) 75%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:.95rem 3rem;transition:border-color .3s,background .3s;display:flex;position:fixed;top:0;left:0;right:0;overflow:hidden}.navbar:after{content:"";background:linear-gradient(90deg, transparent, var(--border), transparent);opacity:0;width:100%;height:1px;transition:opacity .3s;position:absolute;bottom:0;left:0}.navbar.scrolled{border-color:var(--border)}.navbar.scrolled:after{opacity:1}.nav-logo{letter-spacing:-.02em;color:var(--text);font-size:13px;font-weight:600;text-decoration:none;transition:opacity .2s}.nav-logo:hover{opacity:.8}.nav-links{align-items:center;gap:2rem;list-style:none;display:flex}.nav-links a{color:var(--text2);font-size:13px;font-weight:500;text-decoration:none;transition:color .2s;position:relative}.nav-links a:after{content:"";opacity:.7;background:var(--text);width:0;height:.5px;transition:width .25s;position:absolute;bottom:-3px;left:0}.nav-links a:hover{color:var(--text)}.nav-links a:hover:after{width:100%}.nav-links a.active{color:var(--text)}.nav-links a.active:after{width:100%}.nav-right{align-items:center;gap:1.25rem;display:flex}.nav-status{color:var(--green);align-items:center;gap:.55rem;font-size:12px;font-weight:500;display:flex}.status-dot{background:var(--green);border-radius:999px;width:6px;height:6px;animation:2.5s infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.6)}}.theme-toggle{border:1px solid var(--border);letter-spacing:.04em;color:var(--text3);cursor:pointer;background:0 0;align-items:center;gap:.6rem;padding:.45rem .8rem;font-family:Inter,sans-serif;font-size:11px;font-weight:500;transition:border-color .2s,color .2s,background .2s,transform .2s;display:flex}.theme-toggle:hover{border-color:var(--text3);color:var(--text2);background:var(--surface-hover);transform:translateY(-1px)}.theme-toggle:active{transform:translateY(0)}.theme-toggle-icon{flex-shrink:0;width:12px;height:12px}@media (width<=768px){.navbar{padding:1rem 1.25rem}.nav-links,.nav-status,.theme-toggle span{display:none}.theme-toggle{padding:.5rem}}.footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.5rem 3rem;display:flex}.footer-copy{letter-spacing:.03em;color:var(--text3);font-size:11px}.footer-back{color:var(--text3);font-size:11px;text-decoration:none;transition:color .2s,transform .2s}.footer-back:hover{color:var(--text);transform:translateY(-1px)}@media (width<=768px){.footer{text-align:center;flex-direction:column;gap:.75rem;padding:1.25rem}}.hero{border-bottom:1px solid var(--border);align-items:flex-end;min-height:100vh;display:flex}.hero-content{width:100%;padding:7rem 3rem 4rem}.hero-name{letter-spacing:-.05em;color:var(--text);font-size:clamp(4rem,10vw,9rem);font-weight:300;line-height:.9}.hero-bottom{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-end;margin-top:3rem;padding-top:2rem;display:flex}.hero-role{color:var(--text2);letter-spacing:.02em;font-size:13px}.hero-desc{text-align:right;max-width:360px;color:var(--text2);font-size:13px;line-height:1.8}@media (width<=768px){.hero-content{padding:6rem 1.25rem 3rem}.hero-bottom{flex-direction:column;align-items:flex-start;gap:1rem}.hero-desc{text-align:left}}.skills-list{border:1px solid var(--border);grid-template-columns:repeat(3,1fr);display:grid}.skill-item{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:2rem 2rem 2.25rem;transition:background .2s,border-color .2s}.skill-item:hover{background:#80808008}.skill-item:nth-child(3n){border-right:none}.skill-item:nth-child(n+4){border-bottom:none}.skill-category{letter-spacing:.06em;text-transform:uppercase;color:var(--text3);margin-bottom:1.2rem;font-size:11px}.skill-tags{flex-wrap:wrap;gap:.45rem;display:flex}.skill-tag{border:1px solid var(--border);color:var(--text2);padding:.35rem .65rem;font-size:12px;transition:transform .2s,border-color .2s,color .2s}.skill-tag:hover{border-color:var(--text3);color:var(--text);transform:translateY(-2px)}.skill-tag.react{color:#61dafb}.skill-tag.next{color:#fff}.skill-tag.ts{color:#3178c6}.skill-tag.js{color:#f7df1e}.skill-tag.node{color:#68a063}.skill-tag.py{color:#3776ab}.skill-tag.postgres{color:#336791}.skill-tag.mongo{color:#47a248}.skill-tag.docker{color:#2496ed}.skill-tag.aws{color:#f90}.skill-tag.git{color:#f1502f}.skill-tag.linux{color:#fc3}.skill-tag.figma{color:#f24e1e}.skill-tag.illustator{color:#ff9a00}.skill-tag.premiere{color:#4f46e5}@media (width<=768px){.skills-list{grid-template-columns:1fr}.skill-item{border-right:none}.skill-item:last-child{border-bottom:none}}.projects-list{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;display:grid}.project-item{border:1px solid var(--border);flex-direction:column;justify-content:space-between;min-height:280px;padding:2rem;transition:transform .2s,border-color .2s,background .2s;display:flex}.project-item:hover{border-color:var(--text3);background:#80808008;transform:translateY(-4px)}.project-content{flex-direction:column;gap:.75rem;display:flex}.project-num{letter-spacing:.05em;color:var(--text3);font-size:11px}.project-name{letter-spacing:-.03em;color:var(--text);font-size:22px;font-weight:400}.project-desc{color:var(--text2);font-size:13px;line-height:1.8}.project-tech-row{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.project-tech-tag{border:1px solid var(--border);color:var(--text3);padding:.35rem .65rem;font-size:11px}.project-tech-tag.html{color:#f54927}.project-tech-tag.css{color:#264de4}.project-tech-tag.js{color:#f7df1e}.project-tech-tag.ts{color:#007acc}.project-tech-tag.py{color:#3776ab}.project-links{gap:1rem;margin-top:2rem;display:flex}.project-link{color:var(--text3);font-size:12px;text-decoration:none;transition:color .2s}.project-link:hover{color:var(--text)}.projects-loading{color:var(--text3);font-size:13px}.project-top{justify-content:space-between;align-items:center;display:flex}.project-stars{color:var(--text3);font-size:11px}@media (width<=768px){.projects-list{grid-template-columns:1fr}.project-item{min-height:auto}}.about-content{grid-template-columns:1fr 1fr;gap:5rem;display:grid}.about-text{max-width:560px}.about-bio{letter-spacing:-.01em;color:var(--text2);font-size:15px;font-weight:300;line-height:1.95}.timeline{flex-direction:column;display:flex}.tl-item{border-bottom:1px solid var(--border);grid-template-columns:90px 1fr;gap:1.5rem;padding:1.4rem 0;display:grid}.tl-item:first-child{padding-top:0}.tl-item:last-child{border-bottom:none}.tl-year{letter-spacing:.05em;color:var(--text3);padding-top:.15rem;font-size:11px}.tl-role{color:var(--text);margin-bottom:.2rem;font-size:14px;font-weight:400}.tl-company{color:var(--text2);font-size:13px}@media (width<=768px){.about-content{grid-template-columns:1fr;gap:3rem}.tl-item{grid-template-columns:1fr;gap:.5rem}}.contact-content{grid-template-columns:1fr 1fr;gap:5rem;display:grid}.contact-heading{letter-spacing:-.04em;margin-bottom:1.5rem;font-size:clamp(2rem,4vw,3rem);font-weight:300;line-height:1.05}.contact-note{max-width:420px;color:var(--text2);margin-bottom:3rem;font-size:14px;line-height:1.8}.contact-links{flex-direction:column;display:flex}.contact-link-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 0;display:flex}.contact-link-item:first-child{border-top:1px solid var(--border)}.contact-link-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text3);font-size:11px}.contact-link-val{color:var(--text);font-size:13px;text-decoration:none;transition:color .2s}.contact-link-val:hover{color:var(--text2)}.contact-form{flex-direction:column;gap:.5rem;display:flex}.form-field{border-bottom:1px solid var(--border);padding:1.25rem 0;transition:border-color .2s}.form-field:first-child{border-top:1px solid var(--border)}.form-field:focus-within{border-color:var(--text)}.form-field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text3);margin-bottom:.5rem;font-size:11px;display:block}.form-field input,.form-field textarea{resize:none;width:100%;color:var(--text);background:0 0;border:none;outline:none;padding-top:.25rem;font-family:Inter,sans-serif;font-size:14px}.form-field textarea{min-height:100px}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--text3)}.form-submit{background:var(--text);color:var(--bg);cursor:pointer;border:none;margin-top:1.5rem;padding:.9rem 1.5rem;font-size:12px;font-weight:500;transition:opacity .2s,transform .2s}.form-submit:hover{opacity:.85}.form-submit.sent{opacity:.5;pointer-events:none}@media (width<=768px){.contact-content{grid-template-columns:1fr;gap:3rem}}.cursor{background:var(--text);pointer-events:none;z-index:9999;mix-blend-mode:difference;border-radius:50%;width:8px;height:8px;transition:width .2s,height .2s,border .2s,background .2s,transform 80ms linear;position:fixed;transform:translate(-50%,-50%)}.cursor.hovering{border:1px solid var(--text);background:0 0;width:42px;height:42px}@media (width<=768px){.cursor{display:none}body{cursor:auto}}
