:root{font-family:Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,system-ui,sans-serif;color:#252b27;background:#fcfdfa;font-synthesis:none;-webkit-font-smoothing:antialiased;scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid #446b56;outline-offset:4px}::selection{background:#d9e7d9}.container{width:min(100% - 64px,1160px);margin-inline:auto}.skip-link{position:absolute;left:14px;top:-50px;z-index:10;padding:9px 12px;background:#253b2e;color:#fff}.skip-link:focus{top:10px}.site-header{border-bottom:1px solid #d8dfd7}.header-inner{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{font-size:16px;font-weight:700;letter-spacing:-.04em}.site-header nav{display:flex;gap:28px;font-size:13px;color:#59665c}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:#1e3325;text-decoration:underline;text-underline-offset:7px}.hero{padding-top:76px;padding-bottom:75px}.eyebrow{margin:0;font-size:12px;font-weight:600;color:#657a68}.hero h1{margin:14px 0 13px;font-size:clamp(44px,5.3vw,72px);line-height:1.15;font-weight:700;letter-spacing:-.07em}.hero-message{margin:0;font-size:clamp(24px,3.1vw,39px);line-height:1.35;letter-spacing:-.045em;font-weight:600;word-break:keep-all}.hero-description{max-width:680px;margin:24px 0 0;font-size:16px;line-height:1.8;color:#55635a;word-break:keep-all}.text-links{display:flex;flex-wrap:wrap;gap:26px;margin-top:30px;font-size:13px;font-weight:600}.text-links a:hover,.resume-link:hover,.footer-inner a:hover{text-decoration:underline;text-underline-offset:4px}.work-section{border-top:1px solid #d8dfd7;background:#f7f9f6;padding:54px 0 92px}.work-section>.container{width:min(100% - 64px,1440px)}.work-section h2{max-width:1168px;margin:0 auto 31px;font-size:31px;letter-spacing:-.055em}.work-layout{display:grid;grid-template-columns:minmax(320px,380px) minmax(0,1fr);gap:24px;align-items:start;max-width:1168px;margin-inline:auto}.main-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,370px));gap:24px;justify-content:start}.main-project-card{position:relative;isolation:isolate}.main-project-card:before{content:"";position:absolute;inset:-10px;z-index:-1;background:transparent;transition:background .15s,box-shadow .15s}.main-project-card:hover:before,.main-project-card:focus-visible:before,.main-project-card.is-active:before{background:#fcfdfa;box-shadow:0 4px 14px #253b2e14}.coverage{min-width:0}.coverage h3{margin:0 0 16px;font-size:15px;font-weight:600}.coverage-grid{display:grid;grid-template-columns:minmax(0,1.75fr) repeat(4,minmax(0,1fr))}.grid-head{min-height:60px;display:flex;align-items:center;justify-content:center;padding:3px 1px;border-bottom:1px solid #d8e0d6;text-align:center;word-break:keep-all;font-size:10px;line-height:1.3;color:#526b57}.layer-column .grid-head{justify-content:start}.layer-row,.track-cell{display:flex;align-items:center;height:52px;border-bottom:1px solid #e1e8e0}.layer-row{font-size:11px;font-weight:600;padding-right:4px}.layer-row:last-child,.track-cell:last-child{border-bottom:0}.project-track{display:block;min-width:0;border-left:1px solid #e1e8e0;transition:opacity .15s,background .15s}.project-track:last-child{border-right:1px solid #e1e8e0}.project-track:hover,.project-track:focus-visible,.project-track.is-active{background:#e0ecdf}.coverage-grid.has-active .project-track:not(.is-active){opacity:.4}.project-track.is-active .grid-head{color:#245f3b;font-weight:600}.track-cells{display:block;position:relative}.track-cells:before{content:"";position:absolute;top:var(--line-top);left:50%;width:1px;height:var(--line-height);background:#52725b}.track-cell{justify-content:center}.node{position:relative;display:block;width:10px;height:10px;border:2px solid #52725b;border-radius:50%;background:#f7f9f6}.project-track:hover .node,.project-track.is-active .node{background:#52725b}.main-project-grid a:hover h3,.main-project-grid a:focus-visible h3{color:#326849;text-decoration:underline;text-underline-offset:4px}.archive-section{border-top:1px solid #d8dfd7;padding:58px 0 82px;background:#fcfdfa}.archive-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}.archive-heading h2{margin:8px 0 0;font-size:24px;line-height:1.25;letter-spacing:-.04em}.archive-heading>a{font-size:12px;color:#526b56}.archive-heading>a:hover{text-decoration:underline;text-underline-offset:4px}.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.archive-card{min-width:0}.archive-card>img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;background:#e8eee7}.archive-card h3{margin:14px 0 5px;font-size:16px;line-height:1.4;letter-spacing:-.025em}.archive-card p{margin:0;color:#647267;font-size:12px;line-height:1.7}.archive-year{display:block;margin-top:14px;color:#738375;font-size:11px}.archive-year+h3{margin-top:5px}.archive-empty{margin:0;padding:22px 0;color:#647267;font-size:13px}.article{padding-top:36px;padding-bottom:105px}.back-link{display:inline-block;font-size:13px;color:#526b56}.back-link:hover{text-decoration:underline;text-underline-offset:4px}.article-header{max-width:760px;padding-top:65px;padding-bottom:48px;border-bottom:1px solid #ccd8cc}.article-header h1{font-size:clamp(38px,5vw,62px);line-height:1.18;letter-spacing:-.06em;margin:12px 0 9px}.article-subtitle{font-size:18px;color:#566c5b;margin:0}.article-coverage{font-size:12px;line-height:1.7;color:#687d6c;margin:25px 0 0}.article-body{max-width:760px;padding-top:24px;font-size:16px;line-height:1.9;overflow-wrap:anywhere}.article-body p{margin:20px 0}.article-body h2{font-size:24px;line-height:1.4;letter-spacing:-.04em;margin:54px 0 16px;padding-top:28px;border-top:1px solid #d8e0d6}.article-body h3{font-size:19px;margin:35px 0 12px}.article-body ul,.article-body ol{padding-left:24px;margin:20px 0}.article-body li{padding-left:3px;margin:5px 0}.article-body blockquote{border-left:2px solid #819d84;padding-left:18px;margin:26px 0;color:#596b5b}.article-body a{color:#2f6847;text-decoration:underline;text-underline-offset:3px}.article-body img{display:block;width:auto;max-width:min(100%,560px);max-height:560px;height:auto;object-fit:contain;margin:30px auto}.article-body code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em;background:#edf2eb;padding:2px 4px}.article-body pre{max-width:100%;overflow-x:auto;padding:18px;background:#edf2eb}.article-body pre code{padding:0}.mermaid-loading{margin:24px 0;padding:15px;border:1px solid #d0dbd0;color:#687d6c;font-size:13px}.mermaid-diagram{max-width:100%;overflow-x:auto;margin:30px 0;text-align:center}.mermaid-diagram svg{display:block;width:auto;max-width:100%;height:auto;margin-inline:auto}.mermaid-error{margin:24px 0}.mermaid-error p{color:#8b4a37;font-size:13px}.mermaid-error pre{text-align:left}.article-body table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:27px 0;font-size:14px}.article-body th,.article-body td{padding:9px 16px 9px 0;border-bottom:1px solid #d0dbd0;text-align:left}.article-body th{font-weight:700}.about-page{padding-top:84px;padding-bottom:105px}.about-page h1{font-size:clamp(42px,5vw,64px);line-height:1.15;letter-spacing:-.06em;margin:0 0 35px}.about-text{max-width:760px;font-size:20px;line-height:1.8;letter-spacing:-.025em}.about-text p{margin:0 0 22px}.experience{margin-top:85px;max-width:900px}.experience h2{margin:0 0 19px;font-size:27px;letter-spacing:-.04em}.experience-row{display:grid;grid-template-columns:180px 1fr;gap:28px;padding:23px 0;border-top:1px solid #cbd8cb}.experience-row>span{font-size:12px;color:#647767}.experience-row h3{font-size:19px;margin:0 0 3px}.experience-row p{font-size:13px;line-height:1.6;margin:3px 0;color:#5a685d}.resume-link{display:inline-block;margin-top:21px;font-size:13px;font-weight:600}.site-footer{border-top:1px solid #d8dfd7}.footer-inner{min-height:75px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:#607164}.footer-inner>div{display:flex;gap:20px}@media(max-width:760px){.container{width:min(100% - 36px,1160px)}.work-section>.container{width:min(100% - 36px,1440px)}.hero{padding:60px 0 64px}.hero-description{font-size:15px}.work-section{padding:48px 0 72px}.work-section h2{margin-bottom:22px}.archive-section{padding:46px 0 65px}.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.article{padding-top:25px;padding-bottom:75px}.article-header{padding-top:44px;padding-bottom:38px}.article-body{font-size:15px}.about-page{padding-top:65px;padding-bottom:80px}.about-text{font-size:17px}}@media(max-width:440px){.header-inner{min-height:58px}.site-header nav{gap:18px;font-size:12px}.hero{padding:49px 0 56px}.hero h1{font-size:45px}.hero-message{font-size:27px}.hero-description{font-size:14px;margin-top:20px}.text-links{gap:18px;margin-top:25px;font-size:12px}.work-section h2{font-size:28px}.archive-heading h2{font-size:21px}.archive-grid{grid-template-columns:1fr;gap:25px}.archive-card h3{margin-top:11px}.article-header h1{font-size:39px}.article-body h2{font-size:21px}.experience-row{grid-template-columns:1fr;gap:8px}}@media(max-width:1100px){.work-layout{grid-template-columns:1fr;gap:36px}.main-project-grid{justify-content:start}.coverage{max-width:600px}}@media(max-width:760px){.main-project-grid{gap:22px 16px}}@media(max-width:440px){.main-project-grid{grid-template-columns:1fr;gap:25px}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}
