:root{--ink:#231815;--orange:#EA5514;--paper:#F2F0ED;--sans:"Noto Sans KR",system-ui,sans-serif;--mono:"DM Mono",ui-monospace,monospace;--disp:"Poppins","Noto Sans KR",system-ui,sans-serif;--ease:cubic-bezier(.7,0,.2,1);color-scheme:light}
*{box-sizing:border-box}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px}

.stage{--io:cubic-bezier(.86,0,.07,1);--out:cubic-bezier(.38,.005,.215,1);--gut:clamp(20px,10.4vw,150px);--w0:clamp(220px,min(28vw,40vh),400px);--e:0;--k:0;--o:0px;position:relative;height:300vh}
.hpin{position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden;padding:0 var(--gut)}
.inner{position:relative;height:100%;display:grid;grid-template-rows:auto 1fr auto;padding:clamp(56px,8vh,80px) clamp(0px,3.5vw,50px) clamp(24px,4vh,44px)}

.h{margin:0;text-align:center;font:700 min(8.4vw,13vh)/.94 var(--sans);letter-spacing:-.04em;text-transform:uppercase}
.h .ln{display:block}
.h .w{display:inline-flex;overflow:hidden;padding-bottom:.06em;margin:0 .12em}
.h .c{display:inline-block;transform:translateY(130%);transition:transform 1.7s var(--io);transition-delay:calc(var(--i)*20ms)}
.h .acc .c{color:var(--orange)}

.track{position:absolute;inset:0 clamp(0px,3.5vw,50px);pointer-events:none}
.card{position:absolute;left:50%;top:calc(52% - 2% * var(--e));pointer-events:auto;
  width:min(calc(var(--w0) + (100% - var(--w0)) * var(--e)), calc((100svh - 150px) * 16 / 9));
  transform:translate(calc(-50% + var(--o)), calc(-50% * var(--e)));will-change:transform,width}
.frame{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:6px;background:var(--ink);clip-path:inset(100% 0 0 0);transition:clip-path 1s var(--out) .8s}
.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.3);transition:transform 1s var(--out) 1s}
.frame img.on{opacity:1}
.blk{position:absolute;inset:0;background:var(--ink);opacity:var(--k);pointer-events:none}
.fill{position:absolute;inset:0;z-index:3;background:var(--ink);visibility:hidden;pointer-events:none}
.toggle{font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;z-index:1;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:7px;background:var(--ink);color:var(--paper);border:0;border-radius:99px;padding:8px 14px;transition:transform .5s cubic-bezier(.34,.7,.27,1)}
.toggle::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--orange)}
.toggle[aria-pressed=true]::before{border-radius:0}
.toggle:hover{transform:translate(-50%,-50%) scale(1.1)}
.cap span,.card .toggle{opacity:calc(1 - var(--k)*2); display: none;}
.cap{display:flex;justify-content:space-between;gap:12px;margin:10px 0 0;font:500 11px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;opacity:0;transform:translateY(20px);transition:.75s var(--out) 1.3s}

.bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;opacity:calc(1 - var(--e) * 6);transform:translateY(calc(var(--e) * -300px))}
.bottom p{margin:0;max-width:30ch;font-size:clamp(15px,1.4vw,19px);font-weight:500;line-height:1.45;opacity:0;transform:translateY(40px);transition:.75s var(--out) .5s}
.scroll{font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;opacity:0;transform:translateY(40px);transition:.75s var(--out) .7s}

.stage.in .h .c,.stage.in .frame img,.stage.in .cap,.stage.in .bottom p,.stage.in .scroll{transform:none}
.stage.in .cap,.stage.in .bottom p,.stage.in .scroll{opacity:1}
.stage.in .frame{clip-path:inset(0)}

@media(max-width:760px){
  .inner{display:flex;flex-direction:column;justify-content:center;gap:24px;padding:72px 0 28px}
  .h{font-size:clamp(34px,11vw,60px)}.h .ln{display:inline}
  .track{position:static;order:3}.card{position:static;width:100%;transform:none}
  .bottom{display:contents}.bottom p{order:2;text-align:center;max-width:none}.scroll{display:none}
}

.mono{font:500 11px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.pin{position:relative;height:520vh}
.pst{position:sticky;top:0;height:100vh;overflow:hidden}
.ch{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:34px;padding:80px clamp(20px,3vw,44px) 60px}
.ch .title_en{margin:0;font:600 clamp(44px,9vw,150px)/.98 var(--disp);letter-spacing:-.06em;will-change:transform,opacity}
.ch .title_kr {
  margin: 0;
  font: 600 clamp(18px, 4vw, 70px) / 1.3 var(--sans);
  word-break: keep-all;
}
.ch .kr{margin:0;max-width:60ch;font-weight:300;font-size:clamp(15px,1.5vw,18px);line-height:1.8;opacity:.8; word-break: keep-all;}
.ch .cn{position:absolute;left:clamp(20px,3vw,44px);top:92px;opacity:.55}
.c0{background:var(--ink);color:var(--paper)}.c1{background:var(--paper);color:var(--ink)}.c2{background:var(--orange);color:#fff}.c3{background:var(--ink);color:var(--paper)}
.c1 .title_en em{color:var(--orange);font-style:normal}.c3 .title_en{color:var(--orange)}
.pgs{position:absolute;z-index:20;right:clamp(14px,2vw,30px);top:50%;transform:translateY(-50%);display:grid;gap:10px;mix-blend-mode:difference}
.pgs i{display:block;width:6px;height:6px;border-radius:3px;background:#fff;opacity:.35;transition:all .4s var(--ease);justify-self:center}.pgs i.on{opacity:1;height:24px}

#process{--bg:var(--ink);--tx:var(--paper);--mu:rgba(242,240,237,.62);--ln:rgba(242,240,237,.22);--px:clamp(20px,3vw,44px);background:var(--bg);color:var(--tx);padding:0 0 130px}
#process .wrap{margin:0 auto;padding:80px clamp(20px,3vw,44px) 60px}
#process .sh{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:40px}
#process .sh .tag{color:var(--orange);display:block;margin-bottom:14px}
#process .sh h2{margin:0;font:600 clamp(32px,5.4vw,78px)/1.08 var(--disp);letter-spacing:-.045em;text-wrap:balance}
#process .sh p{margin:0;max-width:34ch;color:var(--mu);font-size:14px}
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}
.kt{--fs:clamp(56px,13vw,120px)}
.kt b{display:block;font:600 var(--fs)/1 var(--disp);letter-spacing:-.05em;white-space:nowrap}
.ktm{display:none}
.ktc{list-style:none;margin:0;padding:40px var(--px) 0}
.ki{padding:28px 0 40px;border-top:1px solid var(--ln)}
.ki:first-child{border: none;}
.ki:first-child h3{font: 600 clamp(30px, 8vw, 50px)/1.3 var(--sans); word-break: keep-all;}
.kh{display:flex;justify-content:space-between;gap:20px;margin-bottom:20px;color:var(--mu)}
.kh span{display:none}
.kh i{font-style:normal;color:var(--orange)}
.kn{margin-bottom:28px}
.ki h3{margin:0 0 6px;font:600 clamp(18px,1.8vw,24px)/1.3 var(--sans);letter-spacing:-.02em}
.ki p{margin:0;color:var(--mu);font-size:14px}
@media(min-width:1024px){
  .kt{--fs:clamp(120px,13vw,200px);display:flex;align-items:flex-start;overflow:clip;timeline-scope:--kt}
  .ktm{position:sticky;top:0;width:50%;height:100vh;flex:none;display:flex;align-items:center;justify-content:center;overflow:clip}
  .kim{--o:50% 83%;--c:1.32;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--o);transform-origin:var(--o);transform:scale(var(--c));opacity:0;transition:opacity .6s var(--ease)}
  .kim.on{opacity:1}
  .ktp{flex:none;width:50%;padding:20vh 40px 30vh}
  .ktc{padding:0}
  .ki{padding:24px 0 8vh}
  .kh{margin-bottom:40px}
  .kh span{display:inline}
  .ki .kn{display:none}
  .ki h3{margin-bottom:40px;font-size:clamp(24px, 2.5vw, 50px)}
  .ki p{font-size:15px}
}
@media(min-width:1024px) and (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .ktm{width:100%;view-timeline-name:--kt;animation:kt-media linear both}
    .kim{animation:kt-image linear both}
    .ktp{padding-block:calc(100vh + 70px) 160px;animation:kt-panel linear both}
    .ktc{animation:kt-hold linear both}
    .ktm,.kim,.ktp,.ktc{animation-timeline:--kt;animation-range:contain 0% contain 100vh}
    .ktc{animation-range:contain 100vh contain 120vh}
  }
}
@keyframes kt-media{to{width:50%}}
@keyframes kt-image{to{scale:1.2}}
@keyframes kt-panel{from{transform:translate(10%)}}
@keyframes kt-hold{to{transform:translateY(20vh)}}
@media(prefers-reduced-motion:reduce){
  .stage{height:auto}.hpin{position:relative}
  .stage *{transition:none!important}
  .rv{opacity:1;transform:none;transition:none}.kim{transition:none}
}
