:root{--col: 44rem}nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:.9rem 1.5rem;display:flex;justify-content:space-between;align-items:center;background:var(--nav-bg);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--hair)}.nav-logo{font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.nav-links{display:flex;gap:1.6rem;list-style:none}.nav-links a{color:var(--text-muted);text-decoration:none;font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;transition:color .18s ease}.nav-links a:hover,.nav-links a.active{color:var(--text)}section{padding:5.5rem 1.5rem;position:relative;z-index:2}#hero{padding:9rem 1.5rem 6rem}.section-inner{max-width:var(--col);margin:0 auto;width:100%;opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.section-inner.visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.section-inner{opacity:1;transform:none;transition:none}}#about .section-inner,#skills .section-inner,#projects .section-inner,#contact .section-inner{border-top:1px solid var(--hair);padding-top:5.5rem}.section-label{font-family:var(--mono);font-size:.74rem;font-weight:500;color:var(--accent);text-transform:uppercase;letter-spacing:.14em;margin-bottom:1.1rem;display:flex;align-items:center;gap:.6rem}.section-label:before{content:"";width:1.4rem;height:1px;background:var(--accent);opacity:.5}.section-title{font-size:1.5rem;font-weight:620;letter-spacing:-.02em;margin-bottom:2.2rem;color:var(--text);text-wrap:balance}#hero{text-align:left}.hero-greeting{font-family:var(--mono);font-size:.8rem;letter-spacing:.12em;color:var(--text-muted);margin-bottom:1.3rem}.hero-name{font-size:clamp(2.8rem,8vw,4.4rem);font-weight:700;letter-spacing:-.045em;line-height:1.02;margin-bottom:.2rem;color:var(--text)}.hero-title{font-size:clamp(2.8rem,8vw,4.4rem);font-weight:700;letter-spacing:-.045em;line-height:1.02;color:var(--faint);margin-bottom:1.8rem}.hero-desc{font-size:1.05rem;color:var(--text-muted);max-width:32rem;margin-bottom:2.6rem}.scroll-indicator{display:inline-flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--faint);font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;animation:bounce 2s infinite}.scroll-indicator .arrow{width:14px;height:14px;border-right:1.5px solid var(--faint);border-bottom:1.5px solid var(--faint);transform:rotate(45deg)}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(6px)}60%{transform:translateY(3px)}}@media(prefers-reduced-motion:reduce){.scroll-indicator{animation:none}}.about-content{display:block}.about-text p{color:var(--text-muted);margin-bottom:1.1rem;max-width:34rem}.about-text strong{color:var(--text);font-weight:600}.about-highlights{display:flex;flex-direction:column;margin-top:2.4rem;border-top:1px solid var(--hair)}.highlight-card{display:grid;grid-template-columns:8rem 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--hair);align-items:baseline}.highlight-card .label{font-family:var(--mono);font-size:.72rem;color:var(--faint);text-transform:uppercase;letter-spacing:.1em}.highlight-card .value{font-size:1rem;font-weight:560;color:var(--text)}.highlight-card .desc{font-size:.9rem;color:var(--text-muted);margin-top:.15rem}.skills-grid{display:flex;flex-direction:column;border-top:1px solid var(--hair)}.skill-category{display:grid;grid-template-columns:9rem 1fr;gap:1rem;padding:1.2rem 0;border-bottom:1px solid var(--hair);align-items:start}.skill-category h3{font-family:var(--mono);font-size:.74rem;color:var(--faint);text-transform:uppercase;letter-spacing:.1em;font-weight:500;margin-top:.2rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag{color:var(--text);padding:.28rem .6rem;border-radius:5px;font-size:.82rem;border:1px solid var(--hair-strong);transition:border-color .15s ease,color .15s ease}.skill-tag:hover{color:var(--accent);border-color:var(--accent)}.projects-list{display:flex;flex-direction:column;border-top:1px solid var(--hair)}.project-card{display:block;padding:1.5rem 0;border-bottom:1px solid var(--hair);cursor:pointer;position:relative;transition:padding-left .2s ease}.project-card:before{content:"";position:absolute;left:0;top:1.5rem;bottom:1.5rem;width:2px;background:var(--accent);opacity:0;transform:scaleY(.4);transform-origin:top;transition:opacity .2s ease,transform .2s ease}.project-card:hover{padding-left:.7rem}.project-card:hover:before{opacity:1;transform:scaleY(1)}.project-role{font-family:var(--mono);font-size:.74rem;color:var(--accent);letter-spacing:.02em;margin-bottom:.35rem}.project-name{font-size:1.15rem;font-weight:600;letter-spacing:-.015em;color:var(--text);margin-bottom:.35rem}.project-period{font-family:var(--mono);font-size:.72rem;color:var(--faint);margin-bottom:.7rem}.project-desc{color:var(--text-muted);font-size:.94rem;max-width:36rem;margin-bottom:.8rem}.project-tech{display:flex;flex-wrap:wrap;gap:.4rem}.project-tech span{font-family:var(--mono);font-size:.68rem;color:var(--faint)}.project-tech span:after{content:"·";margin-left:.4rem;color:var(--hair-strong)}.project-tech span:last-child:after{content:""}.project-click-hint{font-family:var(--mono);font-size:.72rem;color:var(--accent);margin-top:.8rem;opacity:0;transform:translate(-4px);transition:opacity .2s ease,transform .2s ease}.project-card:hover .project-click-hint{opacity:1;transform:translate(0)}.project-num{display:none}.award-badge{display:inline-block;font-family:var(--mono);background:var(--accent-soft);color:var(--accent);font-size:.66rem;font-weight:600;padding:.15rem .5rem;border-radius:4px;letter-spacing:.04em;margin-left:.5rem;vertical-align:middle}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#17181c66;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;padding:2rem}.modal-overlay.open{opacity:1;visibility:visible}.modal{background:var(--surface);border:1px solid var(--hair);border-radius:12px;max-width:680px;width:100%;max-height:85vh;overflow-y:auto;padding:2.5rem;box-shadow:0 12px 40px #17181c1f;transform:translateY(16px);transition:transform .25s}.modal-overlay.open .modal{transform:translateY(0)}.modal-close{float:right;background:none;border:none;font-size:1.4rem;color:var(--faint);cursor:pointer;padding:.25rem;line-height:1;transition:color .2s}.modal-close:hover{color:var(--text)}.modal-badge{display:inline-block;font-family:var(--mono);background:var(--accent-soft);color:var(--accent);font-size:.72rem;font-weight:600;padding:.22rem .7rem;border-radius:4px;margin-bottom:1rem}.modal-role{font-family:var(--mono);font-size:.74rem;color:var(--accent);letter-spacing:.02em;margin-bottom:.3rem}.modal-title{font-size:1.5rem;font-weight:640;letter-spacing:-.02em;color:var(--text);margin-bottom:.3rem}.modal-period{font-family:var(--mono);font-size:.78rem;color:var(--faint);margin-bottom:1.5rem}.modal-section-title{font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--faint);margin:1.6rem 0 .8rem;padding-bottom:.4rem;border-bottom:1px solid var(--hair)}.modal-text{color:var(--text-muted);font-size:.94rem;margin-bottom:.5rem}.modal-list{list-style:none;padding:0}.modal-list li{color:var(--text-muted);font-size:.92rem;padding-left:1.1rem;position:relative;margin-bottom:.3rem}.modal-list li:before{content:"–";color:var(--accent);position:absolute;left:0}.modal-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.modal-tech span{font-family:var(--mono);font-size:.72rem;color:var(--text);border:1px solid var(--hair-strong);padding:.24rem .6rem;border-radius:5px}#contact{text-align:left}.contact-desc{color:var(--text-muted);font-size:1.05rem;max-width:34rem;margin-bottom:2rem}.contact-links{display:flex;gap:1rem;flex-wrap:wrap}.contact-link{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.1rem;border:1px solid var(--hair-strong);border-radius:6px;color:var(--text);text-decoration:none;font-family:var(--mono);font-size:.8rem;transition:border-color .18s ease,color .18s ease}.contact-link:hover{color:var(--accent);border-color:var(--accent)}.contact-link svg{width:16px;height:16px}footer{text-align:left;max-width:var(--col);margin:0 auto;padding:2.4rem 1.5rem 3rem;color:var(--faint);font-family:var(--mono);font-size:.72rem;position:relative;z-index:2;border-top:1px solid var(--hair)}.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px}.hamburger span{width:22px;height:1.5px;background:var(--text-muted);transition:all .3s}@media(max-width:768px){.hamburger{display:flex}.nav-links{position:fixed;top:0;right:-100%;width:70%;max-width:300px;height:100vh;background:var(--surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;justify-content:center;align-items:center;gap:2rem;transition:right .4s ease;border-left:1px solid var(--hair)}.nav-links.open{right:0}.nav-links a{font-size:1rem}.highlight-card,.skill-category{grid-template-columns:1fr;gap:.3rem}section{padding:4.5rem 1.2rem}.modal{padding:1.5rem;margin:1rem}}:root{--bg: #fcfcfd;--surface: #ffffff;--hair: #ececed;--hair-strong: #dedee1;--text: #17181c;--text-muted: #72747e;--faint: #9a9ca4;--accent: #2340d9;--accent-soft: rgba(35, 64, 217, .08);--nav-bg: rgba(252, 252, 253, .82);--mono: ui-monospace, "SF Mono", "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, monospace}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}
