:root{--bg:#f6f7f9;--card:#fff;--line:#e2e5ea;--text:#14171c;--text-sub:#3a404a;--text-label:#565d69;--accent:#2447c9;--accent-soft:#eef1fc;--dark:#14171c;--radius:12px;--radius-sm:6px;--max:1120px;--gutter:24px;--topbar-h:64px;--font-sans:"IBM Plex Sans KR",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f7f9;background:var(--bg);color:#14171c;color:var(--text);font-family:IBM Plex Sans KR,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-family:var(--font-sans);font-size:16px;line-height:1.65;overflow-wrap:break-word;word-break:keep-all}body,dd,dl,h1,h2,h3,ol,p,ul{margin:0}ol,ul{list-style:none;padding:0}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}:focus-visible{border-radius:4px;outline:2px solid #2447c9;outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.container{margin:0 auto;max-width:1168px;max-width:calc(var(--max) + var(--gutter)*2);padding:0 24px;padding:0 var(--gutter);width:100%}#ongoing,section[id]{scroll-margin-top:80px;scroll-margin-top:calc(var(--topbar-h) + 16px)}.mono-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase}.mono-date,.mono-label{color:#565d69;color:var(--text-label);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}.mono-date{font-size:13px}.mono-date--sub{margin-top:2px}.btn{align-items:center;background:#fff;background:var(--card);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:8px;color:#14171c;color:var(--text);cursor:pointer;display:inline-flex;font:inherit;font-size:15px;font-weight:600;justify-content:center;min-height:44px;padding:0 18px;transition:border-color .15s,background-color .15s}.btn:hover{border-color:#565d69;border-color:var(--text-label)}.btn--primary{background:#2447c9;background:var(--accent);border-color:#2447c9;border-color:var(--accent);color:#fff}.btn--primary:hover{background:#1d3baa;border-color:#1d3baa}.btn--sm{font-size:14px;min-height:36px;padding:0 14px}.btn--light{background:#fff;border-color:#fff;color:#14171c;color:var(--text)}.btn--light:hover{background:#f6f7f9;background:var(--bg);border-color:#f6f7f9;border-color:var(--bg)}.btn--ghost-dark{background:transparent;border-color:#4a505b;color:#fff}.btn--ghost-dark:hover{border-color:#fff}.btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.text-link{color:#2447c9;color:var(--accent);font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.tag{background:#f6f7f9;background:var(--bg);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:6px;border-radius:var(--radius-sm);color:#3a404a;color:var(--text-sub);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:12px;line-height:1;padding:6px 8px}.tag--todo{background:transparent;border-style:dashed}.topbar{background:hsla(0,0%,100%,.96);border-bottom:1px solid #e2e5ea;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar__inner{align-items:center;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;min-height:64px;min-height:var(--topbar-h);padding-bottom:10px;padding-top:10px}.topbar__name{font-size:17px;font-weight:700}.topbar__nav{align-items:center}.topbar__nav,.topbar__nav ul{display:flex;gap:20px}.topbar__nav ul a{color:#3a404a;color:var(--text-sub);font-size:15px}.topbar__nav ul a:hover{color:#2447c9;color:var(--accent)}.hero{padding:72px 0 24px}.hero__title{font-size:clamp(40px,7vw,56px);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin-top:16px}.hero__subtitle{font-size:clamp(22px,3.4vw,28px);font-weight:600;line-height:1.35;margin-top:8px}.hero__intro,.hero__subtitle{color:#3a404a;color:var(--text-sub)}.hero__intro{margin-top:20px;max-width:680px}.flow{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}.flow__step{background:#fff;background:var(--card);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:6px;border-radius:var(--radius-sm);color:#3a404a;color:var(--text-sub);font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:12px;line-height:1;padding:6px 8px}.flow__arrow{color:#565d69;color:var(--text-label);font-size:12px}.flow__step--accent{background:#eef1fc;background:var(--accent-soft);border-color:#2447c9;border-color:var(--accent);color:#2447c9;color:var(--accent)}.now-badge{align-items:center;background:#fff;background:var(--card);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:999px;color:#3a404a;color:var(--text-sub);display:inline-flex;font-size:14px;gap:10px;margin-top:20px;padding:9px 16px}.now-badge:hover{border-color:#2447c9;border-color:var(--accent);color:#14171c;color:var(--text)}.dot{background:#2447c9;background:var(--accent);border-radius:50%;flex:none;height:7px;width:7px}.summary{background:#fff;background:var(--card);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:12px;border-radius:var(--radius);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:40px;overflow:hidden}.summary__cell{box-shadow:-1px 0 0 #e2e5ea,0 -1px 0 #e2e5ea;box-shadow:-1px 0 0 var(--line),0 -1px 0 var(--line);padding:18px 20px}.summary__cell dt{font-size:11px}.summary__cell dd{font-size:16px;font-weight:700;margin-top:6px}.section{padding:72px 0 0}.section--last{padding-bottom:72px}.section-header{margin-bottom:24px}.section-title{font-size:28px;font-weight:700;line-height:1.3;margin-top:6px}.grid,.stack{grid-gap:16px;display:grid;gap:16px}.grid--projects{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:16px}.grid--skills{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.card{background:#fff;background:var(--card);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:12px;border-radius:var(--radius)}.card--pad{padding:22px 24px}.card--split{grid-gap:12px 24px;display:grid;gap:12px 24px;grid-template-columns:180px minmax(0,1fr);padding:28px}.card__title{font-size:19px;font-weight:700;line-height:1.4}.card__title--sm{font-size:16px}.card__meta{color:#565d69;color:var(--text-label);font-size:14px;margin-top:2px}.card__desc{color:#3a404a;color:var(--text-sub);font-size:15px;margin-top:6px}.card__foot{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between}.card__foot .archive__links,.link-note{margin-top:16px}.link-note{color:#565d69;color:var(--text-label);font-size:13px}.bullets{grid-gap:6px;color:#3a404a;color:var(--text-sub);display:grid;font-size:15px;gap:6px;margin-top:12px}.bullets li{padding-left:16px;position:relative}.bullets li:before{background:#14171c;background:var(--text);border-radius:50%;content:"";height:5px;left:2px;position:absolute;top:.72em;width:5px}.bullets__accent{color:#2447c9;color:var(--accent)}.bullets li.bullets__accent:before{background:#2447c9;background:var(--accent)}.row-line{grid-gap:4px 24px;color:#3a404a;color:var(--text-sub);display:grid;font-size:14px;gap:4px 24px;grid-template-columns:180px minmax(0,1fr);margin-top:20px;padding:0 28px}.row-line__label{color:#565d69;color:var(--text-label)}.exp-highlight{background:#eef1fc;background:var(--accent-soft);border-radius:6px;border-radius:var(--radius-sm);color:#2447c9;color:var(--accent);font-size:14px;font-weight:500;margin-top:12px;padding:10px 14px}.exp-project{margin-top:20px}.exp-project+.exp-project{border-top:1px solid #e2e5ea;border-top:1px solid var(--line);padding-top:20px}.exp-project__name{font-size:15px;font-weight:700;line-height:1.5}.bullets--sm{font-size:14px;margin-top:8px}.card__meta--inline{font-weight:400;margin-left:10px}.archive{background:#fff;background:var(--card);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:12px;border-radius:var(--radius);margin-top:16px;overflow:hidden}.archive__head{align-items:center;border-bottom:1px solid #e2e5ea;border-bottom:1px solid var(--line);color:#565d69;color:var(--text-label);display:flex;flex-wrap:wrap;font-size:14px;gap:6px 12px;padding:14px 28px}.archive__head--bare{border-bottom:0;margin-top:32px;padding:0 4px}.archive__badge{align-items:center;background:#f6f7f9;background:var(--bg);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:999px;color:#3a404a;color:var(--text-sub);display:inline-flex;font-size:13px;font-weight:700;padding:2px 10px}.archive__item+.archive__item{border-top:1px solid #e2e5ea;border-top:1px solid var(--line)}.archive__item{padding-bottom:22px;padding-top:22px}.archive__row{align-items:center;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;padding:18px 28px}.archive__row+.archive__row{border-top:1px solid #e2e5ea;border-top:1px solid var(--line)}.archive__links{display:flex;font-size:14px;gap:16px}.ongoing{background:#fff;background:var(--card);border:1px solid #2447c9;border:1px solid var(--accent);border-radius:12px;border-radius:var(--radius);overflow:hidden}.ongoing__head{align-items:center;border-bottom:1px solid #e2e5ea;border-bottom:1px solid var(--line);color:#565d69;color:var(--text-label);display:flex;flex-wrap:wrap;font-size:14px;gap:6px 12px;padding:14px 28px}.ongoing__badge{align-items:center;color:#2447c9;color:var(--accent);display:inline-flex;font-weight:700;gap:8px}.ongoing__item+.ongoing__item{border-top:1px solid #e2e5ea;border-top:1px solid var(--line)}.project-card{display:flex;flex-direction:column;overflow:hidden}.project-card__img{aspect-ratio:16/10;background:#f6f7f9;background:var(--bg);border-bottom:1px solid #e2e5ea;border-bottom:1px solid var(--line)}.project-card__img img{height:100%;object-fit:cover;width:100%}.project-card__body{display:flex;flex:1 1;flex-direction:column;padding:20px 22px 22px}.project-card__head{align-items:baseline;display:flex;flex-wrap:wrap;gap:2px 12px;justify-content:space-between}.project-card .text-link{margin-top:auto;padding-top:16px}.details{grid-gap:6px;display:grid;font-size:14px;gap:6px;margin-top:14px}.details__row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:48px minmax(0,1fr)}.details dt{color:#565d69;color:var(--text-label)}.details dd{color:#3a404a;color:var(--text-sub)}.edu-list{border-top:1px solid #e2e5ea;border-top:1px solid var(--line)}.edu-list__row{grid-gap:4px 24px;border-bottom:1px solid #e2e5ea;border-bottom:1px solid var(--line);display:grid;font-size:15px;gap:4px 24px;grid-template-columns:180px minmax(0,1fr);padding:16px 0}.contact{align-items:center;background:#14171c;background:var(--dark);border-radius:12px;border-radius:var(--radius);color:#fff;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;padding:40px}.contact__title{font-size:clamp(20px,3vw,26px);font-weight:700;line-height:1.4}.contact__email{color:#c9cdd4;display:inline-block;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:15px;margin-top:8px}.contact__email:hover{color:#fff}.contact__actions{display:flex;flex-wrap:wrap;gap:10px}@media (max-width:720px){:root{--gutter:16px}.topbar__nav{gap:12px;justify-content:space-between;width:100%}.topbar__nav ul{gap:14px}.hero{padding-top:40px}.card--split,.edu-list__row,.row-line{grid-template-columns:minmax(0,1fr)}.card--split{padding:22px 20px}.archive__head,.ongoing__head{padding:12px 20px}.archive__head--bare{padding:0 4px}.archive__row{padding:16px 20px}.card__meta--inline{display:block;margin-left:0}.row-line{padding:0 4px}.card--split .card__aside{display:flex;flex-wrap:wrap;gap:0 10px}.mono-date--sub{margin-top:0}.grid--projects{grid-template-columns:minmax(0,1fr)}.contact{padding:28px 22px}.contact__actions{width:100%}.contact__actions .btn{flex:1 1}.section{padding-top:56px}.section--last{padding-bottom:56px}}
/*# sourceMappingURL=main.60a8ae2e.css.map*/