:root {
  --theme-red: #df423b;
  --theme-blue: #1e6fa8;
  --theme-gold: #e8be59;
  --theme-navy: #061725;
}

@font-face {
  font-family: "Paperlogy";
  src: url("assets/fonts/Paperlogy-7Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

html { background: #eaf1f6; }

body {
  background-color: #f8fafc !important;
  background-image:
    radial-gradient(circle at 6% 36%, rgba(46, 131, 185, .09), transparent 24rem),
    radial-gradient(circle at 95% 72%, rgba(223, 66, 59, .08), transparent 27rem),
    linear-gradient(180deg, #e8f1f7 0, #fff 580px) !important;
  background-attachment: fixed !important;
}

.hero {
  position: relative;
  min-height: 410px;
  overflow: hidden;
  padding: 0;
  color: #fff;
  border-bottom: 4px solid var(--theme-gold);
  background:
    radial-gradient(circle at 78% 36%, rgba(56, 145, 207, .46), transparent 28rem),
    radial-gradient(circle at 88% 100%, rgba(230, 70, 50, .30), transparent 26rem),
    linear-gradient(112deg, #020b13 0%, #092b42 48%, #0d3c5d 71%, #071623 100%);
  box-shadow: 0 12px 35px rgba(2, 15, 25, .36);
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .42;
  background-image:
    radial-gradient(circle, transparent 0 28px, rgba(255,255,255,.13) 29px 31px, transparent 32px),
    linear-gradient(120deg, transparent 46%, rgba(255,255,255,.05) 48%, transparent 50%);
  background-size: 125px 125px, 360px 360px;
  mask-image: linear-gradient(90deg, #000, transparent 43%, #000);
}

.hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 90px;
  background: linear-gradient(transparent, rgba(0, 8, 14, .66));
  pointer-events: none;
}

.hero-inner {
  position: relative;
  z-index: 1;
  min-height: 410px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 38px;
  padding: 28px 0;
}

.brand {
  position: relative;
  z-index: 3;
  width: min(610px, 52vw);
  padding: 38px 34px 29px;
  border: 2px solid #e8c36d;
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.08), transparent 35%),
    linear-gradient(135deg, rgba(3, 20, 33, .97), rgba(7, 46, 70, .93));
  box-shadow: 0 22px 60px rgba(0,0,0,.5), inset 0 0 0 5px rgba(2,10,17,.62), inset 0 0 0 6px rgba(232,190,89,.32);
}

.brand::before, .brand::after {
  content: "◆";
  position: absolute;
  top: 50%;
  color: #f2cf78;
  font-size: 17px;
  text-shadow: 0 2px 4px #000;
  transform: translateY(-50%);
}
.brand::before { left: -11px; }
.brand::after { right: -11px; }

.brand-emblem {
  position: absolute;
  left: 50%;
  top: -25px;
  width: 52px;
  height: 52px;
  border: 5px solid #e8c36d;
  border-radius: 50%;
  background: linear-gradient(#d94740 0 45%, #1a1c20 46% 54%, #f7f1df 55%);
  box-shadow: 0 5px 13px #0008, inset 0 0 0 3px #0a1822;
  transform: translateX(-50%);
}
.brand-emblem::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 14px;
  height: 14px;
  border: 4px solid #1a1c20;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
}

.brand small {
  display: block;
  margin-bottom: 8px;
  color: #f4d987;
  font-weight: 900;
  letter-spacing: .22em;
  text-align: center;
}

.brand h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(30px, 3vw, 47px);
  line-height: 1.18;
  letter-spacing: -.065em;
  text-align: center;
  text-shadow: 0 3px 0 #06131d, 0 5px 16px rgba(0,0,0,.8);
}
.brand h1 span {
  display: block;
  margin-bottom: 1px;
  color: #ffdd67;
  font-size: .76em;
  letter-spacing: .015em;
}

.brand p {
  margin: 15px 0 0;
  padding-top: 13px;
  border-top: 1px solid rgba(232,195,109,.46);
  color: #dceaf1;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
}

.brand-features {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.brand-features span {
  padding: 6px 10px;
  border: 1px solid rgba(244,217,135,.42);
  border-radius: 999px;
  color: #f7e6ae;
  background: rgba(0,9,16,.38);
  font-size: 11px;
  font-weight: 900;
}

.hero-showcase {
  position: relative;
  flex: 1;
  min-width: 490px;
  height: 360px;
  perspective: 1200px;
}
.hero-showcase::before {
  content: "";
  position: absolute;
  width: 340px;
  height: 340px;
  right: 12%;
  top: 15px;
  border: 3px solid rgba(248,216,107,.33);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(74,179,237,.26), rgba(12,47,69,.06) 50%, transparent 68%);
  box-shadow: 0 0 70px rgba(48,154,219,.27);
}

.hero-card {
  position: absolute;
  top: 17px;
  width: 215px;
  height: 300px;
  object-fit: cover;
  border: 5px solid rgba(255,247,215,.93);
  border-radius: 16px;
  box-shadow: 0 22px 42px rgba(0,0,0,.58), 0 0 0 1px #cda846;
  transform-origin: center bottom;
}
.hero-card-back { right: 285px; transform: rotate(-12deg) translateY(24px); opacity: .9; }
.hero-card-main { right: 150px; z-index: 2; transform: rotate(1deg) translateY(-5px); }
.hero-card-front { right: 16px; z-index: 1; transform: rotate(11deg) translateY(25px); opacity: .94; }

.energy-orb {
  position: absolute;
  z-index: 4;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #ffe377;
  box-shadow: 0 0 12px #ffe377, 0 0 35px #ff9d33;
}
.energy-one { right:31%; top:5px; }
.energy-two { right:5%; bottom:53px; width:9px; height:9px; background:#86d8ff; box-shadow:0 0 12px #86d8ff,0 0 30px #288fd4; }

.controls {
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 15px 0 13px;
  border-bottom: 1px solid rgba(232,190,89,.72);
  background: rgba(4,24,38,.95);
  box-shadow: 0 9px 30px rgba(2,16,26,.32);
  backdrop-filter: blur(12px);
}
.tabs { margin-bottom:11px; }
.tab, .home { transition:transform .18s ease,box-shadow .18s ease,filter .18s ease; border-radius:999px; }
.tab:hover, .home:hover { transform:translateY(-1px); box-shadow:0 5px 13px rgba(0,0,0,.28); filter:brightness(1.1); }
.tab[data-k="JP"].active { background:linear-gradient(135deg,#ed5b56,#a8262d); }
.tab[data-k="PROMO"].active { background:linear-gradient(135deg,#d55a98,#8b245d); }
.tab[data-k="EN"].active { background:linear-gradient(135deg,#3c83c2,#184c7a); }
.tab[data-k="ALL"].active { color:#17212b; background:linear-gradient(135deg,#f5dd8d,#c99b32); }

.filters input, .filters select { min-height:44px; border-color:#d7bd78; border-radius:9px; background:linear-gradient(#fffef8,#f7f0dc); }
.filters input:focus, .filters select:focus { outline:3px solid rgba(92,178,229,.28); border-color:#67afe0; }

.content {
  position: relative;
  min-height: 650px;
  background: rgba(255,255,255,.98) !important;
  border-color: rgba(170,137,55,.46);
  border-radius: 0 0 22px 22px;
  box-shadow: 0 24px 70px rgba(20,54,75,.14);
}
.content::before { content:""; position:absolute; inset:0 0 auto; height:4px; background:linear-gradient(90deg,var(--theme-red),var(--theme-gold),#50a7d7,var(--theme-blue)); }
.breadcrumb { padding:8px 0 4px; }

.box { position:relative; overflow:hidden; border-color:rgba(193,161,83,.62); background:linear-gradient(145deg,#fff 0%,#fbfdff 100%); box-shadow:0 7px 20px rgba(31,65,86,.11); }
.box::before { content:""; position:absolute; inset:0 0 auto; height:4px; background:linear-gradient(90deg,var(--theme-red),var(--theme-gold),var(--theme-blue)); opacity:.78; }
.box:hover { transform:translateY(-6px) scale(1.012); border-color:rgba(197,151,43,.9); box-shadow:0 18px 32px rgba(31,65,86,.19); }
.cover { background:#fff !important; border:1px solid #e5edf2; }
.cover img { filter:drop-shadow(0 8px 9px rgba(16,42,58,.16)); transition:transform .22s ease; background:transparent!important; }
.cover:has(img[src*="_bundle"]) { padding:4px; }
.cover img[src*="_bundle"] {
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:contain;
  transform:scale(1.08);
}
.box:hover .cover img[src*="_bundle"] { transform:scale(1.12); }
.box[data-id="30TH"] .cover img { filter:none !important; mix-blend-mode:multiply; }
.box:hover .cover img { transform:scale(1.04); }
.pill { border:1px solid rgba(29,87,124,.08); }

.sectionTitle { position:relative; overflow:hidden; border-radius:9px; box-shadow:0 7px 18px rgba(17,51,72,.17); }
.sectionTitle::before { content:"◆"; margin-right:9px; color:#f4d675; }
.sectionTitle::after { content:""; position:absolute; top:0; bottom:0; left:-30%; width:24%; transform:skewX(-20deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent); }

.card { border-color:#dce5eb; box-shadow:0 6px 18px rgba(22,57,79,.09); transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.card:hover { transform:translateY(-4px); border-color:#b9cdd9; box-shadow:0 15px 28px rgba(22,57,79,.16); }
.card img { background:linear-gradient(145deg,#fff,#f1f5f8); border:1px solid #e5edf2; }
.rarity[data-r="AR"] { color:#815d12; background:#f7e8b6; }
.rarity[data-r="RR"], .rarity[data-r="R"] { color:#174d70; background:#dfeef7; }
.rarity[data-r="ACE"] { color:#8b264e; background:#f7d8e6; }
.rarity[data-r="ITEM"] { color:#485760; background:#e9eef1; }
.rarity[data-r="MUR"], .rarity[data-r="SAR"] { color:#8b215b; background:#f8d9e9; }
.rarity[data-r="UR"], .rarity[data-r="SECRET"] { color:#79510c; background:#f8e8b5; }
.rarity[data-r="MA"] { color:#6b3491; background:#eadcf7; }
.rarity[data-r="BREAK"] { color:#5d4d14; background:#efe5a6; }
.official-en { margin:-3px 2px 8px; color:#74818a; font-size:11px; line-height:1.35; }
.type-badge { display:inline-block; margin-left:5px; border-radius:5px; padding:4px 7px; color:#3c5666; background:#eaf0f4; font-size:11px; font-weight:900; }
.unofficial-checklist { margin:14px 0 2px; padding:13px 14px; border:1px solid #d8a15e; border-radius:8px; background:#fff7e9; color:#60421f; }
.unofficial-checklist > strong { display:block; color:#8b491f; font-size:14px; }
.unofficial-checklist > p { margin:5px 0 10px; font-size:11px; line-height:1.5; }
.unofficial-checklist details { margin-top:7px; }
.unofficial-checklist summary { cursor:pointer; font-size:12px; font-weight:900; }
.unofficial-card-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px 8px; margin-top:7px; }
.unofficial-card-list span { padding:6px 7px; border-radius:5px; background:#fff; font-size:11px; }
.unofficial-card-list b { color:#a13f35; }
.leak-gallery { margin-top:10px; padding:11px 13px; border:1px dashed #bd7548; border-radius:8px; background:#fffdf8; }
.leak-gallery > summary { cursor:pointer; color:#863c2e; font-size:13px; font-weight:900; }
.leak-gallery > p { margin:7px 0 10px; color:#755c48; font-size:11px; line-height:1.5; }
.leak-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.leak-gallery-grid a { display:block; overflow:hidden; border:1px solid #ead8c7; border-radius:7px; background:#fff; color:#5a4335; text-decoration:none; }
.leak-gallery-grid img { display:block; width:100%; height:auto; background:#eee; }
.leak-gallery-grid span { display:block; padding:7px 9px; font-size:11px; font-weight:900; }
.price { background:linear-gradient(135deg,#252a2f,#080a0c); box-shadow:0 4px 10px rgba(0,0,0,.13); transition:transform .16s ease,filter .16s ease; }
.price.ebay { background:linear-gradient(135deg,#357cc0,#154f87); }
.price:hover { transform:translateY(-1px); filter:brightness(1.12); }

@media (max-width:1100px) {
  .hero, .hero-inner { min-height:370px; }
  .brand { width:min(570px,57vw); }
  .hero-showcase { min-width:380px; transform:scale(.88); transform-origin:right center; }
}

@media (max-width:820px) {
  .hero, .hero-inner { min-height:365px; }
  .hero-inner { justify-content:center; }
  .brand { width:min(640px,94%); }
  .hero-showcase { position:absolute; inset:0; min-width:0; height:100%; opacity:.23; transform:scale(1.25); filter:blur(1px); }
  .hero-card { width:180px; height:252px; }
  .brand-features { margin-top:14px; }
}

@media (max-width:650px) {
  .unofficial-card-list { grid-template-columns:1fr; }
  .leak-gallery-grid { grid-template-columns:1fr; }
  .hero, .hero-inner { min-height:320px; }
  .hero-inner { padding:24px 0; }
  .brand { width:96%; padding:34px 18px 23px; border-radius:17px; }
  .brand small { font-size:10px; letter-spacing:.15em; }
  .brand h1 { font-size:clamp(27px,9vw,38px); }
  .brand p { font-size:12px; }
  .brand-features span { font-size:9px; padding:5px 7px; }
  .content { border-radius:0; }
}

/* 사용자가 지정한 완성 배너를 원본 비율 그대로 표시 */
.hero.hero-image-banner {
  display: block;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #0757c6;
  border-bottom: 4px solid var(--theme-gold);
  text-align: center;
}
.hero.hero-image-banner::before,
.hero.hero-image-banner::after { content: none; }
.hero-banner-image {
  display: block;
  width: min(100%, 1690px);
  height: auto;
  margin: 0 auto;
}

/* 완성 이미지는 전체 상단이 아니라 왼쪽 제목판 안에만 배치 */
.brand.image-brand {
  aspect-ratio: 1690 / 931;
  padding: 0;
  overflow: hidden;
  background: #0757c6;
}
.brand.image-brand::before,
.brand.image-brand::after { content: none; }
.brand.image-brand > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 2번 포켓몬 풍경을 상단 배경으로, 1번 도감판을 지정 위치에 배치 */
.hero.scene-hero {
  display: block;
  width: 100%;
  min-height: 0;
  height: min(41.64vw, 715px);
  padding: 0;
  overflow: hidden;
  background-color: #062e58;
  background-image: url("media/aceecb5563096e431f97e1d18aa91412afe0248cb76f5b68728e89c4ed805ac9.webp");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100% auto;
  border-bottom: 4px solid var(--theme-gold);
}
.hero.scene-hero::before,
.hero.scene-hero::after { content: none; }
.scene-brand {
  position: absolute;
  z-index: 2;
  left: 5.55%;
  top: 25.2%;
  width: 44.3%;
  overflow: hidden;
  border: 2px solid rgba(255, 228, 132, .92);
  border-radius: 17px;
  background: #0871da;
  box-shadow: 0 17px 42px rgba(0, 11, 34, .43);
}
.scene-brand img {
  display: block;
  width: 100%;
  height: auto;
}

@media (max-width: 650px) {
  .hero.scene-hero { height: 49vw; background-size: auto 100%; background-position: center top; }
  .scene-brand { left: 2.5%; top: 21%; width: 55%; border-radius: 8px; border-width: 1px; }
}

/* 원피스 도감과 동일한 상단 비율 및 배경이 비치는 반투명 메뉴 */
.scene-shell {
  position: relative;
  overflow: hidden;
  background-color: #062e58;
  background-image: url("media/aceecb5563096e431f97e1d18aa91412afe0248cb76f5b68728e89c4ed805ac9.webp");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100% auto;
  border-bottom: 3px solid var(--theme-gold);
}
.hero.scene-hero {
  height: clamp(340px, 28.2vw, 410px);
  background: transparent;
  border-bottom: 1px solid rgba(232, 190, 89, .42);
  box-shadow: none;
}
.scene-hero-inner {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}
.scene-brand {
  position: static;
  width: min(44%, 600px);
  border: 2px solid rgba(255, 228, 132, .92);
  border-radius: 17px;
  box-shadow: 0 17px 42px rgba(0, 11, 34, .43);
}
.scene-shell .controls {
  position: relative;
  top: auto;
  min-height: 174px;
  padding: 14px 0 15px;
  border-top: 0;
  border-bottom: 0;
  background: rgba(4, 22, 34, .58);
  box-shadow: none;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

@media (max-width: 650px) {
  .scene-shell { background-size: auto 100%; background-position: center top; }
  .hero.scene-hero { height: 255px; }
  .scene-hero-inner { justify-content: center; }
  .scene-brand { width: min(94%, 520px); border-radius: 10px; }
  .scene-shell .controls { min-height: 0; background: rgba(4,22,34,.68); backdrop-filter: blur(3px); }
}

/* 표시된 자리 보정: 배경 속 기존 판을 새 판이 정확히 덮고 UI 잔상은 제거 */
.scene-shell {
  background-image: none;
  background-color: #062e58;
}
.hero.scene-hero {
  height: min(41.64vw, 715px);
  background-image: url("media/aceecb5563096e431f97e1d18aa91412afe0248cb76f5b68728e89c4ed805ac9.webp");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: auto 550%;
}
.scene-hero-inner {
  width: 100%;
  max-width: none;
}
.scene-brand {
  position: absolute;
  left: 5.55%;
  top: 25.2%;
  width: 44.3%;
  max-width: none;
  transform: none;
}
.scene-shell .controls {
  background-color: rgba(4,22,34,.72);
  background-image:
    linear-gradient(rgba(4,22,34,.66),rgba(4,22,34,.66)),
    url("media/aceecb5563096e431f97e1d18aa91412afe0248cb76f5b68728e89c4ed805ac9.webp");
  background-repeat: no-repeat;
  background-position: top center;
  background-size: 100% auto;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

@media (max-width: 650px) {
  .scene-shell {
    background-image: none;
    background-color: #062e58;
  }
  .hero.scene-hero {
    height: 41.64vw;
    min-height: 0;
    background-image: url("media/aceecb5563096e431f97e1d18aa91412afe0248cb76f5b68728e89c4ed805ac9.webp");
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% auto;
  }
  .scene-brand {
    left: 5.55%;
    top: 25.2%;
    width: 44.3%;
    border-radius: 7px;
  }
  .scene-shell .controls {
    background-color: rgba(4,22,34,.72);
    background-image:
      linear-gradient(rgba(4,22,34,.70),rgba(4,22,34,.70)),
      url("media/aceecb5563096e431f97e1d18aa91412afe0248cb76f5b68728e89c4ed805ac9.webp");
    background-repeat: no-repeat;
    background-position: top center;
    background-size: auto 550%;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
  }
}

/* 사용자 표시 반영: 풍경은 상단에서 종료하고 메뉴까지 이어지지 않음 */
.scene-shell .controls {
  background-color: rgba(4, 22, 34, .94);
  background-image: none;
}

/* 풍경 전체 폭을 실제 이미지로 고정해 캐릭터가 잘리지 않도록 표시 */
.hero.scene-hero {
  background-image: none;
}
.scene-background {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  pointer-events: none;
}
.scene-hero-inner {
  z-index: 1;
}
.scene-brand {
  z-index: 2;
}

/* 원피스 도감 레이아웃에 맞춘 최종 상단 배너·메뉴 규칙 */
.scene-shell {
  overflow: hidden;
  background: var(--theme-navy);
  border-bottom: 3px solid var(--theme-gold);
}

.hero.scene-hero {
  position: relative;
  height: clamp(310px, 19.2vw, 365px);
  min-height: 0;
  border-bottom: 1px solid rgba(232, 190, 89, .42);
  background: #092943;
  box-shadow: none;
}

.scene-background {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 47%;
}

.scene-hero-inner {
  position: relative;
  z-index: 1;
  width: min(1400px, 96%);
  height: 100%;
  margin: 0 auto;
}

.scene-brand {
  position: absolute;
  left: 0;
  top: 28px;
  width: min(39%, 546px);
  max-width: none;
  transform: none;
  border: 2px solid rgba(255, 228, 132, .92);
  border-radius: 17px;
  background: #0871da;
  box-shadow: 0 17px 42px rgba(0, 11, 34, .43);
}

.scene-shell .controls {
  position: relative;
  top: auto;
  min-height: 0;
  padding: 14px 0 11px;
  border: 0;
  background: rgba(4, 22, 34, .96);
  box-shadow: none;
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.scene-shell .controls > .wrap {
  width: min(1400px, 96%);
}

.menu-tabs {
  min-height: 40px;
}

.menu-tabs .tabs {
  gap: 8px;
  margin: 0 0 12px;
}

.menu-tabs .tab {
  min-height: 40px;
  padding: 8px 15px;
  border-color: rgba(232, 190, 89, .65);
  background: rgba(20, 52, 72, .88);
}

.menu-tabs .tab.active {
  border-color: #f0b76b;
  background: linear-gradient(135deg, #d94a43, #9f2529);
  color: #fff;
}

.scene-shell .filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(250px, 1.5fr)) minmax(190px, 1fr) minmax(160px, .8fr);
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(232, 190, 89, .38);
  border-radius: 14px;
  background: rgba(2, 14, 23, .58);
}

.scene-shell .filters input,
.scene-shell .filters select {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  border: 1px solid #d7bd78;
  border-radius: 9px;
  background: linear-gradient(#fffef8, #f7f0dc);
  color: #17212b;
}

.menu-footer {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
  margin-top: 10px;
}

.menu-footer .summary {
  margin: 0;
  text-align: center;
}

.menu-link {
  width: max-content;
  padding: 10px 17px;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #204f6c, #0d2b3e);
  box-shadow: 0 5px 14px rgba(0, 0, 0, .25);
  font-weight: 900;
  text-decoration: none;
  transition: transform .18s ease, filter .18s ease;
}

.menu-link:hover {
  transform: translateY(-1px);
  filter: brightness(1.12);
}

.shop-link {
  justify-self: end;
  background: linear-gradient(135deg, #d94740, #952227);
}

@media (max-width: 820px) {
  .hero.scene-hero { height: 280px; }
  .scene-brand { top: 24px; width: min(54%, 470px); }
  .scene-shell .filters { grid-template-columns: 1fr 1fr; }
  .scene-shell .filters input { grid-column: 1 / -1; }
  .menu-footer { grid-template-columns: 1fr 1fr; }
  .menu-footer .summary { grid-column: 1 / -1; grid-row: 1; }
  .shop-link { justify-self: end; }
}

@media (max-width: 650px) {
  .hero.scene-hero { height: 220px; }
  .scene-background { object-position: center 48%; }
  .scene-hero-inner { width: 100%; }
  .scene-brand {
    left: 4%;
    top: 50%;
    width: 64%;
    border-radius: 9px;
    transform: translateY(-50%);
  }
  .scene-shell .controls > .wrap { width: 94%; }
  .menu-tabs .tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; }
  .menu-tabs .tab { flex: 0 0 auto; }
  .scene-shell .filters { grid-template-columns: 1fr; padding: 9px; }
  .scene-shell .filters input { grid-column: auto; }
  .menu-footer { grid-template-columns: 1fr; gap: 8px; }
  .menu-footer .summary { grid-column: auto; grid-row: auto; order: -1; }
  .menu-link, .shop-link { justify-self: stretch; width: auto; text-align: center; }
}

/* 스크롤을 따라오는 원피스 도감형 좌우 바로가기 */
.scene-shell {
  overflow: visible;
}

/* 상단 풍경 배너를 메뉴·검색 영역까지 연장하는 반투명 메뉴 시안 */
.scene-shell {
  position: relative;
  isolation: isolate;
  background: #092943;
}

.scene-background {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 47%;
}

.hero.scene-hero,
.scene-shell .controls {
  position: relative;
  z-index: 1;
}

.hero.scene-hero {
  background: transparent;
}

.scene-shell .controls {
  background: rgba(4, 22, 34, .68);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

@media (max-width: 650px) {
  .scene-background {
    left: 0;
    right: auto;
    width: 100%;
    object-fit: contain;
    object-position: center top;
  }
}

.menu-footer {
  display: flex;
  justify-content: center;
}

.menu-link {
  position: fixed;
  z-index: 30;
  bottom: 18px;
  width: auto;
  white-space: nowrap;
}

.home-link { left: 18px; }
.shop-link { right: 18px; }

@media (max-width: 1799px) {
  body { padding-bottom: 70px; }
}

@media (min-width: 1800px) {
  .menu-link {
    top: 52%;
    bottom: auto;
    min-width: 205px;
    text-align: center;
  }

  .home-link { left: 24px; }
  .shop-link { right: 24px; }

  .menu-link::after {
    content: "";
    position: absolute;
    top: calc(100% + 12px);
    left: 50%;
    width: 230px;
    height: min(39vh, 360px);
    transform: translateX(-50%);
    background-repeat: no-repeat;
    background-position: top center;
    background-size: contain;
    filter: drop-shadow(0 12px 12px rgba(2, 10, 18, .34));
    pointer-events: none;
  }

  .home-link::after {
    background-image: url("/media/827fb86c01b6a0639f3cf8722a4d524f092d6c4788158665a79850a071c74006.webp");
  }

  .shop-link::after {
    background-image: url("/media/8f82b068f36f826784e767dd1ea34febe7cdbce1883c0e16f39493578e681da8.webp");
  }
}

@media (max-width: 650px) {
  .menu-link {
    bottom: 10px;
    width: calc(50% - 16px);
    min-width: 0;
    padding: 10px 7px;
    font-size: 12px;
  }

  .home-link { left: 10px; }
  .shop-link { right: 10px; }
}

/* 원피스 도감과 동일한 글꼴 체계 */
body,
button,
input,
select,
a {
  font-family: "Paperlogy", "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;
  font-weight: 700;
}

body { font-size: 16px; }
.tab, .home, .filters input, .filters select { font-size: 13.3333px; }
.summary { font-size: 13px; }
.box h3 { font-size: 21px; font-weight: 900; }
.box .meta { font-size: 12px; font-weight: 700; }
.box .pill { font-size: 11px; font-weight: 700; }

/* 모든 박스 상품 사진: 동일 캔버스, 여백, 배경, 표시 비율 */
.box .cover {
  height: auto !important;
  aspect-ratio: 4 / 3;
  padding: 12px !important;
  background: #fff !important;
  border: 1px solid #dfe8ee;
}
.box .cover img,
.box .cover img[src*="_bundle"],
.box[data-id="30TH"] .cover img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transform: none;
  mix-blend-mode: normal;
  background: transparent !important;
  filter: drop-shadow(0 7px 8px rgba(16,42,58,.14));
}
.box:hover .cover img,
.box:hover .cover img[src*="_bundle"] { transform: scale(1.025); }
.new-badge {
  position: absolute;
  z-index: 3;
  top: 12px;
  left: 12px;
  min-width: 50px;
  padding: 6px 10px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(180deg, #dc493f, #b72421);
  color: #fff;
  box-shadow: 0 5px 11px rgba(119, 29, 25, .33);
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
}
@media (max-width: 650px) {
  .new-badge { top: 8px; left: 8px; min-width: 46px; padding: 6px 8px; font-size: 11px; }
}

/* 원피스 도감형 다중 캐릭터 콜라주 */
.pokemon-collage {
  display: none;
  position: fixed;
  z-index: 24;
  top: calc(52% + 55px);
  width: 245px;
  height: min(43vh, 390px);
  pointer-events: none;
}

.pokemon-collage-left { left: 12px; }
.pokemon-collage-right { right: 12px; }

.pokemon-art {
  position: absolute;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 8px 8px rgba(0, 0, 0, .28));
}

.art-charizard { left: 20px; top: 0; width: 205px; z-index: 1; }
.art-lucario { left: -2px; top: 92px; width: 155px; z-index: 2; }
.art-gengar { right: -2px; top: 118px; width: 155px; z-index: 3; }
.art-pikachu { left: 45px; top: 212px; width: 165px; z-index: 4; }

.art-mew { right: 4px; top: -8px; width: 145px; z-index: 3; }
.art-snorlax { left: 5px; top: 58px; width: 215px; z-index: 1; }
.art-eevee { right: -2px; top: 188px; width: 145px; z-index: 4; }
.art-bulbasaur { left: -2px; top: 208px; width: 150px; z-index: 3; }

@media (min-width: 1800px) {
  .menu-link::after { content: none; }
  .pokemon-collage { display: block; }
}

/* SNKRDUNK 시세: 원피스 도감과 같은 Single / PSA10 2열 표시 */
.price-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin: 9px 0 7px;
}

.price-cell {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid rgba(61, 48, 29, .18);
  border-radius: 8px;
  background: rgba(255, 255, 255, .72);
}

.price-cell small {
  color: #7a705f;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.price-cell strong {
  overflow: hidden;
  color: #172432;
  font-size: 12px;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.price-cell.is-loading strong {
  color: #9a8c72;
}

.price-cell-link {
  text-decoration: none;
  cursor: pointer;
}

.price-cell-link:hover {
  border-color: #3667a6;
  background: #eef5ff;
}

.price-cell-link strong {
  color: #245d9c;
}

.psa-source-note,
.tcg-source-note {
  margin: -2px 2px 7px;
  color: #746b5c;
  font-size: 9px;
  line-height: 1.4;
}

.psa-source-note a {
  color: #245d9c;
  font-weight: 900;
  text-decoration: none;
}

.price.tcgplayer {
  background: #2467a5;
}

.product-note {
  display: grid;
  gap: 3px;
  margin-top: 8px;
  padding: 8px;
  border-radius: 7px;
  background: #f8f0d9;
  color: #62522d;
  font-size: 11px;
}

.product-note strong {
  color: #7c3f20;
}

/* 상단 도감 분류 버튼을 넓고 시원한 가로형으로 표시 */
.menu-tabs .tabs {
  gap: 12px;
}

.menu-tabs .tab {
  flex: 0 1 150px;
  min-width: 132px;
  min-height: 50px;
  padding: 11px 28px;
  font-size: 15px;
  white-space: nowrap;
}

@media (max-width: 650px) {
  .menu-tabs .tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    overflow: visible;
    padding-bottom: 0;
  }

  .menu-tabs .tab {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 9px 18px;
    font-size: 13px;
  }
}

/* 긴 도감을 읽은 뒤 즉시 처음으로 돌아가는 좌우 보조 버튼 */
.top-btn {
  position: fixed;
  z-index: 31;
  bottom: 72px;
  min-width: 112px;
  min-height: 46px;
  padding: 10px 18px;
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #285d7a, #0c2b3e);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .32);
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .18s, transform .18s, visibility .18s, filter .18s;
}

.top-btn.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.top-btn:hover {
  filter: brightness(1.12);
}

.top-btn-left { left: 18px; }
.top-btn-right { right: 18px; }

@media (min-width: 1800px) {
  .top-btn {
    top: calc(52% - 58px);
    bottom: auto;
    min-width: 205px;
  }

  .top-btn-left { left: 24px; }
  .top-btn-right { right: 24px; }
}

@media (max-width: 650px) {
  .top-btn-left,
  .top-btn-right {
    display: block;
    bottom: 70px;
    width: calc(50vw - 21px);
    max-width: 132px;
    min-width: 0;
    min-height: 42px;
    padding: 8px 14px;
    font-size: 12px;
  }

  .top-btn-left { left: 14px; }
  .top-btn-right { right: 14px; }
}
