body[data-theme=paper]{--bg: #F4F3EE;--bg-2: #ECEAE3;--surface: #FFFFFF;--hair: #1A1A1A14;--hair-2: #1A1A1A0A;--ink: #141414;--ink-2: #2E2E2B;--muted: #6B6A63;--muted-2: #9B9990;--accent: #2E5BFF;--accent-ink: #1E3EB3;--accent-soft: #D8E0FF;--highlight: #E8FF5C;--success: #2F7D3A;--c1: #2E5BFF;--c1s: #D8E0FF;--c2: #E14F3A;--c2s: #FDD8D1;--c3: #1C8C5A;--c3s: #C9ECD9;--c4: #8E5A78;--c4s: #EBD9E4}body[data-theme=ink]{--bg: #0E0F0C;--bg-2: #161813;--surface: #1A1D17;--hair: #FFFFFF14;--hair-2: #FFFFFF0A;--ink: #F2F1EA;--ink-2: #D9D7CE;--muted: #8C8A80;--muted-2: #5E5D55;--accent: #C6F24E;--accent-ink: #C6F24E;--accent-soft: #C6F24E22;--highlight: #C6F24E;--success: #7BCB6B;--c1: #C6F24E;--c1s: #C6F24E22;--c2: #FF8A5C;--c2s: #FF8A5C22;--c3: #6BD4A6;--c3s: #6BD4A622;--c4: #D59CC6;--c4s: #D59CC622}body[data-theme=warm]{--bg: #F1EEE5;--bg-2: #E6E2D5;--surface: #FAF8F1;--hair: #2B22181F;--hair-2: #2B22180F;--ink: #2B2218;--ink-2: #4A3E32;--muted: #7A6E5E;--muted-2: #A79E8B;--accent: #CC785C;--accent-ink: #A85A3F;--accent-soft: #E9CFC244;--highlight: #E9CFC2;--success: #6B8E4E;--c1: #CC785C;--c1s: #E9CFC2;--c2: #6B8E4E;--c2s: #D3DEC6;--c3: #3E6B8E;--c3s: #C6D3DE;--c4: #8E4E6B;--c4s: #DEC6D3}body[data-theme=vellum]{--bg: #F1EEE5;--bg-2: #EAE3D0;--surface: #FFFFFF;--hair: #2B22181F;--hair-2: #2B22180F;--ink: #241C14;--ink-2: #3E3428;--muted: #776A5A;--muted-2: #A89E8B;--accent: #2E5BFF;--accent-ink: #1E3EB3;--accent-soft: #D8E0FF80;--highlight: #E8FF5C;--success: #4A7C3A;--c1: #2E5BFF;--c1s: #D8E0FF;--c2: #C2522E;--c2s: #F0D6C8;--c3: #4A7C3A;--c3s: #D1E0C4;--c4: #8E4E6B;--c4s: #EBD4DF}body[data-theme=vellum] .hero h1 .hl{background:linear-gradient(180deg,transparent 68%,var(--accent-soft) 68%,var(--accent-soft) 96%,transparent 96%);padding:0 2px}body[data-theme=vellum] .hero h1 em{color:#1e3eb3}body[data-theme=vellum] .hero{background:transparent;padding:4px 0 48px;margin:0 0 44px;border-radius:0;border-bottom:1px solid var(--hair);position:relative}body[data-theme=vellum] .hero:after{display:none}body[data-theme=vellum] .frm{background:var(--accent-soft)!important;color:#1e3eb3!important;padding:3px 9px!important;font-weight:500;border-radius:3px!important;letter-spacing:.02em!important}body[data-theme=vellum] .work-tag{color:#1e3eb3}body[data-theme=vellum] .work-tag .d{background:#1e3eb3}body[data-theme=vellum] .work-card{background:var(--surface);border-color:var(--hair);box-shadow:none}body[data-theme=vellum] .work-viz{background:var(--bg-2);border-left-color:var(--hair)}body[data-theme=vellum] .series{background:var(--surface);border-color:var(--hair);border-top:1px solid var(--hair)}body[data-theme=vellum] .series:nth-child(1),body[data-theme=vellum] .series:nth-child(2){border-top:1px solid var(--hair)}body[data-theme=vellum] .series:nth-child(2) .cat{color:#1e3eb3;background:var(--accent-soft)}body[data-theme=vellum] .series:nth-child(2) .bar span{background:#2e5bff}body[data-theme=vellum] .author,body[data-theme=vellum] .author.lead{background:var(--surface);border-color:var(--hair)}body[data-theme=vellum] .author.lead:before{background:var(--accent-soft);color:#1e3eb3}body[data-theme=vellum] .post-row .meta-line .cat{color:#1e3eb3;background:transparent;padding:0;border-radius:0}body[data-theme=vellum] .post-row[class*=kr] .meta-line .cat,body[data-theme=vellum] .post-index>div:nth-child(2) .post-row:nth-child(odd) .meta-line .cat{color:#1e3eb3;background:transparent}body[data-theme=vellum] .post-row .ex{color:var(--ink-2)}body[data-theme=vellum] .post-row .title em{color:var(--ink)}body[data-theme=vellum] .contact-bar{background:var(--surface);border-color:var(--hair);color:var(--muted)}body[data-theme=vellum] .contact-bar .k{color:var(--muted-2)}body[data-theme=vellum] .contact-bar .v{color:var(--ink-2)}body[data-theme=vellum] .contact-bar a{color:#1e3eb3}body[data-theme=vellum] .contact-bar .sep{color:var(--muted-2)}body[data-theme=vellum] .block{padding-top:0;border-top:0}body[data-theme=vellum] .sec-head .title em{color:var(--ink);font-style:italic}body[data-theme=vellum] .stat{background:var(--surface)}body[data-theme=vellum] .orcid{background:var(--surface);border-color:var(--hair)}body[data-theme=vellum] .orcid .link{background:var(--accent-soft);color:#1e3eb3}body[data-theme=vellum] .tag-pill.hot{background:var(--ink);color:var(--bg);border-color:var(--ink)}body[data-theme=vellum] .tag-pill.hot .c{color:color-mix(in oklab,var(--bg) 70%,transparent)}body[data-theme=vellum] .tabs a.on{background:var(--ink);color:var(--bg)}body[data-theme=vellum] .hero p,body[data-theme=vellum] .work-main p.d,body[data-theme=vellum] .post-row .ex:not(.kr),body[data-theme=vellum] .series p{font-family:"Instrument Serif",Georgia,serif;font-size:18px;line-height:1.5;letter-spacing:0}:root{--sans: "Inter Tight", -apple-system, "Helvetica Neue", sans-serif;--display: "Fraunces", "Iowan Old Style", Georgia, serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--kr: "Pretendard Variable", "Pretendard", -apple-system, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11"}*{box-sizing:border-box}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--bg)}.kr{font-family:var(--kr);letter-spacing:-.015em;word-break:keep-all;overflow-wrap:break-word}html[data-lang-pref=ko] [data-lang-ui=ko],html[data-lang-pref=ko] [data-lang-ui=ko] *{word-break:keep-all;overflow-wrap:break-word}.kr,.kr *,[data-lang-ui=ko],[data-lang-ui=ko] *,html[data-lang-pref=ko] .kr,html[data-lang-pref=ko] .kr *{font-style:normal!important}.frame{width:100%;max-width:1440px;margin:0 auto;min-height:100vh;display:grid;grid-template-columns:240px 1fr 280px;grid-template-rows:auto 1fr;column-gap:56px;row-gap:40px;padding:32px 64px 96px;position:relative}.topbar{grid-column:1 / 4;grid-row:1;display:grid;grid-template-columns:240px 1fr auto;column-gap:56px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--hair)}.logo{font-family:var(--display);font-style:italic;font-size:22px;letter-spacing:-.01em;color:var(--ink);display:flex;align-items:baseline;gap:10px;white-space:nowrap;flex-shrink:0}.logo .dot{width:7px;height:7px;background:var(--accent);border-radius:50%;display:inline-block;transform:translateY(-2px);flex-shrink:0}.logo .sub{font-family:var(--mono);font-style:normal;font-size:12px;letter-spacing:.04em;color:var(--muted);white-space:nowrap}.tabs{display:flex;gap:2px;justify-self:start;font-family:var(--mono);font-size:13px;letter-spacing:.06em}.tabs a{padding:7px 14px;border-radius:6px;color:var(--muted);cursor:pointer;display:inline-flex;align-items:baseline;gap:6px;transition:color .1s,background .1s;text-transform:uppercase}.tabs a:hover{color:var(--ink);background:var(--hair-2)}.tabs a.on{color:var(--bg);background:var(--ink)}.tabs a .n{font-size:11px;opacity:.55}.tb-tools{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted);justify-self:end}.status{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--muted);padding-right:12px;border-right:1px solid var(--hair)}.status .live{width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px color-mix(in oklab,var(--success) 30%,transparent)}.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--hair);border-radius:6px;padding:6px 10px;width:200px;transition:border-color .15s}.search:focus-within{border-color:var(--accent)}.search input{border:0;background:transparent;outline:none;font-family:var(--sans);font-size:13px;color:var(--ink);flex:1;min-width:0}.search input::placeholder{color:var(--muted-2)}.kbd{font-family:var(--mono);font-size:12px;color:var(--muted);border:1px solid var(--hair);border-radius:3px;padding:1px 5px}.lang-sw{display:flex;border:1px solid var(--hair);border-radius:6px;overflow:hidden}.lang-sw button{border:0;background:transparent;cursor:pointer;padding:7px 12px;font-family:var(--mono),"SUIT Variable",sans-serif;font-size:13px;font-weight:500;color:var(--ink-2);letter-spacing:.04em;transition:background .12s,color .12s}.lang-sw button:hover{color:var(--ink);background:var(--hair-2)}.lang-sw button.on{background:var(--ink);color:var(--bg);font-weight:600}html[data-lang-pref=en] [data-lang-post=ko],html[data-lang-pref=ko] [data-lang-post=en]{display:none!important}html:not([data-lang-pref=ko]) [data-lang-ui=ko],html[data-lang-pref=en] [data-lang-ui=ko]{display:none!important}html[data-lang-pref=ko] [data-lang-ui=en]{display:none!important}.sidebar-l{grid-column:1;grid-row:2}.bio-card{display:flex;flex-direction:column;align-items:flex-start;padding-bottom:24px;border-bottom:1px solid var(--hair);margin-bottom:28px}.avatar{width:64px;height:64px;border-radius:50%;background:conic-gradient(from 210deg,color-mix(in oklab,var(--accent) 80%,var(--bg)),color-mix(in oklab,var(--accent) 40%,var(--bg)) 45%,color-mix(in oklab,var(--ink) 90%,transparent));position:relative;box-shadow:inset 0 -4px 10px #00000026;margin-bottom:14px}.avatar:after{content:"SJ";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-style:italic;font-size:24px;color:var(--bg)}.who{font-family:var(--display);font-size:22px;font-weight:400;letter-spacing:-.015em;color:var(--ink);line-height:1.1;margin-bottom:6px}.role{font-size:12px;color:var(--muted);line-height:1.4}.role b{color:var(--ink-2);font-weight:500}.nav-label{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin:0 0 12px;display:flex;align-items:center;gap:8px}.nav-label:after{content:"";flex:1;height:1px;background:var(--hair)}.nav-list{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-direction:column;gap:1px}.nav-list li{margin:0}.nav-list a{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 8px 0;border-bottom:1px solid var(--hair-2);font-family:var(--mono);font-size:13px;color:var(--muted);letter-spacing:.06em;position:relative;transition:color .12s,padding .12s,background .12s}.nav-list li:last-child a{border-bottom:0}.nav-list a:hover{color:var(--ink)}.nav-list a.on{color:var(--ink);background:var(--hair-2)}.nav-list a.on:before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:2px;background:var(--accent);border-radius:1px}.nav-list .nav-inner{display:inline-flex;align-items:baseline;gap:10px}.nav-list .num{font-size:11px;color:var(--muted-2);letter-spacing:.04em}.nav-list a.on .num{color:var(--accent-ink)}.nav-list .lbl{letter-spacing:.08em}.nav-list .n{font-size:12px;color:var(--muted-2)}.series-mini{display:flex;flex-direction:column;gap:1px;margin-bottom:28px}.series-mini .series-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--hair-2);font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.02em;transition:color .12s,padding .12s}.series-mini .series-row:last-child{border-bottom:0}.series-mini .series-row:hover{color:var(--ink);padding-left:4px}.series-mini .cat{color:var(--ink-2)}.series-mini .prog{color:var(--muted-2)}.socials{display:flex;flex-direction:column;gap:1px;margin-bottom:28px}.socials a{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--hair-2);font-family:var(--mono);font-size:13px;color:var(--muted);cursor:pointer;letter-spacing:.02em}.socials a:last-child{border:0}.socials a:hover{color:var(--ink);padding-left:4px}.socials a:hover .arr{color:var(--accent)}.socials a .arr{color:var(--muted-2);transition:color .12s}.kv{font-family:var(--mono);font-size:12px;color:var(--muted-2);line-height:1.9;padding-top:20px;border-top:1px solid var(--hair)}.kv .k{color:var(--muted);display:inline-block;width:54px}.kv a{color:var(--accent-ink)}.main{grid-column:2;grid-row:2;min-width:0}.sidebar-r{grid-column:3;grid-row:2}.hero{padding-top:4px;padding-bottom:48px;margin-bottom:44px;border-bottom:1px solid var(--hair)}.hero .label{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);font-weight:500;display:flex;align-items:center;gap:10px;margin-bottom:24px}.hero .label .pulse{width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 3px var(--accent-soft);animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--accent-soft)}50%{box-shadow:0 0 0 6px transparent}}.hero h1{font-family:var(--display);font-weight:400;font-size:58px;line-height:1.04;letter-spacing:-.025em;margin:0 0 20px;color:var(--ink);max-width:720px;text-wrap:balance}.hero h1 em{font-style:italic}.hero h1 .hl{background:linear-gradient(180deg,transparent 62%,var(--accent-soft) 62%);padding:0 2px}.hero h1.kr-hero{font-size:44px;font-weight:300;line-height:1.25;letter-spacing:-.03em}.hero p{font-size:15.5px;line-height:1.6;color:var(--ink-2);max-width:560px;margin:0 0 12px}.hero p b{color:var(--ink);font-weight:500}.hero .frm{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;padding:3px 8px;background:var(--accent-soft);color:var(--accent-ink);border-radius:3px;letter-spacing:.02em;margin-top:8px}.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:24px}.sec-head-l{display:flex;align-items:baseline;gap:14px}.sec-head .title{font-family:var(--display);font-size:32px;font-weight:400;letter-spacing:-.02em;color:var(--ink);line-height:1.15}.sec-head .title.kr{font-family:var(--kr);font-weight:600;font-size:28px;letter-spacing:-.025em}.sec-head .title em{font-style:italic;color:var(--ink)}.sec-head .count{font-family:var(--mono);font-size:14px;color:var(--ink-2);letter-spacing:.03em;font-variant-numeric:tabular-nums;font-weight:500;padding:3px 10px;background:var(--bg-2);border-radius:4px}.sec-head .filters{display:flex;gap:4px;font-family:var(--mono);font-size:12px}.sec-head .filters a{padding:5px 10px;border-radius:4px;color:var(--muted);cursor:pointer;letter-spacing:.04em;text-transform:uppercase}.sec-head .filters a:hover{color:var(--ink);background:var(--hair-2)}.sec-head .filters a.on{color:var(--bg);background:var(--ink)}.block{margin-bottom:56px}.work-card{display:grid;grid-template-columns:1.25fr .75fr;gap:0;background:var(--surface);border:1px solid var(--hair);border-radius:12px;overflow:hidden}.work-main{padding:28px 30px}.work-tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:14px}.work-tag .d{width:5px;height:5px;border-radius:50%;background:var(--accent)}.work-main h3{font-family:var(--display);font-size:28px;font-weight:400;letter-spacing:-.015em;line-height:1.12;margin:0 0 14px;color:var(--ink);word-break:keep-all;overflow-wrap:anywhere}.work-main p.d{font-size:14px;line-height:1.55;color:var(--ink-2);margin:0 0 14px;word-break:keep-all;overflow-wrap:break-word}.work-main p.m{font-family:var(--mono);font-size:12px;color:var(--muted);margin:0 0 20px;letter-spacing:.01em}.work-main p.m b{color:var(--ink-2);font-weight:500}.work-links{display:flex;flex-direction:column;gap:1px;border-top:1px solid var(--hair);margin:0 -30px -28px}.work-links a{display:grid;grid-template-columns:54px 1fr auto;align-items:center;padding:14px 30px;font-size:13px;color:var(--ink-2);border-bottom:1px solid var(--hair-2);cursor:pointer;transition:background .1s,color .1s;letter-spacing:-.005em}.work-links a:last-child{border-bottom:0}.work-links a:hover{background:var(--hair-2);color:var(--ink)}.work-links a:hover .arr{color:var(--accent);transform:translate(3px)}.work-links .lt{font-family:var(--mono);font-size:11px;letter-spacing:.08em;padding:2px 6px;background:var(--bg);border:1px solid var(--hair);border-radius:3px;color:var(--muted);justify-self:start;text-transform:uppercase}.work-links .arr{font-family:var(--mono);color:var(--muted-2);transition:color .12s,transform .2s}.work-links .url{font-family:var(--mono);font-size:12px;color:var(--muted-2);grid-column:2;grid-row:2;margin-left:0}.work-viz{background:var(--bg-2);border-left:1px solid var(--hair);padding:24px;display:flex;flex-direction:column;justify-content:space-between;position:relative}.viz-top{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:12px}.viz-top b{color:var(--ink-2);font-weight:500}.viz-svg{width:100%;flex:1}.viz-nums{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair);padding-top:14px;margin-top:12px}.viz-nums .n{font-family:var(--display);font-size:22px;letter-spacing:-.015em;color:var(--ink);line-height:1}.viz-nums .l{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-top:5px}.authors{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.author{padding:18px 20px;background:var(--surface);border:1px solid var(--hair);border-radius:8px;position:relative}.author.lead:before{content:"lead";position:absolute;top:14px;right:14px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-soft);padding:2px 6px;border-radius:3px}.author .init{width:32px;height:32px;border-radius:50%;background:var(--bg-2);border:1px solid var(--hair);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:14px;font-style:italic;color:var(--ink-2);margin-bottom:10px}.author .nm{font-size:14px;font-weight:500;color:var(--ink);letter-spacing:-.01em;margin-bottom:3px}.author .rl{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.01em;text-transform:lowercase}.series-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.series{padding:22px 24px;background:var(--surface);border:1px solid var(--hair);border-radius:10px;cursor:pointer;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;gap:12px}.series:hover{transform:translateY(-2px);box-shadow:0 10px 30px #0000000f}.series .top{display:flex;justify-content:space-between;align-items:baseline}.series .cat{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-soft);padding:3px 7px;border-radius:3px}.series .prog{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.02em}.series h4{font-family:var(--display);font-weight:400;font-size:24px;line-height:1.15;letter-spacing:-.015em;margin:0;color:var(--ink);word-break:keep-all;overflow-wrap:anywhere}.series h4.kr{font-family:var(--kr);font-weight:600;letter-spacing:-.02em}.series p{font-size:13px;line-height:1.5;color:var(--muted);margin:0;word-break:keep-all;overflow-wrap:break-word}.series .bar{height:3px;background:var(--hair);border-radius:2px;overflow:hidden}.series .bar span{display:block;height:100%;background:var(--accent)}.series .open{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.04em;display:flex;align-items:center;gap:6px;margin-top:2px}.series:hover .open{color:var(--accent)}.post-index{display:grid;grid-template-columns:88px 1fr;column-gap:20px}.year{font-family:var(--mono);font-size:18px;font-weight:500;letter-spacing:.06em;color:var(--ink-2);padding-top:22px;border-top:1px solid var(--hair)}.post-row{display:grid;grid-template-columns:1fr 96px;column-gap:18px;align-items:baseline;padding:18px 0 22px;border-top:1px solid var(--hair);cursor:pointer;transition:background .12s,padding .12s}.post-row:hover{background:var(--hair-2);padding-left:8px;padding-right:8px}.post-row:hover .title{color:var(--ink)}.post-row:hover .arr{color:var(--accent);transform:translate(3px)}.post-row .meta-line{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;color:var(--ink-2);letter-spacing:.02em;margin-bottom:10px;font-weight:500;font-variant-numeric:tabular-nums}.post-row .meta-line .d{width:3px;height:3px;border-radius:50%;background:var(--muted-2)}.post-row .meta-line .cat{color:var(--accent-ink);font-weight:600}.post-row .meta-line .lang{font-size:12px;letter-spacing:.1em;padding:2px 7px;border:1px solid var(--hair);border-radius:3px;color:var(--ink-2);font-weight:500}.post-row .title{font-family:var(--display);font-size:22px;line-height:1.2;letter-spacing:-.015em;color:var(--ink);margin:0 0 6px;transition:color .12s;word-break:keep-all;overflow-wrap:anywhere}.post-row .title.kr{font-family:var(--kr);font-weight:500;font-size:22px;letter-spacing:-.02em;line-height:1.3}.post-row .ex{word-break:keep-all;overflow-wrap:break-word}.post-row .ex{font-size:15px;line-height:1.55;color:var(--ink-2);max-width:640px;margin:0 0 10px}.post-row .ex.kr{font-family:var(--kr);font-size:14.5px;letter-spacing:-.01em;line-height:1.6}.post-row .tags-row{display:flex;gap:6px;flex-wrap:wrap}.post-row .tags-row .tg{font-family:var(--mono);font-size:12px;color:var(--ink-2);letter-spacing:.02em;padding:3px 8px;border:1px solid var(--hair);border-radius:3px;font-weight:500}.post-row .right{display:flex;align-items:flex-end;justify-content:flex-end;gap:6px;font-family:var(--mono);font-size:13px;color:var(--ink-2);font-weight:500;letter-spacing:.04em}.post-row .right.kr{font-family:var(--kr);letter-spacing:-.01em;font-weight:600;font-size:14px}.post-row .right .arr{color:var(--accent-ink);font-size:14px;transition:color .12s,transform .2s}.post-row.draft{opacity:.55}.post-row.draft .title:before{content:"◦ ";color:var(--muted-2)}.contact-bar{display:flex;align-items:center;gap:18px;padding:18px 24px;background:var(--surface);border:1px solid var(--hair);border-radius:8px;font-family:var(--mono);font-size:13px;color:var(--muted);margin-top:24px;flex-wrap:wrap}.contact-bar .k{color:var(--muted-2);letter-spacing:.1em;text-transform:uppercase;font-size:12px}.contact-bar .v{color:var(--ink-2)}.contact-bar a{color:var(--accent-ink)}.contact-bar .sep{color:var(--muted-2)}.widget{margin-bottom:32px}.w-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.w-head h3{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);font-weight:500;margin:0}.w-head:after{content:"";flex:1;height:1px;background:var(--hair)}.w-head .n{font-family:var(--mono);font-size:12px;color:var(--muted-2)}.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair);border:1px solid var(--hair);border-radius:8px;overflow:hidden}.stat{background:var(--surface);padding:14px 16px}.stat .v{font-family:var(--display);font-size:26px;font-weight:400;letter-spacing:-.02em;color:var(--ink);line-height:1}.stat .l{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px}.recent a{display:block;padding:12px 0;border-bottom:1px solid var(--hair-2);cursor:pointer;transition:padding .12s}.recent a:last-child{border-bottom:0}.recent a:hover{padding-left:4px}.recent a:hover .r-t{color:var(--ink)}.recent .r-top{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;color:var(--muted-2);letter-spacing:.04em;margin-bottom:4px}.recent .r-t{font-size:13px;line-height:1.35;color:var(--ink-2);letter-spacing:-.01em;transition:color .12s}.recent .r-t.kr{font-family:var(--kr);font-size:13px}.recent .r-t .arr{color:var(--muted-2);float:right;font-family:var(--mono)}.recent a:hover .r-t .arr{color:var(--accent)}.tags-w{display:flex;flex-wrap:wrap;gap:5px}.tag-pill{display:inline-flex;align-items:baseline;gap:5px;padding:4px 10px;border:1px solid var(--hair);border-radius:999px;font-family:var(--mono);font-size:13px;color:var(--ink-2);cursor:pointer;transition:all .12s;letter-spacing:.01em}.tag-pill .c{font-size:11px;color:var(--muted-2)}.tag-pill:hover{border-color:var(--ink);color:var(--ink)}.tag-pill.hot{background:var(--ink);color:var(--bg);border-color:var(--ink)}.tag-pill.hot .c{color:color-mix(in oklab,var(--bg) 70%,transparent)}.tag-pill.lg{font-size:13px;padding:5px 12px;font-weight:500}.orcid{padding:14px;background:var(--surface);border:1px solid var(--hair);border-radius:8px}.orcid .hdr{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.orcid .id{font-family:var(--mono);font-size:13px;color:var(--ink);letter-spacing:.01em;margin-bottom:10px}.orcid .link{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--accent-ink);padding:4px 8px;background:var(--accent-soft);border-radius:3px;letter-spacing:.02em}@media(max-width:1200px){.frame{grid-template-columns:220px 1fr 240px;column-gap:40px;padding:28px 40px 80px}.topbar{grid-template-columns:220px 1fr auto;column-gap:40px}.hero h1{font-size:48px}.search{width:160px}}@media(max-width:1024px){.frame{grid-template-columns:200px 1fr;column-gap:32px;padding:24px 32px 72px}.topbar{grid-template-columns:200px 1fr auto;column-gap:32px}.sidebar-r{display:none}.main{grid-column:2}.hero h1{font-size:42px}.work-card{grid-template-columns:1fr!important}.work-viz{display:none}.authors{grid-template-columns:repeat(2,1fr)!important}.series-grid{grid-template-columns:1fr!important}.search{display:none}}@media(max-width:768px){.logo .sub{display:none}.frame{grid-template-columns:1fr;grid-template-rows:auto auto auto;row-gap:32px;padding:20px 20px 64px}.topbar{grid-column:1;grid-template-columns:1fr auto;gap:12px;padding-bottom:16px}.tabs{grid-column:1 / -1;justify-self:stretch;overflow-x:auto;white-space:nowrap;font-size:12px}.tabs a{padding:6px 10px}.tb-tools{justify-self:end}.status{display:none}.lang-sw button{font-size:12px;padding:6px 10px}.sidebar-l{grid-column:1;grid-row:3;padding-top:32px;border-top:1px solid var(--hair)}.main{grid-column:1;grid-row:2}.bio-card{flex-direction:row;gap:14px;align-items:center;padding-bottom:16px;margin-bottom:20px}.avatar{width:48px;height:48px;margin-bottom:0;flex-shrink:0}.avatar:after{font-size:18px}.who{font-size:18px;margin-bottom:2px}.role{font-size:12px}.hero{padding-bottom:28px;margin-bottom:28px}.hero h1{font-size:32px;line-height:1.1;letter-spacing:-.02em}.hero p{font-size:14px}.block{margin-bottom:40px}.sec-head{flex-wrap:wrap;gap:8px}.sec-head .title{font-size:24px}.work-card{grid-template-columns:1fr!important;padding:20px}.work-main{padding:0}.work-main h3{font-size:20px;line-height:1.25}.work-viz{display:none}.work-links{margin:16px -20px -20px}.work-links a{grid-template-columns:auto 1fr auto;padding:14px 20px;column-gap:10px}.work-links a>span:nth-child(2){min-width:0;word-break:keep-all;overflow-wrap:anywhere}.authors{grid-template-columns:1fr!important;gap:12px}.author{padding:16px 18px}.series-grid{grid-template-columns:1fr!important;gap:12px}.series{padding:20px}.post-index{grid-template-columns:1fr!important;gap:16px}.post-index>.year{font-size:20px}.post-row{grid-template-columns:1fr!important;padding:16px 0;gap:8px}.post-row .right{justify-self:start}.post-row .title{font-size:18px}.post-row .title.kr{font-size:17px}.contact-bar{flex-direction:column;align-items:flex-start;gap:6px;font-size:12px}.contact-bar .sep{display:none}.filters{flex-wrap:wrap;gap:4px}.filters a{font-size:12px;padding:4px 8px}.post-head h1{font-size:28px!important;line-height:1.15!important}.post-head h1.kr{font-size:26px!important}.post-body{font-size:15px!important}.post-body.kr{font-size:14.5px!important}.post-body h2{font-size:22px!important;margin-top:36px!important}.post-body h3{font-size:18px!important;margin-top:24px!important}.post-body pre{font-size:12px;padding:12px 14px;overflow-x:auto}.post-body table{font-size:12.5px}.next-card{padding:18px 20px}.next-card h3{font-size:18px}.foot-meta .foot-row{flex-wrap:wrap;gap:6px;padding:8px 0}.foot-meta .foot-row .k{min-width:50px;font-size:11px}.foot-nav{flex-direction:column;gap:8px;align-items:flex-start}}@media(max-width:380px){.frame{padding:16px 14px 56px}.logo{font-size:18px}.logo .sub,.tabs a .n{display:none}.hero h1{font-size:28px}.post-head h1{font-size:24px!important}.post-head h1.kr{font-size:22px!important}}.cats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:768px){.cats-grid{grid-template-columns:1fr;gap:10px}}.scroll-top{position:fixed;bottom:28px;right:24px;width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--bg);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .2s,transform .2s;z-index:900;box-shadow:0 4px 14px #0000002e}.scroll-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-top:hover{background:var(--accent)}:root{--display: "Fraunces", "SUIT Variable", Georgia, serif;--sans: "Inter Tight", "SUIT Variable", -apple-system, sans-serif;--mono: "JetBrains Mono", "SUIT Variable", monospace;--kr: "SUIT Variable", -apple-system, sans-serif}
