:root{color:#111;--marker-size:75px;--route-draw-duration:3s;--orange-highlight-duration:.9s;--zoom-duration:1.6s;--marker-pop-duration:.9s;--route-fade-duration:1.85s;--gyeol-reveal-duration:1.35s;--subtitle-fade-duration:1.25s;--name-transition-duration:1.7s;--final-subtitle-reappear-duration:1.2s;--project-blink-duration:.78s;--project-route-sweep-duration:.98s;--wave-nav-x:50px;--wave-nav-y:58px;background:#fff;font-family:Inter,Pretendard,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html,body,#root{width:100%;height:100%;margin:0}*{box-sizing:border-box}button,a{-webkit-tap-highlight-color:transparent}body{overflow:hidden}.hero{background:#fff;width:100vw;height:100vh;position:relative;overflow:hidden}.hero-stage{width:1920px;height:1080px;transform:translate(-50%, -50%) scale(var(--stage-scale));transform-origin:50%;background:#fff;position:absolute;top:50%;left:50%;overflow:hidden}.route-scene,.route-map,.project-markers,.hero-text{position:absolute;inset:0}.route-scene{transform-origin:960px 540px;transition:transform var(--zoom-duration) cubic-bezier(.45, 0, .2, 1)}.hero[data-phase=zoom] .route-scene,.hero[data-phase=markers] .route-scene,.hero[data-phase=isolate] .route-scene{transform:translate(-78px,-28px)scale(1.13)}.hero[data-phase=gyeol] .route-scene,.hero[data-phase=tagline] .route-scene,.hero[data-phase=nameIntro] .route-scene,.hero[data-phase=final] .route-scene{transform:translate(0)scale(1)}.route-map{width:100%;height:100%}.route-layer{left:var(--x);top:var(--y);width:var(--w);height:var(--h);opacity:.6;animation-duration:var(--route-draw-duration);animation-delay:var(--route-delay);transition:opacity var(--route-fade-duration) ease, filter var(--route-fade-duration) ease;animation-timing-function:cubic-bezier(.5,0,.2,1);animation-fill-mode:both;position:absolute}.route-layer[data-direction=left]{animation-name:reveal-from-left}.route-layer[data-direction=right]{animation-name:reveal-from-right}.route-layer[data-direction=top]{animation-name:reveal-from-top}.route-layer[data-direction=bottom]{animation-name:reveal-from-bottom}.route-layer img{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.hero[data-phase=highlight] .route-orange,.hero[data-phase=zoom] .route-layer,.hero[data-phase=markers] .route-layer{opacity:1}.hero[data-phase=isolate] .route-layer:not(.route-orange),.hero[data-phase=gyeol] .route-layer:not(.route-orange),.hero[data-phase=tagline] .route-layer:not(.route-orange),.hero[data-phase=nameIntro] .route-layer:not(.route-orange),.hero[data-phase=final] .route-layer:not(.route-orange){opacity:0;filter:brightness(2.45)}.hero[data-phase=isolate] .route-orange,.hero[data-phase=gyeol] .route-orange,.hero[data-phase=tagline] .route-orange,.hero[data-phase=nameIntro] .route-orange,.hero[data-phase=final] .route-orange{opacity:1}.project-markers{pointer-events:none}.project-marker{left:var(--x);top:var(--y);width:var(--marker-size);height:var(--marker-size);cursor:pointer;opacity:0;transform-origin:50%;transition:opacity var(--marker-pop-duration) ease, transform var(--marker-pop-duration) cubic-bezier(.2, 1.35, .3, 1);transition-delay:var(--marker-delay);background:0 0;border:0;padding:0;position:absolute;transform:translate(-50%,-50%)scale(0)}.project-marker img{pointer-events:none;width:100%;height:100%;display:block}.hero[data-phase=markers] .project-marker,.hero[data-phase=isolate] .project-marker,.hero[data-phase=gyeol] .project-marker,.hero[data-phase=tagline] .project-marker,.hero[data-phase=nameIntro] .project-marker,.hero[data-phase=final] .project-marker{pointer-events:auto;opacity:1;transform:translate(-50%,-50%)scale(1)}.hero[data-phase=final] .project-marker{animation:2.55s ease-in-out infinite marker-pulse;animation-delay:var(--pulse-delay)}.project-marker.is-selected{opacity:1;animation:marker-click-blink var(--project-blink-duration) steps(8, end) 1!important}.gyeol-mask{clip-path:inset(0 0 100%);width:687px;height:957px;transition:clip-path var(--gyeol-reveal-duration) cubic-bezier(.55, 0, .2, 1);position:absolute;top:123px;left:1233px;overflow:hidden}.gyeol-text,.tagline-text,.name-light-text,.name-bold-text,.imnida-text{-webkit-user-select:none;user-select:none;display:block;position:absolute}.gyeol-text{width:687px;height:957px;top:0;left:0}.tagline-text{opacity:0;filter:brightness(1.65);width:457px;height:65px;transition:opacity var(--subtitle-fade-duration) ease, filter var(--subtitle-fade-duration) ease;top:151px;left:1338px}.name-light-text{opacity:0;width:114px;height:60px;transition:opacity var(--subtitle-fade-duration) ease, filter var(--subtitle-fade-duration) ease, transform var(--name-transition-duration) cubic-bezier(.45, 0, .18, 1);filter:brightness(1.4);top:248px;left:1368px;transform:translate(-52px)}.name-bold-text{opacity:0;filter:brightness(1.4);width:179px;height:64px;transition:opacity var(--name-transition-duration) ease, filter var(--name-transition-duration) ease, transform var(--name-transition-duration) cubic-bezier(.45, 0, .18, 1);top:246px;left:1417px;transform:translate(-90px,-30px)}.imnida-text{opacity:0;filter:brightness(1.35);width:180px;height:60px;transition:opacity var(--subtitle-fade-duration) ease, filter var(--subtitle-fade-duration) ease;top:247px;left:1615px}.hero[data-phase=gyeol] .gyeol-mask,.hero[data-phase=tagline] .gyeol-mask,.hero[data-phase=nameIntro] .gyeol-mask,.hero[data-phase=final] .gyeol-mask{clip-path:inset(0)}.hero[data-phase=tagline] .tagline-text{opacity:1;filter:brightness()}.hero[data-phase=nameIntro] .tagline-text{opacity:0;filter:brightness(1.8)}.hero[data-phase=nameIntro] .name-light-text{opacity:1;filter:brightness();transform:translate(0)}.hero[data-phase=nameIntro] .imnida-text,.hero[data-phase=final] .imnida-text{opacity:1;filter:brightness()}.hero[data-phase=final] .name-light-text{animation:name-light-arc var(--name-transition-duration) cubic-bezier(.45, 0, .18, 1) forwards}.hero[data-phase=final] .name-bold-text{opacity:1;filter:brightness();transform:translate(0)}.hero[data-phase=final] .tagline-text{opacity:1;filter:brightness();transition-delay:.52s}.wave-nav{left:var(--wave-nav-x);top:var(--wave-nav-y);z-index:20;width:280px;min-height:280px;position:absolute}.wave-button{cursor:pointer;opacity:0;background:0 0;border:0;border-radius:50%;width:63px;height:63px;padding:0;transition:opacity .72s,transform .82s cubic-bezier(.2,1.35,.3,1);position:absolute;top:0;left:0;transform:scale(0)}.wave-button img,.nav-item img{pointer-events:none;width:100%;height:100%;display:block}.hero[data-phase=final] .wave-button{opacity:1;transform:scale(1)}.nav-items{pointer-events:none;flex-direction:column;gap:7px;display:flex;position:absolute;top:11px;left:107px}.nav-item{opacity:0;height:41px;transition:opacity .42s,transform .52s cubic-bezier(.2,.8,.2,1);display:block;transform:translate(-22px)}.nav-item:first-child{width:143px;height:40px}.nav-item:nth-child(2){width:145px;height:41px}.nav-item:nth-child(3){width:151px;height:41px}.nav-item:nth-child(4){width:160px;height:40px}.wave-nav.is-open .nav-items{pointer-events:auto}.wave-nav.is-open .nav-item{opacity:1;transition-delay:var(--nav-delay);transform:translate(0)}@keyframes marker-pulse{0%,to{opacity:.65}50%{opacity:1}}@keyframes marker-click-blink{0%,to{opacity:1;filter:brightness();transform:translate(-50%,-50%)scale(1)}12%,37%,62%,87%{opacity:.35;filter:brightness(1.9);transform:translate(-50%,-50%)scale(.96)}25%,50%,75%{opacity:1;filter:brightness(1.15);transform:translate(-50%,-50%)scale(1.06)}}@keyframes reveal-from-left{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes reveal-from-right{0%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}@keyframes reveal-from-top{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes reveal-from-bottom{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@keyframes name-light-arc{0%{opacity:1;filter:brightness();transform:translate(0)}34%{opacity:1;transform:translate(-8px,42px)}78%{opacity:.45;transform:translate(96px,16px)}to{opacity:0;filter:brightness(1.7);transform:translate(122px)}}.project-transition{z-index:12;pointer-events:none;position:absolute;inset:0}.project-sweep{opacity:0;filter:brightness(1.55);animation:route-sweep var(--project-route-sweep-duration) cubic-bezier(.18, .72, .22, 1) forwards;animation-delay:var(--project-blink-duration);position:absolute}.project-sweep img{width:100%;height:100%;display:block}.project-sweep-purple{width:1222px;height:906px;top:176px;left:154px}.project-sweep-green{width:2260px;height:520px;top:472px;left:-175px}.project-sweep-navy{width:1712px;height:1529px;top:-203px;left:244px}.project-sweep-brown{width:2294px;height:672px;top:282px;left:-318px}@keyframes route-sweep{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translate(-18px)}24%{opacity:1}78%{opacity:.95;clip-path:inset(0);transform:translate(22px)}to{opacity:0;clip-path:inset(0 0 0 100%);transform:translate(44px)}}.project-page{color:#1f2430;background:#fff;place-items:center;width:100vw;height:100vh;display:grid}.project-home-link{color:#1f2430;font-size:16px;text-decoration:none;position:fixed;top:28px;left:32px}.project-placeholder{text-align:center}.project-placeholder p{color:#7c789b;margin:0 0 16px;font-size:16px}.project-placeholder h1{letter-spacing:0;margin:0;font-size:64px;font-weight:700}@media (width<=700px){.hero-stage{transform:translate(-58%, -50%) scale(var(--stage-scale))}.hero[data-focus=mobile] .route-scene{transform-origin:1280px 520px}.hero[data-phase=zoom] .route-scene,.hero[data-phase=markers] .route-scene,.hero[data-phase=isolate] .route-scene{transform:translate(-70px,-24px)scale(1.08)}.wave-nav{top:72px;left:62px}.nav-items{top:98px;left:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.route-layer{clip-path:inset(0)}}
