:root{--bg:#0a0b0d;--bg-elev:#131519;--bg-elev-2:#1a1d23;--line:#f0ece21a;--line-2:#f0ece233;--text:#ece9e2;--muted:#9ba0a8;--faint:#5b616b;--ink:#ece9e2;--ink-inv:#0a0b0d;--ink-soft:#ece9e21a;--ink-line:#ece9e247;--ok:#6bbf8a;--grad:linear-gradient(120deg,#22d3ee,#6366f1,#c084fc,#f472b6);--grad-soft:linear-gradient(120deg,#22d3ee29,#6366f129,#c084fc29,#f472b629);--g1:#22d3ee;--g2:#6366f1;--g3:#c084fc;--g4:#f472b6;--maxw:1320px;--sans:"Pretendard","Pretendard Variable","Segoe UI",ui-sans-serif,system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;--mono:ui-monospace,"Cascadia Code","SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--ease:cubic-bezier(.22,1,.36,1);--tile-w:236px;--tile-h:318px}:root[data-theme=light]{--bg:#f4f4f2;--bg-elev:#fff;--bg-elev-2:#ecebe6;--line:#1414161a;--line-2:#14141633;--text:#16181c;--muted:#565b62;--faint:#8b9099;--ink:#141518;--ink-inv:#fff;--ink-soft:#1415180f;--ink-line:#14151847;--ok:#2e8b57}@media (min-width:1600px){:root{--maxw:1480px}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:var(--ink);color:var(--ink-inv)}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1.25rem,4vw,3.5rem)}.mono{font-family:var(--mono)}.eyebrow{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.6rem;font-size:.72rem;display:inline-flex}.eyebrow:before{content:"";background:var(--grad);border-radius:2px;width:1.8rem;height:2px}:focus-visible{outline:2px solid var(--g2);outline-offset:3px;border-radius:4px}.gt{background:var(--grad);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:8s linear infinite gshift}@keyframes gshift{to{background-position:200% 0}}@keyframes auroraA{0%,to{transform:translate(0)scale(1)}33%{transform:translate(8%,6%)scale(1.15)}66%{transform:translate(-6%,4%)scale(.95)}}@keyframes auroraB{0%,to{transform:translate(0)scale(1.05)}50%{transform:translate(-10%,-6%)scale(1.2)}}@keyframes auroraC{0%,to{transform:translate(0)scale(1)}50%{transform:translate(9%,-8%)scale(1.1)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes drawline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes pulse{0%,to{box-shadow:0 0 #6366f180}50%{box-shadow:0 0 0 7px #6366f100}}:root[data-lang=en] [lang=ko],:root[data-lang=ko] [lang=en]{display:none}:root[data-lang=ko] .brand,:root[data-lang=ko] .eyebrow,:root[data-lang=ko] .bb-tag,:root[data-lang=ko] .bb-tag .mono,:root[data-lang=ko] .btn,:root[data-lang=ko] .cbtn,:root[data-lang=ko] .stat .l,:root[data-lang=ko] .stat .edit,:root[data-lang=ko] .tile .glyph,:root[data-lang=ko] .tile .cap .s,:root[data-lang=ko] .tile .hover-actions .mini,:root[data-lang=ko] .ms .badge,:root[data-lang=ko] .stack-cols h4,:root[data-lang=ko] .foot-links a,:root[data-lang=ko] .foot-inner .mono,:root[data-lang=ko] .modal-body h4,:root[data-lang=ko] .meta-row .l,:root[data-lang=ko] .tag,:root[data-lang=ko] .modal-hero .htitle .k{font-family:var(--sans);font-weight:600}:root[data-lang=ko] .eyebrow,:root[data-lang=ko] .stat .l,:root[data-lang=ko] .tile .glyph,:root[data-lang=ko] .ms .badge,:root[data-lang=ko] .stack-cols h4,:root[data-lang=ko] .modal-body h4,:root[data-lang=ko] .meta-row .l{letter-spacing:.02em;text-transform:none}:root[data-lang=ko] .tile .hover-actions .mini{font-size:.82rem}.nav{z-index:60;-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);background:color-mix(in srgb,var(--bg) 72%,transparent);border-bottom:1px solid var(--line);position:sticky;top:0}.nav-inner{max-width:var(--maxw);justify-content:space-between;align-items:center;height:4.25rem;margin:0 auto;padding:0 clamp(1.25rem,4vw,3.5rem);display:flex}.brand{font-family:var(--mono);letter-spacing:-.01em;font-size:.95rem;font-weight:600}.nav-links{align-items:center;gap:.25rem;display:flex}.nav-links a{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border-radius:7px;padding:.4rem .7rem;font-size:.76rem;transition:color .2s,background .2s}.nav-links a:hover{color:var(--text);background:var(--bg-elev)}.icon-btn{border:1px solid var(--line-2);min-width:2rem;height:2rem;color:var(--muted);cursor:pointer;font-family:var(--mono);background:0 0;border-radius:8px;place-items:center;margin-left:.35rem;padding:0 .5rem;font-size:.72rem;transition:color .2s,border-color .2s;display:grid}.icon-btn:hover{color:var(--text);border-color:var(--ink-line)}@media (max-width:700px){.nav-links a.sec{display:none}.nav-inner{padding:0 1.1rem}.nav-links{gap:.15rem}.nav-links a{padding:.45rem .5rem}.icon-btn{min-width:2.5rem;height:2.5rem;margin-left:.5rem}}@media (max-width:520px){.nav-links a.contact{display:none}}.nav-visits{border-left:1px solid var(--line-2);font-family:var(--sans);color:var(--muted);white-space:nowrap;letter-spacing:.01em;align-items:center;gap:.45rem;margin-left:.5rem;padding-left:.85rem;font-size:.72rem;display:inline-flex}.nav-visits b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.nav-visits .dot{opacity:.45}@media (max-width:900px){.nav-visits{display:none}}.hero-bento{grid-template-columns:2fr 1fr;grid-auto-rows:1fr;gap:.9rem;padding-top:clamp(1.5rem,3vw,2.4rem);padding-bottom:1rem;display:grid;position:relative}.cell{border:1px solid var(--line);background:var(--bg-elev);border-radius:18px;position:relative;overflow:hidden}.hero-main{background:#08090c;grid-row:span 3;align-items:center;min-height:min(70vh,560px);padding:clamp(1.6rem,4vw,3rem);display:flex}.aurora{z-index:0;filter:blur(48px);opacity:.9;position:absolute;inset:-20%}.aurora i{mix-blend-mode:screen;border-radius:50%;display:block;position:absolute}.aurora i:first-child{background:radial-gradient(circle,var(--g1),transparent 62%);width:46%;height:52%;animation:auroraA 16s var(--ease) infinite;top:6%;left:2%}.aurora i:nth-child(2){background:radial-gradient(circle,var(--g2),transparent 62%);width:52%;height:56%;animation:auroraB 20s var(--ease) infinite;top:0%;right:0%}.aurora i:nth-child(3){background:radial-gradient(circle,var(--g3),transparent 62%);width:48%;height:54%;animation:auroraC 18s var(--ease) infinite;bottom:-6%;left:24%}.aurora i:nth-child(4){background:radial-gradient(circle,var(--g4),transparent 62%);width:40%;height:46%;animation:auroraA 22s var(--ease) infinite reverse;bottom:0%;right:8%}.hero-constellation{z-index:1;pointer-events:none;position:absolute;inset:0}.hero-main:after{content:"";z-index:1;background:linear-gradient(90deg,#06070aeb 4%,#06070a9e 46%,#06070a47 100%),linear-gradient(#0000 40%,#06070a8c);position:absolute;inset:0}.hero-copy{z-index:2;position:relative}@media (prefers-reduced-motion:reduce){.aurora i{animation:none!important}}.bb-tag{font-family:var(--mono);color:#b7bcc4;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:.55rem;padding:.35rem .85rem .35rem .7rem;font-size:.78rem;display:inline-flex}.dot{background:var(--ok);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent);border-radius:50%}.hero-copy h1{letter-spacing:-.04em;text-wrap:balance;color:#f3f0e9;max-width:16ch;margin:1.3rem 0 0;font-size:clamp(2.5rem,5.6vw,4.4rem);font-weight:680;line-height:1}.hero-copy .role{letter-spacing:-.01em;color:#cfd3da;align-items:center;gap:.7rem;margin:.85rem 0 0;font-size:clamp(1.05rem,1.9vw,1.45rem);font-weight:600;display:flex}.hero-copy .role:before{content:"";background:var(--grad);border-radius:2px;flex:none;width:1.6rem;height:2px}:root[data-lang=ko] .hero-copy .role{font-weight:600}.hero-copy .lead{color:#b7bcc4;word-break:keep-all;text-wrap:balance;max-width:44ch;margin:1.4rem 0 0;font-size:clamp(1.02rem,1.6vw,1.2rem)}.lead,.sec-lead p,.bcell p,.curr li,.deck-slide .sbody,.ms p,.modal-body .lede,.modal-body p,.hl li{word-break:keep-all}.hero-copy .lead b{color:#f3f0e9;font-weight:600}.cta-row{flex-wrap:wrap;gap:.7rem;margin-top:2rem;display:flex}.btn{font-family:var(--mono);border:1px solid var(--line-2);color:var(--text);cursor:pointer;transition:transform .15s var(--ease),border-color .2s,background .2s,color .2s;background:0 0;border-radius:10px;align-items:center;gap:.55rem;padding:.72rem 1.2rem;font-size:.85rem;display:inline-flex}.btn:hover{border-color:var(--ink-line);transform:translateY(-2px)}.btn.primary{background:var(--grad);color:#fff;transition:background-position .5s var(--ease),transform .15s var(--ease),box-shadow .3s;background-size:180% 100%;border-color:#0000;box-shadow:0 8px 24px -8px #6366f199}.btn.primary:hover{background-position:100% 0;transform:translateY(-2px);box-shadow:0 12px 30px -8px #c084fcb3}.btn .arw{transition:transform .2s var(--ease)}.btn:hover .arw{transform:translate(3px)}.hero-main .btn{color:#e7e4dd;background:#ffffff0a;border-color:#ffffff38}.hero-main .btn.primary{color:#fff;border-color:#0000}.stat{flex-direction:column;justify-content:center;padding:1.4rem 1.5rem;display:flex}.stat .k{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(1.9rem,3vw,2.6rem);font-weight:680;line-height:1}.stat .k .u{color:var(--muted);margin-left:.1rem;font-size:.55em}.stat .l{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:.5rem;font-size:.72rem}.stat .edit{font-family:var(--mono);color:var(--faint);margin-top:.35rem;font-size:.64rem}.stat .meters{flex-direction:column;gap:.6rem;margin-top:1.25rem;display:flex}.stat .meter{grid-template-columns:5.4em 1fr;align-items:center;gap:.75rem;display:grid}.stat .meter .ml{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);white-space:nowrap;font-size:.68rem}.stat .meter .mbar{background:#ffffff17;border-radius:999px;height:4px;overflow:hidden}.stat .meter .mbar i{height:100%;width:calc(var(--lvl)*100%);background:var(--grad);border-radius:inherit;transform-origin:0;animation:meterGrow .9s var(--ease) both;display:block}@keyframes meterGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}:root[data-theme=light] .stat .meter .mbar{background:#1018281a}@media (max-width:820px){.stat .meters{display:none}}@media (prefers-reduced-motion:reduce){.stat .meter .mbar i{animation:none}}@media (min-width:821px){:root:not([data-theme=light]) .stat,:root:not([data-theme=light]) .bcell:not(.contact){background:color-mix(in srgb,var(--bg-elev) 58%,transparent);-webkit-backdrop-filter:blur(13px)saturate(1.1);box-shadow:inset 0 1px #ffffff0d}:root:not([data-theme=light]) .hero-bento:before{content:"";z-index:0;filter:blur(24px);pointer-events:none;background:radial-gradient(66% 52% at 82% 20%,#6366f147,#0000 62%),radial-gradient(58% 55% at 96% 66%,#f472b62b,#0000 64%),radial-gradient(58% 60% at 58% 96%,#22d3ee26,#0000 62%);border-radius:24px;width:34%;position:absolute;top:4%;bottom:4%;right:0}}@media (max-width:820px){.hero-bento{grid-template-columns:1fr 1fr}.hero-main{grid-area:auto/1/auto/3;min-height:auto}}@media (max-width:520px){.hero-bento{grid-template-columns:repeat(3,1fr);grid-auto-rows:auto;gap:.6rem;padding-bottom:.5rem}.hero-main{grid-column:1/-1;min-height:auto}.stat{text-align:center;align-items:center;padding:.9rem .55rem}.stat .k{font-size:clamp(.9rem,3.6vw,1.3rem)}.stat .k .u{font-size:.62em}.stat .l{letter-spacing:.03em;margin-top:.3rem;font-size:.6rem}}@media (max-width:380px){.hero-bento{grid-template-columns:1fr 1fr}.hero-main,.stat:last-child{grid-column:1/-1}}@media (max-width:700px){.row-head .arrows,.journey-head .arrows{gap:.55rem}.row-head .arrows button,.journey-head .arrows button{width:2.6rem;height:2.6rem}.deck-nav{gap:.85rem}.deck-nav button.arw{width:2.6rem;height:2.6rem}}.browse{padding:clamp(2rem,4vw,3.2rem) 0 1rem}.sec-lead{padding:0 clamp(1.25rem,4vw,3.5rem)}.sec-lead h2{letter-spacing:-.025em;margin:.6rem 0 0;font-size:clamp(1.6rem,3.2vw,2.1rem);font-weight:640}.sec-lead p{color:var(--muted);max-width:56ch;margin:.5rem 0 0}.row{margin-bottom:clamp(1.8rem,3.5vw,2.8rem)}.row-head{align-items:baseline;gap:.8rem;margin:1.4rem 0 1rem;padding:0 clamp(1.25rem,4vw,3.5rem);display:flex}.row-head h3{letter-spacing:-.01em;margin:0;font-size:1.2rem;font-weight:640}.row-head .count{font-family:var(--mono);color:var(--faint);font-size:.75rem}.row-head .arrows{gap:.4rem;margin-left:auto;display:flex}.row-head .arrows button{border:1px solid var(--line-2);background:var(--bg-elev);width:2rem;height:2rem;color:var(--muted);cursor:pointer;border-radius:50%;font-size:.9rem;transition:color .2s,border-color .2s}.row-head .arrows button:hover{color:var(--text);border-color:var(--ink-line)}.track{scroll-behavior:smooth;scroll-snap-type:x proximity;scrollbar-width:none;gap:.9rem;padding:.4rem clamp(1.25rem,4vw,3.5rem);scroll-padding-left:clamp(1.25rem,4vw,3.5rem);display:flex;overflow-x:auto}.track::-webkit-scrollbar{display:none}.tile{width:var(--tile-w);height:var(--tile-h);cursor:pointer;scroll-snap-align:start;border:1px solid var(--line);transition:transform .3s var(--ease),box-shadow .3s var(--ease);color:var(--ink2,#222);transform-style:preserve-3d;border-radius:16px;flex:none;position:relative;overflow:hidden}.tile:hover,.tile:focus-visible{box-shadow:0 26px 52px -16px color-mix(in srgb,var(--pc1,#888) 60%,transparent),0 8px 20px -10px #00000080;transform:translateY(-6px)scale(1.04)}.tile:after{content:"";z-index:4;pointer-events:none;transition:transform .75s var(--ease);background:linear-gradient(115deg,#0000 32%,#fff6 48%,#0000 64%);position:absolute;inset:0;transform:translate(-130%)}.tile:hover:after,.tile:focus-visible:after{transform:translate(130%)}.tile .poster{position:absolute;inset:0}.tile .glyph{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--ink2,#222) 62%,transparent);font-size:.7rem;position:absolute;top:14px;left:16px}.tile .num{color:color-mix(in srgb,var(--ink2,#222) 9%,transparent);font-size:5.5rem;font-weight:800;line-height:1;font-family:var(--mono);position:absolute;bottom:66px;right:10px}.tile .cap{background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--pc1,#fff) 92%,transparent));transition:opacity .25s var(--ease);padding:1.1rem 1rem .95rem;position:absolute;bottom:0;left:0;right:0}.tile .cap .t{letter-spacing:-.015em;color:var(--ink2,#222);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:660;overflow:hidden}.tile .cap .s{font-family:var(--mono);color:color-mix(in srgb,var(--ink2,#222) 70%,transparent);margin-top:.15rem;font-size:.7rem}.tile .hover-actions{opacity:0;transition:opacity .25s var(--ease),transform .25s var(--ease);gap:.5rem;padding:.8rem 1rem;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(8px)}.tile:hover .hover-actions,.tile:focus-within .hover-actions{opacity:1;transform:none}.tile:hover .cap,.tile:focus-within .cap{opacity:0}.tile .hover-actions .mini{font-family:var(--mono);background:color-mix(in srgb,var(--ink2,#222) 14%,transparent);color:var(--ink2,#222);border:1px solid color-mix(in srgb,var(--ink2,#222) 22%,transparent);border-radius:9px;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.55rem;font-size:.74rem;display:inline-flex}.tile .hover-actions .mini.acc{background:var(--ink2,#222);color:#fff;border-color:var(--ink2,#222)}.tile.ghost{color:var(--faint);text-align:center;background:0 0;border-style:dashed;place-items:center;display:grid}.tile.ghost:hover{color:var(--text);border-color:var(--ink-line);box-shadow:none;transform:translateY(-6px)}.tile.ghost .plus{font-size:2rem}.tile.ghost span{font-family:var(--mono);margin-top:.4rem;padding:0 1rem;font-size:.76rem}.journey{border-top:1px solid var(--line);margin-top:2rem;padding:clamp(3rem,6vw,5rem) 0 clamp(2rem,4vw,3rem)}.journey-head{justify-content:space-between;align-items:flex-end;gap:1rem;padding:0 clamp(1.25rem,4vw,3.5rem);display:flex}.journey-head .sec-lead{flex:auto;min-width:0;padding:0}.journey-head .arrows{flex:none;gap:.4rem;margin-bottom:.35rem;display:flex}.journey-head .arrows button{border:1px solid var(--line-2);background:var(--bg-elev);width:2rem;height:2rem;color:var(--muted);cursor:pointer;border-radius:50%;font-size:.9rem;transition:color .2s,border-color .2s}.journey-head .arrows button:hover{color:var(--text);border-color:var(--ink-line)}.tl-scroll{scrollbar-width:none;scroll-snap-type:x proximity;gap:0;padding:2.5rem clamp(1.25rem,4vw,3.5rem) 1rem;scroll-padding-left:clamp(1.25rem,4vw,3.5rem);display:flex;overflow-x:auto}.tl-scroll::-webkit-scrollbar{display:none}.ms{scroll-snap-align:start;flex:none;width:260px;padding:0 1.4rem;position:relative}.ms:before{content:"";background:var(--grad);opacity:.85;transform-origin:0;background-size:400% 100%;height:2px;animation:10s linear infinite gshift;position:absolute;top:-1.55rem;left:0;right:0}.ms:first-child:before{border-radius:2px 0 0 2px;left:1.4rem}.ms:last-child:before{right:50%}.ms .node{border:3px solid var(--bg);width:16px;height:16px;animation:floaty 4s var(--ease) infinite;border-radius:50%;position:absolute;top:-1.55rem;left:1.4rem;transform:translate(-50%,-42%)}.ms:nth-child(2n) .node{animation-delay:-2s}.ms .yr{font-family:var(--mono);letter-spacing:-.01em;font-variant-numeric:tabular-nums;background:var(--grad);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;font-size:1.55rem;font-weight:720;animation:8s linear infinite gshift}.ms .badge{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#20222a;vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.15rem .5rem;font-size:.64rem;display:inline-block}.ms h4{letter-spacing:-.01em;margin:.6rem 0 .35rem;font-size:1.05rem;font-weight:640}.ms p{color:var(--muted);margin:0;font-size:.9rem}.bento-bottom{grid-template-columns:repeat(3,1fr);gap:.9rem;padding-top:clamp(2rem,4vw,3rem);padding-bottom:clamp(3rem,6vw,5rem);display:grid}.bcell{border:1px solid var(--line);background:var(--bg-elev);border-radius:18px;padding:clamp(1.5rem,2.5vw,2rem)}.bcell.about{grid-column:span 2}.bcell h3.h{letter-spacing:-.02em;margin:.8rem 0 .9rem;font-size:1.4rem;font-weight:660}.bcell p{color:var(--muted);max-width:56ch;margin:0 0 1rem}.bcell p b{color:var(--text);font-weight:600}.curr ul{flex-direction:column;gap:.75rem;margin:.8rem 0 0;padding:0;list-style:none;display:flex}.curr li{color:var(--text);gap:.6rem;font-size:.95rem;display:flex}.curr li:before{content:"▹";color:var(--muted)}.bcell.stack{grid-column:span 2}.stack-cols{grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:1rem;display:grid}@media (max-width:520px){.stack-cols{grid-template-columns:repeat(2,1fr)}}.stack-cols h4{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .7rem;font-size:.7rem}.stack-cols ul{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.stack-cols li{color:var(--muted);font-size:.9rem}.bcell.stack .certs{margin-top:1.6rem}.bcell.stack .certs .tags{margin-top:.75rem}.bcell.contact{color:#dfe3ea;border-color:var(--line-2);background:radial-gradient(130% 90% at 12% 6%,#6366f138,#0000 52%),radial-gradient(120% 95% at 92% 100%,#f472b62e,#0000 55%),radial-gradient(90% 90% at 62% 48%,#22d3ee1a,#0000 62%),#0a0c11;flex-direction:column;justify-content:space-between;display:flex;overflow:hidden}.bcell.contact .k{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#a6abff;font-size:.72rem}.bcell.contact h3{letter-spacing:-.02em;background:var(--grad);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;margin:.8rem 0 .3rem;font-size:clamp(1.5rem,2.4vw,1.9rem);font-weight:680;animation:8s linear infinite gshift}.bcell.contact .mail{font-family:var(--mono);color:#b7bcc4;word-break:break-all;font-size:.9rem}.bcell.contact .cbtns{flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;display:flex}.bcell.contact .cbtn{font-family:var(--mono);color:#e7e4dd;background:#ffffff0a;border:1px solid #ffffff2e;border-radius:9px;padding:.55rem .9rem;font-size:.8rem;transition:border-color .2s,background .2s}.bcell.contact .cbtn:hover{border-color:var(--ink-line);background:#ffffff14}.bcell.contact .cbtn.solid{background:var(--grad);color:#fff;transition:background-position .5s var(--ease),box-shadow .3s;background-size:180% 100%;border-color:#0000;box-shadow:0 8px 24px -8px #6366f199}.bcell.contact .cbtn.solid:hover{background-position:100% 0;box-shadow:0 12px 30px -8px #c084fcb3}@media (max-width:760px){.bento-bottom{grid-template-columns:1fr}.bcell.about,.bcell.stack{grid-column:auto}}footer{border-top:1px solid var(--line);padding:2.2rem 0}.foot-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.foot-inner .mono{color:var(--faint);font-size:.78rem}.foot-links{gap:1.2rem;display:flex}.foot-links a{font-family:var(--mono);color:var(--muted);font-size:.8rem}.foot-links a:hover{color:var(--text)}.foot-colophon{font-family:var(--mono);color:var(--faint);cursor:pointer;text-align:left;background:0 0;border:none;margin:0;padding:0;font-size:.78rem;line-height:1.5;transition:color .2s}.foot-colophon:hover{color:var(--text)}.foot-colophon .foot-colophon-hint{color:var(--muted)}.foot-colophon:hover .foot-colophon-hint{color:var(--text)}.foot-visits{color:var(--faint);white-space:nowrap;align-items:center;gap:.55rem;font-size:.76rem;display:inline-flex}.foot-visits b{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.foot-visits .dot{opacity:.5}.tags{flex-wrap:wrap;gap:.4rem;display:flex}.tag{font-family:var(--mono);color:var(--muted);border:1px solid var(--line-2);border-radius:6px;padding:.2rem .55rem;font-size:.72rem}.modal{z-index:100;justify-content:center;align-items:flex-start;padding:clamp(1rem,5vh,4rem) 1rem;display:none;position:fixed;inset:0;overflow-y:auto}.modal.open{display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s var(--ease);background:#000000b8;position:fixed;inset:0}.modal.open .modal-backdrop{opacity:1}.modal-panel{background:var(--bg-elev);border:1px solid var(--line-2);opacity:0;width:min(860px,100%);transition:opacity .32s var(--ease),transform .32s var(--ease);border-radius:20px;position:relative;overflow:hidden;transform:translateY(24px)scale(.97)}.modal.open .modal-panel{opacity:1;transform:none}.modal-hero{height:clamp(190px,28vh,260px);position:relative}.modal-hero .poster{position:absolute;inset:0}.modal-hero:after{content:"";pointer-events:none;background:linear-gradient(#ffffff47 0%,#0000 26% 82%,#0000000f);position:absolute;inset:0}.modal-hero .htitle{z-index:2;position:absolute;bottom:1.2rem;left:clamp(1.4rem,4vw,2.2rem);right:clamp(1.4rem,4vw,2.2rem)}.modal-hero .htitle .k{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mink,#333);opacity:.82;font-size:.74rem}.modal-hero .htitle h3{letter-spacing:-.02em;color:var(--mink,#222);text-wrap:balance;margin:.35rem 0 0;font-size:clamp(1.7rem,4vw,2.5rem);font-weight:720}.modal-close{z-index:3;color:#222;cursor:pointer;background:#fffc;border:1px solid #0003;border-radius:50%;place-items:center;width:2.4rem;height:2.4rem;font-size:1.1rem;transition:background .2s,transform .2s,color .2s;display:grid;position:absolute;top:1rem;right:1rem}.modal-close:hover{color:#fff;background:#222;transform:rotate(90deg)}.modal-body{grid-template-columns:1.6fr 1fr;gap:clamp(1.5rem,4vw,2.6rem);padding:clamp(1.4rem,4vw,2.2rem);display:grid}.modal-body.solo{grid-template-columns:1fr}@media (max-width:640px){.modal-body{grid-template-columns:1fr}}.colophon-title{letter-spacing:-.02em;color:var(--text);text-wrap:balance;margin:.55rem 0 1rem;font-size:clamp(1.5rem,3.4vw,2.05rem);font-weight:720}.colophon-list{gap:.7rem;margin:.4rem 0 0;padding:0;list-style:none;display:grid}.colophon-list li{color:var(--muted);word-break:keep-all;padding-left:1.35rem;font-size:.95rem;line-height:1.55;position:relative}.colophon-list li:before{content:"→";color:var(--faint);position:absolute;left:0}.colophon-note{color:var(--faint);border-top:1px solid var(--line);word-break:keep-all;margin:1.5rem 0 0;padding-top:1.1rem;font-size:.86rem}.modal-body .lede{color:var(--text);margin:0 0 1.2rem;font-size:1.05rem}.modal-body p{color:var(--muted);margin:0 0 1.1rem}.modal-body h4{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:1.4rem 0 .7rem;font-size:.72rem}.modal-body h4:first-child{margin-top:0}.hl{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.hl li{color:var(--muted);gap:.6rem;font-size:.95rem;display:flex}.hl li:before{content:"→";color:var(--text)}.modal-actions{flex-wrap:wrap;gap:.6rem;margin-top:1.6rem;display:flex}.meta-row{border-bottom:1px solid var(--line);flex-direction:column;gap:.25rem;padding:.7rem 0;display:flex}.meta-row .l{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:.7rem}.meta-row .v{font-size:.95rem}.reveal{opacity:0;filter:blur(8px);transition:opacity .8s var(--ease),transform .8s var(--ease),filter .8s var(--ease);transform:translateY(22px)}.reveal.in{opacity:1;filter:none;transform:none}.deck{flex-direction:column;margin-top:1.4rem;display:flex}.deck-stage{position:relative}.deck-slide{animation:deckIn .34s var(--ease)}@keyframes deckIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}.deck-slide .slabel{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);align-items:center;gap:.55rem;font-size:.72rem;display:inline-flex}.deck-slide .slabel:before{content:"";background:var(--grad);border-radius:2px;width:1.4rem;height:2px}.deck-slide .sbody{color:var(--text);text-wrap:pretty;margin:.85rem 0 0;font-size:1.04rem;line-height:1.68}:root[data-lang=ko] .deck-slide .slabel{font-family:var(--sans);letter-spacing:.02em;text-transform:none;font-weight:600}.deck-nav{align-items:center;gap:.7rem;margin-top:1.5rem;display:flex}.deck-nav button.arw{border:1px solid var(--line-2);background:var(--bg-elev-2);width:2.2rem;height:2.2rem;color:var(--muted);cursor:pointer;border-radius:50%;place-items:center;font-size:1.05rem;transition:color .2s,border-color .2s,opacity .2s;display:grid}.deck-nav button.arw:hover:not(:disabled){color:var(--text);border-color:var(--ink-line)}.deck-nav button.arw:disabled{opacity:.32;cursor:default}.deck-dots{gap:.5rem;display:flex}.deck-dot{background:var(--ink-soft);cursor:pointer;width:.5rem;height:.5rem;transition:transform .2s var(--ease),background .2s;border:none;border-radius:50%;padding:0}.deck-dot:hover{background:var(--ink-line)}.deck-dot.on{background:var(--g2);transform:scale(1.3)}.deck-count{font-family:var(--mono);color:var(--faint);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.72rem}.certs-section{border-top:1px solid var(--line);padding:clamp(3rem,6vw,5rem) 0}.certs-head{justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:0 clamp(1.25rem,4vw,3.5rem);display:flex}.certs-head .sec-lead{flex:auto;min-width:0;padding:0}.cert-badge{text-align:center;width:104px;transition:transform .25s var(--ease);flex-direction:column;flex:none;align-items:center;gap:.4rem;margin-top:.2rem;display:flex}.cert-badge:hover{transform:translateY(-4px)rotate(-2deg)}.cert-badge img{border:1px solid var(--line-2);border-radius:12px;width:104px;height:auto;display:block}.cert-badge .cb-cap{font-family:var(--mono);color:var(--faint);letter-spacing:.02em;font-size:.6rem}.cert-cols{column-count:3;column-gap:clamp(1.75rem,3.5vw,3.5rem);padding:2.2rem clamp(1.25rem,4vw,3.5rem) 0}@media (max-width:1000px){.cert-cols{column-count:2}}@media (max-width:600px){.cert-cols{column-count:1}}.cgroup{break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 1.9rem}.cgroup h4{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.5rem;margin:0 0 .3rem;font-size:.7rem;display:flex}.cgroup h4 .cnt{color:var(--faint)}.clist{margin:0;padding:0;list-style:none}.crow{color:var(--text);border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:.9rem;padding:.55rem 0;font-size:.9rem;display:flex}.crow .cn{word-break:keep-all;line-height:1.4}.crow .cy{font-family:var(--mono);color:var(--faint);font-variant-numeric:tabular-nums;flex:none;font-size:.72rem}.crow.link{transition:color .15s}.crow.link .cn:after{content:" ↗";color:var(--g2);opacity:0;transition:opacity .15s}.crow.link:hover .cn{color:var(--g2)}.crow.link:hover .cn:after{opacity:1}.cert-main-cols{column-count:2}@media (max-width:700px){.cert-main-cols{column-count:1}}.cert-toggle{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);background:var(--bg-elev);border:1px solid var(--line-2);cursor:pointer;border-radius:10px;align-items:center;gap:.55rem;margin:1.6rem clamp(1.25rem,4vw,3.5rem) 0;padding:.62rem 1.1rem;font-size:.78rem;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.cert-toggle:hover{color:var(--text);border-color:var(--ink-line);background:var(--bg-elev-2)}.cert-toggle .chev{color:var(--faint);font-size:.56rem}.cert-course-cols{animation:deckIn .3s var(--ease);margin-top:.4rem}.scroll-progress{background:var(--grad);transform-origin:0;z-index:70;pointer-events:none;will-change:transform;height:2px;transition:transform .1s linear;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}.nav-links a{position:relative}.nav-links a.active{color:var(--text)}.nav-links a.active:after{content:"";background:var(--grad);border-radius:2px;height:2px;position:absolute;bottom:.12rem;left:.7rem;right:.7rem}:root.theme-anim,:root.theme-anim *{transition:background-color .35s,border-color .35s,color .35s,fill .35s!important}@media (prefers-reduced-motion:reduce){.scroll-progress{transition:none}:root.theme-anim,:root.theme-anim *{transition:none!important}}.starfield{z-index:-1;pointer-events:none;opacity:.9;position:fixed;inset:0}:root[data-theme=light] .starfield{opacity:0}:root[data-theme=light] .hero-main{background:radial-gradient(95% 120% at 8% 0,#6366f11f,#0000 55%),radial-gradient(95% 120% at 100% 100%,#22d3ee1a,#0000 55%),#fbfbf9}:root[data-theme=light] .hero-main .aurora,:root[data-theme=light] .hero-constellation{display:none}:root[data-theme=light] .hero-main:after{background:linear-gradient(90deg,#fbfbf98c,#0000 55%)}:root[data-theme=light] .hero-copy h1{color:var(--text)}:root[data-theme=light] .hero-copy .role{color:#2c313b}:root[data-theme=light] .hero-copy .lead{color:var(--muted)}:root[data-theme=light] .hero-copy .lead b{color:var(--text)}:root[data-theme=light] .bb-tag{color:var(--muted);border-color:var(--line-2);background:#ffffff80}:root[data-theme=light] .hero-main .btn{color:var(--text);border-color:var(--line-2);background:#fff9}:root[data-theme=light] .hero-main .btn.primary{color:#fff;background:var(--grad);background-size:180% 100%;border-color:#0000}:root[data-theme=light] .cell,:root[data-theme=light] .bcell{box-shadow:0 1px 2px #1018280a,0 12px 30px -18px #10182829}:root[data-theme=light] .tile{box-shadow:inset 0 1px #ffffff80,0 1px 2px #1018280d,0 14px 30px -18px #10182838}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}.tile,.btn,.modal-panel,.modal-backdrop{transition:none!important}.track,.tl-scroll{scroll-behavior:auto}.deck-slide{animation:none}}
