@font-face{font-family:site d2coding;src:local("D2CodingLigature Nerd Font"),local("D2CodingLigatureNerdFont-Regular"),local("D2Coding"),url(/fonts/D2CodingLigatureNerdFont-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:site d2coding;src:local("D2CodingLigature Nerd Font Bold"),local("D2CodingLigatureNerdFont-Bold"),local("D2Coding Bold"),url(/fonts/D2CodingLigatureNerdFont-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:site codenewroman;src:local("CodeNewRoman Nerd Font"),local("CodeNewRomanNerdFont-Regular"),local("CodeNewRoman"),url(/fonts/CodeNewRomanNerdFont-Regular.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--font-main:"Site D2Coding", "D2CodingLigature Nerd Font", "D2Coding", "Site CodeNewRoman", "CodeNewRoman Nerd Font", "CodeNewRoman", monospace;--font-secondary:"Site D2Coding", "D2CodingLigature Nerd Font", "D2Coding", "Site CodeNewRoman", "CodeNewRoman Nerd Font", "CodeNewRoman", monospace;--font-mono:"Site D2Coding", "D2CodingLigature Nerd Font", "D2Coding", "Site CodeNewRoman", "CodeNewRoman Nerd Font", "CodeNewRoman", "JetBrains Mono", "SF Mono", monospace}html.retro-fonts-loading body{opacity:1}.theme-toggle .icon-retro{display:none!important}[data-theme=light] .theme-toggle .icon-sun,:root:not([data-theme=dark]) .theme-toggle .icon-sun{display:block}[data-theme=light] .theme-toggle .icon-moon,:root:not([data-theme=dark]) .theme-toggle .icon-moon{display:none}[data-theme=dark] .theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-moon{display:block}.codeblock pre,.codeblock code,.highlight pre,.highlight code{font-size:.95rem}.post-toc{font-size:.875rem;line-height:1.45}.post-toc--mobile{margin:0 0 2rem;padding:.75rem 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.post-toc--mobile summary{color:var(--heading-color);cursor:pointer;font-weight:600}.post-toc--mobile[open] summary{margin-bottom:.75rem}.post-toc--desktop{display:none}.post-toc__title{margin:0 0 .75rem;color:var(--muted-color);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.post-toc .toc ul{margin:0;padding:0;list-style:none}.post-toc .toc ul ul{margin-top:.25rem;padding-left:.75rem}.post-toc .toc li{margin:.35rem 0}.post-toc .toc a{display:block;color:var(--muted-color);text-decoration:none}.post-toc .toc a:hover{color:var(--link-color);text-decoration:underline}.resume{--resume-muted:color-mix(in srgb, var(--text-color) 82%, var(--background-color));width:min(980px,calc(100vw - 40px));margin-left:50%;transform:translateX(-50%);font-family:-apple-system,BlinkMacSystemFont,segoe ui,sans-serif}.resume h1,.resume h2,.resume h3,.resume h4,.resume dt,.resume-kicker,.resume-index,.about-case-kicker{font-family:var(--font-main)}.resume-header{display:grid;grid-template-columns:96px minmax(0,1fr);gap:1.75rem;align-items:center;padding:1rem 0 2.75rem;border-bottom:1px solid var(--border-color)}.resume-avatar{width:96px;height:96px;object-fit:cover;border:1px solid var(--border-color);border-radius:50%}.resume-intro-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.35rem}.resume-intro-top .resume-kicker{margin:0}.resume-kicker{margin:0 0 .35rem;color:var(--accent-color);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.resume-language{display:flex;align-items:center;gap:.4rem;color:var(--resume-muted);font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.08em}.resume-language a{margin:0;color:var(--resume-muted);text-decoration:none}.resume-language a:hover{color:var(--accent-color)}.resume-language [aria-current=page]{color:var(--heading-color)}html[lang=ko] .resume-content{overflow-wrap:anywhere;word-break:keep-all}.resume-name{margin:0;font-size:clamp(2rem,5vw,2.75rem);letter-spacing:-.055em}.resume-headline{max-width:42rem;margin:.55rem 0 0;color:var(--resume-muted);font-size:1.05rem;line-height:1.55}.resume-meta{display:flex;flex-wrap:wrap;gap:.4rem .75rem;margin-top:.7rem;color:var(--resume-muted);font-family:var(--font-mono);font-size:.78rem}.resume-meta span+span::before{margin-right:.75rem;color:var(--accent-color);content:"//"}.resume-links{display:flex;flex-wrap:wrap;gap:.6rem 1rem;margin-top:1rem}.resume-links a{margin:0;color:var(--heading-color);font-family:var(--font-mono);font-size:.82rem;font-weight:600;text-decoration-color:var(--accent-color);text-decoration-line:underline}.resume-index{position:sticky;z-index:5;top:0;display:flex;gap:1.5rem;padding:.85rem 0;border-bottom:1px solid var(--border-color);background:var(--background-color)}.resume-index a{margin:0;color:var(--resume-muted);font-size:.73rem;font-weight:700;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}.resume-index a:hover{color:var(--accent-color)}.resume a:focus-visible{border-radius:2px;outline:2px solid var(--accent-color);outline-offset:4px}.resume-content{line-height:1.65}.about-section{margin-top:clamp(4rem,8vw,6rem);scroll-margin-top:4rem}.about-section-heading{padding-bottom:.9rem;border-bottom:2px solid var(--heading-color)}.resume-content .about-section-heading h2{margin:0;scroll-margin-top:4rem;font-size:clamp(1.8rem,4vw,2.25rem);font-weight:700;letter-spacing:-.045em}.about-entry{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:2rem;padding:2.6rem 0}.about-entry+.about-entry{border-top:1px solid var(--border-color)}.about-entry-meta p{margin:0}.about-location,.about-period{color:var(--resume-muted);font-family:var(--font-mono);font-size:.78rem;line-height:1.5}.about-location{margin-top:.45rem!important}.about-period{font-variant-numeric:tabular-nums}.about-entry-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem}.about-entry-heading h3,.about-education-entry h3{margin:0;font-size:1.3rem;letter-spacing:-.03em}.about-entry-heading h3 a,.about-education-entry h3 a{color:var(--heading-color);text-decoration:none}.about-entry-heading h3 a:hover,.about-education-entry h3 a:hover{color:var(--link-color)}.about-role{margin:.3rem 0 0;color:var(--resume-muted);font-size:.9rem;font-weight:600}.resume-content .about-work-list{margin:1.25rem 0 0;padding-left:1.2rem;color:var(--resume-muted)}.resume-content .about-work-list li{margin:.65rem 0;padding-left:.25rem}.resume-content .about-work-list li::marker{color:var(--accent-color)}.about-case-study{margin-top:1.6rem;padding-top:1.5rem;background:0 0}.about-case-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem}.about-case-kicker{display:flex;align-items:center;gap:.5rem;margin:0 0 .35rem;color:var(--accent-color);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.about-case-kicker::before{width:1.25rem;height:1px;background:currentColor;content:""}.resume-content .about-case-header h3{margin:0;font-size:1.25rem;letter-spacing:-.03em}.about-case-metric{display:flex;flex:none;flex-direction:column;align-items:flex-end;margin:0}.about-case-metric strong{color:var(--heading-color);font-family:var(--font-main);font-size:clamp(1.7rem,4vw,2.25rem);line-height:1;letter-spacing:-.06em}.about-case-metric span{margin-top:.35rem;color:var(--resume-muted);font-family:var(--font-mono);font-size:.68rem}.about-case-story{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:1.25rem 0 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.about-case-story>div{padding:1.25rem 1rem;border-left:1px solid var(--border-color)}.about-case-story>div:first-child{padding-left:0;border-left:0}.about-case-story>div:last-child{padding-right:0}.about-case-story dt{color:var(--heading-color);font-size:.75rem;font-weight:700}.about-case-story dd{margin:.55rem 0 0;color:var(--resume-muted);font-size:.88rem;line-height:1.6}.about-skills{margin:0}.about-skills>div{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--border-color)}.about-skills>div:first-child{padding-top:1.5rem}.about-skills dt{color:var(--heading-color);font-size:.82rem;font-weight:700}.about-skills dd{margin:0;color:var(--resume-muted)}.about-education{margin-top:.5rem}.about-education-entry{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:1.5rem;align-items:start;padding:1.5rem 0;border-bottom:1px solid var(--border-color)}.about-education-entry>div>p{margin:.4rem 0 0;color:var(--resume-muted);font-size:.9rem}@media(max-width:800px){.about-entry{grid-template-columns:7rem minmax(0,1fr);gap:1.5rem}.about-entry-heading{display:block}}@media(max-width:640px){.resume{width:100%;margin-left:0;transform:none}.resume-header{grid-template-columns:1fr;gap:.9rem;padding-top:.5rem;padding-bottom:2rem}.resume-avatar{width:72px;height:72px}.resume-headline{font-size:.95rem}.resume-name{font-size:clamp(1.9rem,11vw,2.35rem)}.resume-meta span{display:block;width:100%}.resume-meta span+span::before{margin-right:.5rem}.resume-index{justify-content:space-between;gap:.5rem;overflow-x:auto}.resume-index a{font-size:.65rem}.about-entry{display:block;padding:2rem 0}.about-entry-meta{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.about-location{margin-top:0!important}.about-case-header{display:block}.about-case-metric{align-items:flex-start;margin-top:1.2rem}.about-case-story{grid-template-columns:1fr}.about-case-story>div,.about-case-story>div:first-child,.about-case-story>div:last-child{padding:1rem 0;border-top:1px solid var(--border-color);border-left:0}.about-case-story>div:first-child{border-top:0}.about-skills>div{grid-template-columns:1fr;gap:.25rem}.about-education-entry{grid-template-columns:1fr;gap:.6rem}}@media(min-width:1280px){.post--with-toc{--toc-column-gap:clamp(60px, calc((100vw - 1160px) / 2), 80px);display:grid;grid-template-columns:180px minmax(0,var(--width))180px;column-gap:var(--toc-column-gap);width:calc(1120px + var(--toc-column-gap) + var(--toc-column-gap));max-width:calc(100vw - 40px);margin-left:50%;transform:translateX(-50%)}.post--with-toc>:not(.post-toc--desktop){grid-column:2}.post-toc--mobile{display:none}.post-toc--desktop{display:block;grid-column:1;grid-row:2/span 3;align-self:start;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}}