:root{--accent:#16a085;--ink:#212b29;--muted:#79827e;--line:#e1e6e2;--paper:#f7f8f4}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;letter-spacing:-.035em}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.shell{max-width:1120px;margin:auto;padding:0 56px}header{min-height:104px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{font-size:25px;font-weight:750;letter-spacing:-1px;display:flex;align-items:center;flex-shrink:0}.brand-dot{width:13px;height:13px;background:var(--accent);margin-right:12px;border-radius:3px}.muted{color:var(--muted)}nav{display:flex;align-items:center;gap:12px}nav a{padding:12px 16px;border-radius:4px;font-size:14px;white-space:nowrap;transition:background .2s}nav a:hover{background:#e9efea}nav a[aria-current=page]{background:#e1eee5;color:#10735e;font-weight:650}.layout{min-height:calc(100svh - 180px)}main{max-width:800px;margin:auto;padding:54px 0 72px}.eyebrow,.meta-row>span,footer{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:0}.eyebrow{font-size:11px;color:var(--muted);margin:0}.section-top{display:flex;justify-content:space-between;align-items:center;min-height:28px}.small-tag{font-size:11px;border:1px solid var(--line);border-radius:20px;padding:6px 11px;color:#64716a}h1{font-size:clamp(36px,4.8vw,58px);line-height:1.3;letter-spacing:-.065em;margin:40px 0 24px;font-weight:700}.accent{color:#148c73}.intro{font-size:15px;line-height:1.9;color:#69746e;margin-bottom:38px}.about{display:grid;grid-template-columns:150px 1fr;margin-top:48px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:16px}h2{font-size:14px;font-weight:600;margin:0;line-height:1.8}.about p,.meta-row p{margin:0;color:#6f7973;font-size:13px;line-height:1.9}.meta-row{display:grid;grid-template-columns:70px 1fr 75px 1fr;align-items:center;margin-top:22px;gap:12px}.meta-row>span{font-size:9px;color:var(--muted)}.meta-row p{font-size:12px}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:24px 0 30px;font-size:10px;color:var(--muted)}.footer-dot{margin-left:16px;color:var(--accent)}.resume-block p,.project p{font-size:13px;line-height:1.8;color:#6f7973}.footnote{font-size:11px;color:var(--muted);margin-top:25px}.resume-block{border-top:1px solid var(--line);padding:25px 0;display:grid;grid-template-columns:135px 1fr;gap:15px}.resume-block strong{font-size:14px;font-weight:500}.resume-block p{margin-bottom:0}.print-button{border:1px solid var(--line);border-radius:4px;background:transparent;padding:8px 12px;font-size:11px;cursor:pointer}.print-button:hover{background:#e1eee5}.project{display:flex;justify-content:space-between;align-items:flex-start;border-top:1px solid var(--line);padding:25px 0;gap:22px}.project>div{min-width:0}.project>.small-tag{flex-shrink:0;margin-top:3px}.project a:hover,.resume-block a:hover{color:var(--accent)}.project-tech{font:10px ui-monospace,SFMono-Regular,monospace;color:#648176;letter-spacing:0}.skip{position:fixed;top:-80px;left:16px;background:white;padding:12px;z-index:9}.skip:focus{top:12px}[hidden]{display:none!important}@media(max-width:760px){.shell{padding:0 28px}header{gap:18px}.brand{font-size:22px}nav{gap:3px}nav a{padding:11px 10px;font-size:12px}main{padding-top:38px}.about{grid-template-columns:115px 1fr}}@media(max-width:560px){.shell{padding:0 22px}header{align-items:flex-start;flex-direction:column;gap:20px;padding:26px 0 16px}nav{width:100%;justify-content:space-between;gap:4px}nav a{font-size:12px;padding:11px 10px}main{padding:28px 0 44px}h1{font-size:38px;margin-top:29px}.intro{font-size:14px}.about{grid-template-columns:1fr;gap:8px;margin-top:32px}.meta-row{grid-template-columns:75px 1fr}.resume-block{grid-template-columns:75px 1fr}.project{gap:12px}.project>.small-tag{font-size:9px;padding:5px 8px}footer{font-size:9px;gap:15px}footer>span:last-child{max-width:160px;text-align:right;line-height:1.6}}@media print{body{background:white}.shell{padding:0}header,footer,.print-button,.skip{display:none}.layout{min-height:0}main{max-width:none;padding:0}.panel{display:none!important}#resume{display:block!important}h1{font-size:32px}.accent{color:var(--ink)}.resume-block{break-inside:avoid}.footnote{display:none}}

.project-group{margin-top:42px}.category-heading{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:17px}.category-heading h2{font-size:20px;letter-spacing:-.04em}.category-count{font:11px ui-monospace,SFMono-Regular,monospace;color:var(--accent);margin-left:8px;vertical-align:middle}.category-heading p{margin:0;font-size:12px;color:var(--muted)}.project h3{font-size:14px;font-weight:600;margin:0;line-height:1.8}@media(max-width:560px){.category-heading{display:block}.category-heading p{margin-top:5px}.project-group{margin-top:34px}}
