:root{--copy-w:34;--bg:#000;--term-bar:#0a0a0a;--text:#f4f4f4;--muted:#8b939c;--accent:#ff2a2a;--ok:#4ade80;--link:#60a5fa;--gap:0px;--font-sans:"Noto Sans KR", system-ui, sans-serif;--font-display:"Anton", "Noto Sans KR", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-sans);overscroll-behavior:none;overflow:hidden}#board{gap:var(--gap);z-index:10;grid-template-rows:repeat(3,1fr);display:grid;position:fixed;inset:0}.row{perspective:900px;background:#000;position:relative;overflow:hidden}.prism{transform-style:preserve-3d;transform:scale(var(--pull,1)) translateZ(calc(var(--apothem) * -1)) rotateX(var(--angle,0deg));will-change:transform;position:absolute;inset:0}.face{backface-visibility:hidden;transform:rotateX(calc(var(--i) * -120deg)) translateZ(var(--apothem));background:#000;position:absolute;inset:0}.shade{opacity:0;pointer-events:none;background:#000;position:absolute;inset:0}.copy{width:calc(var(--copy-w) * 1%);flex-direction:column;justify-content:center;gap:.5em;padding:0 clamp(16px,4vw,64px);display:flex;position:absolute;top:0;bottom:0}.side-left .copy{left:0}.side-right .copy{text-align:right;align-items:flex-end;right:0}.copy-label{font-family:var(--font-mono);color:var(--accent);letter-spacing:.2em;font-size:.8rem}.copy-title{letter-spacing:.01em;text-transform:uppercase;overflow-wrap:normal;font-family:Anton,Noto Sans KR,sans-serif;font-size:clamp(2.4rem,5.4vw,6.2rem);font-weight:400;line-height:.95}.copy-body{color:var(--muted);font-size:clamp(.85rem,1.1vw,1.05rem);line-height:1.6}.term{width:calc((100 - var(--copy-w)) * 1% - 14px);background:#000;border:1px solid #1c1c1c;border-radius:10px;flex-direction:column;display:flex;position:absolute;top:14px;bottom:14px;overflow:hidden}.side-left .term{right:14px}.side-right .term{left:14px}.term-bar{background:var(--term-bar);font-family:var(--font-mono);color:var(--muted);border-bottom:1px solid #1c1c1c;align-items:center;gap:6px;padding:7px 12px;font-size:.7rem;display:flex}.term-bar i{background:#3a3f46;border-radius:50%;width:10px;height:10px}.term-bar i:first-child{background:#ff5f57}.term-bar i:nth-child(2){background:#febc2e}.term-bar i:nth-child(3){background:#28c840}.term-bar span{margin-left:10px}.term-body{font-family:var(--font-mono);color:#d6dde5;flex:1;padding:10px 16px;font-size:clamp(.68rem,.9vw,.85rem);line-height:1.6;overflow:hidden}.side-right .term-body{padding-left:16px}.t-line{white-space:pre}.term:not(.term-full) .t-line:not(.banner){height:1.6em;overflow:hidden}.t-line.ok{color:var(--ok)}.t-line.link{color:var(--link)}.t-line.dim{color:var(--muted)}.t-path{color:#c084fc}.t-sign{color:var(--accent)}.t-cursor{vertical-align:-.2em;background:#d6dde5;width:.6em;height:1.1em;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.face{overflow:hidden}.finale-wrap{height:300%;left:0;right:0;top:calc(var(--slice) * -100%);display:none;position:absolute}.face-black.finale-on .finale-wrap{display:block}.term.term-full{width:auto;inset:14px}.term-full .term-body{padding:18px 24px;font-size:clamp(.72rem,1vw,.95rem);padding-bottom:33vh!important}@media (width>=768px){.term-full .term-body{padding-right:56%}}.term-full .t-line:not(.banner){white-space:pre-wrap;overflow-wrap:anywhere}.finale-copy{text-align:right;flex-direction:column;align-items:flex-end;gap:.5em;width:min(30%,420px);display:flex;position:absolute;top:50%;right:clamp(32px,6vw,96px);transform:translateY(-50%)}.t-line.accent{color:var(--accent);line-height:1.12}.t-line.hint{color:#fbbf24;margin-top:.4em}.t-link{color:var(--link);text-underline-offset:3px;pointer-events:auto;text-decoration:underline}.term-input{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;font-size:16px;position:fixed;bottom:0;left:0}.t-line .nf-red{color:var(--accent)}.t-line .nf-art{vertical-align:top;width:17ch;display:inline-flex}.t-line .nf-art i{width:2ch;height:1.25em;display:inline-block}.t-line .nf-art i.on{background:var(--accent);box-shadow:inset 0 0 0 1px #00000073}.t-line .nf-title,.t-line .nf-key{color:var(--link);font-weight:600}.t-line .nf-hash{color:#fbbf24}.t-line .nf-ref{color:#22d3ee}.t-line .nf-dim{color:var(--muted)}#matrix-rain{z-index:900;pointer-events:none;mix-blend-mode:screen;width:100vw;height:100vh;position:fixed;inset:0}.t-line.banner{white-space:nowrap;margin:.15em 0 .3em}.t-banner{width:auto;height:clamp(3.5rem,7.5vw,8.5rem);display:block;overflow:visible}.t-banner .p{fill:#fff}.t-banner .s{fill:#4a4a4f}.t-banner .h{fill:var(--accent)}.t-banner .hs{fill:#7a0a10}.t-banner-px rect,.t-banner-heart rect{transform-box:fill-box;transform-origin:50%;animation:.35s cubic-bezier(.2,.9,.3,1.3) both px-in}.t-banner-heart{transform-box:fill-box;transform-origin:50% 55%;animation:1.2s ease-in-out .8s infinite heart-beat}.t-banner-shadow{animation:.6s ease-out .2s both px-fade}@keyframes px-in{0%{opacity:0;transform:scale(.2)}}@keyframes px-fade{0%{opacity:0}}@keyframes heart-beat{0%,60%,to{transform:scale(1)}15%{transform:scale(1.18)}30%{transform:scale(.96)}45%{transform:scale(1.1)}}#stage{z-index:20;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}#steps{z-index:30;flex-direction:column;gap:10px;display:flex;position:fixed;top:50%;right:32px;transform:translateY(-50%)}#steps button{cursor:pointer;background:0 0;border:1px solid #ffffff80;border-radius:50%;width:10px;height:10px;padding:0;transition:background .2s,transform .2s}#steps button[aria-current]{background:var(--accent);border-color:var(--accent);transform:scale(1.3)}#steps button:focus-visible{outline:2px solid var(--link);outline-offset:3px}.hint{z-index:30;font-family:var(--font-mono);letter-spacing:.3em;color:var(--muted);flex-direction:column;align-items:center;gap:4px;font-size:.7rem;transition:opacity .4s;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.hint span{animation:1.4s ease-in-out infinite nudge}@keyframes nudge{50%{transform:translateY(5px)}}body:not([data-step="0"]) .hint{opacity:0}#cf-link,#wh-link,#web-link,#sc-link,#wp-link{z-index:40;font-family:var(--font-sans);letter-spacing:-.01em;color:#fff;opacity:0;pointer-events:none;align-items:center;gap:.32em;font-size:clamp(.59rem,1.04vw,.95rem);font-weight:900;text-decoration:none;transition:opacity .5s 1.2s,transform .5s 1.2s;display:flex;position:fixed;bottom:clamp(36px,8vh,96px);right:clamp(48px,7vw,140px);transform:translateY(14px)}#cf-link b,#wh-link b,#web-link b,#sc-link b,#wp-link b{font-weight:900}#cf-link,#wh-link,#web-link,#sc-link,#wp-link{white-space:nowrap;justify-content:flex-start;width:9.2em}#cf-link .cf-word,#cf-link .cf-cube-wrap,#wh-link .cf-word,#web-link .cf-word,#sc-link .cf-word,#wp-link .cf-word{display:inline-block}body[data-step="7"] #cf-link,body[data-step="7"] #wh-link,body[data-step="7"] #web-link,body[data-step="7"] #sc-link,body[data-step="7"] #wp-link{opacity:1;pointer-events:auto;transform:none}#cf-link .cf-word,#wh-link .cf-word,#web-link .cf-word,#sc-link .cf-word,#wp-link .cf-word{background:linear-gradient(100deg,#c4c5cc 0 44%,#fff 49% 51%,#c4c5cc 56% 100%) 100% 0/300% 100%;color:#0000;-webkit-background-clip:text;background-clip:text}body[data-step="7"] #wp-link .cf-word{animation:6s ease-in-out .6s infinite link-shine}body[data-step="7"] #sc-link .cf-word{animation:6s ease-in-out 2.4s infinite link-shine}body[data-step="7"] #web-link .cf-word{animation:6s ease-in-out 3s infinite link-shine}body[data-step="7"] #wh-link .cf-word{animation:6s ease-in-out 1.2s infinite link-shine}body[data-step="7"] #cf-link .cf-word{animation:6s ease-in-out 1.8s infinite link-shine}@keyframes link-shine{0%{background-position:100% 0}24%,to{background-position:0 0}}#cf-link:hover .cf-word,#wh-link:hover .cf-word,#web-link:hover .cf-word,#sc-link:hover .cf-word,#wp-link:hover .cf-word{color:#fff;text-underline-offset:6px;background:0 0;text-decoration:underline;text-decoration-thickness:2px;animation:none}#cf-link:focus-visible,#wh-link:focus-visible,#web-link:focus-visible,#sc-link:focus-visible,#wp-link:focus-visible{outline:2px solid var(--link);outline-offset:6px;border-radius:6px}.cf-cube-wrap{perspective:6em;width:.95em;height:.95em;margin-right:1px}.cf-cube{--s:.95em;width:var(--s);height:var(--s);transform-style:preserve-3d;animation:9s linear infinite cf-spin;display:block;position:relative}.cf-cube i{border:1px solid #00000040;position:absolute;inset:0}.cf-cube i:first-child{transform:translateZ(calc(var(--s) / 2));background:#b9b9c0}.cf-cube i:nth-child(2){transform:rotateY(180deg) translateZ(calc(var(--s) / 2));background:#3a3a40}.cf-cube i:nth-child(3){transform:rotateY(90deg) translateZ(calc(var(--s) / 2));background:#5c5c64}.cf-cube i:nth-child(4){transform:rotateY(-90deg) translateZ(calc(var(--s) / 2));background:#8a8a92}.cf-cube i:nth-child(5){transform:rotateX(90deg) translateZ(calc(var(--s) / 2));background:#fff}.cf-cube i:nth-child(6){transform:rotateX(-90deg) translateZ(calc(var(--s) / 2));background:#26262b}@keyframes cf-spin{0%{transform:rotateX(-28deg)rotateY(38deg)rotate3d(1,1,0,0)}to{transform:rotateX(-28deg)rotateY(38deg)rotate3d(1,1,0,360deg)}}.wp-icon{flex:none;width:1.3em;height:1.3em;margin:0 -.08em 0 -.12em}.wp-guy{animation:2.4s ease-in-out infinite wp-breathe}@keyframes wp-breathe{50%{transform:translateY(-1.2px)}}.sc-icon{flex:none;width:1.3em;height:1.3em;margin:0 -.08em 0 -.12em}.sc-petals path{fill:#5c5c64;stroke:#000;stroke-width:.6px;animation:3s infinite sc-lit}.sc-petals path:nth-child(2){animation-delay:.25s}.sc-petals path:nth-child(3){animation-delay:.5s}.sc-petals path:nth-child(4){animation-delay:.75s}.sc-petals path:nth-child(5){animation-delay:1s}.sc-petals path:nth-child(6){animation-delay:1.25s}@keyframes sc-lit{0%,55%,to{fill:#5c5c64}15%,35%{fill:#e9e9ee}}#web-link{cursor:pointer;background:0 0;border:0;padding:0;bottom:calc(clamp(36px,8vh,96px) + 0em)}#sc-link{cursor:pointer;background:0 0;border:0;padding:0;bottom:calc(clamp(36px,8vh,96px) + 2.15em)}#cf-link{bottom:calc(clamp(36px,8vh,96px) + 4.3em)}#wh-link{cursor:pointer;background:0 0;border:0;padding:0;bottom:calc(clamp(36px,8vh,96px) + 6.45em)}#wp-link{cursor:pointer;background:0 0;border:0;padding:0;bottom:calc(clamp(36px,8vh,96px) + 8.6em)}.wb-icon{flex:none;width:1.3em;height:1.3em;margin:0 -.08em 0 -.12em}.wb-scroll{animation:3s ease-in-out infinite wb-scroll}@keyframes wb-scroll{0%,15%{transform:translateY(0)}45%,60%{transform:translateY(-9px)}90%,to{transform:translateY(0)}}.wh-icon{flex:none;width:1.3em;height:1.3em;margin:0 -.08em 0 -.12em;animation:9s linear infinite wh-turn}@keyframes wh-turn{0%{transform:perspective(6em)rotateY(0)}to{transform:perspective(6em)rotateY(360deg)}}.wh-net{stroke:#5c5c64;stroke-width:1.8px;fill:none}.wh-n{fill:#8a8a92}.wh-n.on{animation:2.4s infinite wh-blink}.wh-n.d1{animation-delay:.4s}.wh-n.d2{animation-delay:.8s}.wh-n.d3{animation-delay:1.2s}.wh-n.d4{animation-delay:1.6s}@keyframes wh-blink{0%,to{fill:#5c5c64}50%{fill:#fff}}@media (prefers-reduced-motion:reduce){#cf-link .cf-word,#wh-link .cf-word,#web-link .cf-word,.cf-cube,.wh-n,.wh-icon,.wb-scroll,.sc-petals path,.wp-guy{animation:none!important}}#chat-link{z-index:40;color:#fff;font-family:var(--font-mono);letter-spacing:.32em;cursor:pointer;opacity:0;pointer-events:none;background:0 0;border:0;align-items:center;gap:.35em;padding:4px 2px;font-size:clamp(.8rem,1vw,.95rem);font-weight:800;transition:opacity .5s 1.5s,transform .5s 1.5s,color .2s;display:inline-flex;position:fixed;transform:translateY(8px)}#chat-link.center{transform:translate(-50%,8px)}body[data-step="7"] #chat-link{opacity:1;pointer-events:auto;transform:none}body[data-step="7"] #chat-link.center{transform:translate(-50%)}#chat-link .chat-word{min-width:4.6ch}#chat-link .chat-dot{background:#22c55e;border-radius:50%;width:.5em;height:.5em;animation:2.4s ease-in-out infinite chat-live;box-shadow:0 0 #22c55e99}@keyframes chat-live{0%,to{opacity:1;box-shadow:0 0 #22c55e8c}50%{opacity:.55;box-shadow:0 0 0 5px #22c55e00}}#chat-link:hover{color:var(--accent)}#chat-link:focus-visible{outline:2px solid var(--link);outline-offset:4px;border-radius:4px}@keyframes chat-blink{50%{opacity:0}}body.chat-open #chat-link,body.chat-open #cf-link,body.chat-open #wh-link,body.chat-open #web-link,body.chat-open #sc-link,body.chat-open #wp-link{opacity:0!important;pointer-events:none!important}.chat-win{--chat-h:min(460px, 64vh);z-index:800;width:min(620px,100vw - 32px);height:var(--chat-h);font-family:var(--font-mono);color:#e5e7eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050506f0;border:1px solid #2a2a2e;border-radius:10px;flex-direction:column;font-size:14px;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 30px 80px #000000b3,0 0 0 1px #ff2a2a1f}.chat-win[hidden]{display:none}.chat-win.show{animation:.55s cubic-bezier(.2,.8,.2,1) both chat-open}.chat-win.show>*{animation:.25s .45s both chat-content}.chat-win.closing{animation:.32s ease-in both chat-close}@keyframes chat-open{0%{background:#fff;border-radius:50%;transform:translate(-50%,-50%)scale(.012,.006)}35%{background:#fff;border-radius:2px;transform:translate(-50%,-50%)scaleY(.006)}55%{background:#050506f0}to{transform:translate(-50%,-50%)scale(1)}}@keyframes chat-content{0%{opacity:0}to{opacity:1}}@keyframes chat-close{0%{transform:translate(-50%,-50%)scale(1)}60%{background:#fff;transform:translate(-50%,-50%)scaleY(.006)}to{opacity:0;background:#fff;transform:translate(-50%,-50%)scale(.012,.006)}}.chat-bar{color:var(--muted);border-bottom:1px solid #1c1c20;align-items:center;gap:7px;padding:9px 12px;font-size:12px;display:flex}.chat-bar i,.chat-close{background:#3a3f46;border:0;border-radius:50%;width:11px;height:11px;padding:0}.chat-close{cursor:pointer;background:#ff5f57}.chat-close:hover{box-shadow:0 0 0 3px #ff5f574d}.chat-bar i:first-of-type{background:#febc2e}.chat-bar i:nth-of-type(2){background:#28c840}.chat-bar span{margin-left:8px}.chat-body{scrollbar-width:none;overscroll-behavior:contain;cursor:text;flex:1;padding:14px 16px;line-height:1.65;overflow-y:auto}.chat-body::-webkit-scrollbar{display:none}.chat-line{white-space:pre-wrap;overflow-wrap:anywhere}.chat-body:after{content:"";height:calc(var(--chat-h) / 2 - 70px);display:block}.chat-line.dim,.chat-dim{color:var(--muted)}.chat-line.ok{color:var(--ok)}.chat-line.warn{color:#fbbf24}.chat-status{color:var(--muted)}.chat-who{color:var(--link)}.chat-path{color:#c084fc}.chat-sign{color:var(--accent)}.chat-pline[hidden]{display:none}.chat-typed{color:#fff}.chat-caret{vertical-align:-.2em;background:#e5e7eb;width:.6em;height:1.1em;animation:1s step-end infinite chat-blink;display:inline-block}.chat-input{opacity:0;border:0;width:1px;height:1px;padding:0;font-size:16px;position:absolute;bottom:0;left:0}.chat-hp{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.chat-ts:empty{display:none}.chat-ts{padding:0 16px 12px}@media (width<=767px){.chat-win{--chat-h:min(70vh, 560px);font-size:13px}}@media (prefers-reduced-motion:reduce){.chat-caret,#chat-link .chat-dot,.chat-win.show,.chat-win.show>*,.chat-win.closing{animation:none}}@media (width<=767px){:root{--copy-w:42}.copy{padding:0 16px}.copy-title{font-size:clamp(1.5rem,7.4vw,2.6rem)}.term{opacity:.7;top:8px;bottom:8px}.side-left .term{right:8px}.side-right .term{left:8px}.term-body{padding:8px 10px;font-size:.6rem}.term-bar{padding:6px 10px;font-size:.6rem}.term.term-full{opacity:1;inset:8px}.term-full .term-body{padding:12px 14px;font-size:.66rem}.t-banner{height:clamp(2.4rem,10vw,4rem)}#web-link{font-size:.84rem;bottom:13.2vh;right:6vw}#sc-link{font-size:.84rem;bottom:calc(13.2vh + 1.95em);right:6vw}#cf-link{font-size:.84rem;bottom:calc(13.2vh + 3.9em);right:6vw}#wh-link{font-size:.84rem;bottom:calc(13.2vh + 5.85em);right:6vw}#wp-link{font-size:.84rem;bottom:calc(13.2vh + 7.8em);right:6vw}.finale-copy{text-align:center;align-items:center;width:auto;inset:auto 16px 7%;transform:none}.finale-copy .copy-title{font-size:clamp(1.8rem,9vw,2.8rem)}#steps{gap:8px;right:18px}#steps button{width:8px;height:8px}.hint{bottom:10px}}@media (prefers-reduced-motion:reduce){.t-cursor,.hint span,.t-banner rect,.t-banner g{animation:none!important}}html,body{touch-action:none}body.can-spin{cursor:grab}body.spinning,body.spinning *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}html body>*{visibility:visible}.t-banner-heart{cursor:pointer;pointer-events:auto}.t-banner .hit{fill:#0000;pointer-events:all;animation:none!important}.heart-burst{z-index:100;pointer-events:none;width:100%;height:100%;image-rendering:pixelated;position:fixed;inset:0}.wh-win{--chat-h:auto;width:min(880px,100vw - 32px);height:auto;max-height:calc(100vh - 32px);font-family:var(--font-sans)}.wh-win .chat-bar{font-family:var(--font-mono)}.chat-bar .wh-lang{gap:2px;margin-left:auto;display:flex}.wh-lang button{font:600 11px/1 var(--font-mono);color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;padding:4px 7px}.wh-lang button[aria-pressed=true]{color:#fff;border-color:#3a3f46}.wh-body{scrollbar-width:none;overscroll-behavior:contain;padding:18px 22px 20px;overflow-y:auto}.wh-body::-webkit-scrollbar{display:none}.wh-title{letter-spacing:-.01em;color:#fff;align-items:center;gap:.32em;margin:0 0 8px;font-size:1.6rem;font-weight:900;display:flex}.wh-title b{font-weight:900}.wh-lead{color:#c9cbd1;margin:0 0 14px;font-size:.95rem;line-height:1.6}.wh-video{aspect-ratio:1440/900;background:#111;border:1px solid #1c1c20;border-radius:8px;width:100%;display:block}.wh-note{color:var(--muted);margin:6px 0 16px;font-size:.75rem}.wh-stack{color:var(--muted);font-family:var(--font-mono);margin:0;font-size:.72rem}@media (width<=767px){.wh-body{padding:14px 14px 16px}.wh-title{font-size:1.25rem}}.wh-loading{z-index:2;background:#050506;flex-direction:column;justify-content:center;align-items:center;gap:clamp(18px,4vh,40px);transition:opacity .45s;display:flex;position:absolute;bottom:0;left:0;right:0}.wh-loading.out{opacity:0;pointer-events:none}.wh-intro-icon{width:min(26vmin,200px);height:min(26vmin,200px);animation:.7s cubic-bezier(.2,.9,.3,1.2) .1s forwards cf-pop;transform:scale(.6)}.wh-intro-icon svg{width:100%;height:100%;margin:0}.wh-intro-icon .wh-icon{animation:2.6s linear infinite wh-turn-big}@keyframes wh-turn-big{0%{transform:perspective(900px)rotateY(0)}to{transform:perspective(900px)rotateY(360deg)}}.wh-intro-title{font-family:var(--font-sans);color:#fff;letter-spacing:-.01em;opacity:0;font-size:clamp(2rem,6vw,4.5rem);font-weight:900;line-height:1;animation:.5s .35s forwards cf-rise;transform:translateY(20px)}.wh-intro-title b{font-weight:900}@keyframes cf-pop{to{transform:scale(1)}}@keyframes cf-rise{to{opacity:1;transform:none}}.wh-win{width:min(1240px,100vw - 32px,160vh - 434px)}.wh-video{width:auto;max-width:100%;height:auto;max-height:calc(100vh - 300px);margin:0 auto}.wh-visit{color:#fff;border:1px solid #3a3f46;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;margin-left:auto;display:grid}.wh-visit svg{width:20px;height:20px}.wh-visit:hover{background:#ffffff14;border-color:#fff}.wh-visit:focus-visible{outline:2px solid var(--link);outline-offset:3px}@media (width<=767px){.wh-video{width:100%;max-height:none}.wh-visit{width:36px;height:36px}}
