@import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Geist:wght@300;400;500;600;700&display=swap");html{scroll-behavior:smooth}*,:after,:before{margin:0;padding:0;box-sizing:border-box;cursor:none}body{background:#0a0a0a;color:#ededed;font-size:14px;-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}.scroll-line{top:0;left:0;height:1.5px;width:0;z-index:100;transition:width .1s linear}.cursor,.scroll-line{position:fixed;background:#f5f5f5}.cursor{width:12px;height:12px;border-radius:50%;pointer-events:none;z-index:999;transform:translate(-50%,-50%);transition:transform .08s}@media (hover:none){.cursor{display:none}*{cursor:auto}}.container{max-width:860px;margin:0 auto;padding:0 24px}header{padding:72px 0 48px;border-bottom:.5px solid #2a2a2a;animation:fadeUp .8s ease both}.header-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}.top-tag{font-size:11px;color:#999;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}h1{font-size:clamp(36px,6vw,64px);font-weight:800;color:#f5f5f5;line-height:1;letter-spacing:-.02em}.headline,h1 span{color:#999}.headline{margin-top:16px;font-size:14px;-webkit-font-smoothing:antialiased;max-width:400px}.links-block{display:flex;gap:10px;flex-shrink:0}.icon-link{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:.5px solid #2a2a2a;border-radius:50%;color:#999;text-decoration:none;font-size:16px;transition:all .2s}.icon-link:hover{border-color:#bbb;color:#f5f5f5;background:hsla(0,0%,100%,.04)}.stats{display:flex;gap:32px;flex-wrap:wrap;padding:32px 0}.stat-item{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#888}.stat-item strong{display:block;font-size:20px;color:#f5f5f5;letter-spacing:-.02em;margin-bottom:2px}section{padding:28px 0}section:last-of-type{border-bottom:none}.section-label{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#888;margin-bottom:28px;display:flex;align-items:center;gap:12px}.section-label:after{content:"";flex:1;height:.5px;background:#2a2a2a}.about-text{font-size:15px;line-height:1.8;color:#bbb}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:#2a2a2a;border:.5px solid #2a2a2a;border-radius:4px;overflow:hidden}.project-card{background:#0a0a0a;padding:24px;text-decoration:none;color:inherit;position:relative;overflow:hidden;transition:background .2s;display:block}.project-card:hover{background:#111}.project-card:after{display:none}.project-arrow{position:absolute;top:22px;right:22px;color:#777;transition:all .2s}.project-card:hover .project-arrow,.project-card:hover:after{color:#f5f5f5;transform:translate(2px,-2px)}.project-date{font-size:10px;color:#777;margin-bottom:10px;letter-spacing:.08em}.project-name{font-weight:700;color:#f5f5f5;margin-bottom:8px}.project-desc{font-size:12px;color:#999;line-height:1.6;margin-bottom:16px}.project-tags{display:flex;flex-wrap:wrap;gap:6px}.tag-pill{font-size:10px;padding:3px 8px;border:.5px solid #2a2a2a;border-radius:3px;color:#888;letter-spacing:.05em}.exp-list{display:flex;flex-direction:column}.exp-item{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:20px 0;border-bottom:.5px solid #2a2a2a}.exp-item:last-child{border-bottom:none}.exp-period{font-size:11px;color:#888;padding-top:2px;line-height:1.8}.exp-role{font-weight:600;color:#f5f5f5;margin-bottom:3px}.exp-company{font-size:12px;color:#888;margin-bottom:6px}.exp-skills{font-size:11px;color:#777;letter-spacing:.05em}.skills-grid{display:flex;flex-wrap:wrap;gap:8px}.skill-tag{font-size:11px;padding:6px 12px;border:.5px solid #2a2a2a;border-radius:3px;color:#888;transition:all .2s;cursor:default;letter-spacing:.05em}.skill-tag:hover{border-color:#bbb;color:#f5f5f5}footer{padding:32px 0;text-align:center;font-size:11px;color:#777;letter-spacing:.1em}.anim{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.anim.visible{opacity:1;transform:translateY(0)}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}