/* ============================================================
   ENDOLPHIN — SOOP 방송국 페이지 (숲/soop.css)   2026-09-17 전면 개편
   ------------------------------------------------------------
   기준: 주인님 시안 '숲메인.png' (바탕화면) — 검정 + 핑크/보라 조명,
         얼굴이 가장 강한 시선, 왼쪽 ENDOLPHIN 글씨.
   ⚠️ 이 파일은 SOOP 페이지(숲/index.html)만 씁니다.
      <html data-page="soop"> 일 때만 색 토큰을 어둡게 바꾸므로
      공통 헤더·푸터(shared/*.css)는 고치지 않았습니다.
   ⚠️ 라이트/다크 테마 버튼과 상관없이 이 페이지는 늘 어둡습니다.
   ============================================================ */

/* ── 색 토큰 — 이 페이지에서만 ─────────────────────────────
   :root[data-page] (0,2,0) 이 theme.css 의 html[data-theme] (0,1,1) 보다 셉니다 */
:root[data-page="soop"]{
  --st-bg:#05060a;  --st-bg2:#0b0a16;  --st-bg3:#14102a;
  --st-panel:rgba(255,255,255,.03);
  --st-line:rgba(255,255,255,.08); --st-line2:rgba(255,255,255,.14);
  --st-ink:#f6f2f8; --st-ink2:#bdb5c8; --st-ink3:#81798f;
  --st-pink:#ff5fa8; --st-pink2:#ff9ccb; --st-violet:#a47dff;

  /* 공통 헤더·푸터가 읽는 토큰도 어둡게 */
  --w-bg:#05060a; --w-bg2:#0b0a16; --w-card:#100d1d;
  --w-line:rgba(255,255,255,.08); --w-line2:rgba(255,255,255,.14);
  --w-ink:#f6f2f8; --w-ink2:#bdb5c8; --w-ink3:#81798f;
  --w-pink:#ff6aae; --w-pink-d:#ff9ccb; --w-pink-s:rgba(255,95,168,.12);

  /* 헤더가 body 여백만큼 밖으로 나가는 값 — 이 페이지는 body 여백 0 */
  --page-pad-t:0px; --page-pad-l:0px; --page-pad-r:0px;

  background:#05060a !important; background-image:none !important;
  color-scheme:dark;
}

*{ box-sizing:border-box; margin:0; padding:0; }
body.st{ font-family:'Pretendard','Malgun Gothic',sans-serif; line-height:1.6;
  color:var(--st-ink); background:var(--st-bg); -webkit-font-smoothing:antialiased; overflow-x:hidden; }
:root[data-page="soop"] body.st{ background:var(--st-bg) !important; color:var(--st-ink) !important; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }

/* 공통 헤더 — 이 페이지에서만 어두운 유리 */
:root[data-page="soop"] .nav{ background:rgba(5,6,10,.78); border-bottom:1px solid rgba(255,255,255,.06); }
@media (max-width:900px){
  /* 모바일 메뉴 오른쪽 '더 있어요' 흐림 — 공통은 흰색이라 이 페이지에서만 어둡게 */
  :root[data-page="soop"] .nav-more::before{
    background:linear-gradient(90deg, rgba(5,6,10,0) 0%, rgba(5,6,10,.92) 55%, #05060a 100%); }
}

.st-in{ max-width:1320px; margin:0 auto; padding-left:40px; padding-right:40px; }

/* ══ ① HERO — 시안 한 장이 화면 폭 가득 ═══════════════════════ */
.st-hero{ position:relative; background:#05060a; overflow:hidden; }
.st-pic{ display:block; position:relative; }
.st-pic img{ width:100%; height:auto; aspect-ratio:1888 / 833; object-fit:cover; object-position:center 30%;
  max-height:calc(100vh - 150px); min-height:520px; }
/* 아래쪽을 검정으로 녹여 아래 콘텐츠와 이어지게 */
.st-hero::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:22%; pointer-events:none;
  background:linear-gradient(to bottom, rgba(5,6,10,0) 0%, rgba(5,6,10,.75) 70%, #05060a 100%); }
/* PC: 글씨는 그림 안에 있으므로 화면에서 숨김(검색·스크린리더용) */
.st-hero-txt{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.st-kicker{ font-size:12px; font-weight:700; letter-spacing:.42em; color:var(--st-ink2); }
.st-title{ font-family:'Playfair Display',Georgia,serif; font-weight:800; color:#fff;
  background:linear-gradient(100deg,#ffffff 0%,#ffe6f2 50%,#ff9ccb 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.st-lead{ font-weight:600; color:var(--st-ink); }
.st-sub{ color:var(--st-ink2); }
.st-sub i{ font-style:normal; color:var(--st-pink2); }

/* ══ ② LIVE / OFFLINE — 히어로 바로 아래 긴 바 ═══════════════ */
.st-live-wrap{ position:relative; z-index:3; margin-top:-26px; }
.stl{ display:flex; align-items:center; gap:22px; min-height:78px; padding:14px 16px 14px 22px;
  border-radius:18px; background:rgba(14,11,26,.86); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--st-line); transition:border-color .2s, transform .2s; }
a.stl:hover{ border-color:var(--st-line2); transform:translateY(-2px); }
.stl-pill{ flex:0 0 auto; display:inline-flex; align-items:center; gap:9px; padding:8px 15px; border-radius:999px;
  font-size:13px; font-weight:900; letter-spacing:.12em; color:var(--st-ink2); border:1px solid var(--st-line2); }
.stl-pill i{ width:9px; height:9px; border-radius:50%; border:1.5px solid currentColor; }
.stl-msg{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.stl-msg b{ font-size:17px; font-weight:800; color:var(--st-ink); letter-spacing:-.2px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.stl-msg small{ font-size:13.5px; color:var(--st-ink3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.stl-go{ flex:0 0 auto; font-size:14px; font-weight:800; color:var(--st-ink); padding:12px 20px; border-radius:13px;
  background:rgba(255,255,255,.06); transition:background .2s; }
a.stl:hover .stl-go{ background:rgba(255,255,255,.1); }
.stl.wait .stl-msg b{ color:var(--st-ink3); font-weight:600; }
.stl.on{ border-color:rgba(255,95,168,.5);
  background:linear-gradient(100deg, rgba(255,61,140,.2) 0%, rgba(14,11,26,.88) 48%);
  box-shadow:0 10px 40px rgba(255,61,140,.12); }
.stl.on .stl-pill{ color:#fff; border-color:transparent; background:linear-gradient(135deg,#ff3d8c,#ff72b6); }
.stl.on .stl-pill i{ border:0; background:#fff; animation:stBlink 1.2s infinite; }
.stl.on .stl-go{ color:#fff; background:linear-gradient(135deg,#ff3d8c,#b664ff); }
@keyframes stBlink{ 50%{ opacity:.25; } }

/* ══ ③ 방송 메인 콘텐츠 — 한 화면에 밀도 있게 ═══════════════════ */
.st-main{ padding-top:36px; padding-bottom:10px; }
.st-grid{ display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); gap:20px 22px; }
.st-sch{ grid-column:1 / 5;  grid-row:1; }
.st-rec{ grid-column:5 / 13; grid-row:1; }
.st-yt { grid-column:1 / 8;  grid-row:2; }
.st-com{ grid-column:8 / 13; grid-row:2; }
.st-sch, .st-rec, .st-yt, .st-com{ min-width:0; padding:20px 22px 18px; border-radius:20px;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012)); border:1px solid var(--st-line); }

.st-h{ display:flex; align-items:baseline; gap:10px; margin-bottom:12px; }
.st-h h2{ font-size:17px; font-weight:800; letter-spacing:-.3px; color:var(--st-ink); }
.st-h .en{ font-size:10px; font-weight:800; letter-spacing:.26em; color:var(--st-pink2); }
.st-more{ margin-left:auto; font-size:12.5px; font-weight:700; color:var(--st-ink3); white-space:nowrap; transition:color .2s; }
.st-more:hover{ color:var(--st-pink2); }
.st-empty{ padding:20px 0; font-size:14px; color:var(--st-ink3); }

/* 방송 일정 — 얇은 선 목록 */
.sch-list{ list-style:none; }
.sch-it{ position:relative; display:grid; grid-template-columns:62px 52px minmax(0,1fr); align-items:center; gap:10px;
  padding:9px 0; border-bottom:1px solid var(--st-line); }
.sch-it:last-child{ border-bottom:0; }
.sch-date{ font-family:'Playfair Display',Georgia,serif; font-size:18px; font-weight:700; color:var(--st-ink); line-height:1.1; }
.sch-date small{ display:block; margin-top:2px; font-family:'Pretendard',sans-serif; font-size:11px; font-weight:700; color:var(--st-ink3); }
.sch-body{ display:contents; }
.sch-time{ font-size:13.5px; font-weight:800; color:var(--st-pink2); }
.sch-what{ font-size:14px; font-weight:600; color:var(--st-ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sch-it.today{ margin:0 -10px; padding-left:10px; padding-right:10px; border-radius:12px; border-bottom-color:transparent;
  background:linear-gradient(90deg, rgba(255,95,168,.15), rgba(164,125,255,.06)); }
.sch-it.today .sch-date small::after{ content:" · TODAY"; color:var(--st-pink2); }
.sch-it.rest .sch-date, .sch-it.rest .sch-what, .sch-it.rest .sch-time{ color:var(--st-ink3); }

/* 최근 방송 — 최신은 고정 디자인 카드(실제 제목·날짜), 나머지는 작은 썸네일
   ⚠️ 방송 캡처를 크게 쓰지 않습니다 (입술 클로즈업 같은 장면이 크게 걸리는 문제) */
.rec-grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:16px; }
.rec-feat{ position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; gap:6px;
  min-height:236px; padding:20px 22px; border-radius:16px; border:1px solid rgba(255,95,168,.22);
  background:#0d0a1a; isolation:isolate; }
.rec-feat-bg{ position:absolute; inset:0; z-index:-2;
  background:
    linear-gradient(to top, rgba(8,6,16,.95) 0%, rgba(8,6,16,.6) 52%, rgba(8,6,16,.25) 100%),
    url("../assets/hero/soop-dark.webp") 14% 28% / cover no-repeat;
  transition:transform .6s; }
.rec-feat::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(70% 60% at 88% 8%, rgba(255,95,168,.26), transparent 70%),
             radial-gradient(60% 60% at 8% 100%, rgba(164,125,255,.2), transparent 70%); }
.rec-feat:hover .rec-feat-bg{ transform:scale(1.04); }
.rec-feat-top{ position:absolute; top:18px; left:22px; right:22px; display:flex; align-items:center; gap:8px; }
.rec-kick{ font-size:10.5px; font-weight:800; letter-spacing:.24em; color:var(--st-pink2); }
.rec-tag{ padding:2px 9px; border-radius:999px; font-size:11px; font-weight:800; color:#fff; background:rgba(255,255,255,.14); }
.rec-tt{ font-size:18px; font-weight:800; line-height:1.38; color:#fff;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.rec-dt{ font-size:12.5px; color:rgba(255,255,255,.66); }
.rec-go{ align-self:flex-start; display:inline-flex; align-items:center; gap:8px; margin-top:6px;
  padding:7px 14px 7px 8px; border-radius:999px; font-size:13px; font-weight:800; color:#fff;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.16); transition:background .2s; }
.rec-go i{ width:22px; height:22px; border-radius:50%; background:linear-gradient(135deg,#ff3d8c,#b664ff); position:relative; }
.rec-go i::after{ content:""; position:absolute; left:9px; top:7px; border-style:solid; border-width:4px 0 4px 6px;
  border-color:transparent transparent transparent #fff; }
.rec-feat:hover .rec-go{ background:rgba(255,255,255,.16); }
.rec-list{ display:flex; flex-direction:column; justify-content:space-between; gap:6px; }
.rec-s{ display:flex; gap:12px; align-items:center; padding:6px; border-radius:12px; transition:background .2s; }
.rec-s:hover{ background:var(--st-panel); }
.rec-s .th{ flex:0 0 auto; width:108px; aspect-ratio:16/9; border-radius:9px; overflow:hidden; background:var(--st-bg3); }
.rec-s .th img{ width:100%; height:100%; object-fit:cover; }
.rec-s .tx{ min-width:0; display:flex; flex-direction:column; }
.rec-s .tt{ font-size:13.5px; font-weight:700; line-height:1.4; color:var(--st-ink);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.rec-s .dt{ margin-top:2px; font-size:11.5px; color:var(--st-ink3); }

/* 최신 YouTube */
.yt-row{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px; }
.yt-c{ display:block; min-width:0; }
.yt-c .th{ position:relative; display:block; aspect-ratio:16/9; border-radius:12px; overflow:hidden; background:var(--st-bg3); }
.yt-c .th img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.yt-c:hover .th img{ transform:scale(1.04); }
.yt-c .ch{ position:absolute; left:8px; top:8px; padding:2px 8px; border-radius:999px; font-size:10px;
  font-weight:800; letter-spacing:.05em; color:#fff; background:rgba(5,6,10,.6); backdrop-filter:blur(6px); }
.yt-c .tt{ margin-top:8px; font-size:13.5px; font-weight:700; line-height:1.42; color:var(--st-ink);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.yt-c .dt{ margin-top:2px; font-size:11.5px; color:var(--st-ink3); }

/* 방송 커뮤니티 */
.com-it{ display:flex; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--st-line); }
.com-it:last-child{ border-bottom:0; }
.com-av{ flex:0 0 auto; width:34px; height:34px; border-radius:50%; overflow:hidden; display:flex;
  align-items:center; justify-content:center; font-size:13px; font-weight:800; color:#fff;
  background:linear-gradient(135deg,#6b4fd8,#ff5fa8); }
.com-av img{ width:100%; height:100%; object-fit:cover; }
.com-tx{ flex:1; min-width:0; }
.com-tt{ display:block; font-size:14px; font-weight:700; color:var(--st-ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:color .2s; }
.com-it:hover .com-tt{ color:var(--st-pink2); }
.com-meta{ display:flex; align-items:center; gap:7px; margin-top:1px; font-size:11.5px; color:var(--st-ink3); }
.com-meta .by{ color:var(--st-ink2); font-weight:600; }
.com-meta .me{ padding:0 7px; border-radius:999px; font-size:10px; font-weight:800; color:#fff; background:rgba(255,95,168,.5); }
.com-cm{ flex:0 0 auto; font-size:12px; font-weight:700; color:var(--st-ink2); }

/* ══ ④ 방송 메인 프로모션 — 넓은 배너 한 장 ═════════════════ */
.st-promo-sec{ padding-top:24px; padding-bottom:80px; }
.promo{ position:relative; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); align-items:stretch;
  min-height:280px; border-radius:24px; overflow:hidden; border:1px solid var(--st-line);
  background:radial-gradient(60% 90% at 0% 100%, rgba(164,125,255,.2), transparent 70%),
             linear-gradient(110deg, #0c0918 0%, #150f2c 55%, #1d1233 100%); }
.promo-tx{ position:relative; z-index:2; padding:40px 20px 40px 46px; display:flex; flex-direction:column; justify-content:center; }
.promo-kick{ font-size:11px; font-weight:800; letter-spacing:.28em; color:var(--st-pink2); }
.promo-tt{ margin-top:12px; font-family:'Playfair Display',Georgia,serif; font-weight:800;
  font-size:clamp(34px, 3.4vw, 50px); line-height:1.02; color:#fff; letter-spacing:-.5px; }
.promo-sub{ margin-top:10px; font-size:15px; color:var(--st-ink2); }
.promo-go{ align-self:flex-start; margin-top:22px; font-size:14px; font-weight:800; color:#fff;
  padding:12px 20px; border-radius:13px; background:rgba(255,255,255,.08); border:1px solid var(--st-line2);
  transition:background .2s, border-color .2s; }
.promo:hover .promo-go{ background:linear-gradient(135deg,#ff3d8c,#a47dff); border-color:transparent; }
.promo-img{ position:relative; min-height:240px; }
.promo-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 40%;
  -webkit-mask-image:linear-gradient(to right, rgba(0,0,0,0) 0%, #000 34%);
          mask-image:linear-gradient(to right, rgba(0,0,0,0) 0%, #000 34%); transition:transform .8s; }
.promo:hover .promo-img img{ transform:scale(1.03); }

/* ══ 푸터 — 공통 마크업 그대로, 이 페이지에서 어둡게 ═══════════ */
:root[data-page="soop"] .foot{ margin:0; padding:56px 40px 34px; background:#07060d; border-top:1px solid var(--st-line); }
:root[data-page="soop"] .foot-mail{ background:rgba(255,255,255,.04); }

/* ══ 중간 폭 ═════════════════════════════════════════════ */
@media (max-width:1100px){
  .st-sch, .st-rec, .st-yt, .st-com{ grid-column:1 / 13; grid-row:auto; }
}

/* ══ 모바일 — PC 축소가 아니라 따로 쌓기 ═══════════════════════ */
@media (max-width:760px){
  .st-in{ padding-left:16px; padding-right:16px; }
  /* 시안에서 얼굴만 자른 그림을 화면 폭 가득 */
  .st-pic img{ aspect-ratio:780 / 833; max-height:none; min-height:0; object-position:center top; }
  .st-hero::after{ height:36%; }
  /* 글은 그림 아래쪽 어두운 곳에 겹쳐 보여줍니다 */
  .st-hero-txt{ position:absolute !important; left:0; right:0; bottom:20px; width:auto; height:auto; overflow:visible;
    clip:auto; white-space:normal; z-index:2; text-align:center; }
  .st-kicker{ display:block; font-size:11px; letter-spacing:.38em; color:#efe4f4; text-shadow:0 1px 8px rgba(0,0,0,.7); }
  .st-title{ display:block; margin-top:4px; font-size:clamp(44px, 13vw, 60px); line-height:1.02;
    filter:drop-shadow(0 2px 12px rgba(0,0,0,.55)); }
  .st-lead{ margin-top:8px; font-size:16px; text-shadow:0 1px 10px rgba(0,0,0,.8); }
  .st-sub{ margin-top:1px; font-size:14px; text-shadow:0 1px 10px rgba(0,0,0,.8); }

  .st-live-wrap{ margin-top:14px; }
  .stl{ flex-wrap:wrap; gap:10px 14px; padding:14px; }
  .stl-msg{ flex:1 1 calc(100% - 140px); }
  .stl-msg b{ font-size:15.5px; }
  .stl-go{ flex:1 1 100%; text-align:center; }

  .st-main{ padding-top:24px; }
  .st-grid{ grid-template-columns:minmax(0,1fr); gap:14px; }
  .st-sch, .st-rec, .st-yt, .st-com{ grid-column:1; grid-row:auto; padding:18px 16px 14px; }
  .rec-grid{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .rec-feat{ min-height:196px; }
  .rec-s .th{ width:112px; }
  /* 유튜브는 옆으로 넘겨 봅니다 — 줄 안에서만 스크롤, 페이지는 안 밀림 */
  .yt-row{ grid-template-columns:repeat(3, 78%); overflow-x:auto; scroll-snap-type:x mandatory;
    margin:0 -16px; padding:0 16px 4px; scrollbar-width:none; }
  .yt-row::-webkit-scrollbar{ display:none; }
  .yt-c{ scroll-snap-align:start; }

  .st-promo-sec{ padding-top:20px; padding-bottom:56px; }
  .promo{ grid-template-columns:minmax(0,1fr); }
  .promo-img{ order:-1; min-height:0; aspect-ratio:16/9; }
  .promo-img img{ -webkit-mask-image:linear-gradient(to bottom, #000 55%, rgba(0,0,0,0) 100%);
                          mask-image:linear-gradient(to bottom, #000 55%, rgba(0,0,0,0) 100%); }
  .promo-tx{ padding:4px 20px 26px; margin-top:-26px; }
  .promo-go{ align-self:stretch; text-align:center; }

  :root[data-page="soop"] .foot{ padding:44px 18px 30px; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
}
