/* 참여 방법 정리(#join-steps). 2026-10-23 사용자 "각 순서를 하나하나 카드로 만들어주고, 각 카드 밑에 자세히 알아보기 버튼 누르면 모달이 떠서 해당 관련 안내사항들을 자세히":
   단계 넷을 카드 넷으로(번호 · 그림 · 제목 · 설명 · 「자세히 알아보기」), 카드 사이에 작은 꺾쇠. 목표인 04 카드만 빨간 테두리.
   모달(#l5-jm)은 join.js 가 단계별 template 을 채운다. 등장과 휠 박자는 l5.js. */
.l5-join{border-top:1px solid var(--ln);padding-block:clamp(40px,5vh,56px);background:radial-gradient(ellipse at 50% 110%,rgba(255,65,85,.055),transparent 65%)}
.l5-join-head{text-align:center;margin-bottom:clamp(30px,5vh,56px)}
/* 2026-10-23 사용자 "섹션의 전체 요소들 크기를 다 키워줄래 ?": 이 섹션만 본문 폭을 넓히고(1240 → 1400) 글 · 카드 · 단추를 모두 키웠다 */
#join-steps .l5-in{max-width:1400px}
/* 제목 글씨 키움(2026-10-23 사용자 "RookissAI의 게임 개발 과정에 함께 이거는 글씨만 좀 더 키워주세요") */
.l5-join .l5-h2{font-size:clamp(48px,5.8vw,92px);line-height:1.22;letter-spacing:-.045em}
.l5-join-intro{font-size:.72em;color:var(--t2);font-weight:650;letter-spacing:-.035em}

/* 카드 넷 */
.l5-join-path{--gap:clamp(18px,2.1vw,34px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap);margin:0;padding:0;list-style:none}
.l5-join-step{position:relative;display:flex;flex-direction:column;min-width:0;padding:clamp(22px,3vh,32px) clamp(20px,2vw,32px) clamp(20px,2.8vh,28px);border:1px solid rgba(255,255,255,.07);border-radius:18px;background:linear-gradient(180deg,#18181B,#131315);box-shadow:0 24px 44px -28px rgba(0,0,0,.9)}
/* 빛 테두리(2026-10-23 사용자 "빨간색 테두리 느낌이 아니라 약간 멋있게 빛이 살짝 비추는 느낌의 테두리, 너무 과하지 않게"):
   테두리 고리만 남긴 ::before 에 [왼쪽 위에서 비추는 옅은 빛] + [왼쪽 위 모서리의 짧은 빛줄기] 두 겹.
   빛줄기는 테두리를 따라 돌게 했다가 같은 날 사용자 "빙빙 돌지말고 그냥 고정"으로 왼쪽 위에 멈췄다(--l5-beam 각도로 자리를 정한다) */
@property --l5-beam{syntax:"<angle>";inherits:false;initial-value:0deg}
.l5-join-step{--l5-rim:linear-gradient(150deg,rgba(255,255,255,.34),rgba(255,255,255,.06) 38%,rgba(255,255,255,.03) 70%,rgba(255,65,85,.2));box-shadow:0 24px 44px -28px rgba(0,0,0,.9),0 0 34px -14px rgba(255,65,85,.3)}
.l5-join-step::before{content:"";position:absolute;inset:-1px;z-index:0;border-radius:inherit;padding:1.5px;pointer-events:none;background:conic-gradient(from var(--l5-beam),transparent 0 70%,rgba(255,65,85,.7) 84%,#FFF 89.5%,rgba(255,65,85,0) 93%,transparent 93% 100%),var(--l5-rim);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
/* 카드 사이 꺾쇠(다음 단계로) */
.l5-join-step:not(:last-child)::after{content:"";position:absolute;z-index:1;top:50%;right:calc(var(--gap) / -2 - 7px);width:14px;height:14px;border-top:2px solid var(--t4);border-right:2px solid var(--t4);rotate:45deg;translate:-3px -50%}
/* 카드마다 빨간 테두리(2026-10-23 사용자 "각각 카드에 빨간색 테두리"). 04 는 빨간 바탕으로 칠했다가 같은 날 사용자 "이 카드는 그냥 전에거 그대로"로 옛 옅은 빨강 바탕 · 빨강 제목 · 빨강 단추로 되돌렸다 */
.l5-join-step--next{border-color:rgba(255,65,85,.22);background:linear-gradient(180deg,rgba(255,65,85,.09),rgba(255,65,85,.02) 60%,#131315);--l5-rim:linear-gradient(150deg,rgba(255,170,180,.42),rgba(255,65,85,.16) 40%,rgba(255,65,85,.08) 70%,rgba(255,65,85,.3))}
.l5-join-art{display:flex;align-items:center;justify-content:space-between;gap:4px;height:clamp(84px,12.4vh,124px)}
.l5-join-no{color:var(--t1);font-size:clamp(46px,4.6vw,70px);line-height:1;font-weight:850;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.l5-join-art svg{width:auto;height:100%;max-width:62%;flex-shrink:1;min-width:0}
.l5-join-copy{margin-top:clamp(16px,2.6vh,26px)}
.l5-join-copy h3{color:var(--t1);font-size:clamp(20px,1.9vw,28px);line-height:1.4;font-weight:750;letter-spacing:-.04em;word-break:keep-all}
.l5-join-copy p{margin-top:12px;color:var(--t3);font-size:clamp(14.5px,1.2vw,17px);line-height:1.65;letter-spacing:-.025em;word-break:keep-all}
.l5-join-step--next h3{color:var(--ac2)}
/* 자세히 알아보기 */
.l5-join-more{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:auto;padding:clamp(12px,1.7vh,15px) 16px;border:0;border-radius:12px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);color:var(--t2);font:inherit;font-size:clamp(14.5px,1.15vw,16.5px);font-weight:700;letter-spacing:-.02em;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}
.l5-join-copy{flex:1 0 auto;padding-bottom:clamp(18px,2.8vh,26px)}
.l5-join-more svg{width:18px;height:18px;transition:transform .2s var(--ease)}
.l5-join-more:focus-visible{outline:2px solid var(--ac2);outline-offset:2px}
.l5-join-step--next .l5-join-more{background:var(--ac);box-shadow:none;color:#fff}
@media (hover:hover){
  .l5-join-more:hover{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
  .l5-join-more:hover svg{transform:translateX(3px)}
  .l5-join-step--next .l5-join-more:hover{background:#FF5C6E}
}
.l5-join-bottom{text-align:center;margin-top:clamp(28px,4.4vh,46px)}
.l5-join-bottom .l5-btn{gap:24px;height:clamp(56px,7vh,64px);padding:0 38px;font-size:clamp(16px,1.25vw,18px)}
.l5-join-bottom .l5-btn span{font-size:22px;font-weight:500}

/* ── 모달 ── */
.l5-jm{width:min(680px,calc(100vw - 32px));max-height:min(88vh,780px);margin:auto;padding:0;border:1px solid var(--ln2);border-radius:18px;background:#141416;color:var(--t2);box-shadow:0 40px 90px -30px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.03);overflow:hidden}
.l5-jm[open]{display:flex;flex-direction:column}
.l5-jm::backdrop{background:rgba(6,6,7,.72);backdrop-filter:blur(6px)}
html:has(.l5-jm[open]){overflow:hidden}
.l5-jm-x{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.06);color:var(--t2);cursor:pointer}
.l5-jm-x svg{width:18px;height:18px}
.l5-jm-x:hover{background:rgba(255,255,255,.12);color:#fff}
.l5-jm-x:focus-visible,.l5-jm-nav:focus-visible{outline:2px solid var(--ac2);outline-offset:2px}
.l5-jm-no{margin:0;padding:26px 30px 0;color:var(--ac2);font-size:13px;font-weight:800;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.l5-jm-t{margin:6px 0 0;padding:0 64px 0 30px;color:#fff;font-size:clamp(22px,2vw,28px);font-weight:800;line-height:1.3;letter-spacing:-.04em;word-break:keep-all}
.l5-jm-body{flex:1 1 auto;min-height:0;margin-top:14px;padding:0 30px 6px;overflow:auto;overscroll-behavior:contain}
.l5-jm-body:focus-visible{outline:none}
/* 본문이 더 있으면 아래를 흐려 굴릴 수 있음을 알린다(join.js 가 .is-more) */
.l5-jm-body.is-more{-webkit-mask:linear-gradient(#000 calc(100% - 40px),transparent);mask:linear-gradient(#000 calc(100% - 40px),transparent)}
.l5-jm-intro{color:var(--t3);font-size:15px;line-height:1.7;word-break:keep-all}
.l5-jm-list{display:grid;gap:8px;margin:18px 0 0;padding:0;list-style:none;counter-reset:jm}
.l5-jm-list li{position:relative;padding:12px 16px 12px 46px;border-radius:12px;background:rgba(255,255,255,.035);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);counter-increment:jm}
.l5-jm-list li::before{content:counter(jm);position:absolute;left:14px;top:13px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgba(255,65,85,.14);color:var(--ac2);font-size:11.5px;font-weight:800}
.l5-jm-list b{display:block;color:#fff;font-size:15px;font-weight:750;letter-spacing:-.02em}
.l5-jm-list li>span{display:block;margin-top:4px;color:var(--t3);font-size:14px;line-height:1.6;word-break:keep-all}
.l5-jm-note{margin-top:14px;padding-left:12px;border-left:2px solid var(--ac);color:var(--t3);font-size:13px;line-height:1.6;word-break:keep-all}
.l5-jm-note b{margin-right:6px;color:var(--t2);font-weight:750}
.l5-jm .l5-ph{font-size:.92em}
.l5-jm-nw{white-space:nowrap}
.l5-jm-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 30px 24px;border-top:1px solid var(--ln);margin-top:18px}
.l5-jm-nav{display:inline-flex;align-items:center;gap:4px;padding:10px 6px;border:0;background:none;color:var(--t3);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.l5-jm-nav svg{width:16px;height:16px}
.l5-jm-nav:hover:not(:disabled){color:#fff}
.l5-jm-nav:disabled{opacity:.3;cursor:default}
.l5-jm-ext{min-height:44px;padding:0 18px;font-size:14px}
.l5-jm-ext[hidden]{display:none}
/* 캡처 안내(1 · 2단계): 넓은 모달 + 단계마다 제목 · 설명 · 캡처. 캡처를 누르면 원본 크기로 새 창 */
.l5-jm.is-wide{width:min(900px,calc(100vw - 32px));max-height:min(90vh,900px)}
.l5-jm-guide{display:grid;gap:28px;margin:22px 0 0;padding:0;list-style:none;counter-reset:jg}
.l5-jm-guide>li{counter-increment:jg}
.l5-jm-guide h4{display:flex;align-items:center;gap:10px;margin:0;color:#fff;font-size:17px;font-weight:750;letter-spacing:-.03em;word-break:keep-all}
.l5-jm-guide h4::before{content:counter(jg,decimal-leading-zero);display:grid;place-items:center;flex:none;width:30px;height:24px;border-radius:7px;background:rgba(255,65,85,.14);color:var(--ac2);font-size:12px;font-weight:800;letter-spacing:.02em}
.l5-jm-guide>li>p{margin:8px 0 0 40px;color:var(--t3);font-size:14.5px;line-height:1.65;word-break:keep-all}
.l5-jm-guide>li>p b{color:var(--t2);font-weight:700}
.l5-jm-shot{position:relative;display:block;margin:14px 0 0 40px;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.12),0 18px 40px -24px rgba(0,0,0,.9)}
.l5-jm-shot img{display:block;width:100%;height:auto}
.l5-jm-zoom{position:absolute;right:10px;bottom:10px;padding:6px 10px;border-radius:999px;background:rgba(15,15,15,.78);color:#fff;font-size:12px;font-weight:700;opacity:0;transition:opacity .2s}
.l5-jm-shot:hover .l5-jm-zoom,.l5-jm-shot:focus-visible .l5-jm-zoom{opacity:1}
.l5-jm-shot:focus-visible{outline:2px solid var(--ac2);outline-offset:3px}
.l5-jm-apps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0 0 40px;padding:0;list-style:none}
.l5-jm-apps figure{margin:0}
.l5-jm-apps img{display:block;width:100%;height:auto;border-radius:12px;background:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.l5-jm-apps figcaption{margin-top:8px;color:var(--t3);font-size:12.5px;line-height:1.45;text-align:center;word-break:keep-all}
.l5-jm-apps figcaption b{display:block;color:var(--ac2);font-size:12px;font-weight:800}
.l5-jm-guide+.l5-jm-note{margin-top:26px}
.l5-jm-shot.is-tall{max-width:420px}
.l5-jm-cap{margin:22px 0 0 40px;color:var(--t4,#6b6b70);font-size:12.5px;line-height:1.6;word-break:keep-all}
.l5-jm-cap+.l5-jm-note{margin-top:12px}
/* 캡처 확대(#l5-lb): 화면 전체, 이미지는 화면에 맞춰 보이고 누르면 원래 크기로 굴려 본다 */
.l5-lb{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(8,8,9,.97);color:var(--t2);overflow:hidden}
.l5-lb[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}
.l5-lb::backdrop{background:rgba(0,0,0,.5)}
.l5-lb-bar{display:flex;align-items:center;gap:16px;padding:14px 16px 10px 28px}
.l5-lb-t{flex:1 1 auto;min-width:0;margin:0;color:#fff;font-size:15px;font-weight:750;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.l5-lb-no{margin:0;color:var(--t3);font-size:13px;font-weight:800;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.l5-lb-x{display:grid;place-items:center;flex:none;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:var(--t2);cursor:pointer}
.l5-lb-x svg{width:20px;height:20px}
.l5-lb-x:hover{background:rgba(255,255,255,.16);color:#fff}
.l5-lb-view{display:grid;place-items:center;min-height:0;min-width:0;padding:6px 84px 10px;overflow:auto;overscroll-behavior:contain}
.l5-lb-view:focus-visible{outline:none}
.l5-lb .l5-lb-img{display:block;max-width:calc(100vw - 168px);max-height:calc(100dvh - 120px);width:auto;height:auto;border-radius:10px;background:#fff;box-shadow:0 30px 80px -30px rgba(0,0,0,.9);cursor:zoom-in}
.l5-lb.is-full .l5-lb-view{display:block}
.l5-lb.is-full .l5-lb-img{max-width:none;max-height:none;margin:0 auto;cursor:zoom-out}
.l5-lb-nav{position:absolute;top:50%;display:grid;place-items:center;width:52px;height:52px;margin-top:-26px;border:0;border-radius:50%;background:rgba(18,18,20,.8);box-shadow:0 0 0 1px rgba(255,255,255,.16),0 8px 24px -8px rgba(0,0,0,.8);color:#fff;cursor:pointer}
.l5-lb-nav svg{width:24px;height:24px}
.l5-lb-nav:hover:not(:disabled){background:rgba(44,44,48,.92)}
.l5-lb-nav:disabled{opacity:.2;cursor:default}
.l5-lb-prev{left:16px}
.l5-lb-next{right:16px}
.l5-lb-x:focus-visible,.l5-lb-nav:focus-visible{outline:2px solid var(--ac2);outline-offset:2px}
.l5-lb-hint{margin:0;padding:0 24px 16px;color:var(--t4);font-size:12.5px;text-align:center}
.l5-jm-apps a{display:block;border-radius:12px}
.l5-jm-apps a:focus-visible{outline:2px solid var(--ac2);outline-offset:3px}
.l5-jm-shot,.l5-jm-apps a{cursor:zoom-in}
@media (prefers-reduced-motion:no-preference){
  .l5-jm[open]{animation:l5-jm-in .32s var(--ease) both}
  .l5-jm[open]::backdrop{animation:l5-jm-fade .32s ease both}
  @keyframes l5-jm-in{from{opacity:0;translate:0 18px;scale:.98}}
  @keyframes l5-jm-fade{from{opacity:0}}
}

/* 900 안팎 높이(1440×900 브라우저 등): 큰 크기 그대로면 넘쳐 제목 · 여백 · 그림만 조금 줄인다 */
@media (min-width:760px) and (max-height:960px){
  .l5-join{padding-block:clamp(28px,4vh,36px)}
  .l5-join-head{margin-bottom:clamp(24px,3.6vh,34px)}
  .l5-join .l5-h2{font-size:clamp(56px,min(5.3vw,8.4vh),82px);line-height:1.18}
  .l5-join-art{height:clamp(80px,11vh,104px)}
  .l5-join-bottom{margin-top:clamp(24px,3.6vh,34px)}
}
@media (min-width:760px) and (max-height:800px){
  .l5-join{padding-block:24px}
  .l5-join-head{margin-bottom:20px}
  .l5-join .l5-h2{font-size:58px;line-height:1.16}
  .l5-join-step{padding:20px 22px 20px}
  .l5-join-art{height:76px}
  .l5-join-no{font-size:50px}
  .l5-join-copy{margin-top:14px;padding-bottom:16px}
  .l5-join-copy h3{font-size:21px}
  .l5-join-copy p{margin-top:8px;font-size:14.5px;line-height:1.55}
  .l5-join-more{padding:11px 14px;font-size:15px}
  .l5-join-bottom{margin-top:20px}
  .l5-join-bottom .l5-btn{height:56px}
}
@media (min-width:760px) and (max-width:999px){
  .l5-join-path{grid-template-columns:repeat(2,minmax(0,1fr))}
  .l5-join-step:nth-child(2)::after{display:none}
}
@media (max-width:759px){
  .l5-join{padding-block:64px 56px}
  .l5-join-head{margin-bottom:32px}
  .l5-join .l5-h2{font-size:clamp(32px,8.6vw,52px);line-height:1.35}
  .l5-join-intro{display:inline-block;max-width:280px;font-size:.72em;line-height:1.45;margin-bottom:6px}
  .l5-join-path{grid-template-columns:minmax(0,1fr);--gap:22px}
  .l5-join-step:not(:last-child)::after{top:auto;right:auto;left:50%;bottom:calc(var(--gap) / -2 - 4px);rotate:135deg;translate:-50% 0}
  .l5-join-art{height:64px}
  .l5-join-no{font-size:40px}
  .l5-join-copy h3{font-size:22px}
  .l5-join-copy p{font-size:15.5px}
  .l5-join-more{font-size:15.5px;padding:14px 16px}
  .l5-join-copy h3 br,.l5-join-copy p br{display:none}
  .l5-join-bottom{margin-top:30px}
  .l5-join-bottom .l5-btn{width:100%;max-width:350px;gap:18px;padding-inline:16px}
  .l5-jm{width:100vw;max-width:none;max-height:88vh;margin:auto 0 0;border-radius:18px 18px 0 0;border-bottom:0}
  .l5-jm-no{padding:22px 22px 0}
  .l5-jm-t{padding:0 60px 0 22px;font-size:22px}
  .l5-jm-body{padding:0 22px 6px}
  .l5-jm-foot{padding:14px 22px 20px}
  .l5-jm-foot{flex-wrap:wrap;row-gap:4px}
  .l5-jm-ext{order:-1;flex:1 0 100%;padding:0 14px;font-size:14px}
  .l5-jm.is-wide{width:100vw;max-height:92vh}
  .l5-jm-guide{gap:24px}
  .l5-jm-guide>li>p,.l5-jm-shot,.l5-jm-cap{margin-left:0}
  .l5-jm-apps{display:flex;gap:10px;margin:14px -22px 0;padding:0 22px 4px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:22px;scrollbar-width:none}
  .l5-jm-apps li{flex:none;width:38%;scroll-snap-align:start}
  .l5-lb-bar{padding:10px 10px 8px 18px}
  .l5-lb-view{padding:4px 12px 8px}
  .l5-lb .l5-lb-img{max-width:calc(100vw - 24px);max-height:calc(100dvh - 150px);border-radius:8px}
  .l5-lb-nav{top:auto;bottom:10px;margin-top:0;width:44px;height:44px}
  .l5-lb-prev{left:12px}.l5-lb-next{right:12px}
  .l5-lb-hint{padding:4px 64px 24px}
}
