:root{--paper:#fbfaf7;--paper-2:#f3f0e8;--card:#fff;--ink:#1a1916;--ink-soft:#39362f;--muted:#5f5a52;--faint:#706a61;--line:#1a19161c;--line-2:#1a19160f;--accent:#0e5b4c;--accent-deep:#0a4537;--accent-soft:#e6efeb;--amber:#9a6400;--radius-s:6px;--radius-m:12px;--radius-l:18px;--radius-pill:999px;--fs-xs:.8rem;--fs-s:.875rem;--fs-m:1rem;--fs-l:1.125rem;--fs-xl:1.35rem;--fs-2xl:2rem;--maxw:1280px;--font-display:"Fraunces",Georgia,"Times New Roman","Apple SD Gothic Neo",serif;--font-sans:"Hanken Grotesk","Pretendard","Segoe UI",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;--font-kr:"Pretendard","Apple SD Gothic Neo","Malgun Gothic","Segoe UI",-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.6;overflow-x:hidden}::selection{background:var(--accent);color:#fff}.grain{z-index:0;pointer-events:none;opacity:.4;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.32'/%3E%3C/svg%3E");position:fixed;inset:0}.glow{z-index:0;pointer-events:none;filter:blur(8px);background:radial-gradient(circle,#0e5b4c1a,#0e5b4c00 62%);border-radius:50%;width:60vw;max-width:760px;height:60vw;max-height:760px;position:fixed;top:-12%;left:-14%}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.content,.darticle{min-width:0}.achievement-grid{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:30px;display:grid}.achievement{border-right:1px solid var(--line-2);flex-direction:column;gap:6px;padding:16px 18px 4px 0;display:flex}.achievement+.achievement{padding-left:18px}.achievement:last-child{border-right:0;padding-right:0}.achievement>span{font-size:var(--fs-xs);color:var(--muted)}.achievement strong{font-size:var(--fs-l);color:var(--accent-deep);line-height:1.4}.achievement p{font-size:var(--fs-s);color:var(--ink-soft);line-height:1.55}.achievement:hover strong{text-underline-offset:4px;text-decoration:underline}.work-status{font-size:var(--fs-s);color:var(--accent-deep);flex-wrap:wrap;gap:6px 14px;margin-top:20px;font-weight:700;display:flex}.work-status span{color:var(--muted);font-weight:400}.work-output{border-top:1px solid var(--line-2);font-size:var(--fs-xs);color:var(--accent-deep);margin-top:16px;padding-top:12px}.guardian-evidence{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--card);margin-top:24px;padding:18px;scroll-margin-top:24px}.guardian-evidence summary{cursor:pointer;color:var(--accent-deep);font-weight:700}.case-evidence{margin-top:22px}.evidence-note,.evidence-source{font-size:var(--fs-s);color:var(--muted);line-height:1.7}.evidence-source{font-size:var(--fs-xs);margin-top:16px}.evidence-scroll{margin-top:22px;overflow-x:auto}.evidence-table{border-collapse:collapse;width:100%;font-size:var(--fs-s);text-align:left;line-height:1.65}.evidence-table caption{text-align:left;color:var(--ink);margin-bottom:12px;font-weight:700}.evidence-table th,.evidence-table td{border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;padding:13px 12px}.evidence-table thead th{background:var(--accent-soft);color:var(--accent-deep)}.evidence-table tbody th{width:22%;font-weight:600}.evidence-table td{color:var(--ink-soft)}.evidence-flow{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:24px 0;list-style:none;display:grid}.evidence-flow li{border:1px solid var(--line);border-radius:var(--radius-s);background:var(--accent-soft);font-size:var(--fs-s);padding:14px 12px;line-height:1.55}.evidence-flow span{color:var(--accent);font-size:var(--fs-xs);margin-bottom:6px;display:block}.evidence-links{flex-wrap:wrap;gap:12px 20px;margin-top:22px;display:flex}.evidence-links a{font-size:var(--fs-s);color:var(--accent-deep);text-underline-offset:4px;text-decoration:underline}.evidence-links svg{vertical-align:middle;width:14px;height:14px}.detail-evidence h2{max-width:none}a:focus-visible,summary:focus-visible,.evidence-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media (max-width:560px){.achievement-grid{grid-template-columns:1fr;margin-top:20px}.achievement{border-right:0;border-top:1px solid var(--line-2);grid-template-columns:1fr auto;gap:4px 14px;padding:12px 0;display:grid}.achievement+.achievement{padding-left:0}.achievement:first-child{border-top:0}.achievement strong{font-size:var(--fs-m);grid-area:2/1}.achievement p{grid-area:1/2/3;align-self:center;max-width:18ch}.evidence-table{min-width:520px}.evidence-flow{grid-template-columns:repeat(2,minmax(0,1fr))}.guardian-evidence{padding:14px}}.wrap{z-index:1;max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,4vw,48px);position:relative}.shell{grid-template-columns:1fr;gap:0;display:grid}@media (min-width:1040px){.shell{grid-template-columns:minmax(0,2fr) minmax(0,3fr);column-gap:clamp(40px,5vw,88px)}}.side{padding:56px 0 40px}@media (max-width:560px){.side{padding:26px 0 12px}.side .brandmark{display:none}.side .side-main{margin-top:0}.side .role{margin-top:14px}.side .subrole{display:none}.side .lede{max-width:33ch;margin-top:10px;line-height:1.52}.side .opentag,.side .socials{display:none}.content>section{padding:34px 0}}@media (min-width:1040px){.side{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;justify-content:space-between;height:100vh;padding:72px 0 56px;display:flex;position:sticky;top:0;overflow-y:auto}.side::-webkit-scrollbar{width:0;height:0;display:none}}@media (min-width:1040px) and (max-height:940px){.side{padding:34px 0 22px}.side .name .en{margin-top:8px}.side .role{margin-top:14px}.side .subrole{margin-top:7px}.side .lede{margin-top:12px;line-height:1.55}.side .opentag{margin-top:12px}.side .nav{margin-top:16px}.side .nav a{padding:4px 0}.side .socials{margin-top:14px}}.brandmark{align-items:center;gap:10px;margin-bottom:auto;display:flex}@media (max-width:1039px){.brandmark{margin-bottom:40px}}.dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%}.brandmark span{font-family:var(--font-kr);font-size:var(--fs-xs);letter-spacing:.08em;color:var(--ink-soft);font-weight:600}.side-main{margin-top:34px}@media (min-width:1040px){.side-main{margin-top:0}}.id-head{align-items:center;gap:clamp(16px,2.4vw,28px);display:flex}.id-head .name{flex:auto;min-width:0}@media (max-width:1039px){.id-head{gap:clamp(44px,8vw,96px)}.id-head .name{flex:0 auto}}.avatar{aspect-ratio:1;border:1px solid var(--line);background:var(--accent-soft);border-radius:50%;flex:none;width:clamp(84px,56px + 7vw,132px);overflow:hidden;box-shadow:0 12px 30px -18px #0e5b4c8c}.avatar img{object-fit:cover;width:100%;height:100%}@media (min-width:1040px){.avatar{width:clamp(88px,9vw,120px)}}@media (min-width:1440px){.avatar{width:clamp(120px,9vw,156px)}}.name{font-family:var(--font-kr);letter-spacing:-.02em;color:var(--ink);font-size:clamp(2.6rem,5vw,3.5rem);font-weight:800;line-height:1.02}.name .en{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:var(--fs-l);letter-spacing:0;color:var(--faint);margin-top:14px;display:block}.role{font-family:var(--font-display);color:var(--accent-deep);letter-spacing:-.01em;margin-top:26px;font-size:clamp(1.35rem,2.4vw,1.7rem);font-weight:400;line-height:1.2}.subrole{font-size:var(--fs-s);color:var(--muted);letter-spacing:.01em;margin-top:10px}.lede{font-family:var(--font-kr);color:var(--ink-soft);font-size:var(--fs-m);max-width:34ch;margin-top:22px;line-height:1.7}.opentag{border:1px solid var(--line);border-radius:var(--radius-pill);font-size:var(--fs-xs);color:var(--ink-soft);background:#ffffff80;align-items:center;gap:8px;margin-top:24px;padding:7px 13px;display:inline-flex}.opentag i{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.nav{margin-top:40px;display:none}@media (min-width:1040px){.nav{display:block}}.nav a{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.13em;color:var(--faint);align-items:center;gap:14px;padding:6px 0;font-weight:500;transition:color .25s;display:flex}.nav a .bar{background:var(--faint);width:26px;height:1px;transition:all .3s cubic-bezier(.2,.6,.2,1)}.nav a:hover{color:var(--ink-soft)}.nav a:hover .bar{background:var(--ink-soft);width:42px}.nav a.active{color:var(--accent-deep)}.nav a.active .bar{background:var(--accent);width:54px;height:2px}.socials{gap:8px;margin-top:34px;display:flex}.socials a{border:1px solid var(--line);border-radius:var(--radius-s);width:36px;height:36px;color:var(--faint);background:#ffffff52;place-items:center;transition:all .25s;display:grid}.socials a:hover{color:var(--accent-deep);border-color:var(--accent)}.socials svg{width:16px;height:16px}.mobile-actions,.mobile-proof-link{display:none}@media (max-width:560px){.id-head{align-items:center;gap:18px}.avatar{width:72px}.name{font-size:clamp(2.15rem,11vw,2.65rem)}.name .en{font-size:var(--fs-m);color:var(--muted);margin-top:7px}.mobile-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:15px;display:grid}.mobile-actions .btn{font-size:var(--fs-s);justify-content:center;padding:10px 12px;line-height:1.2}.mobile-actions .btn-primary{grid-column:1/-1}.mobile-proof-link{border-left:3px solid var(--accent);color:var(--ink-soft);font-family:var(--font-kr);background:#ffffff8a;margin-top:10px;padding:10px 12px;line-height:1.38;display:block}.mobile-proof-link span{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-deep);font-weight:800;display:block}.mobile-proof-link b{-webkit-line-clamp:2;font-size:var(--fs-s);-webkit-box-orient:vertical;margin-top:3px;font-weight:600;display:-webkit-box;overflow:hidden}}.content{padding:0 0 100px}@media (min-width:1040px){.content{padding:72px 0 120px}}section{border-top:1px solid var(--line-2);padding:54px 0}section:first-child{border-top:0;padding-top:8px}@media (min-width:1040px){section:first-child{padding-top:0}}.eyebrow{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--accent-deep);align-items:center;gap:12px;margin-bottom:20px;font-weight:600;display:flex}.eyebrow:before{content:"";background:var(--accent);width:22px;height:1px}h2{font-family:var(--font-kr);letter-spacing:-.02em;color:var(--ink);max-width:24ch;font-size:clamp(1.5rem,2.8vw,2rem);font-weight:700;line-height:1.25}.sec-desc{font-family:var(--font-kr);color:var(--muted);font-size:var(--fs-m);max-width:52ch;margin-top:16px;line-height:1.7}.intro-lead{font-family:var(--font-kr);color:var(--ink);letter-spacing:-.01em;max-width:30ch;font-size:clamp(1.18rem,2.3vw,1.5rem);line-height:1.55}.intro-lead b{color:var(--accent-deep);font-weight:700}.intro-sub{font-family:var(--font-kr);color:var(--muted);font-size:var(--fs-m);max-width:46ch;margin-top:20px;line-height:1.7}.cta-row{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.btn{border-radius:var(--radius-s);font-size:var(--fs-m);font-weight:600;font-family:var(--font-kr);align-items:center;gap:9px;padding:12px 20px;transition:all .25s cubic-bezier(.2,.6,.2,1);display:inline-flex}.btn-primary{background:var(--accent);color:#fff;border:1px solid var(--accent)}.btn-primary:hover{background:var(--accent-deep)}.btn-ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.btn-ghost:hover{border-color:var(--accent);color:var(--accent-deep)}.btn svg{width:16px;height:16px}.intro-links{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:14px;display:flex}.intro-links a{border-bottom:1px solid var(--line);padding-bottom:2px;transition:all .2s}.intro-links a:hover{color:var(--accent-deep);border-color:var(--accent)}@media (max-width:560px){#intro{padding-top:12px}#intro .intro-lead,#intro .intro-sub,#intro .cta-row{display:none}}.proof{background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--radius-m);grid-template-columns:repeat(2,1fr);gap:1px;margin-top:42px;display:grid;overflow:hidden}@media (min-width:560px){.proof{grid-template-columns:repeat(4,1fr)}}.proof .cell{background:var(--paper);padding:22px 18px}.proof .num{font-family:var(--font-display);font-weight:400;font-size:var(--fs-2xl);color:var(--accent-deep);letter-spacing:-.01em;line-height:1}.proof .lab{font-size:var(--fs-xs);color:var(--muted);margin-top:10px;line-height:1.4}.proof-strip{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.proof-chip{border:1px solid var(--line);border-radius:var(--radius-pill);font-family:var(--font-kr);font-size:var(--fs-xs);color:var(--ink-soft);background:#ffffff8c;align-items:center;padding:7px 11px;font-weight:600;line-height:1.35;display:inline-flex}@media (max-width:560px){.proof-strip{gap:6px;margin-top:0}.proof-chip{padding:6px 9px}.proof{margin-top:16px}.proof .cell{padding:15px 13px}.proof .num{font-size:var(--fs-xl)}.proof .lab{margin-top:7px}}.document-grid{gap:14px;margin-top:32px;display:grid}@media (min-width:760px){.document-grid{grid-template-columns:repeat(2,1fr)}}.document-card{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--card);flex-direction:column;min-height:188px;padding:22px 20px;display:flex}.document-name{font-family:var(--font-kr);font-size:var(--fs-m);color:var(--ink);font-weight:800;line-height:1.35}.document-card p{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);margin-top:10px;line-height:1.58}.document-actions{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:18px;display:flex}.document-actions a{border:1px solid var(--line);border-radius:var(--radius-s);min-height:38px;font-family:var(--font-kr);font-size:var(--fs-s);color:var(--ink-soft);background:#ffffffbd;justify-content:center;align-items:center;padding:9px 13px;font-weight:700;transition:all .22s cubic-bezier(.2,.6,.2,1);display:inline-flex}.document-actions a:first-child{background:var(--accent);border-color:var(--accent);color:#fff}.document-actions a:hover{border-color:var(--accent);color:var(--accent-deep)}.document-actions a:first-child:hover{background:var(--accent-deep);color:#fff}.work-grid{border-top:1px solid var(--line);grid-template-columns:1fr;gap:0;margin-top:30px;display:grid}.work-card{border-top:1px solid var(--line-2);grid-template-columns:48px minmax(0,1fr);column-gap:16px;padding:20px 0;display:grid}.work-card:first-child{border-top:0}.work-no{font-family:var(--font-display);font-size:var(--fs-s);color:var(--accent);grid-area:1/1/span 3;padding-top:3px;font-style:italic}.work-card>:not(.work-no){grid-column:2}.work-card h3{font-family:var(--font-kr);font-weight:700;font-size:var(--fs-m);color:var(--ink);line-height:1.38}.work-card p{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);margin-top:8px;line-height:1.62}.work-card>a{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--accent-deep);margin-top:8px;font-weight:600}.deliverable-list{gap:10px;margin-top:30px;display:grid}@media (min-width:700px){.deliverable-list{grid-template-columns:repeat(2,1fr)}}.deliverable-item{border:1px solid var(--line-2);border-radius:var(--radius-s);font-family:var(--font-kr);background:#ffffff94;align-items:flex-start;gap:12px;padding:13px 14px;display:flex}.deliverable-item span{font-family:var(--font-display);font-size:var(--fs-s);color:var(--accent);padding-top:1px;font-style:italic}.deliverable-item b{font-size:var(--fs-s);color:var(--ink-soft);line-height:1.45}.boundary-note{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--accent-deep);border-left:3px solid var(--accent);max-width:54ch;margin-top:14px;padding-left:14px;line-height:1.6}.poc-flow{background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--radius-m);gap:1px;margin-top:34px;display:grid;overflow:hidden}@media (min-width:760px){.poc-flow{grid-template-columns:repeat(2,1fr)}}@media (min-width:1120px){.poc-flow{grid-template-columns:repeat(3,1fr)}}.poc-stage{background:var(--paper);flex-direction:column;min-height:246px;padding:24px 22px;display:flex}.poc-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.11em;color:var(--faint);justify-content:space-between;align-items:center;gap:12px;font-weight:700;display:flex}.poc-label .no{font-family:var(--font-display);font-style:italic;font-size:var(--fs-m);color:var(--accent)}.poc-stage h3{font-family:var(--font-kr);font-weight:700;font-size:var(--fs-m);color:var(--ink);margin-top:16px;line-height:1.35}.poc-stage p{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);margin-top:10px;line-height:1.62}.poc-output{border-top:1px dashed var(--line);font-family:var(--font-kr);font-size:var(--fs-xs);margin-top:auto;padding-top:16px;line-height:1.45}.poc-output b{color:var(--accent-deep);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px;font-weight:700;display:block}.poc-output span{color:var(--ink-soft)}.ai-card{border:1px solid var(--line);border-radius:var(--radius-l);background:var(--card);margin-top:8px;overflow:hidden;box-shadow:0 24px 60px -38px #1a19164d}.ai-head{border-bottom:1px solid var(--line-2);align-items:center;gap:12px;padding:18px 20px;display:flex}.ai-orb{background:var(--accent);width:34px;height:34px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%;flex:none}.ai-head .t{font-family:var(--font-kr);font-weight:700;font-size:var(--fs-m);color:var(--ink)}.ai-head .s{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}.ai-live{font-size:var(--fs-xs);color:var(--accent-deep);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:7px;margin-left:auto;font-weight:600;display:inline-flex}.ai-live i{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px}.ai-live.paused{color:#a23b34}.ai-live.paused i{background:#c0392b}.ai-body{scroll-behavior:smooth;flex-direction:column;gap:14px;height:300px;padding:20px;display:flex;overflow-y:auto}.msg{max-width:86%;font-size:var(--fs-m);line-height:1.6;font-family:var(--font-kr)}.msg.bot{background:var(--paper-2);color:var(--ink-soft);border-radius:4px var(--radius-m) var(--radius-m) var(--radius-m);align-self:flex-start;padding:12px 15px}.msg.user{background:var(--accent);color:#fff;border-radius:var(--radius-m) var(--radius-m) 4px var(--radius-m);align-self:flex-end;padding:12px 15px}.msg.bot.err{color:#8a3a3a;background:#fbeeee}.typing{background:var(--paper-2);border-radius:4px var(--radius-m) var(--radius-m) var(--radius-m);align-self:flex-start;gap:5px;padding:14px 16px;display:inline-flex}.typing span{background:var(--faint);border-radius:50%;width:7px;height:7px;animation:1.3s infinite blink}.typing span:nth-child(2){animation-delay:.18s}.typing span:nth-child(3){animation-delay:.36s}@keyframes blink{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.ai-chips{flex-wrap:wrap;gap:8px;padding:0 20px 14px;display:flex}.chip{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--ink-soft);border:1px solid var(--line);border-radius:var(--radius-pill);cursor:pointer;background:#fff;padding:7px 13px;transition:all .2s}.chip:hover{border-color:var(--accent);color:var(--accent-deep);background:var(--accent-soft)}.ai-input{border-top:1px solid var(--line-2);background:#fff;gap:10px;padding:14px 16px;display:flex}.ai-input input{border:1px solid var(--line);border-radius:var(--radius-s);font-size:var(--fs-m);font-family:var(--font-kr);color:var(--ink);background:var(--paper);outline:none;flex:1;padding:11px 14px;transition:border .2s}.ai-input input:focus{border-color:var(--accent)}.ai-send{border-radius:var(--radius-s);background:var(--accent);color:#fff;cursor:pointer;border:none;flex:none;place-items:center;width:44px;transition:background .2s;display:grid}.ai-send:hover{background:var(--accent-deep)}.ai-send:disabled{opacity:.5;cursor:default}.ai-input input:disabled{color:var(--faint);cursor:not-allowed;background:var(--paper-2)}.ai-send:disabled:hover{background:var(--accent)}.ai-note{font-size:var(--fs-xs);color:var(--faint);margin-top:12px;line-height:1.5}#ask .ai-card{box-shadow:0 18px 44px -34px #1a191647}#ask .ai-body{height:auto;padding:18px 20px 10px;overflow:visible}#ask .ai-chips{padding-top:4px;display:flex}#ask .ai-input{padding:12px 16px}#ask .chip:disabled{cursor:default;color:var(--muted);background:var(--paper-2);border-color:var(--line);opacity:.9}#ask .chip:disabled:hover{color:var(--muted);background:var(--paper-2);border-color:var(--line)}.steps{gap:14px;margin-top:36px;display:grid}@media (min-width:760px){.steps{grid-template-columns:repeat(3,1fr)}}.step{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--card);padding:24px 22px;transition:all .3s cubic-bezier(.2,.6,.2,1);position:relative}.step:hover{border-color:var(--accent)}.step .no{font-family:var(--font-display);font-size:var(--fs-l);color:var(--accent);font-style:italic}.step .tag{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--faint);float:right;margin-top:4px}.step h3{font-family:var(--font-kr);font-weight:700;font-size:var(--fs-l);color:var(--ink);margin-top:16px;line-height:1.4}.step p{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);margin-top:10px;line-height:1.65}.tl{margin-top:30px}.job{border-top:1px solid var(--line-2);grid-template-columns:1fr;gap:6px;padding:22px 0;display:grid}.job:first-child{border-top:0}@media (min-width:680px){.job{grid-template-columns:130px 1fr;gap:24px}}.job .when{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--faint);padding-top:3px}.job .now{color:var(--accent-deep)}.job h3{font-family:var(--font-kr);font-weight:700;font-size:var(--fs-l);color:var(--ink)}.job .org{font-size:var(--fs-s);color:var(--muted);margin-top:2px}.job p{font-family:var(--font-kr);font-size:var(--fs-m);color:var(--ink-soft);max-width:54ch;margin-top:12px;line-height:1.65}.job ul{flex-direction:column;gap:7px;max-width:56ch;margin-top:12px;padding-left:0;list-style:none;display:flex}.job ul li{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);padding-left:18px;line-height:1.6;position:relative}.job ul li:before{content:"";background:var(--accent);opacity:.6;border-radius:50%;width:6px;height:6px;position:absolute;top:9px;left:0}.tags{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.tag-s{font-size:var(--fs-xs);color:var(--accent-deep);background:var(--accent-soft);border-radius:var(--radius-s);font-family:var(--font-kr);padding:4px 10px}.cases{gap:16px;margin-top:36px;display:grid}@media (min-width:760px){.cases{grid-template-columns:1fr 1fr}}.case{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--card);flex-direction:column;padding:26px 24px;transition:all .35s cubic-bezier(.2,.6,.2,1);display:flex;position:relative;overflow:hidden}.case:before{content:"";background:var(--accent);transform-origin:top;width:3px;transition:transform .4s cubic-bezier(.2,.6,.2,1);position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.case:hover{border-color:var(--line);transform:translateY(-5px);box-shadow:0 26px 56px -36px #1a191666}.case:hover:before{transform:scaleY(1)}.case .meta{font-size:var(--fs-xs);color:var(--faint);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;display:flex}.case .meta .idx{font-family:var(--font-display);font-style:italic;font-size:var(--fs-m);color:var(--accent)}.case h3{font-family:var(--font-kr);font-weight:700;font-size:var(--fs-l);color:var(--ink);overflow-wrap:anywhere;margin-top:16px;line-height:1.35}.case-result{border-left:3px solid var(--accent);background:var(--accent-soft);font-family:var(--font-kr);margin-top:16px;padding:11px 12px;line-height:1.45}.case-result span{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.09em;color:var(--accent-deep);font-weight:800;display:block}.case-result strong{-webkit-line-clamp:2;font-size:var(--fs-s);color:var(--ink);-webkit-box-orient:vertical;margin-top:3px;font-weight:700;display:-webkit-box;overflow:hidden}.case-summary{font-family:var(--font-kr);font-size:var(--fs-m);color:var(--ink-soft);-webkit-line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.case-fields{gap:10px;margin-top:16px;display:grid}.case-fields div{border-top:1px dashed var(--line);padding-top:9px}.case-fields div:first-child{border-top:0;padding-top:0}.case-fields dt{font-family:var(--font-kr);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-deep);font-weight:700}.case-fields dd{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:3px;line-height:1.48;display:-webkit-box;overflow:hidden}.case-points{flex-direction:column;gap:8px;margin-top:16px;padding:0;list-style:none;display:flex}.case-points li{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;padding-left:14px;line-height:1.48;display:-webkit-box;position:relative;overflow:hidden}.case-points li:before{content:"";background:var(--accent);opacity:.65;border-radius:50%;width:5px;height:5px;position:absolute;top:.68em;left:0}.case-github{border-top:1px dashed var(--line);font-family:var(--font-kr);font-size:var(--fs-xs);color:var(--faint);margin-top:16px;padding-top:12px;line-height:1.45}.case-github span{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-deep);margin-bottom:3px;font-weight:700;display:block}.case-github b{color:var(--muted);overflow-wrap:anywhere;word-break:break-word;font-weight:500}.case-github:hover b{color:var(--accent-deep)}.case .more{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--accent-deep);align-items:center;gap:8px;margin-top:auto;padding-top:20px;font-weight:600;display:inline-flex}.case .more svg{width:15px;height:15px;transition:transform .25s}.case:hover .more svg{transform:translate(4px)}.case-group{margin-top:36px}.case-group+.case-group{margin-top:44px}.case-group .h3lab{margin-bottom:14px}.cases-featured{margin-top:0}.supporting-desc{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);max-width:54ch;margin-top:-4px;line-height:1.6}.cases-supporting{gap:12px;margin-top:18px}@media (min-width:760px){.cases-supporting{grid-template-columns:repeat(2,1fr)}}.case-supporting{background:#ffffff9e;padding:20px 18px}.case-supporting h3{font-size:var(--fs-m);margin-top:12px}.case-supporting .case-result{margin-top:12px;padding:9px 10px}.case-supporting .case-result strong{-webkit-line-clamp:2}.case-supporting .case-summary{font-size:var(--fs-s);-webkit-line-clamp:3;margin-top:12px;line-height:1.52}.case-supporting .case-fields{gap:8px;margin-top:13px}.case-supporting .case-fields dd{font-size:var(--fs-xs);-webkit-line-clamp:2;line-height:1.42}.case-supporting .case-points{gap:7px;margin-top:12px}.case-supporting .case-points li{font-size:var(--fs-xs);-webkit-line-clamp:2;line-height:1.42}.case-supporting .case-github{margin-top:12px}.case-supporting .more{padding-top:16px}.grid-2{gap:36px;margin-top:36px;display:grid}@media (min-width:860px){.grid-2{grid-template-columns:1.3fr 1fr}}.h3lab{font-family:var(--font-kr);font-weight:700;font-size:var(--fs-l);color:var(--ink);align-items:center;gap:10px;margin-bottom:18px;display:flex}.h3lab svg{width:18px;height:18px;color:var(--accent)}.award{border-top:1px solid var(--line-2);grid-template-columns:64px 1fr;gap:16px;padding:16px 0;display:grid}.award:first-of-type{border-top:0}.award .yr{font-family:var(--font-display);font-style:italic;font-size:var(--fs-s);color:var(--accent-deep);padding-top:2px}.award .t{font-family:var(--font-kr);font-weight:600;font-size:var(--fs-m);color:var(--ink);line-height:1.4}.award .o{font-size:var(--fs-s);color:var(--muted);margin-top:3px}.award .o a{color:var(--accent-deep);border-bottom:1px solid var(--accent-soft);align-items:center;gap:4px;font-weight:700;display:inline-flex}.award .o a:after{content:"↗";font-size:var(--fs-xs);line-height:1}.award .o a:hover{border-color:var(--accent)}.proof-list{gap:10px;margin-top:30px;display:grid}.proof-item{border-top:1px solid var(--line-2);font-family:var(--font-kr);grid-template-columns:82px 1fr;align-items:flex-start;gap:16px;padding:15px 0;display:grid}.proof-item:first-child{border-top:0}.proof-item>span{font-family:var(--font-display);font-style:italic;font-size:var(--fs-s);color:var(--accent-deep);padding-top:2px}.proof-item b{font-size:var(--fs-m);color:var(--ink);line-height:1.4;display:block}.proof-item p{font-size:var(--fs-s);color:var(--muted);margin-top:4px;line-height:1.55}.proof-link{transition:color .2s}.proof-link:hover{color:var(--accent-deep)}.certs{flex-direction:column;gap:10px;display:flex}.cert{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--card);align-items:center;gap:13px;padding:13px 15px;transition:all .25s;display:flex}.cert:hover{border-color:var(--accent)}.cert .ic{border-radius:var(--radius-s);border:1px solid var(--line);width:54px;height:54px;color:var(--accent-deep);font-family:var(--font-display);font-style:italic;font-weight:600;font-size:var(--fs-s);background:#fff;flex:none;place-items:center;display:grid;overflow:hidden}.cert .ic .badge{object-fit:contain;box-sizing:border-box;width:100%;height:100%;padding:5px}.cert .ic .badge.badge-sm{transform:scale(.6)}.cert .ic span{place-items:center;width:100%;height:100%;display:grid}.cert .nm{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--ink);font-weight:600;line-height:1.35}.cert .dt{font-size:var(--fs-xs);color:var(--faint);margin-top:2px}.h3lab-sub{font-size:var(--fs-s);color:var(--muted);margin-top:24px;margin-bottom:12px}.certs-training .cert{background:#ffffffa3;padding:11px 13px}.certs-training .cert .ic{width:46px;height:46px}.repos{gap:14px;margin-top:36px;display:grid}@media (min-width:680px){.repos{grid-template-columns:repeat(3,1fr)}}.repo{border:1px solid var(--line);border-radius:var(--radius-m);background:#ffffff9e;padding:18px 16px;transition:all .3s cubic-bezier(.2,.6,.2,1)}.repo:hover{border-color:var(--accent)}.repo .top{align-items:center;gap:9px;display:flex}.repo .top svg{width:17px;height:17px;color:var(--ink-soft)}.repo .nm{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-weight:700;font-size:var(--fs-m);color:var(--ink)}.repo-meta{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-top:10px}.repo p{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);margin-top:9px;line-height:1.55}.repo .rt{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.repo .rt span{font-size:var(--fs-xs);color:var(--ink-soft);background:var(--paper-2);border-radius:var(--radius-s);padding:3px 9px}.gh-more{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--accent-deep);align-items:center;gap:8px;margin-top:16px;font-weight:600;transition:color .2s;display:inline-flex}.gh-more svg{width:15px;height:15px;color:var(--ink-soft);transition:color .2s}.gh-more:hover,.gh-more:hover svg{color:var(--accent)}.caps{background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--radius-m);gap:1px;margin-top:36px;display:grid;overflow:hidden}@media (min-width:760px){.caps{grid-template-columns:repeat(2,1fr)}.caps .cap:last-child:nth-child(odd){grid-column:1/-1}}.cap{background:var(--paper);flex-direction:column;padding:26px 22px;display:flex}.cap .no{font-family:var(--font-display);color:var(--accent);font-style:italic;font-size:var(--fs-s)}.cap h3{font-family:var(--font-kr);font-weight:700;font-size:var(--fs-m);color:var(--ink);margin-top:8px;line-height:1.35}.cap .chips{flex-wrap:wrap;gap:6px;margin:16px 0;display:flex}.cap .chips span{font-size:var(--fs-xs);color:var(--ink-soft);border:1px solid var(--line);border-radius:var(--radius-s);background:#fff;padding:4px 9px}.cap .deliv{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);border-top:1px dashed var(--line);min-height:4.5rem;margin-top:auto;padding-top:14px;line-height:1.5}.cap .deliv b{color:var(--accent-deep);font-weight:600}.dir{gap:14px;margin-top:36px;display:grid}@media (min-width:860px){.dir{grid-template-columns:repeat(3,1fr)}}.phase{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--card);padding:24px 22px}.phase.cur{border-color:var(--accent);background:linear-gradient(180deg,var(--accent-soft),#fff)}.phase .lab{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--accent-deep);font-weight:600}.phase .roles{flex-direction:column;gap:7px;margin-top:14px;display:flex}.phase .roles span{font-family:var(--font-kr);font-weight:600;font-size:var(--fs-m);color:var(--ink)}.phase p{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);margin-top:16px;line-height:1.6}.contact-box{border:1px solid var(--line);border-radius:var(--radius-l);background:linear-gradient(135deg,#fff,var(--paper-2));text-align:center;margin-top:36px;padding:clamp(28px,4vw,48px)}.contact-box .big{font-family:var(--font-kr);color:var(--ink);letter-spacing:-.02em;font-size:clamp(1.6rem,3.4vw,2.3rem);font-weight:600;line-height:1.25}.contact-box .big em{color:var(--accent-deep);font-style:normal}.contact-box p{font-family:var(--font-kr);color:var(--muted);font-size:var(--fs-m);max-width:48ch;margin-top:16px;margin-left:auto;margin-right:auto;line-height:1.7}.mail{background:var(--accent);color:#fff;border-radius:var(--radius-s);font-weight:600;font-family:var(--font-kr);align-items:center;gap:10px;margin-top:26px;padding:14px 26px;transition:all .25s;display:inline-flex}.mail:hover{background:var(--accent-deep)}.contact-actions{grid-template-columns:1fr;gap:10px;max-width:620px;margin:28px auto 0;display:grid}@media (min-width:560px){.contact-actions{grid-template-columns:repeat(4,minmax(0,1fr))}}.contact-action{border:1px solid var(--line);border-radius:var(--radius-s);min-height:48px;color:var(--ink-soft);font-family:var(--font-kr);font-size:var(--fs-s);background:#ffffffa8;justify-content:center;align-items:center;padding:12px 14px;font-weight:700;line-height:1.2;transition:all .25s cubic-bezier(.2,.6,.2,1);display:inline-flex}.contact-action:hover{border-color:var(--accent);color:var(--accent-deep)}.contact-action-strong{color:var(--accent-deep);background:#fff;border-color:#0e5b4c47}.contact-action-primary{background:var(--accent);border-color:var(--accent);color:#fff}.contact-action-primary:hover{background:var(--accent-deep);color:#fff}.contact-links{font-size:var(--fs-s);flex-wrap:wrap;justify-content:center;gap:16px;margin-top:18px;display:flex}.contact-links a{color:var(--ink-soft);border-bottom:1px solid var(--line);padding-bottom:2px;transition:all .2s}.contact-links a:hover{color:var(--accent-deep);border-color:var(--accent)}.en-page{max-width:980px;margin:0 auto;padding:56px 24px 96px}.en-page section{padding:52px 0}.en-hero{border-top:0!important;padding-top:0!important}.en-lang-link{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--accent-deep);border-bottom:1px solid var(--line);margin-bottom:34px;padding-bottom:3px;font-weight:700;display:inline-flex}.en-hero h1{font-family:var(--font-kr);letter-spacing:-.02em;color:var(--ink);max-width:16ch;font-size:clamp(2rem,5vw,3.2rem);line-height:1.12}.en-hero>p:not(.eyebrow){font-family:var(--font-kr);font-size:var(--fs-l);color:var(--muted);max-width:58ch;margin-top:20px;line-height:1.68}.en-card-grid{gap:14px;margin-top:32px;display:grid}@media (min-width:800px){.en-card-grid{grid-template-columns:repeat(2,1fr)}}.en-card{border:1px solid var(--line);border-radius:var(--radius-m);background:var(--card);padding:24px 22px}.en-card h3{font-family:var(--font-kr);font-size:var(--fs-m);color:var(--ink);line-height:1.35}.en-card p{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--muted);margin-top:12px;line-height:1.6}.en-card .eyebrow{font-size:var(--fs-xs);font-family:var(--font-sans);color:var(--accent-deep);margin:8px 0 0}.en-card strong{font-family:var(--font-kr);font-size:var(--fs-s);color:var(--accent-deep);margin-top:16px;line-height:1.52;display:block}footer{border-top:1px solid var(--line);font-size:var(--fs-s);color:var(--faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:8px;padding:40px 0 20px;display:flex}footer .fn{font-family:var(--font-kr)}[data-reveal]{opacity:.5;transition:opacity .4s ease-out,transform .4s ease-out;transform:translateY(8px)}[data-reveal].in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transition:none!important;transform:none!important}html{scroll-behavior:auto}.typing span{animation:none}}.dshell{grid-template-columns:1fr;gap:0;display:grid}@media (min-width:1040px){.dshell{grid-template-columns:minmax(280px,32%) 1fr;column-gap:clamp(40px,5vw,80px)}}.dside{padding:48px 0 24px}@media (min-width:1040px){.dside{flex-direction:column;height:100vh;padding:64px 0 48px;display:flex;position:sticky;top:0}}.back{font-size:var(--fs-s);color:var(--muted);font-weight:600;font-family:var(--font-kr);align-items:center;gap:9px;margin-bottom:34px;transition:color .2s;display:inline-flex}.back svg{width:15px;height:15px;transition:transform .25s}.back:hover{color:var(--accent-deep)}.back:hover svg{transform:translate(-4px)}.dkicker{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--accent-deep);align-items:center;gap:12px;font-weight:600;display:flex}.dkicker:before{content:"";background:var(--accent);width:22px;height:1px}.dtitle{font-family:var(--font-kr);letter-spacing:-.02em;color:var(--ink);margin-top:18px;font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:800;line-height:1.2}.dmeta{font-size:var(--fs-s);color:var(--muted);flex-wrap:wrap;gap:8px 14px;margin-top:16px;display:flex}.dmeta .sep{color:var(--faint)}.dnote{font-size:var(--fs-xs);color:var(--faint);max-width:32ch;margin-top:20px;line-height:1.6}.toc{margin-top:38px;display:none}@media (min-width:1040px){.toc{display:block;overflow-y:auto}}.toc a{font-size:var(--fs-xs);color:var(--faint);font-weight:500;font-family:var(--font-kr);align-items:baseline;gap:11px;padding:5px 0;transition:color .25s;display:flex}.toc a .n{font-family:var(--font-display);width:18px;color:var(--faint);flex:none;font-style:italic;transition:color .25s}.toc a:hover,.toc a:hover .n{color:var(--ink-soft)}.toc a.active{color:var(--accent-deep);font-weight:600}.toc a.active .n{color:var(--accent)}.dside-cta{margin-top:auto;padding-top:30px}.btn-github{flex-direction:column;align-items:flex-start;gap:5px}.btn-github svg{margin-bottom:2px}.btn-github span{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere;word-break:break-word;font-weight:500;line-height:1.35}.darticle{padding:24px 0 110px}@media (min-width:1040px){.darticle{padding:64px 0 130px}}.block{border-top:1px solid var(--line-2);padding:36px 0}.block:first-child{border-top:0;padding-top:0}.blab{align-items:center;gap:12px;margin-bottom:16px;display:flex}.blab .n{font-family:var(--font-display);color:var(--accent);font-style:italic;font-size:var(--fs-m)}.blab .t{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.13em;color:var(--ink);font-weight:600}.block p{font-family:var(--font-kr);font-size:var(--fs-m);color:var(--ink-soft);max-width:62ch;line-height:1.75}.block p+p{margin-top:12px}.block ul{flex-direction:column;gap:8px;max-width:60ch;margin-top:12px;padding-left:0;list-style:none;display:flex}.block ul li{font-family:var(--font-kr);font-size:var(--fs-m);color:var(--muted);padding-left:18px;line-height:1.65;position:relative}.block ul li:before{content:"";background:var(--accent);opacity:.6;border-radius:50%;width:6px;height:6px;position:absolute;top:10px;left:0}.dcta{border:1px solid var(--line);border-radius:var(--radius-l);background:linear-gradient(135deg,#fff,var(--paper-2));text-align:center;margin-top:48px;padding:clamp(26px,3.5vw,40px)}.dcta .big{font-family:var(--font-kr);color:var(--ink);letter-spacing:-.02em;font-size:clamp(1.25rem,2.6vw,1.7rem);font-weight:700;line-height:1.3}.dcta .big em{color:var(--accent-deep);font-style:normal}.missing{border:1px dashed var(--line);border-radius:var(--radius-m);text-align:center;color:var(--muted);font-family:var(--font-kr);margin-top:40px;padding:40px}
.case-visuals{--diagram-ink:#242a34;--diagram-muted:#626c7b;--diagram-line:#dde2e9;--diagram-font:var(--font-kr);border-top:1px solid var(--line-2);min-width:0;max-width:100%;font-family:var(--diagram-font);padding:36px 0;scroll-margin-top:24px;font-weight:400}.case-visuals-header{margin-bottom:32px}.case-visuals h2{font-family:var(--diagram-font);letter-spacing:-.025em;color:var(--diagram-ink);max-width:none;font-size:clamp(1.3rem,2.3vw,1.6rem);font-weight:600;line-height:1.4}.case-visuals-description,.case-diagram-description{font-size:var(--fs-s);color:var(--diagram-muted);word-break:keep-all;overflow-wrap:anywhere;font-weight:400;line-height:1.8}.case-visuals-description{max-width:64ch;margin-top:12px}.case-visuals-grid{grid-template-columns:minmax(0,1fr);gap:36px;min-width:0;display:grid}.case-diagram{min-width:0;max-width:100%;margin:0;scroll-margin-top:24px}.case-diagram+.case-diagram{border-top:1px solid var(--line);padding-top:28px}.case-diagram-caption{margin-bottom:14px}.case-diagram-kicker{font-size:var(--fs-xs);letter-spacing:.03em;color:var(--diagram-muted);margin-bottom:8px;font-weight:400}.case-diagram h3{font-family:var(--diagram-font);font-size:var(--fs-m);color:var(--diagram-ink);letter-spacing:-.025em;overflow-wrap:anywhere;font-weight:600;line-height:1.5}.case-diagram-description{margin-top:8px}.case-diagram-toolbar{border:1px solid var(--diagram-line);border-radius:var(--radius-s) var(--radius-s) 0 0;background:#f5f7fa;border-bottom:0;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px 16px;padding:10px 14px;display:flex}.case-diagram-canvas{overscroll-behavior-x:contain;border:1px solid var(--diagram-line);border-radius:0 0 var(--radius-s) var(--radius-s);scrollbar-width:thin;scrollbar-color:#b6bdc9 #eef1f7;background:#eef1f7;min-width:0;max-width:100%;overflow-x:auto}.case-diagram-svg{width:100%;min-width:640px;height:auto;display:block}.case-diagram-actions{flex-wrap:wrap;gap:8px 18px;display:flex}.case-diagram-actions a,.case-diagram-links a{font-size:var(--fs-xs);color:#525d6c;overflow-wrap:anywhere;font-weight:400;text-decoration:none}.case-diagram-actions a:hover,.case-diagram-links a:hover{color:#242a34;text-underline-offset:4px;text-decoration:underline}.case-diagram-details{border-bottom:1px solid var(--line-2);margin-top:4px;padding:12px 0}.case-diagram-details summary{cursor:pointer;font-size:var(--fs-xs);color:var(--diagram-muted);width:fit-content}.case-diagram-details summary::marker{color:#8b94a2}.case-diagram-notes{gap:8px;margin:16px 0 0;padding:0 0 0 16px;list-style:outside;display:grid}.case-diagram-notes li{font-size:var(--fs-xs);color:var(--diagram-muted);word-break:keep-all;overflow-wrap:anywhere;font-weight:400;line-height:1.8}.case-diagram-notes li::marker{color:#98a1ae}.case-diagram-source{font-size:var(--fs-xs);color:var(--diagram-muted);overflow-wrap:anywhere;margin-top:16px;line-height:1.8}.case-diagram-links{flex-wrap:wrap;gap:8px 18px;margin-top:10px;display:flex}.case-diagram-links a{text-underline-offset:4px;text-decoration:underline}.case-diagram-mobile-hint{font-size:var(--fs-xs);color:var(--diagram-muted);line-height:1.6;display:none}.case-diagram-canvas:focus-visible,.case-diagram-actions a:focus-visible,.case-diagram-links a:focus-visible,.case-diagram-details summary:focus-visible{outline-offset:4px;outline:2px solid #63738b}@media (max-width:700px){.case-diagram-mobile-hint{margin-right:auto;display:block}.case-diagram-toolbar{padding:10px}.case-diagram-actions{gap:8px 12px}.case-visuals-grid{gap:24px}}@media print{.case-diagram-canvas{overflow:visible}.case-diagram-svg{min-width:0}.case-diagram-toolbar{display:none}.case-diagram-canvas{border-radius:var(--radius-s)}.case-diagram-details::details-content{content-visibility:visible}}
.portfolio-media{min-width:0;margin:32px 0;scroll-margin-top:24px}.portfolio-media h2,.portfolio-media h3{font-family:var(--font-kr);font-size:var(--fs-l);color:var(--ink);letter-spacing:-.02em;max-width:none;font-weight:600;line-height:1.5}.media-description{font-size:var(--fs-s);color:var(--muted);word-break:keep-all;overflow-wrap:anywhere;max-width:68ch;margin-top:10px;line-height:1.8}.media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:20px;display:grid}.media-grid-single{grid-template-columns:minmax(0,1fr)}.media-item{min-width:0;margin:0}.media-preview{aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--card);justify-content:center;align-items:center;display:flex;overflow:hidden}.media-preview img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%}.media-preview-portrait{aspect-ratio:auto;height:320px}.media-preview-portrait img{height:100%}.media-item figcaption{padding-top:12px}.media-item figcaption b{font-size:var(--fs-s);color:var(--ink-soft);font-weight:600}.media-item figcaption p{font-size:var(--fs-xs);color:var(--muted);word-break:keep-all;overflow-wrap:anywhere;margin-top:5px;line-height:1.7}.media-open{font-size:var(--fs-xs);color:var(--accent-deep);text-underline-offset:4px;margin-top:8px;text-decoration:underline;display:inline-block}.media-note{font-size:var(--fs-xs);color:var(--faint);word-break:keep-all;overflow-wrap:anywhere;margin-top:16px;line-height:1.7}.media-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.darticle>.portfolio-media:first-child{margin-top:0;margin-bottom:36px}.darticle>.portfolio-media h2{font-size:var(--fs-xl)}@media (max-width:700px){.media-grid{grid-template-columns:minmax(0,1fr);gap:24px}.media-preview-portrait{height:300px}}
