body{--mo:var(--font-geist-mono),ui-monospace,"SF Mono",Menlo,monospace;--kr:"Apple SD Gothic Neo",var(--font-kr),system-ui,sans-serif;--ground:#070907;--ink:#d9e2da;--dim:#6f7f72;--faint:#3f4a42;--ph:#7ee787;--ph-hi:#c6ffcd;--pad:clamp(1.1rem,4vw,4rem);background:var(--ground);color:var(--ink);font-family:var(--mo);font-size:13.5px;line-height:1.62;overflow-x:clip}.px-site{position:relative}::selection{background:var(--ph);color:#071a0c}.px-grid{z-index:0;display:block;position:fixed;inset:0}main{z-index:1;position:relative}.px-crt{z-index:2;pointer-events:none;background:repeating-linear-gradient(#00000029 0 1px,#0000 1px 3px),radial-gradient(80% 70%,#0000 55%,#00000080 100%);position:fixed;inset:0}.px-bar{z-index:30;padding:.55rem var(--pad);letter-spacing:.02em;color:var(--dim);background:linear-gradient(#070907eb,#07090700);justify-content:space-between;gap:1rem;font-size:.78rem;display:flex;position:fixed;inset:0 0 auto}.px-bar b{color:var(--ph);font-weight:600}.px-bar i{color:var(--ink);font-style:normal}.px-bar-r{color:var(--ph)}.px-hop{view-timeline-name:--cmd;min-height:100svh;padding:5.5rem var(--pad)4rem;grid-template-columns:minmax(0,1fr);align-content:center;display:grid;position:relative}.px-in{grid-template-columns:minmax(0,1fr);gap:.35rem;max-width:40rem;display:grid}@media (min-width:900px){.px-in{max-width:38vw}.px-hop:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#070907e6 0%,#070907d9 36%,#0709074d 46%,#0000 54%);position:absolute;inset:0}}@media (max-width:899px){.px-hop{align-content:end;padding-top:46svh}.px-hop:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#0000 0%,#0709074d 36%,#070907eb 48%);position:absolute;inset:0}}.px-cmd{color:var(--ink);margin:0 0 .9rem}.px-cmd i{color:var(--ph);margin-right:.15rem;font-style:normal}.px-ln,.px-blk{margin:0}.px-dim{color:var(--dim)}.px-t{min-width:9.5rem;color:var(--dim);display:inline-block}.px-t--r{min-width:0;margin-left:.8rem}.px-ln b{color:var(--ink);font-weight:600}.px-ln a{color:var(--ph);text-decoration:none}.px-ln a:hover,.px-ln a:focus-visible{color:var(--ph-hi);text-underline-offset:.2em;text-decoration:underline}.px-links a{margin-right:.9rem}.px-head{max-width:100%;height:auto;margin:.4rem 0 .9rem;display:block}.px-head--big{margin-top:.2rem}.px-head-ko{font-family:var(--kr);letter-spacing:-.02em;word-break:keep-all;margin:.3rem 0 .7rem;font-size:clamp(1.25rem,2.2vw,1.7rem);font-weight:700;line-height:1.3}.px-say{font-family:var(--kr);letter-spacing:-.02em;word-break:keep-all;max-width:26ch;margin:.3rem 0 .8rem;font-size:clamp(1.2rem,2.1vw,1.7rem);font-weight:500;line-height:1.5}.px-phase{color:var(--ph);letter-spacing:.04em}.px-sum{font-family:var(--kr);color:#d9e2dadb;word-break:keep-all;max-width:44rem;margin:.2rem 0 .8rem;font-size:.92rem;line-height:1.7}.px-dec{gap:.25rem;margin:0 0 .6rem;padding:0;list-style:none;display:grid}.px-dec li{font-family:var(--kr);color:var(--dim);word-break:keep-all;text-indent:-1.1rem;max-width:44rem;padding-left:1.1rem;font-size:.84rem;line-height:1.62}.px-list{gap:.2rem;margin:0;padding:0;list-style:none;display:grid}.px-list li{font-family:var(--kr)}.px-list .px-t{font-family:var(--mo)}.px-cols{grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr));gap:.9rem 2rem;display:grid}.px-dir{color:var(--ph)}.px-tree{color:var(--faint);margin-right:.5rem}.px-exp article{margin-bottom:.9rem}.px-exp .px-blk{font-family:var(--kr);color:var(--dim);text-indent:-1.1rem;word-break:keep-all;padding-left:1.1rem;font-size:.84rem;line-height:1.62}.px-exp-h b{font-family:var(--kr)}.px-exp-h i{color:var(--faint);font-size:.8rem;font-style:normal}.px-exp-h em{color:var(--ph);font-style:normal}.px-prog{color:var(--ph);letter-spacing:-.02em;overflow-wrap:anywhere}.px-out{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.px-out a{overflow-wrap:anywhere}.px-build{max-width:44rem;margin-top:.8rem}.px-proj{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.px-shot{border:1px solid var(--faint);background:#070907b3;padding:.35rem}.px-shot img{filter:saturate(.85)contrast(1.05);width:100%;height:auto;display:block}.px-cap{color:var(--dim);margin-top:.35rem;font-size:.72rem;display:block}@media (min-width:900px){.px-hop:has(.px-shot) .px-in{max-width:88vw}.px-hop:has(.px-shot):after{background:linear-gradient(90deg,#070907eb 0%,#070907e6 60%,#070907b3 100%)}.px-proj:has(.px-shot){grid-template-columns:minmax(0,46fr) minmax(0,40fr);align-items:start;column-gap:2.5rem}}.px-boot{color:var(--dim);gap:.15rem;margin:0 0 1.4rem;padding:0;font-size:.8rem;list-style:none;display:grid}.px-boot b{color:var(--ph);font-weight:600}.px-boot i{color:var(--faint);font-style:normal}.px-boot .px-t{min-width:3.6rem;color:var(--faint)}.px-name{gap:.6rem;margin:0;display:grid}.px-name-ko{max-width:100%;height:auto;display:block}.px-name-la{color:var(--ph);letter-spacing:.42em;font-size:.82rem;display:block}.px-role{color:var(--ink);margin:.2rem 0 0;font-size:.95rem}.px-cursor{color:var(--ph);margin:1.4rem 0 0}.px-cursor i{font-style:normal}.px-cursor span{vertical-align:-.2em;background:var(--ph);width:.6em;height:1.1em;animation:1.05s step-end infinite px-blink;display:inline-block}.px-cursor--end{margin-top:1rem}@keyframes px-blink{50%{opacity:0}}@supports (animation-timeline:view()){.px-cmd,.px-ln,.px-blk{animation:steps(28,end) both px-type;animation-timeline:--cmd;animation-range:cover calc(12% + var(--i,0)*1.1%)cover calc(16% + var(--i,0)*1.1%)}.px-blk{animation-name:px-drop;animation-timing-function:steps(10,end);animation-range:cover calc(12% + var(--i,0)*1.1%)cover calc(19% + var(--i,0)*1.1%)}@keyframes px-type{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -1% 0 0)}}@keyframes px-drop{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0 0 -2%)}}.px-open .px-ln,.px-open .px-blk,.px-open .px-cmd{animation-timeline:auto;animation-range:normal}}.px-boot li{animation:.5s steps(22,end) both px-type;animation-delay:calc(.15s + var(--i,0)*.17s)}.px-name-la,.px-role{animation:.7s steps(20,end) both px-type;animation-delay:calc(1.25s + var(--i,0)*.16s)}.px-cursor{animation:.3s step-end 2.9s both px-in}@keyframes px-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.px-cmd,.px-ln,.px-blk,.px-boot li,.px-name-la,.px-role,.px-cursor,.px-cursor span{clip-path:none!important;opacity:1!important;animation:none!important}.px-crt{display:none}}
body{--ui:var(--font-geist-sans),system-ui,sans-serif;--kr:"Apple SD Gothic Neo",var(--font-kr),system-ui,sans-serif;--mo:var(--font-geist-mono),ui-monospace,monospace;--ground:#0b0b0c;--ink:#ececee;--dim:#8d8d94;--faint:#5a5a61;--pad:clamp(1.25rem,5vw,5rem);background:var(--ground);color:var(--ink);font-family:var(--ui);font-weight:300;overflow-x:clip}.pa-site{position:relative}::selection{background:var(--ink);color:var(--ground)}html:has(.pa-site){background:#0b0b0c}.pa-tree{z-index:0;display:block;position:fixed;inset:0}main{z-index:2;position:relative}.pa-top{z-index:30;padding:1.2rem var(--pad)0;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);pointer-events:none;justify-content:space-between;font-size:.66rem;transition:opacity .5s;display:flex;position:fixed;inset:0 0 auto}:root[data-hop="0"] .pa-top{opacity:0}.pa-hop{view-timeline-name:--stop;min-height:100svh;padding:6rem var(--pad)5rem;text-align:center;grid-template-columns:minmax(0,1fr);align-content:center;justify-items:center;display:grid;position:relative}.pa-in{grid-template-columns:minmax(0,1fr);justify-items:center;gap:1.1rem;width:100%;max-width:44rem;display:grid}.pa-tag{font-family:var(--mo);letter-spacing:.24em;text-transform:uppercase;color:var(--faint);align-items:center;gap:.7rem;margin-bottom:.6rem;font-size:.62rem;display:flex}.pa-tag i{background:var(--faint);width:2rem;height:1px}.pa-l>p,.pa-l>h2,.pa-l>h3{margin:0}.pa-head{letter-spacing:-.02em;text-wrap:balance;font-size:clamp(1.7rem,2.8vw,2.5rem);font-weight:300;line-height:1.12}.pa-head--ko{font-family:var(--kr);word-break:keep-all;font-size:clamp(1.3rem,2.1vw,1.8rem);font-weight:400;line-height:1.32}.pa-head--tight{font-size:clamp(1.5rem,2.4vw,2.1rem)}.pa-say{font-family:var(--kr);letter-spacing:-.02em;word-break:keep-all;margin-inline:auto;font-size:clamp(1.1rem,2vw,1.6rem);font-weight:300;line-height:1.6}.pa-phase{font-family:var(--mo);letter-spacing:.26em;text-transform:uppercase;color:var(--dim);justify-content:center;align-items:center;gap:.9rem;font-size:.66rem;display:flex}.pa-phase span{align-items:center;gap:.9rem;display:inline-flex}.pa-phase i{background:var(--faint);width:1.2rem;height:1px}.pa-hist{text-align:left;width:min(100%,34rem);margin:.4rem 0 0;padding:0;list-style:none;display:grid}.pa-hist li{font-family:var(--kr);word-break:keep-all;border-top:1px solid #ececee14;grid-template-columns:8.4rem minmax(0,1fr);align-items:baseline;gap:1rem;padding:.5rem 0;font-size:.86rem;line-height:1.5;display:grid}@media (max-width:899px){.pa-hist li{grid-template-columns:minmax(0,1fr);gap:.1rem}}.pa-when{font-family:var(--mo);letter-spacing:.06em;color:var(--faint);font-size:.66rem}.pa-when--split{justify-content:space-between;width:100%;display:flex}.pa-cols{grid-template-columns:repeat(auto-fit,minmax(min(9rem,100%),1fr));gap:1.2rem 2.5rem;width:100%;max-width:36rem;display:grid}.pa-col h3{font-family:var(--mo);letter-spacing:.22em;text-transform:uppercase;color:var(--faint);margin:0 0 .6rem;font-size:.62rem}.pa-col ul{gap:.32rem;margin:0;padding:0;list-style:none;display:grid}.pa-col li{font-size:.88rem;font-weight:400}.pa-kicker{font-family:var(--mo);letter-spacing:.22em;text-transform:uppercase;color:var(--dim);font-size:.62rem}.pa-sum{font-family:var(--kr);color:#ececeecc;word-break:keep-all;max-width:36rem;margin-inline:auto;font-size:.86rem;line-height:1.7}.pa-dec{text-align:left;gap:.4rem;width:min(100%,34rem);margin:0;padding:0;list-style:none;display:grid}.pa-dec li{font-family:var(--kr);color:var(--dim);word-break:keep-all;padding-left:.95rem;font-size:.78rem;line-height:1.6;position:relative}.pa-dec li:before{content:"";background:var(--faint);width:.35rem;height:1px;position:absolute;top:.65em;left:0}.pa-stack{font-family:var(--mo);letter-spacing:.1em;color:var(--faint);font-size:.62rem}.pa-links{justify-content:center;gap:.6rem;margin-top:.3rem;display:flex}.pa-shot{border:1px solid #ececee1a;width:min(100%,40rem);overflow:hidden}.pa-shot img{filter:grayscale()contrast(1.05);width:100%;height:auto;transition:filter .6s;display:block}.pa-shot:hover img{filter:none}.pa-exp{width:100%;max-width:36rem;display:grid}.pa-exp article{border-top:1px solid #ececee14;justify-items:center;gap:.3rem;padding:1.1rem 0;display:grid}.pa-exp h3{margin:0;font-size:1rem;font-weight:500}.pa-exp h3 em{color:var(--faint);margin-left:.4rem;font-size:.66rem;font-style:normal}.pa-role-s{font-family:var(--mo);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:0 0 .4rem;font-size:.62rem}.pa-exp ul{text-align:left;gap:.3rem;width:min(100%,32rem);margin:0;padding:0;list-style:none;display:grid}.pa-exp li{font-family:var(--kr);color:var(--dim);word-break:keep-all;padding-left:.95rem;font-size:.78rem;line-height:1.58;position:relative}.pa-exp li:before{content:"";background:var(--faint);width:.35rem;height:1px;position:absolute;top:.65em;left:0}.pa-grade{font-family:var(--kr);letter-spacing:-.04em;font-size:clamp(2.4rem,5vw,4.4rem);font-weight:300;line-height:1}.pa-award{font-family:var(--kr);word-break:keep-all;font-size:.95rem;font-weight:400}.pa-edu-m{font-size:1rem;font-weight:400}.pa-edu-s{color:var(--dim);font-size:.8rem}.pa-edu-st{font-size:.9rem;font-weight:500}.pa-bar{background:#ececee1f;width:min(100%,30rem);height:1px}.pa-bar i{height:1px;width:var(--p);background:var(--ink);display:block}.pa-l.pa-when--split,.pa-hop .pa-when--split{width:min(100%,30rem)}.pa-certs{width:100%;max-width:30rem;margin:0;padding:0;list-style:none}.pa-certs li{border-top:1px solid #ececee14;justify-items:center;gap:.2rem;padding:.85rem 0;display:grid}.pa-certs span{letter-spacing:-.01em;font-size:1.15rem;font-weight:400}.pa-certs em{color:var(--dim);font-size:.74rem;font-style:normal}.pa-fig{--signal:#f4f4f6;--alert:#f87171;--glow:#f4f4f6bf;--pkt-face:#f4f4f66b;--pkt-void:#f4f4f614;--pkt-lost:#f8717175;--pkt-rim:.7;--foreground:#ececee;--muted-foreground:#9a9aa2;text-align:left;-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1);background:linear-gradient(135deg,#ffffff0e,#ffffff03 42%,#ffffff08),#0b0b0c94;border-radius:.9rem;width:min(100%,40rem);padding:clamp(.9rem,2.4vw,1.5rem);box-shadow:inset 0 0 0 1px #ececee17,inset 0 1px #ffffff29,0 2rem 3rem -2rem #000000b3}.pa-fig .viz{--rim-on:#d6f4ff80;--rim-mid:#d6f4ff29;--rim-off:#d6f4ff0a;--spec:#fffcf41c;--spec2:#fffcf40a;width:100%;height:auto;display:block;overflow:visible}.pa-fig .viz text{font-family:var(--ui);letter-spacing:0;font-variant-numeric:tabular-nums;text-rendering:geometricPrecision;fill:#ececee99;text-shadow:none;font-size:10px}.pa-fig .viz text.name{letter-spacing:-.01em;fill:var(--foreground);font-size:11.5px;font-weight:600}.pa-fig .viz text.addr{font-family:var(--mo);fill:var(--muted-foreground);font-size:9px}.pa-fig .viz text.tag{fill:var(--muted-foreground);font-size:9px;font-weight:500}.pa-fig .viz .ico{color:var(--muted-foreground)}.pa-fig .viz text.tag.addr{font-size:8.5px;font-weight:400}.pa-fig .viz text.note{fill:var(--muted-foreground);font-size:10px}.pa-fig .viz text.sigtext{fill:var(--signal)}.pa-fig .viz text.clash{fill:var(--alert)}.pa-fig .viz .box{fill:none;stroke-width:.8px}.pa-fig .v-hyb .box,.pa-fig .v-hyb .frame{stroke:url(#hyb-rim)}.pa-fig .v-lab .box,.pa-fig .v-lab .frame{stroke:url(#lab-rim)}.pa-fig .v-str .box,.pa-fig .v-str .frame{stroke:url(#str-rim)}.pa-fig .viz .glow{display:none}.pa-fig .viz .frame{fill:none;stroke-width:.8px;stroke-opacity:.55}.pa-fig .viz .wire{fill:none;stroke:#ececee4d;stroke-width:1px}.pa-fig .viz .wire.wg{stroke-dasharray:.03 .02}.pa-fig .viz .draw{stroke-dasharray:1;stroke-dashoffset:1px}.pa-fig .viz .fade{opacity:0}.pa-fig .viz .fill{fill-opacity:0}.pa-fig .viz .pk{fill:var(--pkt-face);stroke:var(--signal);stroke-width:var(--pkt-rim);filter:drop-shadow(0 0 2.5px var(--glow));offset-rotate:auto;opacity:0}.pa-fig .viz .pk.hollow{fill:var(--pkt-void)}.pa-fig[data-in] .viz .draw{animation:.9s cubic-bezier(.2,.7,.2,1) both vz-draw;animation-delay:var(--d,0s)}.pa-fig[data-in] .viz .fade{animation:.7s both vz-fade;animation-delay:var(--d,0s)}.pa-fig[data-in] .viz .draw.fill{animation:.9s cubic-bezier(.2,.7,.2,1) both vz-draw,.7s both vz-fill;animation-delay:var(--d,0s),calc(var(--d,0s) + .6s)}.pa-fig[data-in] .viz .pk{animation:vz-pk var(--dur,4s)linear infinite;animation-delay:var(--d,0s)}@keyframes vz-draw{to{stroke-dashoffset:0}}@keyframes vz-fade{to{opacity:1}}@keyframes vz-fill{to{fill-opacity:1}}@keyframes vz-pk{0%{offset-distance:0%;opacity:0;animation-timing-function:cubic-bezier(.45,.05,.3,1)}4%{opacity:1}46%{opacity:1}50%{offset-distance:100%;opacity:0}to{offset-distance:100%;opacity:0}}@media (max-width:600px){.pa-fig{content-visibility:auto;contain-intrinsic-size:auto 18rem;-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(135deg,#ffffff0d,#ffffff03 42%,#ffffff08),#0b0b0cd6;overflow-x:auto}.pa-fig .viz{min-width:32rem}}@property --t{syntax:"<number>";inherits:true;initial-value:0}.pa-fig .stream .lane{--t:0}.pa-fig[data-in] .stream .lane{animation:12s linear infinite pa-clock}@keyframes pa-clock{to{--t:12}}.pa-fig .stream .fr{fill:var(--pkt-face);stroke:var(--signal);stroke-width:var(--pkt-rim);filter:drop-shadow(0 0 2.5px var(--glow));offset-rotate:auto;offset-distance:calc(clamp(0,(var(--t) - var(--leave))/3,1)*100%);opacity:clamp(0,min(var(--t) - var(--leave),var(--leave) + 3.15 - var(--t))*20,1)}.pa-fig .stream .fr.ack{fill:var(--pkt-void)}.pa-fig .stream .fr.lost{fill:var(--pkt-lost);stroke:var(--alert);offset-distance:calc(clamp(0,(var(--t) - var(--leave))/3,.5)*100%);opacity:clamp(0,min(var(--t) - var(--leave),var(--leave) + 1.7 - var(--t))*4,1)}.pa-fig .stream .cell{fill:var(--signal);opacity:calc(.16 + .84*clamp(0,(var(--t) - var(--on,99))*20,1))}.pa-fig .stream .cell.skip{fill:none;stroke:var(--alert);stroke-dasharray:2 2;opacity:1}.pa-ways{justify-content:center;align-items:center;gap:.7rem;margin-top:.4rem;display:flex}.pa-way{width:2.5rem;height:2.5rem;color:var(--dim);border:1px solid #ececee29;border-radius:.55rem;justify-content:center;align-items:center;transition:color .25s,border-color .25s,transform .35s cubic-bezier(.16,1,.3,1);display:inline-flex}.pa-way svg{width:1.05rem;height:1.05rem}.pa-way:hover,.pa-way:focus-visible{color:var(--ink);border-color:#ececee80;outline:none;transform:translateY(-2px)}.pa-ways--big{gap:1rem;margin:.4rem 0 .8rem}.pa-ways--big .pa-way{width:3.8rem;height:3.8rem;color:var(--ink);border-radius:.8rem}.pa-ways--big .pa-way svg{width:1.6rem;height:1.6rem}.pa-mail{font-family:var(--mo);letter-spacing:.08em;color:var(--dim);font-size:.76rem}.pa-build{font-family:var(--mo);color:var(--faint);max-width:34rem;font-size:.6rem;line-height:1.7}.pa-open{align-content:center}.pa-hop :is(p,h2,h3,li,span,em,a){text-shadow:0 0 2px var(--ground),0 0 5px var(--ground),0 0 10px var(--ground),0 0 18px #0b0b0ccc}.pa-ways--big .pa-way{background:#0b0b0c99}.pa-open .pa-ko{text-shadow:0 0 .06em var(--ground),0 0 .25em var(--ground),0 0 .6em #0b0b0cb3}.pa-open .pa-la,.pa-open .pa-role{color:#ececeed1;text-shadow:0 0 2px var(--ground),0 0 5px var(--ground),0 0 10px var(--ground),0 0 18px #0b0b0ccc}.pa-open .pa-way{color:#ececeed1;background:#0b0b0c99}.pa-open .pa-in{gap:.8rem}.pa-name{justify-items:center;gap:.7rem;margin:0;display:grid}.pa-ko{font-family:var(--kr);letter-spacing:-.03em;font-size:clamp(2.6rem,5vw,4.6rem);font-weight:300;line-height:1;display:block}.pa-la{font-family:var(--mo);letter-spacing:.46em;color:var(--dim);padding-left:.46em;font-size:.64rem;display:block}.pa-role{color:var(--dim);letter-spacing:.01em;margin:0;font-size:.9rem;font-weight:300}.pa-cue{background:#ececee1a;width:1px;height:2.6rem;margin:1.6rem 0 0;position:relative;overflow:hidden}.pa-cue i{background:var(--dim);width:100%;height:40%;animation:2.2s cubic-bezier(.6,0,.3,1) infinite pa-cue;position:absolute;top:0;left:0}@keyframes pa-cue{0%{transform:translateY(-100%)}to{transform:translateY(260%)}}@supports (animation-timeline:view()){.pa-l{animation:linear both pa-in;animation-timeline:--stop;animation-range:cover calc(14% + var(--i,0)*1.4%)cover calc(30% + var(--i,0)*1.4%)}@keyframes pa-in{0%{opacity:0;transform:translateY(.6rem)}}.pa-open .pa-l,.pa-open .pa-ko,.pa-open .pa-la,.pa-open .pa-role,.pa-open .pa-cue{animation-timeline:auto;animation-range:normal}}.pa-open .pa-ko,.pa-open .pa-la,.pa-open .pa-role,.pa-open .pa-l,.pa-open .pa-cue{animation:1.4s cubic-bezier(.16,1,.3,1) both pa-in;animation-delay:calc(2s + var(--i,0)*.12s)}.pa-open .pa-cue i{animation-delay:0s}@media (prefers-reduced-motion:reduce){.pa-l,.pa-ko,.pa-la,.pa-role,.pa-cue{opacity:1!important;animation:none!important;transform:none!important}.pa-cue i{animation:none!important}.pa-fig .viz .draw,.pa-fig .viz .fade,.pa-fig .viz .fill{opacity:1!important;stroke-dashoffset:0!important;fill-opacity:1!important;animation:none!important}.pa-fig .viz .pk{display:none}.pa-fig .stream .lane{--t:11.5;animation:none!important}}
body{--ui:var(--font-geist-sans),system-ui,sans-serif;--se:var(--font-instrument),"Instrument Serif",Georgia,serif;--kr:"Apple SD Gothic Neo",var(--font-kr),system-ui,sans-serif;--krs:var(--font-notoserifkr),"Apple SD Gothic Neo",serif;--mo:var(--font-geist-mono),ui-monospace,monospace;--ground:#0b0b0c;--ink:#ececee;--dim:#8f8f95;--faint:#55555b;--rule:#ececee17;--pad:clamp(1.25rem,5vw,5rem);background:var(--ground);color:var(--ink);font-family:var(--ui);font-weight:400;overflow-x:clip}.as-site{position:relative}::selection{background:var(--ink);color:var(--ground)}main{z-index:2;position:relative}.as-guides{z-index:0;pointer-events:none;background:repeating-linear-gradient(90deg,#ececee0a 0 1px,#0000 1px 8.33333%) 4.16667% 0;position:fixed;inset:0}.as-top{z-index:30;padding:1.2rem var(--pad)0;letter-spacing:.02em;color:var(--faint);pointer-events:none;justify-content:space-between;font-size:.7rem;transition:opacity .5s;display:flex;position:fixed;inset:0 0 auto}:root[data-hop="0"] .as-top{opacity:0}.as-hop{view-timeline-name:--stop;min-height:100svh;padding:6rem var(--pad)5rem;text-align:center;grid-template-columns:minmax(0,1fr);align-content:center;justify-items:center;display:grid;position:relative}.as-in{grid-template-columns:minmax(0,1fr);justify-items:center;gap:clamp(1.1rem,2.4vh,1.8rem);width:100%;max-width:64rem;display:grid}.as-pill{letter-spacing:.02em;color:var(--dim);border:1px solid #ececee33;border-radius:999px;padding:.42rem 1.05rem;font-size:.74rem;display:inline-block}.as-h{font-family:var(--se);letter-spacing:-.035em;text-wrap:balance;max-width:13ch;margin:0;font-size:clamp(3.2rem,8.6vw,8rem);font-weight:400;line-height:.9}.as-h--ko{font-family:var(--krs);letter-spacing:-.03em;word-break:keep-all;max-width:18ch;font-size:clamp(2.2rem,6vw,5.4rem);font-weight:600;line-height:1.08}.as-sub{font-family:var(--mo);letter-spacing:.44em;color:var(--dim);margin-top:.9rem;padding-left:.44em;font-size:.68rem;font-weight:400;display:block}.as-figwrap{justify-items:center;width:100%;max-width:58rem;display:grid;overflow:hidden}.as-fig{max-width:100%;height:auto;font-family:var(--mo);display:block}.as-foot{text-align:left;width:100%;max-width:58rem;color:var(--dim);gap:1.2rem 3rem;font-size:.86rem;line-height:1.6;display:grid}.as-foot--2{grid-template-columns:repeat(2,minmax(0,1fr))}.as-foot--3{grid-template-columns:repeat(3,minmax(0,1fr))}.as-foot--1{grid-template-columns:minmax(0,1fr)}@media (max-width:899px){.as-foot--2,.as-foot--3{grid-template-columns:minmax(0,1fr)}}.as-foot p{margin:0}.as-span{grid-column:1/-1}.as-right{text-align:right;justify-self:end}.as-center{text-align:center;justify-self:center;justify-items:center;gap:.9rem;display:grid}.as-between{justify-content:space-between;display:flex}.as-ko{font-family:var(--kr);word-break:keep-all}.as-lead{color:var(--ink);font-size:.95rem}.as-strong{color:var(--ink);font-weight:500}.as-mono{font-family:var(--mo);letter-spacing:.06em;color:var(--dim);font-size:.7rem}.as-cap{text-transform:uppercase;letter-spacing:.16em;color:var(--faint);font-size:.66rem}.as-link{color:var(--ink);border-bottom:1px solid var(--faint);text-transform:uppercase;margin-left:1.2rem;padding-bottom:.1rem;text-decoration:none}.as-link:hover,.as-link:focus-visible{border-color:var(--ink)}.as-list,.as-plain{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.as-list li{border-top:1px solid var(--rule);grid-template-columns:8rem minmax(0,1fr);align-items:baseline;gap:.8rem;padding-top:.45rem;display:grid}.as-plain li{padding-left:.95rem;position:relative}.as-plain li:before{content:"";background:var(--faint);width:.35rem;height:1px;position:absolute;top:.7em;left:0}.as-exp{border-top:1px solid var(--rule);grid-template-columns:8rem minmax(0,1fr);gap:.8rem 1.2rem;padding:1rem 0;display:grid}.as-exp h3{color:var(--ink);margin:0 0 .5rem;font-size:1rem;font-weight:500}.as-exp h3 em{color:var(--faint);margin-left:.4rem;font-size:.7rem;font-style:normal}.as-exp h3 .as-mono{margin-left:.7rem}@media (max-width:899px){.as-exp,.as-list li{grid-template-columns:minmax(0,1fr)}}.as-bar{align-content:end;gap:.6rem;display:grid}.as-bar i{background:var(--rule);height:1px;display:block;position:relative}.as-bar i:after{content:"";width:var(--p);background:var(--ink);position:absolute;inset:0 auto 0 0}.as-shot{border:1px solid #ececee1f}.as-shot img{filter:grayscale()contrast(1.05);width:100%;height:auto;display:block}.as-ways{align-items:center;gap:.6rem;display:flex}.as-way{width:2.4rem;height:2.4rem;color:var(--dim);border:1px solid #ececee33;border-radius:999px;justify-content:center;align-items:center;transition:color .25s,border-color .25s;display:inline-flex}.as-way svg{width:1rem;height:1rem}.as-way:hover,.as-way:focus-visible{color:var(--ink);border-color:#ececee8c;outline:none}.as-ways--big{gap:.9rem}.as-ways--big .as-way{width:3.4rem;height:3.4rem;color:var(--ink)}.as-ways--big .as-way svg{width:1.4rem;height:1.4rem}.as-open .as-h--ko{font-size:clamp(3rem,8vw,7.2rem)}@supports (animation-timeline:view()){.as-l{animation:linear both as-in;animation-timeline:--stop;animation-range:cover calc(10% + var(--i,0)*3%)cover calc(26% + var(--i,0)*3%)}@keyframes as-in{0%{opacity:0;transform:translateY(.7rem)}}.as-open .as-l{animation-timeline:auto;animation-range:normal}}.as-open .as-l{animation:1.2s cubic-bezier(.16,1,.3,1) both as-in;animation-delay:calc(.2s + var(--i,0)*.18s)}@media (prefers-reduced-motion:reduce){.as-l{opacity:1!important;animation:none!important;transform:none!important}}
.mo-site{--accent:#f0b33e}html:has(.mo-site){scroll-behavior:smooth}.mo-canvas{z-index:1;pointer-events:none;display:block;position:fixed;inset:0}.mo-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mo-hop{text-align:left;grid-template-columns:minmax(0,32rem) minmax(0,1fr);align-content:center;place-items:center stretch;gap:2.2rem clamp(2.5rem,6vw,7rem);width:100%;max-width:88rem;margin-inline:auto}.mo-hop .pa-in{text-align:left;justify-items:start;max-width:none}.mo-hop :is(p,h2,h3,li,span,em,a){text-shadow:none}.mo-hop :is(.pa-say,.pa-sum){margin-inline:0}.mo-hop .pa-say{font-size:clamp(.78rem,3.35vw,1.2rem)}.mo-hop .pa-cols{gap:1.2rem 1.4rem}.mo-hop :is(.pa-phase,.pa-links){justify-content:flex-start}.mo-hop :is(.pa-exp article,.pa-certs li){justify-items:start}.mo-hop :is(.pa-hist,.pa-dec,.pa-exp,.pa-cols,.pa-certs,.pa-exp ul){width:100%;max-width:none}.mo-hop .pa-certs li:first-child,.mo-hop .pa-exp article:first-child,.mo-hop .pa-hist li:first-child{border-top:0}.mo-stage{min-width:0;height:min(64svh,36rem);position:relative}.mo-stage--media{justify-items:center;height:auto;padding:1.2rem;display:grid}.mo-site .pa-fig{width:min(100%,40rem);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;--signal:var(--accent);--glow:#f0b33eb3;--pkt-face:#f0b33e75;--pkt-void:#f0b33e1a;background:linear-gradient(135deg,#ffffff09,#ffffff02 45%,#ffffff06);border-radius:4px}.mo-site .pa-shot{border:0;border-radius:4px;width:min(100%,40rem)}.mo-mid{text-align:center;grid-template-columns:minmax(0,1fr);justify-items:center}.mo-mid .pa-in{text-align:center;justify-items:center;max-width:44rem}.mo-mid.pa-open{row-gap:1rem;padding-top:4rem;padding-bottom:3rem}.mo-stage--top{aspect-ratio:3/2;width:min(100%,62rem,150svh - 34.5rem);height:auto}.mo-name{font:300 clamp(1.4rem,4.2vw,3.6rem)/1.1 var(--ui);letter-spacing:.16em;white-space:nowrap;margin:0 0 .5rem;padding-left:.16em}.mo-mid.pa-open .pa-cue{margin-top:.2rem}.mo-last{row-gap:0;padding-bottom:1.6rem}.mo-last .pa-in{margin-bottom:3rem}.mo-last>.pa-l{margin-top:1rem}.mo-stage--end{aspect-ratio:2.3;width:min(100%,80rem,230svh - 57.5rem);height:auto}.mo-site .pa-open :is(.pa-la,.pa-role,.pa-l,.pa-cue){animation-delay:calc(.8s + var(--i,0)*90ms)}@media (min-width:900px){.mo-hop[data-hop="2"] .mo-stage{align-self:stretch;height:auto}.mo-hop[data-hop="2"] .pa-in{padding-bottom:3.6rem}}.mo-idx{z-index:30;gap:.35rem;display:grid;position:fixed;top:50%;right:clamp(.5rem,1.4vw,1.3rem);translate:0 -50%}.mo-idx a{place-items:center end;width:1.6rem;height:.7rem;display:grid}.mo-idx i{background:var(--faint);width:.45rem;height:1px;transition:width .35s cubic-bezier(.16,1,.3,1),background .35s;display:block}.mo-idx a:hover i,.mo-idx a:focus-visible i{background:var(--ink);width:.9rem}.mo-idx a:focus-visible{outline:none}:root[data-hop="0"] .mo-idx a[data-k="0"] i,:root[data-hop="1"] .mo-idx a[data-k="1"] i,:root[data-hop="2"] .mo-idx a[data-k="2"] i,:root[data-hop="3"] .mo-idx a[data-k="3"] i,:root[data-hop="4"] .mo-idx a[data-k="4"] i,:root[data-hop="5"] .mo-idx a[data-k="5"] i,:root[data-hop="6"] .mo-idx a[data-k="6"] i,:root[data-hop="7"] .mo-idx a[data-k="7"] i,:root[data-hop="8"] .mo-idx a[data-k="8"] i,:root[data-hop="9"] .mo-idx a[data-k="9"] i,:root[data-hop="10"] .mo-idx a[data-k="10"] i,:root[data-hop="11"] .mo-idx a[data-k="11"] i,:root[data-hop="12"] .mo-idx a[data-k="12"] i,:root[data-hop="13"] .mo-idx a[data-k="13"] i{background:var(--accent);width:1.3rem}@media (max-width:899px){.mo-hop{grid-template-columns:minmax(0,1fr);align-content:start;padding-top:4.5rem;padding-bottom:3.5rem}.mo-stage{order:-1;height:36svh}.mo-stage--media{height:auto;padding:.9rem .6rem}.mo-mid{align-content:center}.mo-stage--top,.mo-stage--end{order:0;height:auto}.mo-idx,.mo-site .pa-top{display:none}}@media (prefers-reduced-motion:reduce){html:has(.mo-site){scroll-behavior:auto}}
