@font-face{font-family:Noto;src:url('/assets/fonts/NotoSansKR-Regular.woff')}@font-face{font-family:Noto;src:url('/assets/fonts/NotoSansKR-Bold.woff');font-weight:700}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:78px}body{margin:0;background:#f5f5f9;color:#222139;font:15px/1.6 Noto,"Noto Sans KR",Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #7570c4;outline-offset:3px}[hidden]{display:none!important}.shell{width:min(1180px,calc(100% - 48px));margin:auto}.top{background:white;border-bottom:1px solid #dddde8;position:sticky;top:0;z-index:3}.bar{min-height:64px;display:flex;align-items:center;gap:28px}.mark{font:700 32px/1 Arial;letter-spacing:-2px}.mark i{color:#5753a4}.bar nav{margin-left:auto;display:flex;gap:24px;align-items:center}.bar nav a{font-size:13px}.lang{font-weight:700;border-left:1px solid #d4d3e1;padding-left:18px}.hero{margin-top:27px;border:1px solid #dedee9;background:white;border-radius:18px;overflow:hidden}.band{background:#302E64;height:132px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:flex-end;padding:0 52px}.band:before,.band:after{content:"";position:absolute;width:44%;height:300px;border:1px solid #64629A;transform:rotate(-33deg);right:18%;top:-150px}.band:after{right:6%;top:-50px}.identity{padding:0 34px 30px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 26px}.portrait{width:128px;height:128px;object-fit:cover;object-position:50% 32%;border-radius:50%;border:5px solid #fff;position:relative;margin-top:-58px;background:#e4e6e2}.actions{display:flex;align-items:center;gap:12px;align-self:end;padding:14px 0 0}.actions a,.action{border-radius:22px;border:1px solid #cfcddd;padding:8px 16px;background:white;font-size:13px;font-weight:700}.actions .primary{background:#444286;color:white;border-color:#444286}.bio{grid-column:1/-1}.bio h1{font:700 42px/1.15 Arial;margin:8px 0 2px;letter-spacing:-2px}.handle{color:#686879;font-size:13px}.bio h2{font-size:20px;font-weight:700;margin:14px 0 5px;letter-spacing:-.6px}.bio p{color:#525166;max-width:770px;white-space:normal}.block{margin:34px 0}.blockhead{display:flex;align-items:baseline;gap:16px;justify-content:space-between;margin:0 0 14px}.blockhead h2,.box h2{font-size:23px;line-height:1.35;letter-spacing:-.8px}.minor,.note,small{color:#57576b}.two{display:grid;grid-template-columns:.92fr 1.08fr;gap:16px}.box{background:white;border:1px solid #dedee9;border-radius:16px;padding:24px;min-width:0}.box h2{font-size:20px}.box .note{font-size:12px;margin-top:5px}.switch{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0 0}.switch button{border:1px solid #d6dcd9;padding:5px 15px;background:#fff;border-radius:18px;font-size:12px}.switch button[aria-pressed=true]{border-color:#645db1;background:#eeedf8}.switch button[data-series=ai][aria-pressed=true]{background:#fff1db;border-color:#ad8141}.radar{width:100%;max-height:294px;margin:7px auto;display:block}.gridline,.spoke{fill:none;stroke:#dddded;stroke-width:1}.poly{stroke-width:2.3}.poly.base{stroke:#524ea2;fill:#5751b438}.poly.ai{stroke:#b27a31;fill:#d99c392e}.radar text{font-size:12px;fill:#323149;font-weight:700}.radar .number{font:11px Arial;fill:#56556c}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.traits{border-top:1px solid #e2e0ec;padding-top:15px;display:flex;gap:10px;flex-wrap:wrap}.traits>div{display:flex;align-items:center;gap:6px}.traits img{width:27px;height:27px;border-radius:7px}.traits strong{font-size:12px}.traits small{display:none}.tree{position:relative;padding-left:17px;margin-top:16px}.tree:before{content:"";position:absolute;left:4px;top:20px;bottom:20px;border-left:1px solid #aaa7bf}.tree button{display:flex;align-items:center;width:100%;justify-content:space-between;text-align:left;position:relative;border:0;border-bottom:1px solid #eae9f0;background:transparent;padding:7px 0 8px 7px;gap:10px}.tree button:before{content:"";position:absolute;left:-15px;top:20px;width:5px;height:5px;background:#655ba6;border:2px solid #eae7f5;border-radius:50%}.tree button:after{content:"";position:absolute;left:-8px;top:24px;width:11px;border-top:1px solid #aaa3c0}.tree button:hover,.tree button[aria-pressed=true]{background:#f0eef8}.tree b{font-size:14px}.tree small{font-size:11px;display:block}.tree strong,.tool b{font:700 15px Arial;color:#504c82}.tree em,.tool em{font:11px Arial;color:#6c6a7d;padding-left:2px}.deck,.held{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project{background:#fff;border:1px solid #dfddea;border-radius:14px;overflow:hidden;transition:border-color .15s}.project:hover{border-color:#5a5097}.cover{background:#e9e8ef;border-bottom:1px solid #dfdeea;aspect-ratio:16/9;overflow:hidden}.cover img{width:100%;height:100%;object-fit:contain}.body{padding:16px}.project-head{display:flex;align-items:center;gap:9px}.project-head img,.held img{width:27px;height:27px;object-fit:contain;border-radius:6px}.project-head h3{font-size:16px}.project-head span{margin-left:auto}.body p{font-size:13px;margin:6px 0 9px;color:#514f64}.body small{font:11px Arial}.filter-state{display:flex;gap:8px;align-items:center;font-size:12px}.filter-state button{padding:4px 10px;border:1px solid #d6d3e5;border-radius:12px;background:white}.held{margin-top:16px}.held-card,.tool{display:flex;align-items:center;gap:12px;border:1px solid #dcdae6;border-radius:10px;background:#faf9fc;padding:12px 14px;text-align:left}.held-card small{display:block;font-size:11px}.held-card i{margin-left:auto}.stack{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.tool{background:white;min-height:55px;font-size:12px;gap:9px}.tool img{width:27px;height:27px;object-fit:contain}.tool b{margin-left:auto;white-space:nowrap}.tool span{overflow-wrap:anywhere}.stack-details summary{font-size:17px;font-weight:700;cursor:pointer;min-height:40px}.footer{border-top:1px solid #dbd8e4;display:flex;gap:20px;justify-content:space-between;padding:20px 0 32px;color:#5b586c;font-size:12px}dialog{width:min(425px,90vw);border:1px solid #cdcbd9;border-radius:16px;padding:25px;box-shadow:0 20px 100px #22214033}dialog::backdrop{background:#201e3999}dialog p{margin:10px 0 20px}
@media(max-width:780px){.shell{width:calc(100% - 28px)}.two{grid-template-columns:1fr}.deck,.held{grid-template-columns:repeat(2,minmax(0,1fr))}.stack{grid-template-columns:repeat(3,minmax(0,1fr))}.bar{gap:12px}.bar nav{gap:12px}.box{padding:19px}.identity{padding:0 19px 22px}.band{height:105px;padding:0 25px}.portrait{width:103px;height:103px;margin-top:-45px}.bio h1{font-size:36px}.actions{gap:6px}.actions a{padding:6px 12px}.block{margin:24px 0}}
@media(max-width:510px){.bar nav a{font-size:11px}.bar nav{gap:9px}.deck{grid-template-columns:1fr}.held{grid-template-columns:1fr}.stack{grid-template-columns:repeat(2,minmax(0,1fr))}.bio h2{font-size:18px}.body{padding:14px}.blockhead h2{font-size:21px}.identity{gap:5px 8px}.lang{padding-left:9px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.band{background:linear-gradient(112deg,#28254f,#37356c 57%,#44447c)}
.bio h1{font-family:Noto,"Malgun Gothic",sans-serif;font-size:clamp(34px,4vw,48px);font-weight:700;line-height:1.23;letter-spacing:-.055em}
.english-name{display:block;color:#615e76;font:500 19px/1.4 Arial,sans-serif;letter-spacing:.015em;margin-top:2px}
.bio h2{margin:18px 0 0;max-width:820px;word-break:keep-all;text-wrap:balance;font-size:clamp(18px,2vw,23px);line-height:1.5}
.bio .traits{border:0;padding-top:0;margin-top:16px;gap:8px}
.bio .traits>div{border:1px solid #e2dfec;border-radius:22px;padding:4px 12px 4px 5px;background:#f9f8fc}
.bio .traits img{width:25px;height:25px;border-radius:50%}
.bar nav a{position:relative}
.bar nav a[aria-current="location"]{color:#494485;font-weight:700}
.bar nav a[aria-current="location"]:after{content:"";position:absolute;bottom:-7px;left:0;right:0;height:2px;border-radius:2px;background:#6860a9}
.stack-viewport{overflow:hidden}.stack-viewport .stack{margin-top:0;padding-top:12px}
.stack-details summary{width:fit-content}.stack-details summary::marker{color:#615798}
.tool img{width:28px;height:28px;flex:0 0 28px}
.tool[data-tool="chatgpt"] img{background:white;padding:1px}
.tool[data-tool="openai-codex"] img{border-radius:6px}
.body{padding:15px}.body p{font-size:13px;line-height:1.55;margin:8px 0;word-break:keep-all}
.box:has(#radar){display:flex;flex-direction:column}.box .radar{margin:auto;width:100%;max-height:320px}
@media(min-width:511px) and (max-width:915px){.deck{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:300px){.bar{flex-wrap:wrap;gap:0}.bar nav{padding:3px 0 8px;width:100%;justify-content:space-between}.body{padding:8px}.tool{flex-wrap:wrap}.identity{grid-template-columns:minmax(0,1fr)}.actions{flex-wrap:wrap}}
@media(max-width:510px){.bar{gap:6px}.bar nav{gap:10px}.body p{font-size:13px}.bio .traits{gap:6px}.bio .traits>div{padding-right:9px}}
