/* 작품 제출(#/events/…/work · web/ui/eventSubmit*.js · eventWork*.js · spec_shudpa §9 PR-B1 · 10-08 오너 승인 시안) — event.css 의 토큰 · 표면 · 반경만 쓴다.
 *   흰 알약 = 주 행동 하나(띠의 [작품 제출하기] · 모달의 [다음]/[제출]). 그라데이션은 포스터 · 썸네일 바탕에만(DESIGN — 시그니처 전용).
 *   글자 크기는 사다리 값만(clamp 없음) · 본문 단(12~15px) 자간은 토큰(typeScale 가드). event.css 뒤에 싣는다(같은 특이도 — 순서로 덮는다). */

/* ── 탭 점 · 띠 상태 칩 ── */
body.shell-v2 .ev-tab-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--positive); }
body.shell-v2 .ev-tab--link:disabled { opacity: .6; cursor: progress; } /* SD28 — 이동 중(중복 클릭 막음) */
body.shell-v2 .ev-mine-st { display: inline-flex; align-items: center; margin-right: 8px; padding: 2px 8px; border-radius: var(--r-pill); background: rgba(34,197,94,.12); color: #7ee2a2; font-size: 12px; font-weight: 600; letter-spacing: var(--ls-footnote); vertical-align: 1px; }
body.shell-v2 .ev-mine-st--lock { background: rgba(255,255,255,.06); color: var(--ink-48); }

/* ── '작품' 탭 · 제출 전(시안 s1) ── */
body.shell-v2 .ev-sub-pre { display: grid; grid-template-columns: 168px minmax(0, 1fr); gap: 32px; align-items: center; margin-top: 28px; padding: 28px; border-radius: var(--r-xl); background: var(--surface-1); box-shadow: inset 0 0 0 1px var(--hairline); }
body.shell-v2 .ev-sub-pre .ev-poster { aspect-ratio: 9 / 16; border-radius: 16px; }
body.shell-v2 .ev-sub-pre-text { min-width: 0; }
body.shell-v2 .ev-sub-need { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 22px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--hairline); }
body.shell-v2 .ev-sub-need li { display: grid; gap: 4px; padding: 16px 16px 0 0; min-width: 0; }
body.shell-v2 .ev-sub-need b { font-family: var(--font-heading); font-size: 17px; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
body.shell-v2 .ev-sub-need span { font-size: var(--fs-fine); color: var(--ink-48); }
body.shell-v2 .ev-sub-miss { display: flex; align-items: center; gap: 16px; margin-top: 28px; padding: 20px 22px; border-radius: var(--r-xl); background: var(--surface-1); box-shadow: inset 0 0 0 1px var(--hairline); }
body.shell-v2 .ev-sub-miss p { margin: 0; font-size: var(--fs-caption); color: var(--ink-80); }
body.shell-v2 .ev-sub-miss .ev-thumb { width: 44px; flex: none; }

/* ── 제출 모달(620px) ── */
body.shell-v2 dialog.ev-dialog.ev-dialog--submit { width: min(620px, calc(100% - 32px)); }
/* 버튼 줄은 늘 화면 안 — 대화상자 높이는 event.css 의 max-height(calc(100dvh - 위 여백 - 16px))가 정하고, 넘치는 몫은 본문만 안에서 스크롤한다
 *   (tray-body · gd-body 와 같은 flex:1 · min-height:0 판). 1440×900 에서 1단계(788px)의 [다음]이 y=898 로 대화상자 스크롤 밑에 있었다(독립 검증 10-09).
 *   좌우 4px 여백 = 줄의 포커스 링(--ring-focus 4px)이 스크롤 상자에 잘리지 않게 — 같은 만큼 바깥 여백을 당겨 폭은 그대로. */
body.shell-v2 dialog.ev-dialog--submit .ev-sub-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin: 0 -4px; padding: 0 4px 4px; }
body.shell-v2 dialog.ev-dialog--submit .ev-dialog-foot { flex: none; }
body.shell-v2 .ev-steps { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-family: var(--font-heading); font-size: 12px; font-weight: 700; letter-spacing: var(--ls-footnote); color: var(--ink-48); }
body.shell-v2 .ev-steps[hidden] { display: none; }
body.shell-v2 .ev-steps i { display: block; width: 18px; height: 3px; border-radius: 2px; background: #2e2e2e; }
body.shell-v2 .ev-steps i.on { background: var(--ink); }
body.shell-v2 .ev-steps span { margin-left: 4px; }
body.shell-v2 .ev-sub-loading { display: grid; gap: 6px; margin-top: 14px; }
body.shell-v2 .ev-sub-skel { height: 116px; border-radius: var(--r-lg); }
/* 1단계 안내 네 줄 */
body.shell-v2 .ev-guide { display: block; margin-top: 14px; padding: 12px 14px; border-radius: var(--r-lg); background: var(--surface-2); color: var(--ink-80); font-size: var(--fs-caption); line-height: 1.5; }
body.shell-v2 .ev-guide-h { display: block; font-weight: 600; color: var(--ink); cursor: pointer; list-style: none; }
body.shell-v2 .ev-guide-h::-webkit-details-marker { display: none; }
body.shell-v2 .ev-guide-h:focus-visible { outline: none; box-shadow: var(--ring-focus); border-radius: 6px; }
body.shell-v2 .ev-guide-list { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 4px; }
body.shell-v2 .ev-guide-list li { overflow-wrap: anywhere; }
body.shell-v2 .ev-pick { display: grid; gap: 18px; margin-top: 14px; }
body.shell-v2 .ev-pick-proj-h { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; min-width: 0; }
body.shell-v2 .ev-pick-proj-h b { min-width: 0; font-family: var(--font-heading); font-size: var(--fs-body); font-weight: 700; letter-spacing: var(--ls-body); color: var(--ink); overflow-wrap: anywhere; }
body.shell-v2 .ev-owner { display: inline-flex; align-items: center; gap: 6px; flex: none; margin-left: auto; padding: 3px 9px 3px 3px; border-radius: var(--r-pill); background: rgba(255,255,255,.06); color: var(--ink-80); font-size: 12px; letter-spacing: var(--ls-footnote); white-space: nowrap; }
body.shell-v2 .ev-owner .ev-av { width: 20px; height: 20px; margin: 0; font-size: 10px; box-shadow: none; }
body.shell-v2 .ev-pick-list { display: grid; gap: 6px; }
body.shell-v2 .ev-pick-row { position: relative; display: grid; grid-template-columns: 54px minmax(0, 1fr) 22px; gap: 14px; align-items: center; width: 100%; padding: 10px 14px 10px 10px; border: 0; border-radius: var(--r-lg); background: var(--surface-2); color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
body.shell-v2 .ev-pick-row:focus-visible { outline: none; box-shadow: var(--ring-focus); }
body.shell-v2 .ev-pick-row.is-on { background: #232323; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.9); }
body.shell-v2 .ev-pick-row[aria-disabled="true"] { cursor: default; background: transparent; box-shadow: inset 0 0 0 1px var(--hairline); }
body.shell-v2 .ev-pick-row[aria-disabled="true"] .ev-pick-t { color: var(--ink-48); }
body.shell-v2 .ev-pick-text { min-width: 0; }
body.shell-v2 .ev-pick-t { display: block; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
body.shell-v2 .ev-pick-s { display: flex; flex-wrap: wrap; gap: 2px 10px; margin-top: 3px; font-size: var(--fs-fine); color: var(--ink-48); font-variant-numeric: tabular-nums; }
body.shell-v2 .ev-pick-why { display: block; margin-top: 5px; font-size: var(--fs-fine); color: #f5c26b; }
body.shell-v2 .ev-pick-why kbd { margin: 0 2px; padding: 0 6px; border-radius: 5px; background: rgba(255,255,255,.08); color: var(--ink-80); font: inherit; font-size: 12px; }
body.shell-v2 .ev-radio { width: 20px; height: 20px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.3); justify-self: end; }
body.shell-v2 .ev-pick-row.is-on .ev-radio { background: #fff; box-shadow: inset 0 0 0 6px #fff, inset 0 0 0 20px #000; }
body.shell-v2 .ev-pick-row[aria-disabled="true"] .ev-radio { box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.1); }

/* 썸네일 — 렌더본 첫 장면(<video>) · 바탕은 타일 색(영상이 늦거나 못 받아도 빈 칸이 아니다) */
body.shell-v2 .ev-thumb { position: relative; display: block; overflow: hidden; width: 54px; aspect-ratio: 9 / 16; border-radius: 9px; --tone: var(--g-magenta); --tone-deep: #3b1250; background: linear-gradient(180deg, color-mix(in srgb, var(--tone) 55%, #000) 0%, var(--tone-deep) 100%); }
body.shell-v2 .ev-thumb--b { --tone: var(--g-violet); --tone-deep: #18113f; }
body.shell-v2 .ev-thumb--c { --tone: var(--g-orange); --tone-deep: #4a1d08; }
body.shell-v2 .ev-thumb--none { background: #101010 repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 6px, transparent 6px 12px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); }
body.shell-v2 .ev-thumb-v { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
body.shell-v2 .ev-thumb-dur { position: absolute; right: 4px; bottom: 4px; z-index: 2; padding: 1px 4px; border-radius: 4px; background: rgba(0,0,0,.65); color: #fff; font-size: 10px; font-weight: 600; font-variant-numeric: tabular-nums; }
body.shell-v2 .ev-thumb-dur--bad { background: var(--g-coral); }
body.shell-v2 .ev-thumb-x { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.4); font-size: 11px; font-weight: 600; }

/* 2단계 — 고른 영상 · 입력 · 팀원 · 동의 */
body.shell-v2 .ev-picked { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-top: 14px; padding: 8px; border-radius: var(--r-lg); background: var(--surface-2); }
body.shell-v2 .ev-picked .ev-thumb { width: 40px; border-radius: 7px; }
body.shell-v2 .ev-picked .ev-text-btn { margin: 0; color: var(--ink-80); }
body.shell-v2 .ev-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
body.shell-v2 .ev-label-row .ev-label { margin-bottom: 8px; }
body.shell-v2 .ev-label-row .ev-count { margin: 0; }
body.shell-v2 .ev-crew { display: flex; flex-wrap: wrap; gap: 8px; }
body.shell-v2 .ev-crew-p { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; border-radius: var(--r-pill); background: var(--surface-2); color: var(--ink); font-size: var(--fs-caption); font-weight: 600; letter-spacing: var(--ls-caption); }
body.shell-v2 .ev-crew-p small { font-weight: 400; color: var(--ink-48); font-size: 12px; }
body.shell-v2 .ev-crew-p .ev-av { width: 26px; height: 26px; margin: 0; font-size: 11px; box-shadow: none; }
body.shell-v2 .ev-crew-p--bad { box-shadow: inset 0 0 0 1.5px rgba(255,85,119,.7); }
body.shell-v2 .ev-crew-p--bad .ev-av { opacity: .45; }
/* 팀원 입력 줄(10-28 오너) — 칩(본인 외 ×) · n/정원 · 검색 입력 · 결과 패널 · 칩 아래 오류 */
body.shell-v2 .ev-crew-wrap { margin-bottom: 4px; }
body.shell-v2 .ev-crew-item { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; max-width: 100%; }
body.shell-v2 .ev-crew-x { display: grid; place-items: center; width: 22px; height: 22px; margin: 0 -6px 0 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--ink-48); font: inherit; font-size: var(--fs-caption); line-height: 1; cursor: pointer; }
body.shell-v2 .ev-crew-x:hover { background: rgba(255,255,255,.1); color: var(--ink); }
body.shell-v2 .ev-crew-x:focus-visible { outline: none; box-shadow: var(--ring-focus); }
body.shell-v2 .ev-crew-err { margin: 0 0 0 4px; font-size: var(--fs-fine); line-height: 1.45; color: #ffb3c1; overflow-wrap: anywhere; }
body.shell-v2 .ev-msearch-in { margin-top: 10px; }
body.shell-v2 .ev-msearch-in:disabled { opacity: .6; cursor: default; }
body.shell-v2 .ev-msearch { margin-top: 6px; max-height: 232px; overflow-y: auto; overscroll-behavior: contain; border-radius: var(--r-lg); background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--hairline); }
body.shell-v2 .ev-msearch[hidden] { display: none; }
body.shell-v2 .ev-msearch-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; width: 100%; padding: 10px 14px; border: 0; background: transparent; color: var(--ink); font: inherit; font-size: var(--fs-caption); text-align: left; cursor: pointer; }
body.shell-v2 .ev-msearch-row b { font-weight: 600; overflow-wrap: anywhere; }
body.shell-v2 .ev-msearch-row span { font-size: var(--fs-fine); color: var(--ink-48); overflow-wrap: anywhere; }
body.shell-v2 .ev-msearch-row:hover { background: rgba(255,255,255,.06); }
body.shell-v2 .ev-msearch-row:focus-visible { outline: none; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.9); }
body.shell-v2 .ev-msearch-note { margin: 0; padding: 12px 14px; font-size: var(--fs-fine); color: var(--ink-48); }
/* 작품 소개(10-28 오너) — 한 줄 소개 아래 여러 줄 칸(선택) · 칸 아래 오류. 후기 칸과 같은 토큰 */
body.shell-v2 .ev-intro { margin-top: 4px; }
body.shell-v2 .ev-intro-in { display: block; }
body.shell-v2 textarea.ev-input.ev-intro-in { min-height: 96px; }
body.shell-v2 .ev-intro-err { margin: 6px 0 0 4px; }
body.shell-v2 .ev-intro-err[hidden] { display: none; }
/* 제품 경험 후기(10-28 오너) — 소제목 · 안내 한 줄 · 두 칸(선택) · 칸 아래 오류. 토큰은 위 팀원 줄과 같은 것만 */
body.shell-v2 .ev-review { margin-top: 20px; }
body.shell-v2 .ev-review-head { font-size: var(--fs-fine); font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
body.shell-v2 .ev-review-note { margin: 4px 0 0; }
body.shell-v2 .ev-opt-tag { margin-left: 6px; font-weight: 400; font-size: 12px; color: var(--ink-48); }
body.shell-v2 .ev-review-in { display: block; }
body.shell-v2 textarea.ev-input.ev-review-in { min-height: 84px; }
body.shell-v2 .ev-review-err { margin: 6px 0 0 4px; }
body.shell-v2 .ev-review-err[hidden] { display: none; }
body.shell-v2 .ev-consents { display: grid; gap: 8px; margin-top: 4px; }
body.shell-v2 .ev-check { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; align-items: start; padding: 14px; border-radius: var(--r-lg); background: var(--surface-2); color: var(--ink-80); font-size: var(--fs-caption); line-height: 1.5; cursor: pointer; }
body.shell-v2 .ev-check.is-on { color: var(--ink); }
body.shell-v2 .ev-check.is-missing { box-shadow: inset 0 0 0 1.5px rgba(255,85,119,.7); }
body.shell-v2 .ev-check-box { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; margin: 1px 0 0; border-radius: 6px; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.3); background: transparent center / 12px no-repeat; cursor: pointer; }
body.shell-v2 .ev-check-box:checked { box-shadow: none; background-color: #fff; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path d='M2.5 6.2 5 8.6l4.5-5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>"); }
body.shell-v2 .ev-check-box:focus-visible { outline: none; box-shadow: var(--ring-focus); }
body.shell-v2 dialog.ev-dialog[data-modality="pointer"] .ev-check-box:focus-visible:checked { box-shadow: none; } /* 마우스로 누른 뒤엔 링 없이(event.css 와 같은 규칙) */
body.shell-v2 dialog.ev-dialog[data-modality="pointer"] .ev-check-box:focus-visible:not(:checked) { box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.3); }

/* 오류 — 누가 · 어떻게(팀원 미가입) / 지금 길이 vs 허용 구간(길이) */
body.shell-v2 .ev-err { margin-top: 14px; padding: 14px 16px; border-radius: var(--r-md); background: rgba(255,85,119,.09); box-shadow: inset 0 0 0 1px rgba(255,85,119,.25); }
body.shell-v2 .ev-err-t { font-weight: 650; color: #ffb3c1; overflow-wrap: anywhere; }
body.shell-v2 .ev-err-s { margin: 3px 0 0; font-size: var(--fs-caption); line-height: 1.5; color: var(--ink-80); }
body.shell-v2 .ev-err .ev-row { margin-top: 10px; }
body.shell-v2 .ev-dur { position: relative; height: 28px; margin: 14px 0 12px; }
body.shell-v2 .ev-dur-track { position: absolute; left: 0; right: 0; top: 8px; height: 6px; border-radius: 3px; background: rgba(255,255,255,.08); }
body.shell-v2 .ev-dur-ok { position: absolute; top: 8px; height: 6px; border-radius: 3px; background: rgba(34,197,94,.55); }
body.shell-v2 .ev-dur-now { position: absolute; top: 2px; width: 3px; height: 18px; border-radius: 2px; background: var(--g-coral); box-shadow: 0 0 0 3px rgba(255,85,119,.2); translate: -50% 0; }
body.shell-v2 .ev-dur-lab { position: absolute; top: 22px; font-size: 11px; color: var(--ink-48); font-variant-numeric: tabular-nums; translate: -50% 0; white-space: nowrap; }
body.shell-v2 .ev-dur-lab--now { color: #ffb3c1; font-weight: 700; }
body.shell-v2 .ev-dur-lab--now.is-after { translate: -20% 0; }
body.shell-v2 .ev-dur-lab--now.is-before { translate: -80% 0; }

/* 빈 상태(모달 안 · 시안 s5) — 머리 줄(단계 · 제목)이 가운데로 */
body.shell-v2 dialog.ev-dialog--submit.is-empty { text-align: center; }
body.shell-v2 dialog.ev-dialog--submit.is-empty .ev-sub-empty-poster { width: 108px; aspect-ratio: 9 / 16; margin: 4px auto 18px; border-radius: 14px; padding: 12px; text-align: left; }
body.shell-v2 dialog.ev-dialog--submit.is-empty .ev-sub-empty-poster .ev-poster-name { font-size: 13px; letter-spacing: var(--ls-fine); }
body.shell-v2 dialog.ev-dialog--submit.is-empty .ev-dialog-sub { max-width: 30em; margin: 4px auto 0; }

/* ── 제출 완료 카드(시안 s4 · s6) ── */
body.shell-v2 .ev-work { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 44px; align-items: center; margin-top: 28px; padding: 28px; border-radius: 26px; background: var(--surface-1); box-shadow: inset 0 0 0 1px var(--hairline); }
body.shell-v2 .ev-work-poster { position: relative; aspect-ratio: 9 / 16; border-radius: 20px; overflow: hidden; background: #000; box-shadow: 0 30px 60px rgba(0,0,0,.5), inset 0 0 0 1px rgba(255,255,255,.08); }
body.shell-v2 .ev-work-poster .ev-poster { position: absolute; inset: 0; border-radius: inherit; padding: 18px; }
body.shell-v2 .ev-work-poster .ev-poster-name { font-size: 34px; line-height: 1; letter-spacing: -0.04em; }
body.shell-v2 .ev-work-v { object-fit: cover; }
body.shell-v2 .ev-play { position: absolute; left: 50%; top: 44%; z-index: 3; display: grid; place-items: center; width: 64px; height: 64px; translate: -50% -50%; border: 0; border-radius: 50%; background: rgba(255,255,255,.16); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.28); color: #fff; cursor: pointer; }
body.shell-v2 .ev-play svg { margin-left: 4px; fill: currentColor; }
body.shell-v2 .ev-play:focus-visible { outline: none; box-shadow: var(--ring-focus); }
body.shell-v2 .ev-work-dur { position: absolute; right: 14px; top: 14px; z-index: 3; padding: 3px 8px; border-radius: var(--r-pill); background: rgba(0,0,0,.5); color: #fff; font-size: 12px; font-weight: 600; letter-spacing: var(--ls-footnote); font-variant-numeric: tabular-nums; }
/* 재생 중 — 덮개 · 장식을 걷고 영상 컨트롤을 맨 위로 */
body.shell-v2 .ev-work-poster.is-playing .ev-poster-media { z-index: 4; filter: none; object-fit: contain; }
body.shell-v2 .ev-work-poster.is-playing :is(.ev-play, .ev-work-dur, .ev-poster-tint, .ev-poster-top, .ev-poster-bottom) { display: none; }
body.shell-v2 .ev-work-info { display: flex; flex-direction: column; min-width: 0; }
body.shell-v2 .ev-work-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
body.shell-v2 .ev-work-title { margin: 14px 0 12px; font-family: var(--font-heading); font-size: var(--fs-display-md); font-weight: 800; line-height: 1.12; letter-spacing: -0.04em; color: var(--ink); overflow-wrap: anywhere; }
body.shell-v2 .ev-work-log { max-width: 30em; margin: 0; font-size: 18px; line-height: 1.55; letter-spacing: -0.2px; color: var(--ink-80); overflow-wrap: anywhere; }
body.shell-v2 .ev-work-intro { max-width: 36em; margin: 12px 0 0; font-size: var(--fs-caption); line-height: 1.6; color: var(--ink-80); white-space: pre-line; overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; } /* 길면 3줄 말줄임(펼치기 없음) */
body.shell-v2 .ev-credits { display: grid; grid-template-columns: repeat(3, minmax(0, auto)); justify-content: start; gap: 18px 44px; margin: 32px 0 0; padding: 22px 0 0; border-top: 1px solid var(--hairline); }
body.shell-v2 .ev-credit { display: grid; gap: 6px; min-width: 0; }
body.shell-v2 .ev-credit dt { font-family: var(--font-heading); font-size: 10px; font-weight: 700; letter-spacing: .24em; color: var(--ink-48); }
body.shell-v2 .ev-credit dd { margin: 0; font-family: var(--font-heading); font-size: 17px; font-weight: 700; letter-spacing: -0.02em; color: var(--ink); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
body.shell-v2 .ev-credit dd small { display: block; margin-top: 2px; font-family: var(--font-sans); font-size: var(--fs-fine); font-weight: 400; letter-spacing: var(--ls-fine); color: var(--ink-48); }
body.shell-v2 .ev-work-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 32px; }
body.shell-v2 .ev-work-foot .ev-muted { padding: 0; }
body.shell-v2 .ev-work-foot .ev-text-btn { margin-left: auto; }
body.shell-v2 .ev-lock { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--r-pill); background: rgba(255,255,255,.06); color: var(--ink-80); font-size: 12px; font-weight: 600; letter-spacing: var(--ls-footnote); }
/* 마감 뒤 — 흑백 · 덮개 없음(재생은 된다) */
body.shell-v2 .ev-work--locked .ev-work-poster .ev-poster-media { filter: grayscale(1) brightness(.8); }
body.shell-v2 .ev-work--locked .ev-work-poster .ev-poster-tint { display: none; }
/* 가로(16:9) 렌더본 — 포스터가 가로로 넓어지고 정보가 옆(넓은 화면) · 아래(좁은 화면)로 */
body.shell-v2 .ev-work--wide { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 36px; }
body.shell-v2 .ev-work--wide .ev-work-poster { aspect-ratio: 16 / 9; }
body.shell-v2 .ev-work--wide .ev-credits { grid-template-columns: repeat(2, minmax(0, auto)); gap: 18px 32px; }

@media (max-width: 900px) {
  body.shell-v2 .ev-work, body.shell-v2 .ev-work--wide { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  body.shell-v2 .ev-work-poster { width: min(300px, 100%); justify-self: center; }
  body.shell-v2 .ev-work--wide .ev-work-poster { width: 100%; }
}
@media (max-width: 600px) {
  /* 제작 기간엔 탭이 넷 — 390 폭 영어 · 중국어에서 마지막 탭이 잘리지 않게 간격만 줄인다(높이 · 글자 크기는 그대로) */
  body.shell-v2 .ev-tabs { gap: 0; }
  body.shell-v2 .ev-tab { padding: 0 10px; }
  body.shell-v2 .ev-sub-pre { grid-template-columns: 110px minmax(0, 1fr); gap: 18px; padding: 18px; align-items: start; }
  body.shell-v2 .ev-sub-pre .ev-poster { border-radius: 12px; padding: 9px; }
  body.shell-v2 .ev-sub-pre .ev-poster-name { font-size: 13px; }
  body.shell-v2 .ev-sub-pre .ev-teamtitle { margin-top: 0; }
  body.shell-v2 .ev-sub-need { margin-top: 14px; }
  body.shell-v2 .ev-sub-need b { font-size: 15px; letter-spacing: var(--ls-body); white-space: nowrap; }
  body.shell-v2 .ev-work { padding: 16px 16px 20px; border-radius: 22px; }
  body.shell-v2 .ev-work-poster { width: 100%; max-width: 260px; }
  body.shell-v2 .ev-work-title { font-size: var(--fs-title-1); margin-top: 10px; }
  body.shell-v2 .ev-work-log { font-size: 16px; }
  body.shell-v2 .ev-credits, body.shell-v2 .ev-work--wide .ev-credits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; margin-top: 24px; }
  body.shell-v2 .ev-work-foot { padding-top: 24px; }
  body.shell-v2 .ev-work-foot .btn { flex: 1 1 0; justify-content: center; }
  body.shell-v2 .ev-work-foot .ev-text-btn { flex: 1 1 100%; margin: 0; text-align: center; }
  body.shell-v2 .ev-pick-row { grid-template-columns: 46px minmax(0, 1fr) 20px; gap: 12px; padding: 8px 12px 8px 8px; }
  body.shell-v2 .ev-pick-row .ev-thumb { width: 46px; }
  body.shell-v2 .ev-owner { margin-left: 0; }
  body.shell-v2 .ev-pick-proj-h { flex-wrap: wrap; }
  body.shell-v2 .ev-sub-miss { align-items: flex-start; }
}
