:root{--sans:"Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,"system-ui",sans-serif;--bg:#fcfcfa;--ink:#14171a;--ink-2:#4a5054;--mute:#8a9095;--faint:#a4abaf;--line:#eceeeb;--line-2:#e0e3df;--rule:#14171a;--accent:#0b8c80;--accent-deep:#075e56;--accent-soft:#e7f3f1;--maxw:1200px;--rail:268px;--gap:72px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);word-break:keep-all;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","tnum";font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0}::selection{background:var(--accent);color:#fff}.tnum{font-variant-numeric:tabular-nums}.lead-dots{border-bottom:1.5px dotted var(--line-2);flex:auto;min-width:20px;margin:0 14px;transform:translateY(-.32em)}.shell{max-width:var(--maxw);grid-template-columns:var(--rail)1fr;gap:0 var(--gap);align-items:start;margin:0 auto;padding:0 40px;display:grid}.rail{border-right:1px solid var(--line);flex-direction:column;align-self:start;height:100vh;margin-right:-1px;padding:52px 0 40px;display:flex;position:sticky;top:0}.rail-pad{flex-direction:column;height:100%;padding-right:40px;display:flex}.rail-name{letter-spacing:-.03em;color:var(--ink);cursor:pointer;font-size:23px;font-weight:800}.rail-role{color:var(--ink-2);letter-spacing:-.005em;margin-top:5px;font-size:12.5px;line-height:1.55}.rail-nav{flex-direction:column;gap:1px;margin-top:38px;display:flex}.rail-nav a{color:var(--mute);cursor:pointer;align-items:baseline;gap:12px;padding:6px 0;font-size:14px;transition:color .14s;display:flex}.rail-nav a .no{font-variant-numeric:tabular-nums;color:var(--faint);letter-spacing:.02em;min-width:16px;font-size:11px}.rail-nav a .ko{letter-spacing:-.01em;position:relative}.rail-nav a:hover{color:var(--ink)}.rail-nav a.active{color:var(--ink);font-weight:700}.rail-nav a.active .no{color:var(--accent);font-weight:700}.rail-nav a .ko:after{content:"";background:var(--accent);transform-origin:0;height:1.5px;transition:transform .28s cubic-bezier(.22,.61,.36,1);position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.rail-nav a.active .ko:after{transform:scaleX(1)}.rail-spacer{flex:auto;min-height:28px}.rail-grp{margin-top:26px}.rail-grp h4{letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:11px;font-size:10px;font-weight:700}.rail-grp .stat-line{color:var(--ink);letter-spacing:-.01em;font-size:12.5px;line-height:1.65}.rail-grp .lk{color:var(--ink);letter-spacing:-.008em;cursor:pointer;padding:3px 0;font-size:12.5px;transition:color .14s;display:flex}.rail-grp .lk .k{color:var(--mute);min-width:46px}.rail-grp .lk:hover{color:var(--accent)}.rail-side{color:var(--mute);cursor:pointer;align-items:center;gap:7px;width:fit-content;margin-top:26px;font-size:12.5px;transition:color .14s;display:inline-flex}.rail-side:hover{color:var(--accent)}.rail-side .ar{font-size:12px}.content{min-width:0;padding:0 0 96px}.sec{padding-top:60px;padding-bottom:52px;scroll-margin-top:24px}.sec-rule{border-top:1.5px solid var(--rule)}.sec-head{align-items:baseline;gap:12px;padding:14px 0 28px;display:flex}.sec-head .sg{color:var(--accent);font-variant-numeric:tabular-nums;font-size:13px;font-weight:800}.sec-head .st{letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;font-size:13px;font-weight:700}.sec-head .sc{color:var(--mute);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:12.5px}.sec-head a.sc{cursor:pointer;transition:color .14s}.sec-head a.sc:hover{color:var(--accent)}.hero{padding-top:64px;padding-bottom:48px}.hero .lead{letter-spacing:-.03em;color:var(--ink);text-wrap:pretty;max-width:24ch;font-size:34px;font-weight:500;line-height:1.34}.hero .lead b{font-weight:800}.hero .lead sup{color:var(--accent);vertical-align:super;font-size:14px;font-weight:700}.hero .bio{max-width:54ch;color:var(--ink-2);letter-spacing:-.012em;text-wrap:pretty;margin-top:30px;font-size:16.5px;line-height:1.78}.hero .fnote{border-top:1px solid var(--line);max-width:56ch;color:var(--mute);letter-spacing:-.005em;margin-top:26px;padding-top:14px;font-size:12.5px;line-height:1.7}.hero .fnote sup{color:var(--accent);font-weight:700}.career-row{border-top:1px solid var(--line);grid-template-columns:28px 1fr;gap:16px;padding:17px 0;display:grid}.career-row:first-child{border-top:0}.career-row .no{color:var(--faint);font-variant-numeric:tabular-nums;padding-top:4px;font-size:12px}.career-row .top{align-items:baseline;display:flex}.career-row .role{letter-spacing:-.022em;white-space:nowrap;flex-shrink:0;font-size:17px;font-weight:700}.career-row .org{color:var(--ink-2);white-space:nowrap;flex-shrink:0;margin-left:11px;font-size:13.5px}.career-row .when{color:var(--mute);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px}.career-row .desc{color:var(--mute);letter-spacing:-.005em;margin-top:5px;font-size:13px}.career-row.now .role:after{content:"재직 중";letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent-soft);background:var(--accent-soft);vertical-align:middle;border-radius:2px;margin-left:10px;padding:2px 7px;font-size:10px;font-weight:600}.stack{border-top:1px solid var(--line);grid-template-columns:96px 1fr;gap:16px;margin-top:44px;padding-top:30px;display:grid}.stack h4{letter-spacing:.18em;text-transform:uppercase;color:var(--faint);padding-top:3px;font-size:10px;font-weight:700}.stack .list{color:var(--ink-2);letter-spacing:-.01em;font-size:14px;line-height:1.95}.work-row{border-top:1px solid var(--line);cursor:pointer;grid-template-columns:30px 1fr;gap:18px;padding:20px 0;display:grid;position:relative}.work-row:first-child{border-top:0}.work-row:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,var(--accent-soft)0%,transparent 72%);opacity:0;border-radius:10px;transition:opacity .22s,transform .22s;position:absolute;inset:5px -16px 5px -28px;transform:translate(-6px)}.work-row:hover:before{opacity:1;transform:translate(0)}.work-row>*{z-index:1;position:relative}.work-row .no{padding-top:2px}.work-row .titleline{align-items:baseline;display:flex}.work-row .title{letter-spacing:-.025em;white-space:nowrap;flex-shrink:0;font-size:18px;font-weight:700;transition:color .14s}.work-row:hover .title{color:var(--accent-deep)}.work-row .year{color:var(--mute);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px}.work-row .blurb{color:var(--ink-2);letter-spacing:-.008em;text-wrap:pretty;max-width:62ch;margin-top:6px;font-size:14px;line-height:1.6}.work-row .meta{flex-wrap:wrap;gap:8px 22px;margin-top:11px;display:flex}.work-row .meta span{color:var(--mute);letter-spacing:-.005em;font-size:11.5px}.work-row .meta span b{color:var(--ink-2);font-weight:600}.work-row.is-side .no{padding-top:2px}.work-row:hover .mono{border-color:color-mix(in srgb,var(--accent)40%,transparent);color:var(--accent-deep)}.mono{color:var(--ink-2);background:var(--line);border:1px solid var(--line-2);flex-shrink:0;justify-content:center;align-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,Courier New,monospace;font-weight:700;line-height:1;transition:transform .2s cubic-bezier(.22,.61,.36,1),color .15s,background .15s,border-color .15s;display:inline-flex;overflow:hidden}.work-row:hover .mono,.work-card:hover .mono{transform:scale(1.08)rotate(-2deg)}.mono.sm{border-radius:5px;width:23px;height:23px;font-size:12px}.mono.lg{border-radius:9px;width:42px;height:42px;font-size:19px}.mono.side{color:var(--accent-deep);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent)22%,transparent)}.mono.img{background:#fff;padding:0}.mono img{object-fit:cover;width:100%;height:100%;display:block}.work-card:hover .mono{border-color:color-mix(in srgb,var(--accent)40%,transparent)}.chip{letter-spacing:.02em;white-space:nowrap;color:var(--accent-deep);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent)18%,transparent);border-radius:999px;flex-shrink:0;margin-left:11px;padding:2px 8px;font-size:10.5px;font-weight:700;transform:translateY(-1px)}.tag-plain{color:var(--mute);letter-spacing:-.005em;font-size:11.5px}.card-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.work-card{border:1px solid var(--line-2);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;gap:13px;min-width:0;padding:22px 22px 18px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.work-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 10px 30px -18px #0b8c8073}.work-card .card-top{align-items:center;gap:13px;display:flex}.work-card .card-titles{min-width:0}.work-card .title{letter-spacing:-.024em;font-size:16px;font-weight:700;line-height:1.3;transition:color .15s}.work-card:hover .title{color:var(--accent-deep)}.work-card .year{color:var(--mute);font-variant-numeric:tabular-nums;margin-top:3px;font-size:11.5px}.work-card .blurb{color:var(--ink-2);letter-spacing:-.006em;text-wrap:pretty;-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:auto;font-size:13px;line-height:1.62;display:-webkit-box;overflow:hidden}.work-card .card-foot{flex-wrap:wrap;align-items:center;gap:9px;padding-top:2px;display:flex}.work-card .card-foot .chip{margin-left:0;transform:none}.side-intro{color:var(--ink-2);letter-spacing:-.01em;text-wrap:pretty;max-width:56ch;margin:-8px 0 26px;font-size:14px;line-height:1.7}.blog-row{border-top:1px solid var(--line);cursor:pointer;align-items:baseline;gap:0;padding:15px 0;transition:color .14s;display:flex}.blog-row:first-child{border-top:0}.blog-row .when{color:var(--mute);font-variant-numeric:tabular-nums;min-width:92px;font-size:12.5px}.blog-row .title{letter-spacing:-.018em;flex-shrink:1;font-size:15.5px;font-weight:600}.blog-row .go{color:var(--faint);margin-left:14px;font-size:12px;transition:color .14s}.blog-row:hover .title{color:var(--accent-deep)}.blog-row:hover .go{color:var(--accent)}.blog-status{color:var(--mute);align-items:center;gap:10px;padding:16px 0;font-size:13.5px;display:flex}.spin{border:1.5px solid var(--line-2);border-top-color:var(--accent);border-radius:999px;width:12px;height:12px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.footer{border-top:1.5px solid var(--rule);margin-top:40px;padding:64px 0 40px}.footer .cta{letter-spacing:-.03em;max-width:20ch;font-size:28px;font-weight:700;line-height:1.3}.footer .cta b{font-weight:900}.footer .links{flex-wrap:wrap;gap:24px;margin-top:28px;display:flex}.footer .links a{color:var(--ink);border-bottom:1.5px solid var(--ink);padding-bottom:2px;font-size:14px;transition:color .14s,border-color .14s}.footer .links a:hover{color:var(--accent);border-color:var(--accent)}.footer .colophon{color:var(--faint);letter-spacing:-.005em;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:44px;font-size:12px;display:flex}.subpage{padding:52px 0 96px}.subpage .back{color:var(--mute);cursor:pointer;align-items:center;gap:7px;font-size:13px;transition:color .14s;display:inline-flex}.subpage .back:hover{color:var(--accent)}.subpage .back:before{content:"←"}.subpage-head{border-bottom:1.5px solid var(--rule);margin-top:30px;padding-bottom:26px}.subpage-head .head-row{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.subpage-head .eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:700}.subpage-head h1{letter-spacing:-.035em;margin-top:12px;font-size:40px;font-weight:800}.subpage-head .sub{color:var(--ink-2);letter-spacing:-.01em;text-wrap:pretty;max-width:60ch;margin-top:16px;font-size:15.5px;line-height:1.7}.subpage-head .sub b{color:var(--accent-deep);font-weight:700}.view-toggle{border:1px solid var(--line-2);border-radius:9px;flex-shrink:0;display:inline-flex;overflow:hidden}.view-toggle button{color:var(--mute);letter-spacing:-.005em;padding:7px 16px;font-size:12.5px;transition:background .14s,color .14s}.view-toggle button+button{border-left:1px solid var(--line-2)}.view-toggle button:hover{color:var(--ink)}.view-toggle button.on{background:var(--ink);color:var(--bg);font-weight:600}.work-group{margin-top:46px}.work-group-head{border-bottom:1.5px solid var(--rule);align-items:baseline;gap:11px;margin-bottom:6px;padding-bottom:10px;display:flex}.work-group-head .gt{letter-spacing:-.015em;font-size:15px;font-weight:800}.work-group-head .gc{color:var(--mute);font-variant-numeric:tabular-nums;font-size:12.5px}.work-group-head .gn{color:var(--faint);letter-spacing:-.005em;margin-left:auto;font-size:12px}.case-overlay{background:var(--bg);z-index:60;position:fixed;inset:0;overflow-y:auto}.case-bar{background:color-mix(in srgb,var(--bg)88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:2;position:sticky;top:0}.case-bar-inner{justify-content:space-between;align-items:center;max-width:760px;margin:0 auto;padding:16px 40px;display:flex}.case-bar .back{color:var(--ink-2);cursor:pointer;align-items:center;gap:7px;font-size:13px;transition:color .14s;display:inline-flex}.case-bar .back:before{content:"←"}.case-bar .back:hover{color:var(--accent)}.case-bar .pos{color:var(--mute);font-variant-numeric:tabular-nums;letter-spacing:.04em;font-size:12.5px}.case{max-width:760px;margin:0 auto;padding:56px 40px 100px}.case>.tag{letter-spacing:.04em;color:var(--accent);font-size:12px;font-weight:700}.case>h1{letter-spacing:-.038em;text-wrap:balance;margin-top:14px;font-size:42px;font-weight:800;line-height:1.08}.case>.summary{color:var(--ink-2);letter-spacing:-.012em;text-wrap:pretty;max-width:54ch;margin-top:18px;font-size:18px;line-height:1.7}.case-facts{border-top:1.5px solid var(--rule);margin-top:36px}.case-facts .fact{border-top:1px solid var(--line);align-items:baseline;padding:11px 0;display:flex}.case-facts .fact:first-child{border-top:0}.case-facts .fact .k{color:var(--mute);letter-spacing:-.005em;min-width:88px;font-size:12.5px}.case-facts .fact .v{color:var(--ink);letter-spacing:-.008em;font-size:14px}.case-block{border-top:1px solid var(--line);grid-template-columns:92px 1fr;gap:16px;padding:32px 0;display:grid}.case-block:first-of-type{margin-top:8px}.case-block .kind{letter-spacing:.04em;color:var(--accent);padding-top:3px;font-size:12px;font-weight:700}.case-block .body{color:var(--ink-2);letter-spacing:-.01em;font-size:15.5px;line-height:1.78}.case-block .body p+p{margin-top:14px}.case-block .body ul{margin:2px 0;list-style:none}.case-block .body li{margin-top:9px;padding-left:18px;position:relative}.case-block .body li:before{content:"";background:var(--accent);width:6px;height:1.5px;position:absolute;top:11px;left:0}.case-block .body b{color:var(--ink);font-weight:600}.case-links{flex-wrap:wrap;gap:10px;display:flex}.case-links a{color:var(--accent-deep);letter-spacing:-.008em;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent)20%,transparent);border-radius:999px;padding:6px 13px;font-size:13px;transition:background .14s,color .14s}.case-links a:hover{background:var(--accent);color:#fff}.case-stats{flex-wrap:wrap;gap:32px;margin-bottom:22px;display:flex}.case-stats .stat .v{letter-spacing:-.04em;color:var(--accent-deep);font-size:32px;font-weight:900}.case-stats .stat .k{color:var(--mute);letter-spacing:-.005em;margin-top:3px;font-size:12px}.up-next{border-top:1.5px solid var(--rule);cursor:pointer;justify-content:space-between;align-items:center;gap:18px;margin-top:40px;padding:24px 0 0;display:flex}.up-next .l{letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-size:11px;font-weight:700}.up-next .t{letter-spacing:-.03em;margin-top:7px;font-size:22px;font-weight:800;transition:color .14s}.up-next:hover .t{color:var(--accent-deep)}.up-next .arrow{color:var(--faint);font-size:20px;transition:color .14s,transform .14s}.up-next:hover .arrow{color:var(--accent);transform:translate(4px)}@media (max-width:880px){.shell{grid-template-columns:1fr;padding:0 24px}.rail{border-right:0;border-bottom:1px solid var(--line);height:auto;margin-right:0;padding:32px 0 22px;position:static}.rail-pad{height:auto;padding-right:0}.rail-nav{flex-flow:wrap;gap:4px 20px;margin-top:26px}.rail-nav a{padding:4px 0}.rail-spacer{display:none}.rail-grp,.rail-side{margin-top:22px}.rail-grps{flex-wrap:wrap;align-items:start;gap:8px 48px;display:flex}.content{padding-bottom:64px}.hero .lead{font-size:27px}.card-grid{grid-template-columns:1fr}.subpage-head h1,.case>h1{font-size:32px}.case-block{grid-template-columns:1fr;gap:8px}}@media (max-width:520px){.work-row .title,.career-row .role,.career-row .org{white-space:normal}.case-facts .fact{flex-direction:column;gap:2px}}@keyframes fadeUp{0%{opacity:0;transform:translateY(11px)}to{opacity:1;transform:none}}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes spinIn{0%{opacity:0}to{opacity:1}}.reveal{opacity:0;transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1);transform:translateY(16px)}.reveal.in{opacity:1;transform:none}.work-card.reveal{transition:opacity .5s,border-color .15s,box-shadow .15s,transform .16s;transform:none}.case-page{background:var(--bg);min-height:100vh;animation:.42s both pageIn}.rail-name{animation:.5s both fadeUp}.rail-role{animation:.5s 50ms both fadeUp}.rail-nav a{opacity:0;animation:.46s both fadeUp}.rail-nav a:first-child{animation-delay:.1s}.rail-nav a:nth-child(2){animation-delay:.15s}.rail-nav a:nth-child(3){animation-delay:.2s}.rail-nav a:nth-child(4){animation-delay:.25s}.rail-nav a:nth-child(5){animation-delay:.3s}.rail-grps{animation:.5s .34s both fadeUp}.rail-side{animation:.5s .4s both fadeUp}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-delay:0s!important}.reveal{opacity:1!important;transform:none!important}}
