:root{--ink:#17181c;--muted:#61646d;--line:#e2e3e7;--paper:#fff;--wash:#f6f6f8;--mint:#b9efda;--lilac:#ddd5ff;--coral:#ff6b83;--yellow:#fff29f;--accent:#5342c4;--content:1240px;--gutter:32px;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:Pretendard Variable,Pretendard,Noto Sans KR,system-ui,sans-serif}*{box-sizing:border-box;letter-spacing:0}body{margin:0}html{scroll-behavior:smooth;scroll-padding-top:100px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,summary,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}img{max-width:100%;height:auto;display:block}svg{vertical-align:middle;flex-shrink:0}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3{overflow-wrap:anywhere;font-weight:750;line-height:1.2}p{line-height:1.75}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:4px;outline:3px solid #7160d7}::selection{background:var(--mint);color:var(--ink)}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:#fff;padding:12px;position:fixed;top:10px;left:10px;transform:translateY(-180%)}.skip-link:focus{transform:none}.container{width:min(var(--content), 100% - var(--gutter) * 2);margin-inline:auto}.site-header{z-index:50;border-bottom:1px solid var(--line);background:#fffffff5;height:72px;position:sticky;top:0}.header-inner{max-width:1440px;height:100%;padding-inline:var(--gutter);justify-content:space-between;align-items:center;gap:24px;margin:auto;display:flex}.brand{white-space:nowrap;align-items:center;gap:10px;font-size:20px;font-weight:800;display:inline-flex}.brand img{border-radius:5px}.desktop-nav{align-items:center;gap:28px;display:flex}.desktop-nav>a{font-size:14px;font-weight:550}.desktop-nav a[aria-current=page],.desktop-nav a:hover{color:var(--accent)}.icon-button{border:1px solid var(--line);background:var(--paper);width:40px;height:40px;color:var(--ink);border-radius:4px;flex:0 0 40px;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover{background:var(--wash)}.mobile-menu{display:none}.site-footer{border-top:1px solid var(--line);max-width:1440px;padding:36px var(--gutter) 24px;margin:90px auto 0}.footer-top,.footer-bottom{justify-content:space-between;align-items:center;gap:24px;display:flex}.footer-links{gap:26px;display:flex}.footer-links a,.site-pulse a{align-items:center;gap:6px;display:inline-flex}.footer-links{font-size:14px}.footer-bottom{color:var(--muted);margin-top:36px;font-size:12px}.site-pulse{align-items:center;gap:20px;display:flex}.site-pulse b{color:var(--ink);margin-left:5px;font-weight:600}.page-heading{padding-block:60px 38px}.page-heading h1{font-size:56px}.page-heading p{max-width:700px;color:var(--muted);margin-top:18px;font-size:18px}.page-heading .back-link{margin-bottom:24px}.back-link{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.text-link{align-items:center;gap:9px;font-size:14px;font-weight:600;display:inline-flex}.section-head{justify-content:space-between;align-items:center;gap:20px;padding-bottom:24px;display:flex}.section-head h2{font-size:26px}.section-head:after{content:"";background:var(--line);flex:1;order:0;height:1px}.section-head>a{order:1}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:9px 18px;font-size:13px;display:flex}.plain-button{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:4px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:12px 18px;font-weight:600;display:inline-flex}.plain-button:disabled{opacity:.4}.plain-button:hover:not(:disabled){background:#303138}.empty-message{color:var(--muted);padding:48px 0}.article-grid{grid-template-columns:minmax(0,840px) 210px;gap:72px;max-width:1122px;margin:50px auto 0;display:grid}.article-grid>article{min-width:0}.article-toc{border-left:1px solid var(--line);align-self:start;max-height:calc(100svh - 160px);padding-left:22px;font-size:13px;position:sticky;top:110px;overflow:auto}.article-toc strong{margin-bottom:14px;font-weight:600;display:block}.article-toc a{color:var(--muted);padding:6px 0;line-height:1.5;display:block}.article-toc a:hover{color:var(--accent)}.article-toc .depth-3{padding-left:12px;font-size:12px}.mobile-toc{display:none}.prose{overflow-wrap:anywhere;font-size:16px;line-height:1.85}.prose>h1:first-child{display:none}.prose h2{margin:58px 0 20px;scroll-margin-top:100px;font-size:27px}.prose h3{margin:32px 0 15px;scroll-margin-top:100px;font-size:21px}.prose h4{margin:26px 0 12px;font-size:18px}.prose p{margin:16px 0}.prose ul,.prose ol{margin:18px 0;padding-left:24px}.prose li{margin:8px 0}.prose a{color:var(--accent);text-underline-offset:4px;text-decoration:underline}.prose img{border-radius:4px;max-width:100%;height:auto}.prose>img{margin-block:24px}.prose figure{margin:28px 0}.prose figcaption{color:var(--muted);margin-top:14px;font-size:13px;line-height:1.7}.prose table{border-collapse:collapse;max-width:100%;margin:24px 0;font-size:14px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;min-width:100px;padding:13px 16px}.prose th{background:var(--wash);font-weight:600}.prose th:first-child,.prose td:first-child{white-space:nowrap}.prose :not(pre)>code{background:var(--wash);overflow-wrap:anywhere;border-radius:3px;padding:3px 6px;font-size:.86em}.prose pre{border:1px solid var(--line);border-radius:4px;max-width:100%;margin:22px 0;padding:22px;font-size:13px;line-height:1.7;overflow:auto}.code-block{position:relative}.code-block pre{padding-top:48px}.code-copy{width:30px;height:30px;position:absolute;top:8px;right:8px}.prose blockquote,.callout{background:#f3faf7;border-left:3px solid #77bb9c;margin:24px 0;padding:16px 20px;font-size:14px}.callout p{margin:0}.prose strong{font-weight:650}.prose .project-feature-grid,.prose .profile-focus-grid,.prose .profile-impact-grid,.prose .profile-skill-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:26px 0;display:grid}.prose .project-feature-grid>section,.prose .profile-focus-grid>section,.prose .profile-impact-grid>article,.prose .profile-skill-grid>section{border-top:1px solid var(--line);padding:24px 0}.prose .project-feature-grid h3,.prose .profile-skill-grid h3,.prose .profile-impact-grid h3{margin:8px 0;font-size:19px}.prose .project-feature-grid p,.prose .profile-focus-grid p,.prose .profile-impact-grid p,.prose .profile-skill-grid p{color:var(--muted);margin:10px 0;font-size:14px}.prose .project-feature-grid section>span,.prose .profile-impact-grid article>span{color:var(--muted);font-size:12px}.project-proof-strip,.profile-proof-strip,.profile-summary-grid{border-block:1px solid var(--line);flex-wrap:wrap;gap:24px;margin:24px 0;padding:24px 0;display:flex}.project-proof-strip>div,.profile-proof-strip>div,.profile-summary-grid>div{flex:1;min-width:145px}.project-proof-strip strong,.profile-proof-strip strong,.profile-summary-grid strong{font-size:16px;display:block}.project-proof-strip span,.profile-proof-strip span,.profile-summary-grid span{color:var(--muted);margin-top:8px;font-size:13px;display:block}.prose .career-list{margin-top:24px}.prose .career-card{border-top:1px solid var(--line);padding:28px 0}.prose .career-card-header h3{margin:6px 0 10px;font-size:21px}.prose .career-card-header{justify-content:space-between;gap:20px;display:flex}.prose .career-period{color:var(--muted);margin:0;font-size:13px}.prose .career-role{margin:0;font-size:14px}.career-badge{background:var(--mint);white-space:nowrap;align-self:start;padding:4px 8px;font-size:12px}.prose .career-summary{font-size:15px}.prose .career-highlights{font-size:14px}.career-tech{color:var(--muted);flex-wrap:wrap;gap:8px 16px;font-size:12px;display:flex}.career-intro{color:var(--muted);font-size:14px}.project-screenshot-grid{flex-wrap:wrap;align-items:flex-start;gap:24px;margin:30px 0;display:flex}.project-screenshot-grid figure{flex:1;min-width:220px;margin:0}.project-screenshot-grid .project-mobile-shot{flex:0 270px;margin-inline:auto}.project-screenshot-grid .project-mobile-shot img{width:auto;max-height:620px;margin:auto}.project-screenshot-grid--mobile-only{justify-content:center}.project-showcase img{width:100%}.project-screen-tour>article,.project-update-stack>article,.project-update-stack>div,.project-sample-board>section,.project-lane-board>section{border-top:1px solid var(--line);padding:22px 0}.project-screen-tour h3,.project-lane-board h3{margin-top:8px}.project-screen-tour span,.project-update-stack span,.project-sample-board span{color:var(--muted);font-size:12px}.project-screen-tour strong,.project-update-stack strong,.project-sample-board strong{margin-top:6px;display:block}.project-screen-tour p,.project-update-stack p,.project-sample-board p{font-size:14px}.project-flow{flex-wrap:wrap;gap:0;margin:24px 0;display:flex}.project-flow>div{border-bottom:2px solid var(--mint);padding:12px 18px;font-size:14px}.story-row{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:12px;padding:28px 0;display:grid}.story-row h3{margin:8px 0;font-size:23px}.story-row p{color:var(--muted);max-width:760px;font-size:14px}.story-row>svg{align-self:center}.story-row:hover h3{color:var(--accent)}@media (width>=1600px){:root{--gutter:48px}}@media (width<=1000px){.article-grid{grid-template-columns:minmax(0,1fr);gap:0;max-width:800px}.article-toc{display:none}.mobile-toc{border-block:1px solid var(--line);margin-bottom:30px;padding:16px 0;font-size:14px;display:block}.mobile-toc summary{cursor:pointer}.mobile-toc a{color:var(--muted);padding:8px 0;display:block}.desktop-nav{gap:20px}}@media (width<=760px){:root{--gutter:20px}.site-header{height:62px}.brand{gap:8px;font-size:18px}.brand img{width:26px;height:26px}.desktop-nav{display:none}.mobile-menu{display:block}.mobile-menu>summary{border:0;list-style:none}.mobile-menu>summary::-webkit-details-marker{display:none}.mobile-menu nav{border-bottom:1px solid var(--line);padding:12px var(--gutter) 24px;background:#fff;position:absolute;top:61px;left:0;right:0;box-shadow:0 16px 24px #17181c0d}.mobile-menu nav a{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:50px;font-size:16px;display:flex}.mobile-menu nav a[aria-current=page]{color:var(--accent)}.page-heading{padding-block:38px 28px}.page-heading h1{font-size:38px}.page-heading p{margin-top:14px;font-size:16px}.article-grid{margin-top:28px}.section-head h2{font-size:23px}.prose{font-size:15px}.prose h2{margin-top:42px;font-size:24px}.prose h3{font-size:20px}.prose pre{padding:16px;font-size:12px}.prose .project-feature-grid,.prose .profile-focus-grid,.prose .profile-impact-grid,.prose .profile-skill-grid{grid-template-columns:1fr}.project-proof-strip,.profile-proof-strip,.profile-summary-grid{gap:18px}.project-proof-strip>div,.profile-proof-strip>div,.profile-summary-grid>div{min-width:calc(50% - 18px)}.prose .career-card-header{flex-wrap:wrap}.prose .career-card-header h3{font-size:20px}.prose .project-screenshot-grid{gap:28px}.project-screenshot-grid>figure{flex-basis:100%}.project-screenshot-grid .project-mobile-shot{flex:0 280px}.story-row h3{font-size:21px}.site-footer{margin-top:60px;padding-block:28px 20px}.footer-top{flex-wrap:wrap;align-items:flex-start;gap:24px}.footer-links{gap:18px;font-size:12px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:16px;margin-top:28px}.site-pulse{gap:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
