/* roulang page: index */
:root {
  --bg: #14110F;
  --bg-2: #1C1816;
  --cream: #F3E7D3;
  --ink: #1A1412;
  --plum: #5C3D55;
  --copper: #C9864A;
  --fog: #A89F96;
  --line: rgba(243, 231, 211, .18);
  --page: #14110F;
  --radius: 18px;
  --radius-sm: 10px;
  --shadow: 0 10px 24px rgba(20, 17, 15, .28);
  --space: 72px;
  --font: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--cream);
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.75;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
button, input, select { font-family: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-weight: 700; letter-spacing: -0.03em; line-height: 1.3; }
a { color: var(--cream); text-decoration: none; }
a:hover { color: var(--copper); text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid var(--copper);
  outline-offset: 2px;
}
.container { max-width: 1180px; }
@media (min-width: 1200px) {
  .container { max-width: 1180px; }
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 1040;
  background: rgba(20, 17, 15, .94);
  border-bottom: 1px solid transparent;
  transition: background .2s ease, border-color .2s ease;
}
.site-header.is-scrolled {
  background: #100e0c;
  border-bottom-color: rgba(243, 231, 211, .28);
}
.site-nav { padding: 0; }
.nav-shell { min-height: 76px; }
.brand {
  display: block;
  max-width: 11.5em;
  color: var(--cream);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.25;
  text-decoration: none;
}
.brand:hover, .brand:focus { color: var(--copper); text-decoration: none; }
.navbar-toggler {
  border: 1px solid rgba(243, 231, 211, .4);
  border-radius: var(--radius-sm);
  padding: .4rem .55rem;
}
.navbar-toggler:focus { box-shadow: 0 0 0 2px var(--copper); }
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23F3E7D3' stroke-width='2' stroke-linecap='round' d='M5 8h20M5 15h20M5 22h20'/%3E%3C/svg%3E");
}
.nav-main { gap: 1.15rem; }
.nav-main .nav-link {
  color: var(--cream);
  font-weight: 500;
  padding: .35rem .05rem .3rem;
  border-bottom: 2px solid transparent;
  text-decoration: none;
}
.nav-main .nav-link:hover,
.nav-main .nav-link:focus {
  color: var(--copper);
  border-bottom-color: var(--copper);
  text-decoration: none;
}
.nav-main .nav-link.is-active {
  color: var(--cream);
  border-bottom-color: var(--copper);
}
.nav-side { margin-left: auto; }
.btn-mega {
  background: transparent;
  color: var(--cream);
  border: 1px solid rgba(243, 231, 211, .28);
  border-radius: 999px;
  padding: .4rem .9rem;
  font-weight: 700;
}
.btn-mega:hover, .btn-mega:focus, .mega-drop:hover .btn-mega {
  color: var(--ink);
  background: var(--cream);
  border-color: var(--cream);
}
.btn-mega::after { margin-left: .45rem; vertical-align: .15em; }
.mega-panel {
  width: min(540px, 88vw);
  padding: 16px;
  background: #1C1816;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.mega-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mega-card {
  position: relative;
  display: block;
  min-height: 108px;
  padding: 12px 14px;
  background: #14110F;
  color: var(--cream);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease;
}
.mega-card:hover, .mega-card:focus {
  color: var(--cream);
  text-decoration: none;
  transform: translateY(-2px);
  border-color: var(--copper);
}
.mega-kicker { display: block; color: var(--copper); font-size: .78rem; font-weight: 700; margin-bottom: 4px; }
.mega-card strong { display: block; font-size: 1rem; line-height: 1.4; }
.mega-card small { display: block; color: var(--fog); margin-top: 4px; }
.mega-latest {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  color: var(--cream);
  text-decoration: none;
}
.mega-latest:hover { color: var(--copper); }
.cut::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  z-index: 3;
  border-style: solid;
  border-width: 0 18px 18px 0;
  border-color: transparent var(--page) transparent transparent;
  pointer-events: none;
}
.hero { padding: 34px 0 18px; background: var(--bg); }
.status-bar { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--fog); font-size: .95rem; margin-bottom: 16px; }
.dot { width: 7px; height: 7px; border-radius: 50%; background: var(--copper); display: inline-block; margin-right: 6px; }
.icon-matrix { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.icon-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--cream);
  background: var(--bg-2);
}
.icon-pill svg { width: 18px; height: 18px; stroke: var(--copper); fill: none; stroke-width: 1.6; }
.hero-title { font-size: clamp(1.85rem, 4vw, 3.1rem); max-width: 14em; margin-bottom: 12px; }
.hero-copy { max-width: 48rem; color: var(--fog); margin-bottom: 18px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
.metric-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.metric {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px 16px 14px;
}
.metric b { display: block; font-size: 1.55rem; letter-spacing: -0.04em; color: var(--cream); line-height: 1.2; }
.metric span { color: var(--fog); font-size: .92rem; }
.btn-main, .btn-ghost, .btn-small {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  font-weight: 700;
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
  cursor: pointer;
}
.btn-main {
  background: var(--plum);
  color: var(--cream);
  border: 1px solid transparent;
  padding: .72rem 1.15rem;
}
.btn-ghost {
  background: transparent;
  color: var(--cream);
  border: 1px solid rgba(243, 231, 211, .4);
  padding: .72rem 1.15rem;
}
.btn-small {
  background: var(--plum);
  color: var(--cream);
  border: 1px solid transparent;
  padding: .28rem .6rem;
  font-size: .82rem;
}
.btn-main:hover, .btn-ghost:hover, .btn-small:hover {
  transform: translateY(-2px);
  border-color: var(--copper);
  color: var(--cream);
  text-decoration: none;
}
.btn-ghost:hover { color: var(--ink); background: var(--cream); }
.btn-main:active, .btn-ghost:active, .btn-small:active { transform: translateY(1px); }
.btn-small.is-on { background: var(--copper); color: var(--ink); }
.band { padding: var(--space) 0; background: var(--bg); }
.band-alt { background: var(--bg-2); --page: #1C1816; }
.band-paper { background: var(--cream); color: var(--ink); --page: #F3E7D3; }
.band-paper .band-lead, .band-paper p { color: #3d342f; }
.band-paper h2, .band-paper h3 { color: var(--ink); }
.band-head { margin-bottom: 22px; max-width: 52rem; }
.band-head h2::before {
  content: "";
  display: block;
  width: 36px;
  height: 3px;
  border-radius: 3px;
  background: var(--copper);
  margin-bottom: 10px;
}
.band-lead { margin: 0; color: var(--fog); }
.rail, .scene-rail, .week-board {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  padding-bottom: 8px;
  scroll-snap-type: x mandatory;
}
.ticket, .scene-card, .day-col {
  position: relative;
  flex: 0 0 270px;
  scroll-snap-align: start;
  background: #211c19;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.band-alt .ticket, .band-alt .scene-card { background: #14110F; }
.ticket-body, .card-body, .scene-card .card-body { padding: 12px 14px 14px; }
.poster {
  position: relative;
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: flex-end;
  padding: 12px;
  color: var(--cream);
  font-weight: 700;
  background: linear-gradient(155deg, #5C3D55, #1A1412 64%);
}
.poster.tall { aspect-ratio: 3 / 4; min-height: 220px; }
.poster::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, transparent 42%, rgba(20, 17, 15, .58) 100%);
}
.poster span { position: relative; z-index: 1; text-shadow: 0 2px 8px rgba(20, 17, 15, .65); }
.tone-b { background: linear-gradient(160deg, #8a5a3a, #1A1412 68%); }
.tone-c { background: linear-gradient(165deg, #3e2a3b, #6d5348 70%); }
.tone-d { background: linear-gradient(150deg, #70543a, #241812 62%); }
.tone-e { background: linear-gradient(160deg, #6a4a55, #2a211c 70%); }
.tone-f { background: linear-gradient(155deg, #c9864a, #3a2a33 72%); }
.badge-row { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.badge-tag {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: .08rem .55rem;
  background: rgba(201, 134, 74, .14);
  color: var(--copper);
  border: 1px solid rgba(201, 134, 74, .45);
  font-size: .75rem;
  font-weight: 700;
  line-height: 1.6;
}
.ticket h3, .card-body h3, .topic-card h3, .scene-card h3, .news-copy h3, .note-card h3, .entry-card h3 {
  font-size: 1.05rem;
  margin-bottom: 6px;
}
.meta-line { color: var(--fog); font-size: .92rem; margin-bottom: 0; }
.matrix { display: grid; grid-template-columns: 1.15fr 1.15fr .82fr; gap: 14px; }
.wide-card, .mini-card, .topic-card, .entry-card, .note-card, .compare-col, .qa-item, .assure-item {
  position: relative;
  background: #211c19;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.band-alt .wide-card, .band-alt .mini-card, .band-alt .topic-card, .band-alt .note-card, .band-alt .qa-item { background: #14110F; }
.narrow-stack { display: flex; flex-direction: column; gap: 14px; }
.wide-card:hover, .mini-card:hover, .topic-card:hover, .news-item:hover, .entry-card:hover {
  transform: translateY(-2px);
  border-color: rgba(201, 134, 74, .7);
  transition: transform .18s ease, border-color .18s ease;
}
.mosaic { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.span-7 { grid-column: span 7; }
.span-5 { grid-column: span 5; }
.topic-card { display: grid; grid-template-columns: 148px 1fr; min-height: 180px; color: var(--cream); text-decoration: none; }
.topic-card:hover { color: var(--cream); text-decoration: none; }
.compare { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.compare-col { padding: 18px 18px 8px; background: #fffaf3; }
.compare-col h3 { font-size: 1.25rem; }
.compare-row { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid rgba(26, 20, 18, .12); }
.compare-label { font-weight: 700; }
.compare-value { color: #5c514a; text-align: right; }
.scene-card { flex-basis: 340px; }
.timeline { margin-left: 8px; border-left: 2px solid rgba(201, 134, 74, .75); display: grid; gap: 18px; }
.node { position: relative; padding: 0 0 0 22px; }
.node::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--copper);
  position: absolute;
  left: -7px;
  top: 8px;
}
.node-time { color: var(--copper); font-weight: 700; font-size: .92rem; }
.day-col { padding: 12px; background: #211c19; }
.day-name { font-weight: 700; margin-bottom: 8px; }
.day-item { padding: 8px 0; border-top: 1px solid var(--line); }
.day-item p { margin: 0 0 6px; color: var(--fog); font-size: .92rem; }
.news-list { display: grid; gap: 12px; }
.news-item {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 14px;
  background: #211c19;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  color: var(--cream);
  text-decoration: none;
}
.news-item:hover { color: var(--cream); text-decoration: none; }
.news-copy { padding: 14px 14px 14px 0; }
.assure { display: grid; gap: 10px; }
.assure-item { display: grid; grid-template-columns: 52px 1fr; gap: 12px; align-items: center; padding: 14px 16px; }
.assure-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  border: 1px solid rgba(201, 134, 74, .5);
  display: grid;
  place-items: center;
}
.assure-icon svg { width: 22px; height: 22px; stroke: var(--copper); fill: none; stroke-width: 1.6; }
.device-grid { display: grid; grid-template-columns: .8fr 1fr 1.2fr; gap: 14px; align-items: end; }
.device { background: #211c19; border: 1px solid var(--line); border-radius: 18px; padding: 12px; box-shadow: var(--shadow); }
.device-screen { border-radius: 12px; border: 1px solid var(--line); overflow: hidden; background: #100e0c; }
.device header { font-weight: 700; margin-bottom: 8px; }
.phone { max-width: 230px; }
.qa-grid, .note-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.qa-item { padding: 16px 16px 12px; }
.qa-item h3 { font-size: 1.05rem; }
.accordion-item {
  background: #14110F;
  color: var(--cream);
  border: 1px solid var(--line) !important;
  border-radius: var(--radius) !important;
  overflow: hidden;
  margin-bottom: 10px;
}
.accordion-button {
  background: #14110F;
  color: var(--cream);
  font-weight: 700;
  box-shadow: none;
}
.accordion-button:not(.collapsed) { background: var(--plum); color: var(--cream); }
.accordion-button:focus { box-shadow: inset 0 0 0 2px var(--copper); }
.accordion-button::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23C9864A' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
}
.accordion-body { background: #171310; color: var(--fog); }
.note-grid { grid-template-columns: repeat(3, 1fr); }
.note-card { padding: 16px; }
.avatar { width: 42px; height: 42px; border-radius: 14px; margin-bottom: 10px; }
.avatar-a { background: linear-gradient(135deg, #5C3D55, #C9864A); }
.avatar-b { background: linear-gradient(135deg, #8d6a4a, #2a211c); }
.avatar-c { background: linear-gradient(135deg, #A89F96, #5C3D55); }
.who { color: var(--fog); font-size: .92rem; }
.ticket-form {
  position: relative;
  background: var(--cream);
  color: var(--ink);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 26px;
}
.ticket-form h2::before { background: var(--plum); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 12px; align-items: end; }
.field label { display: block; font-weight: 700; margin-bottom: 6px; }
.field input, .field select {
  width: 100%;
  background: #fff;
  color: var(--ink);
  border: 1px solid rgba(26, 20, 18, .2);
  border-radius: var(--radius-sm);
  padding: .68rem .75rem;
}
.form-msg { min-height: 1.5em; margin: 10px 0 0; font-weight: 700; }
.entry-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.entry-card { display: grid; grid-template-columns: 150px 1fr; background: #211c19; }
.entry-card .card-body { padding: 16px; }
.site-footer { background: #100e0c; border-top: 1px solid var(--line); padding: 42px 0 18px; }
.foot-grid { display: grid; grid-template-columns: 1.3fr .8fr 1.1fr; gap: 24px; }
.foot-links { display: grid; gap: 6px; }
.foot-links a { color: var(--cream); }
.foot-bottom { margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--fog); font-size: .92rem; }
@media (max-width: 1199.98px) {
  .week-board .day-col { flex-basis: 210px; }
}
@media (min-width: 1200px) {
  .week-board { display: grid; grid-template-columns: repeat(7, 1fr); overflow: visible; }
  .day-col { flex: none; }
}
@media (max-width: 991.98px) {
  .nav-side { margin-left: 0; width: 100%; }
  .navbar-collapse { padding-bottom: 16px; max-height: calc(100vh - 76px); overflow: auto; }
  .mega-drop > .btn-mega { display: none; }
  .mega-panel, .mega-panel.show {
    display: block !important;
    position: static !important;
    transform: none !important;
    width: 100% !important;
    margin-top: 10px;
    box-shadow: none;
  }
  .matrix, .device-grid { grid-template-columns: 1fr 1fr; }
  .narrow-stack { grid-column: 1 / -1; flex-direction: row; }
  .topic-card { grid-template-columns: 120px 1fr; }
  .form-grid { grid-template-columns: 1fr 1fr; }
  .news-copy { padding: 12px; }
}
@media (max-width: 767.98px) {
  :root { --space: 52px; }
  .metric-row, .matrix, .compare, .device-grid, .qa-grid, .note-grid, .entry-grid, .foot-grid, .form-grid { grid-template-columns: 1fr; }
  .narrow-stack { flex-direction: column; }
  .span-7, .span-5 { grid-column: span 12; }
  .news-item, .topic-card, .entry-card, .assure-item { grid-template-columns: 1fr; }
  .news-copy { padding: 12px 14px 14px; }
  .mega-grid { grid-template-columns: 1fr; }
  .phone { max-width: none; }
}
@media (max-width: 575.98px) {
  .container { width: calc(100% - 24px); }
  .hero { padding-top: 22px; }
  .hero-title { font-size: 1.72rem; }
  .ticket, .scene-card { flex-basis: 82vw; }
  .metric b { font-size: 1.35rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

/* roulang page: category2 */
:root {
 --bg: #14110F;
 --bg-2: #1C1816;
 --cream: #F3E7D3;
 --ink: #1A1412;
 --plum: #5C3D55;
 --copper: #C9864A;
 --fog: #A89F96;
 --line: rgba(243, 231, 211, .18);
 --page: #14110F;
 --radius: 18px;
 --radius-sm: 10px;
 --shadow: 0 10px 24px rgba(20, 17, 15, .28);
 --space: 72px;
 --font: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
 margin: 0;
 background: var(--bg);
 color: var(--cream);
 font-family: var(--font);
 font-size: 17px;
 line-height: 1.75;
 text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
button, input, select { font-family: inherit; }
a { color: var(--cream); text-decoration: none; }
a:hover { color: var(--copper); text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
 outline: 2px solid var(--copper);
 outline-offset: 2px;
}
.container { max-width: 1180px; }
.site-header {
 position: sticky;
 top: 0;
 z-index: 1040;
 background: rgba(20, 17, 15, .94);
 border-bottom: 1px solid transparent;
 transition: background .2s ease, border-color .2s ease;
}
.site-header.is-scrolled {
 background: #100e0c;
 border-bottom-color: rgba(243, 231, 211, .28);
}
.site-nav { padding: 0; }
.nav-shell { min-height: 76px; position: relative; }
.brand {
 display: block;
 max-width: 11.5em;
 color: var(--cream);
 font-weight: 700;
 letter-spacing: -0.03em;
 line-height: 1.25;
 text-decoration: none;
}
.brand:hover, .brand:focus { color: var(--copper); text-decoration: none; }
.navbar-toggler {
 border: 1px solid rgba(243, 231, 211, .4);
 border-radius: var(--radius-sm);
 padding: .4rem .55rem;
}
.navbar-toggler:focus { box-shadow: 0 0 0 2px var(--copper); }
.navbar-toggler-icon {
 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23F3E7D3' stroke-width='2' stroke-linecap='round' d='M5 8h20M5 15h20M5 22h20'/%3E%3C/svg%3E");
}
.nav-main { gap: 1.15rem; }
.nav-main .nav-link {
 color: var(--cream);
 font-weight: 500;
 padding: .35rem .05rem .3rem;
 border-bottom: 2px solid transparent;
 text-decoration: none;
}
.nav-main .nav-link:hover,
.nav-main .nav-link:focus {
 color: var(--copper);
 border-bottom-color: var(--copper);
 text-decoration: none;
}
.nav-main .nav-link.is-active {
 color: var(--cream);
 border-bottom-color: var(--copper);
}
.mega-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mega-card {
 position: relative;
 display: block;
 min-height: 108px;
 padding: 12px 14px;
 background: #14110F;
 color: var(--cream);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 text-decoration: none;
 transition: transform .18s ease, border-color .18s ease;
}
.mega-card:hover, .mega-card:focus {
 color: var(--cream);
 text-decoration: none;
 transform: translateY(-2px);
 border-color: var(--copper);
}
.mega-kicker { display: block; color: var(--copper); font-size: .78rem; font-weight: 700; margin-bottom: 4px; }
.mega-card strong { display: block; font-size: 1rem; line-height: 1.4; }
.mega-card small { display: block; color: var(--fog); margin-top: 4px; }
.mega-latest {
 display: flex;
 justify-content: space-between;
 gap: 12px;
 margin-top: 12px;
 padding-top: 12px;
 border-top: 1px solid var(--line);
 color: var(--cream);
 text-decoration: none;
}
.mega-latest:hover { color: var(--copper); }
.cut { clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%); }
h1, h2, h3 { font-weight: 700; letter-spacing: -0.03em; line-height: 1.3; margin: 0 0 .45rem; }
.band { padding: var(--space) 0; background: var(--bg); }
.band-alt { padding: var(--space) 0; background: var(--bg-2); }
.band-paper { padding: var(--space) 0; background: var(--cream); color: var(--ink); }
.band-paper a { color: var(--ink); }
.band-paper a:hover { color: #8a4e22; }
.band-lead { margin: 0 0 22px; color: var(--fog); max-width: 40rem; }
.band-paper .band-lead, .band-paper p { color: #3d342f; }
.page-banner {
 position: relative;
 padding: 42px 0 28px;
 background:
  radial-gradient(520px 220px at 12% 0%, rgba(92, 61, 85, .45), transparent 70%),
  radial-gradient(420px 180px at 88% 10%, rgba(201, 134, 74, .16), transparent 72%),
  var(--bg);
 border-bottom: 1px solid var(--line);
}
.page-banner h1 { font-size: clamp(1.8rem, 4vw, 2.8rem); max-width: 12em; }
.banner-copy { max-width: 40rem; color: var(--fog); margin: 0 0 18px; }
.filter-row { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
 display: inline-flex;
 align-items: center;
 border-radius: 999px;
 padding: .28rem .8rem;
 border: 1px solid var(--line);
 color: var(--cream);
 background: rgba(28, 24, 22, .8);
 font-weight: 700;
 font-size: .92rem;
 text-decoration: none;
}
.chip:hover, .chip:focus { color: var(--ink); background: var(--cream); text-decoration: none; border-color: var(--cream); }
.chip.is-on { background: var(--copper); color: var(--ink); border-color: var(--copper); }
.flow {
 display: grid;
 grid-template-columns: minmax(0, 1.35fr) minmax(260px, .72fr);
 gap: 16px;
 align-items: start;
}
.feature, .mini, .ticket, .compare-card, .note, .quick-item {
 background: #211c19;
 border: 1px solid var(--line);
 border-radius: var(--radius);
 box-shadow: var(--shadow);
 overflow: hidden;
}
.feature { min-height: 100%; }
.poster, .thumb {
 position: relative;
 background:
  linear-gradient(160deg, rgba(20, 17, 15, .1), rgba(20, 17, 15, .55)),
  linear-gradient(135deg, #3a2a38, #1b1614 58%, #6a4630);
}
.poster { aspect-ratio: 16/9; }
.poster-tall { aspect-ratio: 3/4; min-height: 280px; }
.thumb { aspect-ratio: 16/9; width: 100%; }
.poster::after, .thumb::after {
 content: "";
 position: absolute;
 inset: 12px auto auto 12px;
 width: 36px;
 height: 10px;
 background: repeating-linear-gradient(90deg, var(--copper) 0 6px, transparent 6px 11px);
 opacity: .8;
}
.tone-b { background: linear-gradient(160deg, rgba(20,17,15,.1), rgba(20,17,15,.55)), linear-gradient(145deg, #4a3148, #221816 55%, #8a5a34); }
.tone-c { background: linear-gradient(160deg, rgba(20,17,15,.15), rgba(20,17,15,.5)), linear-gradient(200deg, #2a2422, #5c3d55 70%, #c9864a); }
.tone-d { background: linear-gradient(145deg, #241c22, #3d2c2a 40%, #1a1412); }
.card-body, .ticket-body { padding: 12px 14px 14px; }
.badge-row { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.badge-tag {
 display: inline-flex;
 align-items: center;
 border-radius: 999px;
 padding: .08rem .55rem;
 background: rgba(201, 134, 74, .14);
 color: var(--copper);
 border: 1px solid rgba(201, 134, 74, .35);
 font-size: .78rem;
 font-weight: 700;
}
.meta-line { color: var(--fog); font-size: .92rem; margin: 0 0 10px; }
.feature h2, .mini h3, .ticket h3 { font-size: 1.12rem; }
.side-stack { display: flex; flex-direction: column; gap: 12px; }
.mini { display: grid; grid-template-columns: 116px minmax(0, 1fr); }
.mini .thumb { height: 100%; aspect-ratio: auto; min-height: 96px; }
.rail-wrap { margin-top: 16px; }
.rail {
 display: flex;
 gap: 12px;
 overflow-x: auto;
 scroll-snap-type: x mandatory;
 padding: 2px 2px 12px;
}
.ticket { position: relative; flex: 0 0 270px; scroll-snap-align: start; }
.more-row { margin-top: 8px; }
.btn-main, .btn-ghost, .btn-small {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: var(--radius-sm);
 font-weight: 700;
 text-decoration: none;
 transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
 cursor: pointer;
}
.btn-main {
 background: var(--plum);
 color: var(--cream);
 border: 1px solid transparent;
 padding: .72rem 1.15rem;
}
.btn-ghost {
 background: transparent;
 color: var(--cream);
 border: 1px solid rgba(243, 231, 211, .4);
 padding: .72rem 1.15rem;
}
.btn-small {
 background: var(--plum);
 color: var(--cream);
 border: 1px solid transparent;
 padding: .28rem .6rem;
 font-size: .82rem;
}
.btn-main:hover, .btn-ghost:hover, .btn-small:hover {
 transform: translateY(-2px);
 border-color: var(--copper);
 color: var(--cream);
 text-decoration: none;
}
.btn-ghost:hover { color: var(--ink); background: var(--cream); }
.btn-main:active, .btn-ghost:active, .btn-small:active { transform: translateY(1px); }
.compare {
 display: grid;
 grid-template-columns: 1fr 1fr;
 gap: 16px;
}
.compare-card { padding: 22px 22px 18px; }
.compare-card h3 { font-size: 1.35rem; }
.time-badge {
 display: inline-flex;
 margin-bottom: 10px;
 padding: .2rem .7rem;
 border-radius: 999px;
 background: var(--plum);
 color: var(--cream);
 font-weight: 700;
 font-size: .85rem;
}
.compare-card ul { margin: 0; padding: 0; list-style: none; }
.compare-card li {
 padding: 8px 0;
 border-top: 1px solid var(--line);
}
.tag-wall { display: flex; flex-wrap: wrap; gap: 10px; }
.tag-wall a {
 display: inline-flex;
 align-items: center;
 min-height: 42px;
 padding: .35rem .9rem;
 border-radius: 999px;
 border: 1px solid var(--line);
 background: #14110F;
 color: var(--cream);
 font-weight: 700;
}
.tag-wall a:hover, .tag-wall a:focus {
 color: var(--ink);
 background: var(--cream);
 text-decoration: none;
 border-color: var(--cream);
}
.note-stack { display: grid; gap: 12px; max-width: 860px; }
.note { padding: 18px 18px 16px; background: #14110F; }
.note h3 { font-size: 1.15rem; }
.note p { margin: 0; color: var(--fog); }
.quick { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.quick-item { padding: 16px 16px 14px; }
.quick-item h3 { font-size: 1.05rem; color: var(--copper); }
.quick-item p { margin: 0; }
.return-band {
 padding: 28px 0;
 background: var(--plum);
 border-top: 1px solid rgba(243, 231, 211, .16);
}
.return-inner {
 display: flex;
 justify-content: space-between;
 align-items: center;
 gap: 16px;
}
.return-inner h2 { margin: 0 0 4px; font-size: 1.45rem; }
.return-inner p { margin: 0; color: rgba(243, 231, 211, .82); }
.site-footer {
 padding: 36px 0 22px;
 background: #100e0c;
 border-top: 1px solid var(--line);
}
.foot-grid {
 display: grid;
 grid-template-columns: 1.3fr .9fr 1.1fr;
 gap: 28px;
}
.foot-links { display: flex; flex-direction: column; gap: 6px; }
.foot-links a { color: var(--cream); }
.foot-bottom {
 margin-top: 22px;
 padding-top: 14px;
 border-top: 1px solid var(--line);
 color: var(--fog);
 font-size: .92rem;
}
@media (min-width: 992px) {
 .mega-grid, .mega-latest { display: none; }
 .nav-shell:hover .mega-grid,
 .nav-shell:focus-within .mega-grid {
  display: grid;
  position: absolute;
  right: 12px;
  top: 70px;
  width: min(540px, 88vw);
  padding: 16px;
  background: #1C1816;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  z-index: 30;
 }
 .nav-shell:hover .mega-latest,
 .nav-shell:focus-within .mega-latest {
  display: flex;
  position: absolute;
  right: 28px;
  top: 318px;
  width: min(508px, calc(88vw - 32px));
  margin: 0;
  padding-top: 10px;
  z-index: 31;
  background: #1C1816;
 }
}
@media (max-width: 991.98px) {
 .navbar-collapse { padding-bottom: 14px; }
 .nav-main { margin: 8px 0 12px; }
 .mega-grid { grid-template-columns: 1fr 1fr; }
 .mega-latest { margin-bottom: 8px; }
}
@media (max-width: 767.98px) {
 :root { --space: 48px; }
 .flow, .compare, .quick, .foot-grid { grid-template-columns: 1fr; }
 .mini { grid-template-columns: 96px minmax(0, 1fr); }
 .return-inner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 575.98px) {
 .container { padding-left: 14px; padding-right: 14px; }
 .mega-grid { grid-template-columns: 1fr; }
 .ticket { flex-basis: 84%; }
 .page-banner { padding-top: 28px; }
 .feature h2 { font-size: 1.2rem; }
}

/* roulang page: category1 */
:root {
 --bg: #14110F;
 --bg-2: #1C1816;
 --cream: #F3E7D3;
 --ink: #1A1412;
 --plum: #5C3D55;
 --copper: #C9864A;
 --fog: #A89F96;
 --line: rgba(243, 231, 211, .18);
 --page: #14110F;
 --radius: 18px;
 --radius-sm: 10px;
 --shadow: 0 10px 24px rgba(20, 17, 15, .28);
 --space: 72px;
 --font: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
 --band: #14110F;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
 margin: 0;
 background: var(--bg);
 color: var(--cream);
 font-family: var(--font);
 font-size: 17px;
 line-height: 1.75;
 text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
button, input, select { font-family: inherit; }
a { color: var(--cream); text-decoration: none; }
a:hover { color: var(--copper); text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
 outline: 2px solid var(--copper);
 outline-offset: 2px;
}
.container { max-width: 1180px; }
.site-header {
 position: sticky;
 top: 0;
 z-index: 1040;
 background: rgba(20, 17, 15, .94);
 border-bottom: 1px solid transparent;
 transition: background .2s ease, border-color .2s ease;
}
.site-header.is-scrolled {
 background: #100e0c;
 border-bottom-color: rgba(243, 231, 211, .28);
}
.site-nav { padding: 0; }
.nav-shell { min-height: 76px; position: relative; }
.brand {
 display: block;
 max-width: 11.5em;
 color: var(--cream);
 font-weight: 700;
 letter-spacing: -0.03em;
 line-height: 1.25;
 text-decoration: none;
}
.brand:hover, .brand:focus { color: var(--copper); text-decoration: none; }
.navbar-toggler {
 border: 1px solid rgba(243, 231, 211, .4);
 border-radius: var(--radius-sm);
 padding: .4rem .55rem;
}
.navbar-toggler:focus { box-shadow: 0 0 0 2px var(--copper); }
.navbar-toggler-icon {
 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%23F3E7D3' stroke-width='2' stroke-linecap='round' d='M5 8h20M5 15h20M5 22h20'/%3E%3C/svg%3E");
}
.nav-main { gap: 1.15rem; }
.nav-main .nav-link {
 color: var(--cream);
 font-weight: 500;
 padding: .35rem .05rem .3rem;
 border-bottom: 2px solid transparent;
 text-decoration: none;
}
.nav-main .nav-link:hover,
.nav-main .nav-link:focus {
 color: var(--copper);
 border-bottom-color: var(--copper);
 text-decoration: none;
}
.nav-main .nav-link.is-active {
 color: var(--cream);
 border-bottom-color: var(--copper);
}
.mega-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; --band: #1C1816; }
.mega-card {
 position: relative;
 display: block;
 min-height: 108px;
 padding: 12px 14px;
 background: #14110F;
 color: var(--cream);
 border: 1px solid var(--line);
 border-radius: var(--radius);
 text-decoration: none;
 transition: transform .18s ease, border-color .18s ease;
}
.mega-card:hover, .mega-card:focus {
 color: var(--cream);
 text-decoration: none;
 transform: translateY(-2px);
 border-color: var(--copper);
}
.mega-kicker { display: block; color: var(--copper); font-size: .78rem; font-weight: 700; margin-bottom: 4px; }
.mega-card strong { display: block; font-size: 1rem; line-height: 1.4; }
.mega-card small { display: block; color: var(--fog); margin-top: 4px; }
.mega-latest {
 display: flex;
 justify-content: space-between;
 gap: 12px;
 margin-top: 12px;
 padding-top: 12px;
 border-top: 1px solid var(--line);
 color: var(--cream);
 text-decoration: none;
}
.mega-latest:hover { color: var(--copper); }
.band { padding: var(--space) 0; background: var(--bg); --band: #14110F; }
.band-alt { padding: var(--space) 0; background: var(--bg-2); --band: #1C1816; }
.band-paper { padding: var(--space) 0; background: var(--cream); color: var(--ink); --band: #F3E7D3; }
.band-paper .sec-note,
.band-paper p { color: #3d342f; }
.sec-title {
 margin: 0 0 6px;
 font-size: clamp(1.35rem, 2.2vw, 1.85rem);
 font-weight: 700;
 letter-spacing: -0.03em;
 line-height: 1.3;
}
.sec-note { margin: 0 0 22px; color: var(--fog); }
.page-title {
 margin: 0 0 10px;
 max-width: 11em;
 font-size: clamp(1.85rem, 3.8vw, 2.75rem);
 font-weight: 700;
 letter-spacing: -0.03em;
 line-height: 1.22;
}
.lead-copy { max-width: 38rem; color: var(--fog); margin: 0 0 16px; }
.lead-grid {
 display: grid;
 grid-template-columns: minmax(0, 1.08fr) minmax(260px, .92fr);
 gap: 32px;
 align-items: center;
}
.filters { display: flex; flex-direction: column; gap: 10px; }
.chip-line { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.chip-name { color: var(--copper); font-size: .82rem; font-weight: 700; min-width: 2.5em; }
.chip {
 border-radius: 999px;
 border: 1px solid var(--line);
 background: transparent;
 color: var(--cream);
 padding: .28rem .78rem;
 font-weight: 700;
 font-size: .9rem;
 cursor: pointer;
 transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.chip:hover, .chip:focus, .chip.is-on {
 background: var(--copper);
 color: var(--ink);
 border-color: var(--copper);
 transform: translateY(-2px);
}
.chip:active { transform: translateY(1px); }
.collage { position: relative; min-height: 470px; }
.collage .poster { position: absolute; width: 46%; box-shadow: var(--shadow); }
.collage .p1 { left: 0; top: 28px; z-index: 2; }
.collage .p2 { right: 4px; top: 0; width: 42%; z-index: 1; }
.collage .p3 { left: 24%; bottom: 0; width: 40%; z-index: 3; }
.poster {
 position: relative;
 aspect-ratio: 16/9;
 background:
  radial-gradient(90% 70% at 30% 20%, rgba(243,231,211,.22), transparent 50%),
  linear-gradient(165deg, #5c3d55 0%, #241920 48%, #14110f 100%);
 overflow: hidden;
}
.poster::before {
 content: "";
 position: absolute;
 inset: 12% 18%;
 border: 1px solid rgba(243,231,211,.28);
 border-radius: 12px;
}
.poster::after {
 content: "";
 position: absolute;
 inset: 0;
 background: radial-gradient(circle at center, transparent 42%, rgba(12,9,8,.55) 100%);
}
.ratio-34 { aspect-ratio: 3/4; }
.poster-b { background: radial-gradient(80% 60% at 70% 30%, rgba(201,134,74,.45), transparent 52%), linear-gradient(180deg, #3a2c33, #14110f 72%); }
.poster-c { background: radial-gradient(70% 50% at 40% 80%, rgba(243,231,211,.2), transparent 46%), linear-gradient(200deg, #6a4a3a, #1c1816 68%); }
.poster-d { background: radial-gradient(60% 40% at 50% 40%, rgba(201,134,74,.35), transparent 50%), linear-gradient(145deg, #2a2428, #100e0c); }
.poster-e { background: linear-gradient(160deg, #4e3948, #1a1412 60%); }
.poster-f { background: radial-gradient(80% 80% at 20% 10%, rgba(243,231,211,.18), transparent 40%), linear-gradient(180deg, #5c3d55, #14110f); }
.cut { position: relative; }
.cut > .corner, .cut.corner-host::after { pointer-events: none; }
.long-card.cut::after, .scene.cut::after, .mega-card.cut::after, .poster.cut::after {
 width: 18px;
 height: 18px;
 inset: auto;
 top: 0;
 right: 0;
 background: linear-gradient(225deg, var(--band, #14110F) 50%, transparent 50%);
 border-radius: 0;
}
.poster.cut::after {
 background: linear-gradient(225deg, var(--band, #14110F) 50%, transparent 50%), radial-gradient(circle at center, transparent 42%, rgba(12,9,8,.55) 100%);
}
.long-list { display: flex; flex-direction: column; gap: 14px; }
.long-card {
 display: grid;
 grid-template-columns: 240px minmax(0, 1fr);
 background: #211c19;
 border: 1px solid var(--line);
 border-radius: var(--radius);
 box-shadow: var(--shadow);
 overflow: hidden;
 transition: transform .18s ease, border-color .18s ease;
}
.band-alt .long-card { background: #14110F; }
.long-card:hover { transform: translateY(-2px); border-color: var(--copper); }
.long-card .poster { min-height: 148px; height: 100%; aspect-ratio: auto; }
.long-body { padding: 14px 16px 16px; }
.long-body h3 {
 margin: 0 0 6px;
 font-size: 1.12rem;
 font-weight: 700;
 letter-spacing: -0.03em;
 line-height: 1.4;
}
.meta-line { margin: 0; color: var(--fog); }
.long-body .meta-line { margin-bottom: 12px; }
.badge-row { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.badge-tag {
 display: inline-flex;
 align-items: center;
 border-radius: 999px;
 padding: .08rem .55rem;
 background: rgba(201, 134, 74, .14);
 color: var(--copper);
 border: 1px solid rgba(201, 134, 74, .38);
 font-size: .78rem;
 font-weight: 700;
 line-height: 1.6;
}
.list-more { margin: 18px 0 0; }
.filter-empty { color: var(--fog); margin: 8px 0 0; }
.btn-main, .btn-ghost, .btn-small {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: var(--radius-sm);
 font-weight: 700;
 text-decoration: none;
 transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
 cursor: pointer;
}
.btn-main {
 background: var(--plum);
 color: var(--cream);
 border: 1px solid transparent;
 padding: .72rem 1.15rem;
}
.btn-ghost {
 background: transparent;
 color: var(--cream);
 border: 1px solid rgba(243, 231, 211, .4);
 padding: .72rem 1.15rem;
}
.btn-small {
 background: var(--plum);
 color: var(--cream);
 border: 1px solid transparent;
 padding: .28rem .7rem;
 font-size: .86rem;
}
.btn-main:hover, .btn-ghost:hover, .btn-small:hover {
 transform: translateY(-2px);
 border-color: var(--copper);
 color: var(--cream);
 text-decoration: none;
}
.btn-ghost:hover { color: var(--ink); background: var(--cream); }
.btn-main:active, .btn-ghost:active, .btn-small:active { transform: translateY(1px); }
.meter { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 6px 16px; align-items: center; margin-bottom: 18px; }
.meter strong { font-weight: 700; letter-spacing: -0.03em; }
.meter p { grid-column: 2; margin: 0; color: var(--fog); }
.track { height: 12px; background: rgba(243,231,211,.12); border-radius: 999px; overflow: hidden; }
.track span { display: block; height: 100%; background: linear-gradient(90deg, var(--plum), var(--copper)); border-radius: inherit; }
.span-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 22px; align-items: start; }
.range-stack { display: flex; flex-direction: column; gap: 10px; }
.range-pill {
 display: flex;
 justify-content: space-between;
 gap: 12px;
 padding: 12px 16px;
 border-radius: 999px;
 background: rgba(201,134,74,.14);
 color: var(--cream);
 border: 1px solid rgba(201,134,74,.35);
 font-weight: 700;
}
.plain-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.plain-list li {
 padding: 14px 16px;
 border-left: 3px solid var(--copper);
 background: #211c19;
 border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.plain-list strong { display: block; letter-spacing: -0.03em; }
.scene-stack { display: flex; flex-direction: column; gap: 12px; }
.scene {
 display: grid;
 grid-template-columns: 168px minmax(0, 1fr);
 gap: 14px;
 align-items: center;
 padding: 12px;
 background: #14110F;
 border: 1px solid var(--line);
 border-radius: var(--radius);
 box-shadow: var(--shadow);
}
.scene h3 { margin: 0 0 4px; font-size: 1.08rem; font-weight: 700; letter-spacing: -0.03em; }
.scene p { margin: 0; color: var(--fog); }
.scene .poster { aspect-ratio: 3/4; }
.news-row {
 display: grid;
 grid-template-columns: 240px minmax(0, 1fr);
 gap: 16px;
 align-items: center;
 padding: 14px 0;
 border-bottom: 1px solid var(--line);
}
.news-row h3 { margin: 0 0 6px; font-size: 1.08rem; font-weight: 700; letter-spacing: -0.03em; }
.news-row p { margin: 0 0 10px; color: var(--fog); }
.faq-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(220px, .7fr); gap: 18px; align-items: start; }
.acc-item {
 background: #14110F;
 border: 1px solid var(--line) !important;
 border-radius: var(--radius) !important;
 margin-bottom: 10px;
 overflow: hidden;
}
.accordion-button {
 background: #14110F;
 color: var(--cream);
 font-weight: 700;
 letter-spacing: -0.03em;
 box-shadow: none;
}
.accordion-button:not(.collapsed) { background: #241c21; color: var(--cream); }
.accordion-button:focus { box-shadow: inset 0 0 0 2px var(--copper); }
.accordion-button::after { filter: invert(80%) sepia(30%) saturate(500%) hue-rotate(340deg); }
.accordion-body { color: var(--fog); background: #14110F; }
.side-note {
 padding: 18px;
 background: #14110F;
 border: 1px solid var(--line);
 border-radius: var(--radius);
 box-shadow: var(--shadow);
}
.side-note h3 { margin: 0 0 8px; font-size: 1.05rem; font-weight: 700; }
.side-note p { margin: 0 0 8px; color: var(--fog); }
.side-note p:last-child { margin-bottom: 0; }
.sub-strip {
 display: grid;
 grid-template-columns: minmax(0, 1.1fr) minmax(220px, .8fr) auto;
 gap: 14px;
 align-items: end;
 background: var(--cream);
 color: var(--ink);
 border-radius: var(--radius);
 padding: 22px;
 box-shadow: var(--shadow);
 position: relative;
}
.sub-strip h2, .sub-strip p { color: var(--ink); }
.sub-strip h2 { margin: 0 0 6px; font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 700; letter-spacing: -0.03em; }
.sub-strip p { margin: 0; }
.field-label { display: block; font-weight: 700; margin-bottom: 6px; color: var(--ink); }
.field {
 width: 100%;
 background: #fffaf3;
 color: var(--ink);
 border: 1px solid rgba(26,20,18,.22);
 border-radius: var(--radius-sm);
 padding: .72rem .85rem;
}
.field:focus { border-color: var(--copper); outline: 2px solid var(--copper); }
.site-footer { background: #100e0c; border-top: 1px solid var(--line); padding: 42px 0 24px; }
.foot-grid { display: grid; grid-template-columns: 1.2fr .8fr 1fr; gap: 28px; }
.foot-links { display: flex; flex-direction: column; gap: 8px; }
.foot-links a { color: var(--cream); }
.foot-links a:hover { color: var(--copper); }
.site-footer h2 { font-size: 1.05rem; font-weight: 700; letter-spacing: -0.03em; margin: 0 0 8px; }
.foot-bottom { margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--fog); font-size: .92rem; }
.is-hidden { display: none !important; }
@media (min-width: 992px) {
 .mega-grid {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  right: 12px;
  width: 520px;
  padding: 16px;
  background: #1C1816;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  z-index: 30;
 }
 .mega-latest {
  margin-left: auto;
  margin-top: 0;
  padding: 6px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
 }
 .nav-shell:hover .mega-grid,
 .nav-shell:focus-within .mega-grid { display: grid; }
}
@media (max-width: 1199.98px) {
 .long-card { grid-template-columns: 200px minmax(0, 1fr); }
}
@media (max-width: 991.98px) {
 .nav-shell { align-items: flex-start; padding-top: 10px; padding-bottom: 10px; }
 .navbar-collapse { padding-bottom: 14px; }
 .mega-grid { margin-top: 12px; }
 .lead-grid, .span-layout, .faq-grid, .foot-grid, .sub-strip { grid-template-columns: 1fr; }
 .collage { min-height: 0; display: flex; gap: 8px; }
 .collage .poster { position: relative; width: 33.33%; inset: auto; }
 .meter { grid-template-columns: 1fr; }
 .meter p { grid-column: 1; }
}
@media (max-width: 767.98px) {
 .news-row, .scene, .long-card { grid-template-columns: 1fr; }
 .long-card .poster { aspect-ratio: 16/9; min-height: 0; }
 .scene .poster { aspect-ratio: 16/9; }
}
@media (max-width: 575.98px) {
 :root { --space: 42px; }
 .container { padding-left: 14px; padding-right: 14px; }
 .brand { max-width: 8.5em; }
 .mega-grid { grid-template-columns: 1fr; }
 .collage { flex-direction: column; }
 .collage .poster { width: 100%; aspect-ratio: 3/4; max-height: 280px; }
 .page-title { max-width: none; }
 .chip-name { width: 100%; }
 .range-pill { border-radius: 16px; }
}

/* roulang: framework shim */
/* 覆盖 Bootstrap 等对 a/btn 的全局默认，避免导航出现下划线/蓝链 */
.site-header a,.site-header a:hover,.navbar a,.navbar a:hover,.nav-links a,.nav-links a:hover,header nav a,header nav a:hover{text-decoration:none}
.site-header .btn,.navbar .btn,.nav-cta{text-decoration:none}
