/* roulang page: index */
:root{
  --paper:#F5F1E9;
  --paper-light:#FBF8F2;
  --paper-deep:#EDE6DA;
  --ink:#1B1815;
  --ink-soft:#6F675D;
  --line:#DCD3C6;
  --night:#11151A;
  --night-panel:#1A2027;
  --night-line:#2A323A;
  --gold:#C4A66A;
  --sage:#7D8D86;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC",SimSun,serif;
  --sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  --radius:4px;
  --shadow-card:0 1px 2px rgba(0,0,0,.03),0 16px 48px rgba(20,15,10,.06);
  --shadow-float:0 10px 30px rgba(10,8,5,.14);
  --spacer-section:clamp(70px,8vw,120px);
}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.8;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body:has(.site-nav-card){padding-top:14px}
*,*::before,*::after{box-sizing:border-box}
h1,h2,h3,h4,h5,h6,.font-display{
  font-family:var(--serif);
  font-weight:600;
  line-height:1.3;
  color:var(--ink);
}
a{color:inherit;text-decoration:none;transition:color .25s ease, border-color .25s ease}
img{max-width:100%;display:block}
input,select,textarea,button{font-family:var(--sans)}
.container{max-width:1240px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
::selection{background:var(--gold);color:var(--night)}
.btn-site{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:1px solid transparent;
  border-radius:3px;
  padding:14px 28px;
  font-size:15px;
  font-weight:600;
  letter-spacing:.04em;
  cursor:pointer;
  transition:all .25s ease-out;
  background:var(--ink);
  color:#F7F2E9;
  line-height:1.2;
}
.btn-site:hover{
  background:#000;
  color:#fff;
  box-shadow:0 10px 24px rgba(27,24,21,.18);
  transform:translateY(-2px);
}
.btn-site--gold{
  background:transparent;
  border-color:var(--gold);
  color:var(--gold);
}
.btn-site--gold:hover{
  background:rgba(196,166,106,.12);
  color:#e6d3b0;
}
.btn-site--light{
  background:#FBF8F2;
  border-color:#FBF8F2;
  color:var(--ink);
}
.btn-site--light:hover{
  background:#fff;
  color:#000;
}
.btn-site--outline{
  background:transparent;
  border-color:#B8A98F;
  color:var(--ink);
}
.btn-site--outline:hover{
  border-color:var(--ink);
  color:var(--ink);
  background:rgba(27,24,21,.04);
}
.btn-site--sm{padding:10px 18px;font-size:14px}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:var(--gold);
  font-size:12px;
  letter-spacing:.24em;
  text-transform:uppercase;
}
.eyebrow::before{
  content:"";
  width:28px;height:1px;background:var(--gold);display:inline-block;
}
.section-kicker{
  color:var(--gold);
  font-size:13px;
  letter-spacing:.2em;
  margin-bottom:18px;
  display:block;
}
.section-title{
  font-size:clamp(30px,4vw,48px);
  letter-spacing:.02em;
  margin-bottom:20px;
}
.section-sub{font-size:17px;color:var(--ink-soft);max-width:760px}
.text-sage{color:var(--sage)!important}
.text-gold{color:var(--gold)!important}
.text-night{color:var(--night)!important}
.bg-night{background:var(--night);color:rgba(255,255,255,.78)}
.bg-night h2,.bg-night h3,.bg-night h4,.bg-night .section-title{color:#F5EFE4}
.text-column-2{column-count:2;column-gap:48px}
.divider{height:1px;background:var(--line);border:0;margin:36px 0}

/* ===== 导航卡片 ===== */
.site-header{
  position:relative;
  z-index:1200;
  margin-bottom:4px;
}
.site-nav-card{
  background:rgba(253,250,244,.94);
  backdrop-filter:blur(8px);
  border:1px solid var(--line);
  border-radius:6px;
  box-shadow:var(--shadow-card);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:8px 8px 8px 22px;
  margin-top:12px;
  min-height:72px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--ink);
}
.brand-mark{
  display:grid;
  place-items:center;
  width:38px;height:38px;
  border-radius:50%;
  border:1px solid var(--gold);
  color:var(--gold);
  font-family:var(--serif);
  font-size:18px;
  font-weight:700;
  flex:0 0 auto;
}
.brand-name{
  font-family:var(--serif);
  font-weight:700;
  font-size:22px;
  letter-spacing:.06em;
  color:var(--ink);
  white-space:nowrap;
}
.main-nav{
  display:flex;
  align-items:center;
  gap:6px;
  margin:0 auto;
  flex-wrap:wrap;
}
.nav-chip{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:10px 14px;
  border-radius:2px;
  border:1px solid transparent;
  color:#4E473F;
  font-size:14px;
  font-weight:500;
  line-height:1.2;
  transition:all .25s ease;
  text-align:left;
}
.nav-chip .chip-icon{
  width:7px;height:7px;border-radius:50%;
  background:#D4C5A3;
  color:inherit;
  transition:background .25s ease, transform .25s ease;
}
.nav-chip:hover{
  background:rgba(27,24,21,.05);
  border-color:var(--line);
  color:var(--ink);
}
.nav-chip:hover .chip-icon{
  background:var(--gold);
}
.nav-chip.is-active{
  color:var(--ink);
  border-color:#E6DBC9;
  background:rgba(255,253,247,.7);
}
.nav-chip.is-active .chip-icon{
  background:var(--gold);
  box-shadow:0 0 0 3px rgba(196,166,106,.2);
}
.header-cta{
  margin-left:4px;
  padding:9px 0;
}
.nav-toggler{
  background:#fffdf8;
  border:1px solid var(--line);
  border-radius:3px;
  width:44px;height:44px;
  display:none;
  align-items:center;
  justify-content:center;
  color:var(--ink);
  cursor:pointer;
  line-height:1;
}
.nav-toggler:hover{
  border-color:var(--gold);
}
.nav-toggler svg{width:22px;height:22px}
@media (max-width:992px){
  .site-nav-card{
    flex-wrap:wrap;
    padding-left:14px;
  }
  .brand-name{font-size:18px}
  .nav-toggler{
    display:inline-flex;
    margin-left:auto;
  }
  .main-nav-collapse{
    width:100%;
    order:3;
    padding:10px 6px 14px;
  }
  .main-nav{
    display:flex;
    flex-direction:column;
    gap:8px;
    align-items:stretch;
  }
  .nav-chip{
    border:1px solid var(--line);
    background:rgba(255,255,255,.4);
    width:100%;
  }
  .header-cta{
    order:2;
    margin:0 8px 0 0;
    padding:0;
  }
  .header-cta .btn-site{padding:10px 16px;font-size:14px}
  .site-header{padding:4px 0 0}
}
@media (min-width:993px){
  .main-nav-collapse{
    display:flex !important;
    flex-basis:auto;
    position:static;
    flex:0 0 auto;
    width:auto;
  }
}

/* ===== Hero KV ===== */
.hero{
  position:relative;
  overflow:hidden;
  background-color:var(--night);
  background-image:
    linear-gradient(180deg, rgba(17,21,26,.88), rgba(17,21,26,.64) 50%, rgba(17,21,26,.9)),
    url('/assets/images/backpic/back-1.webp');
  background-position:center;
  background-size:cover;
  color:rgba(255,253,248,.85);
  padding:clamp(72px,10vw,130px) 0 90px;
  isolation:isolate;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background-image:
    linear-gradient(rgba(196,166,106,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196,166,106,.08) 1px, transparent 1px);
  background-size:70px 70px;
  opacity:.55;
  pointer-events:none;
  mask-image:linear-gradient(180deg, transparent, #000 18%);
}
.hero::after{
  content:"LAT 38.7653°N / LON 93.2868°E";
  font-feature-settings:"tnum";
  position:absolute;
  right:32px;
  bottom:20px;
  font-size:11px;
  letter-spacing:.18em;
  color:rgba(255,255,255,.3);
  font-variant-numeric:tabular-nums;
  z-index:0;
}
@media (max-width:480px){
  .hero::after{opacity:.45}
}
.hero h1{
  font-family:var(--serif);
  color:#FBF5E8;
  font-size:clamp(42px,6.8vw,86px);
  line-height:1.22;
  letter-spacing:.02em;
  margin:14px 0 26px;
  max-width:20em;
}
.hero h1 .hero-amp{
  font-family:var(--serif);
  color:var(--gold);
}
.hero-lead{
  font-size:clamp(16px,1.5vw,19px);
  max-width:700px;
  color:rgba(255,255,255,.74);
  line-height:2;
  margin-bottom:30px;
}
.hero-kicker{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:13px;
  color:var(--gold);
  letter-spacing:.2em;
}
.hero-kicker .line{
  width:34px;height:1px;background:var(--gold);
}
.hero-dates{
  display:flex;
  flex-wrap:wrap;
  gap:6px 22px;
  color:rgba(255,255,255,.6);
  font-size:14px;
  margin-bottom:30px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(255,255,255,.12);
  font-variant-numeric:tabular-nums;
}
.hero-dates b{
  color:#fff;
  font-weight:500;
}
.hero-meta-card{
  background:#1A2027;
  border:1px solid #263039;
  border-radius:4px;
  padding:28px 30px;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.meta-box-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:#D9CFBE;
  border-bottom:1px solid var(--night-line);
  padding-bottom:12px;
  margin-bottom:14px;
  font-size:13px;
  letter-spacing:.08em;
}
.ticket-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--gold);
  font-weight:600;
}
.ticket-status i{
  width:8px;height:8px;background:var(--gold);
  border-radius:50%;
  display:inline-block;
  box-shadow:0 0 0 4px rgba(196,166,106,.14);
}
.meta-box-list{
  list-style:none;
  margin:0;
  padding:0;
}
.meta-box-list li{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:11px 0;
  border-bottom:1px dashed var(--night-line);
}
.meta-box-list li:last-child{border-bottom:0}
.meta-box-list span{color:#8D8A84;font-size:14px;white-space:nowrap}
.meta-box-list strong{color:#F1EADF;font-weight:500;font-size:14px;text-align:right}
.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

/* ===== Section 通用 ===== */
.section{
  padding-top:var(--spacer-section);
  padding-bottom:var(--spacer-section);
}
.section--soft{background-color:var(--paper-light)}
.section--deep{background-color:var(--paper-deep)}
.section-heading{
  max-width:860px;
}
.section-heading .lead{
  color:var(--ink-soft);
  font-size:17px;
  margin-top:8px;
}
.divider-head{
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:10px;
}
.divider-head .narrow-line{
  width:44px;height:1px;background:var(--gold);
  flex:0 0 44px;
}

/* ===== 日程时间线 ===== */
.agenda-grid{
  margin-top:34px;
}
.timeline{
  list-style:none;
  margin:0;
  padding:0;
  position:relative;
}
.timeline-item{
  display:grid;
  grid-template-columns:210px 1fr;
  gap:34px;
  padding-bottom:36px;
  position:relative;
}
.timeline-item::before{
  content:"";
  position:absolute;
  left:205px;
  top:22px;
  bottom:0;
  width:1px;
  background:var(--line);
}
.timeline-item:last-child::before{
  display:none;
}
.timeline-item::after{
  content:"";
  position:absolute;
  left:201px;
  top:12px;
  width:9px;height:9px;
  border-radius:50%;
  background:var(--gold);
  border:1px solid var(--paper);
  box-shadow:0 0 0 3px rgba(196,166,106,.25);
  z-index:1;
}
.event-date{
  text-align:right;
  padding-right:6px;
}
.event-date .day{
  font-family:var(--serif);
  font-size:36px;
  line-height:1;
  display:block;
  color:var(--ink);
}
.event-date .date-sub{
  color:var(--ink-soft);
  font-size:13px;
  display:block;
  padding-bottom:8px;
}
.event-date .clock{
  font-family:var(--serif);
  color:var(--gold);
  letter-spacing:.06em;
  font-size:19px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}
.agenda-card{
  background:#fffdf9;
  border:1px solid #E5DCCE;
  border-radius:4px;
  padding:22px 32px;
  box-shadow:0 2px 14px rgba(27,24,21,.03);
  transition:transform .3s ease-out, border-color .3s ease, box-shadow .3s ease;
}
.agenda-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-card);
  border-color:#D0B98F;
}
.agenda-tag{
  display:inline-block;
  font-size:12px;
  letter-spacing:.08em;
  padding:2px 12px;
  border:1px solid var(--line);
  border-radius:2px;
  color:var(--ink-soft);
  background:#FFFDF9;
  margin-bottom:10px;
}
.agenda-card h3{
  font-size:21px;
  margin-bottom:8px;
}
.agenda-card p{
  color:var(--ink-soft);
  margin:0;
  font-size:15px;
  max-width:760px;
}
@media (max-width:760px){
  .timeline-item{
    grid-template-columns:1fr;
    gap:6px;
    padding-left:22px;
  }
  .timeline-item::after{left:4px;top:8px}
  .timeline-item::before{left:8px}
  .event-date{
    text-align:left;
    padding:0 0 6px;
  }
  .event-date .day{display:inline-block;font-size:27px;margin-right:8px}
  .event-date .date-sub{display:inline-block}
  .event-date .clock{
    margin-left:4px;
    vertical-align:1px;
    font-size:16px;
  }
  .agenda-card{padding:18px 18px 16px}
  .agenda-card h3{font-size:18px}
}

/* ===== CMS 动态 ===== */
.cms-latest{
  background:var(--night);
  color:rgba(255,255,255,.8);
}
.cms-latest .section-sub{
  color:rgba(255,255,255,.55);
}
.cms-latest .section-title{color:#F7F0E4}
.news-list{
  margin-top:40px;
  border-top:1px solid #2A323A;
}
.news-item{
  display:grid;
  grid-template-columns:minmax(160px,200px) 1fr auto;
  gap:30px;
  padding:26px 0 20px;
  border-bottom:1px solid #2A323A;
  color:rgba(255,255,255,.76);
  transition:background .25s ease;
  align-items:center;
}
.news-item:hover{
  color:#fff;
}
.news-cat{
  display:inline-flex;
  align-self:flex-start;
  width:fit-content;
  align-items:center;
  gap:10px;
  color:var(--gold);
  font-size:12px;
  letter-spacing:.14em;
  border:1px solid rgba(196,166,106,.4);
  padding:3px 14px 3px 10px;
  border-radius:100px;
  white-space:nowrap;
}
.news-cat::before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:var(--gold);
  display:inline-block;
}
.news-body h3{
  font-family:"PingFang SC",var(--sans);
  font-size:20px;
  color:#F6F1EA;
  margin-bottom:6px;
  font-weight:600;
  transition:color .25s;
  line-height:1.5;
}
.news-item:hover .news-body h3{
  color:var(--gold);
}
.news-body p{
  font-size:14px;
  color:rgba(255,255,255,.55);
  margin-bottom:0;
  max-width:780px;
}
.news-date{
  color:rgba(255,255,255,.4);
  font-size:14px;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.news-arrow{
  font-size:18px;
  color:rgba(255,255,255,.3);
  transition:color .25s ease, transform .3s ease;
  margin-left:24px;
}
.news-item:hover .news-arrow{
  color:var(--gold);
  transform:translateX(5px);
}
.news-empty{
  display:flex;
  justify-content:center;
  align-items:center;
  padding:44px 0;
  border-bottom:1px solid var(--night-line);
  color:rgba(255,255,255,.5);
  font-size:15px;
  letter-spacing:.03em;
}
.news-empty::before{
  content:"NO DATA";
  margin-right:12px;
  color:var(--gold);
  font-family:var(--serif);
  font-size:13px;
  letter-spacing:.2em;
}
@media (max-width:760px){
  .news-item{
    grid-template-columns:1fr;
    gap:10px;
  }
  .news-date{
    grid-row:1;
    margin-bottom:0;
  }
  .news-arrow{margin-left:0}
  .news-body h3{font-size:18px}
}

/* ===== 现场亮点 ===== */
.feature-wrap{
  margin-top:34px;
}
.feature-visual{
  position:relative;
  border-radius:4px;
  overflow:hidden;
  height:100%;
  min-height:420px;
  background:var(--paper-deep);
}
.feature-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.92);
}
.feature-visual figcaption{
  position:absolute;
  left:22px;
  right:22px;
  bottom:18px;
  padding:18px 20px 14px;
  background:rgba(17,21,26,.78);
  border-left:2px solid var(--gold);
  color:#EAE2D5;
  border-radius:0 3px 3px 0;
  backdrop-filter:blur(4px);
}
.feature-visual figcaption strong{
  display:block;
  color:#fff;
  font-size:17px;
  margin-bottom:2px;
}
.feature-visual figcaption span{
  font-size:13px;
  color:rgba(255,255,255,.63);
}
.numbered-list{
  list-style:none;
  padding:0;
  margin:0;
}
.numbered-list li{
  display:flex;
  gap:24px;
  padding:22px 0 20px;
  border-bottom:1px solid var(--line);
}
.numbered-list .num{
  font-family:var(--serif);
  font-size:42px;
  line-height:.9;
  color:transparent;
  -webkit-text-stroke:1px var(--gold);
  font-weight:700;
  flex:0 0 60px;
  text-align:left;
}
.numbered-list h4{
  font-size:21px;
  margin-bottom:6px;
}
.numbered-list p{
  margin:0;
  color:var(--ink-soft);
  font-size:15px;
}
@media (max-width:991px){
  .feature-visual{
    min-height:340px;
    margin-bottom:24px;
  }
}

/* ===== 票种对比 ===== */
.ticket-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
  margin-top:36px;
}
.ticket-card{
  background:#fffdf9;
  border:1px solid var(--line);
  border-radius:4px;
  padding:30px 26px 26px;
  position:relative;
  display:flex;
  flex-direction:column;
  transition:transform .3s ease-out, box-shadow .28s ease, border-color .28s ease;
}
.ticket-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-float);
  border-color:#CBB58E;
}
.ticket-card.is-popular{
  border:1px solid var(--gold);
  transform:translateY(-8px);
  box-shadow:var(--shadow-float);
}
.ticket-card.is-popular:hover{
  transform:translateY(-13px);
}
.ticket-ribbon{
  position:absolute;
  top:-12px;
  right:0;
  left:0;
  margin:0 auto;
  width:max-content;
  padding:4px 16px 3px;
  font-size:12px;
  letter-spacing:.14em;
  background:var(--paper);
  border:1px solid var(--gold);
  color:#8A6B36;
  border-radius:100px;
  font-weight:600;
}
.ticket-card h3{
  font-size:22px;
}
.ticket-card .for{
  font-size:13px;
  color:var(--ink-soft);
  display:block;
  margin:4px 0 18px;
}
.ticket-price{
  display:flex;
  align-items:baseline;
  gap:4px;
  border-top:1px solid var(--line);
  padding-top:24px;
  margin-bottom:6px;
}
.ticket-price .currency{
  font-size:18px;
  color:var(--gold);
  font-weight:600;
}
.ticket-price .amount{
  font-family:var(--serif);
  font-size:46px;
  line-height:1;
  font-weight:600;
  font-variant-numeric:tabular-nums;
}
.ticket-price .per{
  color:var(--ink-soft);
  font-size:12px;
}
.ticket-features{
  list-style:none;
  padding:0;
  margin:16px 0 26px;
  flex:1;
}
.ticket-features li{
  padding:9px 0 9px 4px;
  border-bottom:1px dashed #EBE2D4;
  font-size:14px;
  color:#554D45;
  position:relative;
  display:flex;
  gap:10px;
}
.ticket-features li:last-child{border-bottom:0}
.ticket-features li::before{
  content:"✓";
  color:var(--sage);
  display:inline-block;
  width:18px;
  flex:0 0 auto;
}
.ticket-card .btn-site{
  width:100%;
}
@media (max-width:991px){
  .ticket-grid{
    grid-template-columns:repeat(2,1fr);
    row-gap:28px;
  }
}
@media (max-width:620px){
  .ticket-grid{
    grid-template-columns:1fr;
  }
  .ticket-card.is-popular{
    transform:none;
  }
  .ticket-card:hover{
    transform:translateY(-3px);
  }
}

/* ===== FAQ ===== */
.faq-container{
  max-width:850px;
  margin:40px auto 0;
}
.faq-item{
  background:transparent;
  border:0;
  border-top:1px solid var(--line);
  border-radius:0;
}
.faq-item:last-child{
  border-bottom:1px solid var(--line);
}
.faq-item .accordion-button{
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  padding:24px 8px;
  background:transparent;
  color:var(--ink);
  font-weight:600;
  font-size:17px;
  border:0;
  font-family:var(--sans);
  text-align:left;
  box-shadow:none;
  outline:none;
}
.faq-item .accordion-button.collapsed{
  color:var(--ink);
}
.faq-item .accordion-button:not(.collapsed){
  background:transparent;
  box-shadow:none;
}
.faq-item .accordion-button::after{
  content:"+";
  background-image:none;
  font-family:var(--sans);
  font-size:24px;
  font-weight:300;
  color:var(--gold);
  display:inline-block;
  width:auto;
  height:auto;
  line-height:1;
  transition:transform .3s ease;
}
.faq-item .accordion-button:not(.collapsed)::after{
  content:"×";
  transform:rotate(45deg);
}
.faq-item .accordion-body{
  padding:0 8px 26px;
  color:var(--ink-soft);
  font-size:15px;
}

/* ===== 报名 CTA ===== */
.cta-section{
  background:var(--night);
  color:rgba(255,255,255,.84);
  overflow:hidden;
}
.cta-wrap{
  position:relative;
  z-index:1;
  padding-top:var(--spacer-section);
  padding-bottom:var(--spacer-section);
}
.cta-wrap::before{
  content:"REGISTER";
  position:absolute;
  top:20px;
  right:-60px;
  font-family:var(--serif);
  color:rgba(255,255,255,.04);
  font-size:120px;
  letter-spacing:.2em;
  z-index:-1;
  pointer-events:none;
}
.cta-section .section-title{
  color:#F6F0E5;
  font-size:clamp(34px,4.6vw,58px);
}
.cta-section .section-sub{
  color:rgba(255,255,255,.58);
}
.cta-info-list{
  list-style:none;
  padding:0;
  margin:28px 0 0;
}
.cta-info-list li{
  display:flex;
  align-items:flex-start;
  gap:16px;
  padding:11px 0;
  color:rgba(255,255,255,.66);
  font-size:15px;
}
.cta-info-list li svg{
  width:20px;height:20px;
  flex:0 0 auto;
  color:var(--gold);
  stroke:currentColor;
}
.cta-card{
  background:var(--night-panel);
  border:1px solid var(--night-line);
  border-radius:6px;
  padding:38px 34px 30px;
}
.form-label{
  display:block;
  color:#F3C9A?;
  color:#E7DED1;
  font-size:14px;
  letter-spacing:.04em;
  margin-bottom:8px;
}
.form-control,.form-select{
  width:100%;
  border:1px solid #35424C;
  background:#21282F;
  border-radius:3px;
  padding:13px 16px;
  color:#F4EDE2;
  font-size:15px;
  margin-bottom:18px;
  transition:border-color .25s ease, box-shadow .22s ease;
  appearance:none;
  line-height:1.5;
}
.form-control:focus,.form-select:focus{
  outline:0;
  border-color:var(--gold);
  background:#262E36;
  box-shadow:0 0 0 3px rgba(196,166,106,.09);
}
.form-control::placeholder{color:#6F747A}
select.form-select option{background:#20262D;color:#F6EFE4}
textarea.form-control{min-height:110px;resize:vertical}
.form-privacy{
  color:#A8ADA9;
  font-size:12px;
  line-height:1.9;
  margin-top:6px;
}
.form-status{
  margin-top:16px;
  padding:14px 18px;
  border:1px solid rgba(125,141,134,.6);
  background:rgba(125,141,134,.12);
  border-radius:3px;
  color:#DDE4DE;
  font-size:14px;
}
@media (max-width:760px){
  .cta-card{padding:28px 20px 24px}
}

/* ===== 页脚 ===== */
.site-footer{
  background:var(--night);
  color:rgba(255,255,255,.64);
  padding-top:78px;
  border-top:0;
}
.footer-brand{
  font-size:28px;
  color:#F7EFE2;
  letter-spacing:.06em;
  font-family:var(--serif);
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
}
.footer-brand .brand-mark{
  width:46px;height:46px;
  background:rgba(196,166,106,.1);
}
.footer-about{
  color:rgba(255,255,255,.46);
  margin:0 0 26px;
  max-width:370px;
  font-size:15px;
}
.footer-heading{
  color:#F5EEDD;
  font-size:15px;
  letter-spacing:.14em;
  font-family:var(--sans);
  margin-bottom:26px;
  font-weight:600;
}
.footer-links{
  list-style:none;
  margin:0;
  padding:0;
}
.footer-links li{
  margin-bottom:12px;
}
.footer-links a{
  font-size:14px;
  color:rgba(255,255,255,.55);
  transition:color .25s;
}
.footer-links a:hover{
  color:var(--gold);
  text-decoration:none;
}
.footer-info{
  font-size:14px;
  color:rgba(255,255,255,.4);
  margin-bottom:8px;
  display:flex;
  gap:18px;
}
.footer-bottom{
  border-top:1px solid var(--night-line);
  margin-top:46px;
  padding:22px 0 28px;
  color:rgba(255,255,255,.32);
  font-size:13px;
  display:flex;
  justify-content:space-between;
  flex-direction:wrap;
  gap:6px;
}
@media (max-width:767px){
  .footer-bottom{
    flex-direction:column;
    gap:8px;
  }
  .footer-brand{font-size:25px}
}

/* ===== 图片失败占位 ===== */
.img-placeholder{
  background:linear-gradient(120deg, rgba(222,213,196,.85), rgba(237,230,218,.9));
}
.feature-visual.has-error img{
  opacity:0;
}
/* 少量通用进入视口动效 */
.reveal{
  opacity:1;
  transform:none;
  transition:opacity .5s ease-out, transform .6s ease-out;
}
body.no-anim .reveal{
  opacity:1 !important;
  transform:none !important;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation:none !important;
    transition:none !important;
  }
  .btn-site:hover,
  .ticket-card:hover,
  .agenda-card:hover{
    transform:none !important;
  }
}

/* roulang page: article */
:root {
  --paper: #F5F1E9;
  --paper-deep: #ECE5D9;
  --card: #FFFCF6;
  --ink: #1B1815;
  --text-sub: #6F675D;
  --line: #DCD3C6;
  --night: #11151A;
  --night-soft: #1A2027;
  --night-line: #2A323A;
  --gold: #C4A66A;
  --sage: #7D8D86;
  --serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", SimSun, serif;
  --sans: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
  --shadow-card: 0 1px 2px rgba(0,0,0,.03), 0 16px 48px rgba(20,15,10,.05);
  --radius: 4px;
  --radius-pill: 999px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
}

img {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color .2s var(--ease);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

.container {
  max-width: 1240px;
}

/* ============ 卡片化导航 ============ */
.site-header {
  position: relative;
  z-index: 50;
  padding: 18px 0 12px;
}

.site-nav-card {
  display: flex;
  align-items: center;
  gap: 18px;
  background: var(--card);
  border: 1px solid rgba(220, 211, 198, .75);
  border-radius: 8px;
  box-shadow: var(--shadow-card);
  padding: 14px 20px;
  flex-wrap: wrap;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .02em;
  white-space: nowrap;
}

.brand-mark {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold);
  font-size: 14px;
}

.nav-toggler {
  display: none;
  border: 1px solid var(--line);
  background: var(--card);
  border-radius: 50%;
  width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  margin-left: auto;
  color: var(--ink);
}

.nav-toggler svg {
  width: 20px;
  height: 20px;
}

.main-nav-collapse {
  flex: 1;
}

.main-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.nav-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 6px;
  padding: 8px 13px 8px 11px;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-sub);
  background: transparent;
  position: relative;
  transition: all .2s var(--ease);
}

.chip-icon {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #C8C0B4;
  flex: 0 0 auto;
  transition: background .2s var(--ease);
}

.nav-chip:hover {
  color: var(--ink);
  background: rgba(27, 24, 21, .04);
}

.nav-chip:hover .chip-icon {
  background: var(--gold);
}

.nav-chip.is-active {
  color: var(--ink);
  background: rgba(27, 24, 21, .05);
  border-color: rgba(220, 211, 198, .7);
}

.nav-chip.is-active .chip-icon {
  background: var(--gold);
}

.header-cta {
  margin-left: auto;
  flex-shrink: 0;
}

.btn-site {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid var(--ink);
  background: var(--ink);
  color: #fff;
  border-radius: 6px;
  font-size: 15px;
  font-weight: 600;
  padding: 11px 22px;
  letter-spacing: .05em;
  transition: all .22s var(--ease);
}

.btn-site:hover {
  background: #2e2925;
  border-color: #2e2925;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(27, 24, 21, .14);
}

.btn-site--sm {
  padding: 9px 18px;
  font-size: 14px;
}

.btn-site--light {
  background: var(--card);
  border-color: var(--card);
  color: var(--ink);
}

.btn-site--light:hover {
  background: #fff;
  border-color: #fff;
  color: var(--ink);
}

.btn-site--ghost {
  background: transparent;
  border-color: rgba(196, 166, 106, .65);
  color: var(--gold);
}

.btn-site--ghost:hover {
  background: rgba(196, 166, 106, .1);
  border-color: var(--gold);
  color: #e2cfa1;
}

/* ============ 面包屑 ============ */
.crumb-volume {
  padding-top: 30px;
}

.breadcrumb-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid rgba(220, 211, 198, .6);
  margin-bottom: 0;
}

.breadcrumb-trail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 6px;
  font-size: 13px;
  color: var(--text-sub);
}

.breadcrumb-trail li {
  display: flex;
  align-items: center;
  gap: 6px;
}

.breadcrumb-trail li + li::before {
  content: "/";
  color: #B9AD9E;
  font-size: 12px;
}

.breadcrumb-trail a:hover {
  color: var(--gold);
}

.breadcrumb-trail .is-current {
  color: var(--ink);
  font-weight: 500;
}

/* ============ 文章首屏区 ============ */
.article-hero {
  position: relative;
  margin-top: 22px;
  color: #f7f1e7;
  background:
    linear-gradient(115deg, rgba(17, 21, 26, .94) 10%, rgba(22, 27, 34, .82) 58%, rgba(26, 32, 39, .68) 100%),
    url("/assets/images/backpic/back-2.png") center / cover no-repeat;
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .04);
}

.article-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(196, 166, 106, .06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196, 166, 106, .05) 1px, transparent 1px);
  background-size: 72px 72px;
}

.article-hero-inner {
  position: relative;
  z-index: 2;
  padding: 72px 8px 76px;
  max-width: 920px;
}

.article-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  letter-spacing: .14em;
  color: var(--gold);
  text-transform: uppercase;
}

.article-eyebrow::before {
  content: "";
  width: 28px;
  height: 1px;
  background: var(--gold);
}

.article-h1 {
  margin: 24px 0 18px;
  font-family: var(--serif);
  font-size: clamp(32px, 5vw, 56px);
  line-height: 1.25;
  font-weight: 600;
  color: #fff;
  letter-spacing: .01em;
  max-width: 900px;
}

.article-lead {
  font-size: 15px;
  line-height: 1.8;
  color: rgba(247, 241, 231, .78);
  max-width: 760px;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  white-space: normal;
}

.article-meta-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 26px;
  margin-top: 34px;
  padding-top: 22px;
  border-top: 1px solid rgba(220, 211, 198, .16);
  font-size: 13px;
  color: rgba(247, 241, 231, .72);
}

.meta-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.meta-item i {
  color: var(--gold);
  font-size: 12px;
}

.meta-category {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(196, 166, 106, .55);
  border-radius: var(--radius-pill);
  color: #E4D3A8;
  font-size: 12px;
  padding: 4px 12px;
  letter-spacing: .08em;
}

/* ============ 文章主体 ============ */
.article-main {
  padding-bottom: 80px;
}

.article-content-section {
  padding: 70px 0 22px;
}

.article-reading {
  max-width: 840px;
  margin: 0 auto;
  background: var(--card);
  border: 1px solid rgba(220, 211, 198, .7);
  border-radius: 6px;
  box-shadow: var(--shadow-card);
  padding: clamp(32px, 6vw, 72px);
}

/* ===== CMS 文章正文样式 ===== */
.cms-article-content {
  font-size: 17px;
  line-height: 1.95;
  color: #2b2620;
  overflow-wrap: break-word;
}

.cms-article-content p {
  margin: 0 0 1.7em;
}

.cms-article-content h2,
.cms-article-content h3,
.cms-article-content h4 {
  font-family: var(--serif);
  color: var(--ink);
  font-weight: 600;
  line-height: 1.45;
  margin: 2em 0 .8em;
}

.cms-article-content h2 {
  font-size: 28px;
  padding-top: .4em;
}

.cms-article-content h3 {
  font-size: 23px;
}

.cms-article-content h4 {
  font-size: 19px;
}

.cms-article-content a {
  color: #795B2F;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(196, 166, 106, .6);
}

.cms-article-content a:hover {
  text-decoration-color: var(--gold);
  color: var(--ink);
}

.cms-article-content img {
  width: 100%;
  height: auto;
  margin: 2em auto 1.2em;
  border-radius: 4px;
  background: var(--paper-deep);
}

.cms-article-content strong {
  font-weight: 600;
  color: #000;
}

.cms-article-content blockquote {
  margin: 2.4em 0;
  padding: 24px 28px 20px;
  border-left: 2px solid var(--gold);
  background: #F7F1E4;
  color: #4d453c;
  border-radius: 0 6px 6px 0;
}

.cms-article-content blockquote p {
  margin: 0 0 10px;
  font-size: 16px;
}

.cms-article-content blockquote p:last-child {
  margin-bottom: 0;
}

.cms-article-content ul,
.cms-article-content ol {
  margin: 1.5em 0;
  padding-left: 1.5em;
}

.cms-article-content li {
  margin-bottom: .5em;
}

.cms-article-content hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 3em 0;
}

.cms-article-content table {
  width: 100%;
  margin: 2em 0;
  border-collapse: collapse;
  font-size: 15px;
}

.cms-article-content th,
.cms-article-content td {
  border: 1px solid var(--line);
  padding: 10px 12px;
  text-align: left;
}

.cms-article-content th {
  background: var(--paper);
  font-weight: 600;
}

.cms-article-content code,
.cms-article-content pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 14px;
  background: #F2EDE3;
  border-radius: 4px;
}

.cms-article-content code {
  padding: 2px 6px;
}

.cms-article-content pre {
  padding: 20px;
  overflow-x: auto;
  line-height: 1.7;
}

.cms-article-content pre code {
  background: transparent;
  padding: 0;
}

/* ============ 信息提示条 ============ */
.article-source-note {
  margin-top: 42px;
  padding: 16px 18px;
  border-radius: 4px;
  border: 1px solid var(--line);
  background: var(--paper);
  font-size: 13px;
  color: var(--text-sub);
  display: flex;
  align-items: center;
  gap: 10px;
}

.article-source-note i {
  color: var(--gold);
}

/* ============ 上下篇入口 ============ */
.article-pager-wrap {
  padding-top: 56px;
  border-top: 1px solid var(--line);
  margin-top: 56px;
}

.article-pager-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 20px;
}

.pager-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: var(--paper);
  border: 1px solid rgba(220, 211, 198, .8);
  border-radius: 5px;
  padding: 18px 20px;
  transition: all .25s var(--ease);
}

.pager-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card);
  border-color: rgba(196, 166, 106, .6);
}

.pager-label {
  font-size: 12px;
  color: var(--text-sub);
}

.pager-title {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
}

/* ============ 相关阅读 ============ */
.related-section {
  margin-top: 70px;
  padding: 84px 0 86px;
  background: var(--night);
  color: #EDE8DF;
}

.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 40px;
}

.section-head h2 {
  font-family: var(--serif);
  color: #fff;
  font-size: clamp(26px, 3vw, 38px);
  margin: 0;
  font-weight: 600;
}

.section-head p {
  margin: 8px 0 0;
  color: rgba(237, 232, 223, .62);
  font-size: 14px;
  max-width: 620px;
}

.section-kicker {
  font-size: 12px;
  letter-spacing: .18em;
  color: var(--gold);
  text-transform: uppercase;
  border: 1px solid rgba(196, 166, 106, .4);
  border-radius: 999px;
  padding: 4px 12px;
  display: inline-block;
  margin-bottom: 16px;
}

.related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.related-card {
  background: var(--night-soft);
  border: 1px solid var(--night-line);
  border-radius: 5px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: all .3s var(--ease);
}

.related-card:hover {
  transform: translateY(-6px);
  border-color: rgba(196, 166, 106, .45);
  box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
}

.related-thumb {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #2B2823;
}

.related-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s var(--ease);
}

.related-card:hover .related-thumb img {
  transform: scale(1.04);
}

.related-card-body {
  padding: 22px 22px 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.related-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  color: rgba(237, 232, 223, .6);
  margin-bottom: 10px;
}

.related-meta .cat-dot {
  color: var(--gold);
}

.related-card h3 {
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.5;
  color: #fff;
  margin: 0 0 10px;
  font-weight: 600;
}

.related-card p {
  font-size: 14px;
  line-height: 1.75;
  color: rgba(237, 232, 223, .65);
  margin: 0 0 18px;
  flex: 1;
}

.related-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--gold);
  font-size: 14px;
  font-weight: 500;
}

.related-link i {
  transition: transform .2s var(--ease);
}

.related-link:hover {
  color: #E4D3A8;
}

.related-link:hover i {
  transform: translateX(4px);
}

/* ============ 内容未找到 ============ */
.missing-section {
  padding: 100px 0 120px;
}

.missing-panel {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  background: var(--card);
  border: 1px solid rgba(220, 211, 198, .8);
  border-radius: 8px;
  padding: 74px 34px;
  box-shadow: var(--shadow-card);
}

.missing-mark {
  display: inline-grid;
  place-items: center;
  width: 70px;
  height: 70px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold);
  font-size: 26px;
  margin-bottom: 28px;
}

.missing-panel h1 {
  font-family: var(--serif);
  font-size: 36px;
  margin: 0 0 12px;
  font-weight: 600;
}

.missing-panel p {
  color: var(--text-sub);
  font-size: 15px;
  max-width: 420px;
  margin: 0 auto 28px;
}

/* ============ 通用页脚 ============ */
.site-footer {
  background: var(--night);
  color: rgba(237, 232, 223, .72);
  font-size: 14px;
  padding: 72px 0 28px;
  border-top: 1px solid rgba(196, 166, 106, .15);
}

.footer-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  font-family: var(--serif);
  font-size: 21px;
  margin-bottom: 18px;
}

.footer-about {
  color: rgba(237, 232, 223, .62);
  line-height: 1.85;
  margin: 0 0 20px;
  max-width: 390px;
  font-size: 14px;
}

.footer-info {
  color: var(--gold);
  font-size: 13px;
}

.footer-heading {
  color: #fff;
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 16px;
  letter-spacing: .05em;
}

.footer-links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-links li {
  margin-bottom: 10px;
}

.footer-links a {
  color: rgba(237, 232, 223, .7);
  transition: all .2s var(--ease);
}

.footer-links a:hover {
  color: var(--gold);
  padding-left: 4px;
}

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid rgba(255, 255, 255, .09);
  margin-top: 50px;
  padding-top: 24px;
  font-size: 13px;
  color: rgba(237, 232, 223, .5);
}

/* ============ 响应式 ============ */
@media (max-width: 991px) {
  .site-nav-card {
    padding: 14px 16px;
  }

  .nav-toggler {
    display: inline-flex;
  }

  .main-nav-collapse {
    flex-basis: 100%;
    order: 3;
  }

  .main-nav {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding-top: 6px;
  }

  .nav-chip {
    width: 100%;
    justify-content: flex-start;
    border-color: rgba(220, 211, 198, .7);
    background: var(--paper);
  }

  .header-cta {
    margin-left: 0;
  }

  .related-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .site-header {
    padding-top: 12px;
  }

  .brand {
    font-size: 17px;
  }

  .brand-mark {
    width: 30px;
    height: 30px;
    font-size: 13px;
  }

  .btn-site {
    font-size: 14px;
    padding: 10px 18px;
  }

  .article-hero-inner {
    padding: 48px 10px 52px;
  }

  .article-h1 {
    font-size: 30px;
  }

  .article-reading {
    padding: 30px 20px;
  }

  .cms-article-content {
    font-size: 16px;
  }

  .cms-article-content h2 {
    font-size: 23px;
  }

  .cms-article-content h3 {
    font-size: 20px;
  }

  .section-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .related-grid {
    grid-template-columns: 1fr;
  }

  .article-pager-row {
    grid-template-columns: 1fr;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 520px) {
  .site-nav-card {
    gap: 10px;
  }

  .main-nav {
    gap: 6px;
  }

  .article-hero {
    margin-top: 10px;
  }

  .article-hero-inner {
    padding: 40px 6px 46px;
  }

  .article-meta-strip {
    gap: 10px 16px;
    font-size: 12px;
  }

  .article-meta-strip .meta-sub-info {
    flex-basis: 100%;
  }

  .article-reading {
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    padding: 30px 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001s !important;
    transition-duration: .001s !important;
    scroll-behavior: auto !important;
  }
}

/* roulang page: category1 */
:root{
  --paper:#F4F0E7;
  --paper-hi:#FBF8F1;
  --paper-soft:#EDE7DC;
  --ink:#1F1A15;
  --muted:#6F675D;
  --line:#D8CFC2;
  --night:#11151B;
  --night-soft:#1A1F27;
  --night-line:#2C333B;
  --gold:#C4A66A;
  --sage:#7D8D86;
  --font-display:"Noto Serif SC","Source Han Serif SC","Songti SC",SimSun,serif;
  --font-sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  --radius:6px;
  --radius-soft:4px;
  --shadow-card:0 1px 2px rgba(30,20,12,.04), 0 18px 48px rgba(30,20,12,.06);
  --shadow-float:0 2px 4px rgba(30,20,12,.05), 0 30px 80px rgba(30,20,12,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  margin-top:0;
  line-height:1.35;
  color:var(--ink);
  font-weight:600;
}
p{margin:0 0 1em}
a{color:inherit;text-decoration:none}
a:hover{color:inherit}
img{max-width:100%;height:auto;display:block}
ul,ol{list-style:none;padding:0;margin:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.container{max-width:1240px}
.text-sage{color:var(--sage)}
.bg-night{background:var(--night);color:#E8DFD1}
.bg-night h2{color:#F4EDE1}

.site-header{
  position:sticky;
  top:0;
  z-index:1030;
  padding:14px 0 10px;
  background:rgba(244,240,231,.95);
  transition:box-shadow .25s ease-out;
}
.site-header.is-scrolled{box-shadow:0 1px 12px rgba(30,20,12,.04)}
.site-nav-card{
  display:flex;
  align-items:center;
  gap:18px;
  padding:10px 16px;
  background:var(--paper-hi);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 1px 2px rgba(0,0,0,.02), 0 10px 34px rgba(20,15,10,.04);
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:9px;
  white-space:nowrap;
  font-family:var(--font-display);
  font-size:20px;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--ink);
}
.brand-mark{
  font-size:17px;
  color:var(--gold);
  line-height:1;
  transform:translateY(-1px);
}
.nav-toggler{
  display:none;
  margin-left:auto;
  width:40px;height:40px;
  border:1px solid var(--line);
  background:var(--paper);
  border-radius:var(--radius-soft);
  color:var(--ink);
  align-items:center;
  justify-content:center;
}
.main-nav-collapse.collapse:not(.show){display:none}
.main-nav{display:flex;gap:6px;flex-wrap:wrap}
.nav-chip{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 13px;
  border:1px solid transparent;
  border-radius:999px;
  color:var(--muted);
  font-size:14px;
  font-weight:400;
  line-height:1.4;
  transition:color .2s ease, background .2s ease, border-color .2s ease;
  cursor:pointer;
}
.nav-chip .chip-icon{
  width:5px;height:5px;
  border-radius:50%;
  background:var(--gold);
  opacity:.45;
  transition:opacity .2s ease, transform .2s ease;
}
.nav-chip:hover{
  color:var(--ink);
  background:#F3EDE2;
  border-color:var(--line);
}
.nav-chip:hover .chip-icon{opacity:.8}
.nav-chip.is-active{
  color:var(--ink);
  background:rgba(196,166,106,.10);
  border-color:rgba(196,166,106,.32);
}
.nav-chip.is-active::before{
  content:"";
  position:absolute;
  top:-1px;
  left:18px;
  right:18px;
  height:2px;
  background:var(--gold);
  border-radius:0 0 999px 999px;
}
.nav-chip.is-active .chip-icon{opacity:1}
.header-cta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  margin-left:auto;
}
.btn-site{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 22px;
  border:1px solid var(--night);
  border-radius:3px;
  background:var(--night);
  color:#F6F0E6;
  font-family:var(--font-sans);
  font-size:14px;
  font-weight:400;
  line-height:1.2;
  letter-spacing:.04em;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.btn-site:hover,.btn-site:focus{
  background:#000;
  border-color:#000;
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(0,0,0,.12);
}
.btn-site--sm{padding:9px 16px;font-size:13px}
.btn-site--paper{
  background:var(--paper-hi);
  color:var(--night);
  border-color:var(--paper-hi);
}
.btn-site--paper:hover,.btn-site--paper:focus{
  background:#fff;
  border-color:#fff;
  color:var(--night);
}
.btn-site--ghost{
  background:transparent;
  color:#EDE4D3;
  border-color:rgba(230,218,194,.45);
}
.btn-site--ghost:hover,.btn-site--ghost:focus{
  background:var(--night-soft);
  color:#fff;
  border-color:var(--gold);
}

.page-banner{
  position:relative;
  background:var(--night);
  color:#E9E0D2;
  padding:72px 0 148px;
  border-bottom:1px solid var(--night-line);
  overflow:hidden;
}
.page-banner::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(196,166,106,.10) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196,166,106,.07) 1px, transparent 1px);
  background-size:84px 84px;
  opacity:.32;
}
.page-banner::after{
  content:"";
  position:absolute;
  inset:0;
  background:url('/assets/images/backpic/back-1.webp') no-repeat center/cover;
  opacity:.22;
}
.banner-inner{position:relative;z-index:2}
.crumb-line{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:#A69B8B;
  margin-bottom:28px;
}
.crumb-line a{transition:color .2s ease}
.crumb-line a:hover{color:#fff}
.crumb-line .crumb-active{color:#D8CDB9}
.banner-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--gold);
  font-size:12px;
  letter-spacing:.22em;
  margin-bottom:18px;
}
.banner-kicker::before{
  content:"";
  width:26px;height:1px;
  background:var(--gold);
}
.page-title{
  font-size:clamp(42px,6.4vw,76px);
  line-height:1.1;
  color:#F5EEE1;
  margin:0 0 28px;
  max-width:940px;
}
.page-title .title-light{
  display:block;
  font-size:.52em;
  letter-spacing:.06em;
  color:#BCB09D;
  margin-top:14px;
}
.page-lead{
  font-family:var(--font-display);
  font-size:17px;
  line-height:2;
  color:#D7CCBA;
  max-width:760px;
  margin:0;
}
.banner-meta{
  display:flex;
  flex-wrap:wrap;
  gap:14px 30px;
  margin-top:42px;
  padding-top:22px;
  border-top:1px solid rgba(230,218,194,.16);
}
.banner-meta span{
  color:#BCB3A5;
  font-size:14px;
}
.banner-meta strong{
  color:#EDE5D6;
  font-weight:400;
  margin-left:6px;
}

.brief-wrap{position:relative;z-index:5;margin-top:-66px}
.brief-panel{
  background:var(--paper-hi);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-card);
  padding:32px 36px;
}
.brief-text .eyebrow-title{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-sans);
  font-size:12px;
  letter-spacing:.14em;
  color:var(--gold);
  margin-bottom:12px;
}
.brief-text h2{
  font-size:26px;
  margin-bottom:14px;
}
.brief-text p{
  color:var(--muted);
  font-size:15px;
  margin:0;
}
.brief-stats{
  border-left:1px solid var(--line);
  padding-left:30px;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:12px;
  height:100%;
}
.brief-stat{
  border-top:2px solid var(--gold);
  padding-top:14px;
}
.brief-stat .stat-value{
  font-family:var(--font-display);
  font-size:30px;
  line-height:1.2;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;
}
.brief-stat .stat-label{
  display:block;
  color:var(--muted);
  font-size:13px;
  margin-top:4px;
}

.page-section{padding:96px 0}
.section-head{
  max-width:920px;
  margin-bottom:44px;
}
.section-kicker{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  letter-spacing:.18em;
  color:var(--gold);
  margin-bottom:14px;
}
.section-kicker::before{
  content:"";
  width:22px;height:1px;
  background:var(--gold);
}
.section-head h2{
  font-size:clamp(28px,4vw,42px);
  margin-bottom:14px;
  letter-spacing:.01em;
}
.section-head p{
  color:var(--muted);
  max-width:820px;
  font-size:16px;
  margin:0;
}
.section-head.is-dark h2{color:#F4EDE0}
.section-head.is-dark p{color:#B6AA98}

.merit-grid{margin-top:10px}
.merit-card{
  height:100%;
  background:var(--paper-hi);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px 22px 22px;
  transition:transform .24s ease-out, box-shadow .24s ease-out, border-color .24s ease-out;
  position:relative;
  display:flex;
  flex-direction:column;
}
.merit-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-float);
  border-color:#C6BBA7;
}
.merit-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}
.merit-num{
  font-family:var(--font-display);
  font-size:13px;
  color:var(--gold);
  letter-spacing:.08em;
  font-variant-numeric:tabular-nums;
}
.merit-icon{
  width:42px;height:42px;
  border:1px solid var(--line);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold);
  background:#F4EEE2;
}
.merit-icon svg{width:20px;height:20px}
.merit-card h3{
  font-size:20px;
  margin-bottom:10px;
}
.merit-card p{
  color:var(--muted);
  font-size:15px;
  flex:1;
  margin-bottom:16px;
}
.merit-tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  align-self:flex-start;
  border:1px solid var(--line);
  border-radius:999px;
  padding:5px 12px;
  background:var(--paper);
  color:var(--muted);
  font-size:13px;
}
.merit-tag::before{
  content:"";
  width:4px;height:4px;
  border-radius:50%;
  background:var(--sage);
}

.split-guide{
  background:var(--paper-soft);
  border-block:1px solid var(--line);
}
.media-main{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  border:1px solid var(--line);
  background:#DDD3C3;
  min-height:420px;
  height:100%;
}
.media-main img{
  width:100%;
  height:100%;
  object-fit:cover;
  position:absolute;
  inset:0;
}
.media-caption{
  position:absolute;
  left:18px;bottom:18px;
  background:rgba(17,21,27,.72);
  color:#DDD2BF;
  padding:8px 14px;
  border-radius:999px;
  font-size:12px;
  border:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(4px);
}
.check-list{margin-top:8px}
.check-list li{
  display:flex;
  gap:14px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  align-items:flex-start;
}
.check-list li:last-child{border-bottom:0}
.check-list .check-no{
  flex:0 0 34px;
  height:34px;
  border:1px solid var(--gold);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-display);
  font-size:13px;
  color:var(--gold);
  font-variant-numeric:tabular-nums;
}
.check-list h3{
  font-size:18px;
  margin-bottom:4px;
}
.check-list p{
  margin:0;
  color:var(--muted);
  font-size:15px;
}
.split-note{
  display:inline-flex;
  gap:8px;
  font-size:13px;
  color:var(--sage);
  margin-top:14px;
  align-items:center;
}
.split-note::before{content:"◎";color:var(--gold);font-size:12px}

.people-section{background:var(--paper)}
.people-card{
  height:100%;
  border:1px solid var(--line);
  background:var(--paper-hi);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:none;
  transition:transform .24s ease-out, box-shadow .24s ease-out;
}
.people-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-card);
}
.people-card .tag-line{
  font-size:12px;
  letter-spacing:.12em;
  color:var(--gold);
  display:block;
  margin-bottom:12px;
}
.people-card h3{font-size:22px;margin-bottom:12px}
.people-card p{color:var(--muted);font-size:15px;margin-bottom:0}
.people-card ul{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.people-card ul li{
  color:var(--muted);
  font-size:14px;
  padding:3px 0;
  display:flex;
  gap:8px;
}
.people-card ul li::before{content:"—";color:var(--gold)}

.schedule-section{
  background:var(--night);
  padding:104px 0;
  position:relative;
  overflow:hidden;
}
.schedule-section::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(196,166,106,.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196,166,106,.05) 1px, transparent 1px);
  background-size:110px 110px;
  opacity:.22;
  pointer-events:none;
}
.schedule-wrap{position:relative;z-index:2}
.schedule-head{
  max-width:800px;
  margin-bottom:56px;
  color:#F4EDE2;
}
.schedule-head h2{color:#F4EDE2}
.schedule-head p{color:#B8AC9A}
.timeline-item{
  position:relative;
  display:grid;
  grid-template-columns:190px 1fr;
  gap:26px;
  padding:0 0 48px 34px;
}
.timeline-item::before{
  content:"";
  position:absolute;
  left:2px;
  top:8px;
  width:9px;height:9px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 4px rgba(196,166,106,.15);
}
.timeline-item:not(:last-child)::after{
  content:"";
  position:absolute;
  left:5px;
  top:20px;
  bottom:0;
  border-left:1px solid rgba(196,166,106,.30);
}
.timeline-date{
  font-family:var(--font-display);
  font-size:16px;
  color:var(--sage);
  line-height:1.6;
  letter-spacing:.02em;
  font-variant-numeric:tabular-nums;
}
.timeline-date .time-slot{
  display:block;
  color:#BCAF98;
  font-size:14px;
  margin-top:4px;
}
.timeline-panel{
  background:var(--night-soft);
  border:1px solid var(--night-line);
  border-radius:var(--radius);
  padding:22px 26px;
}
.timeline-panel h3{
  font-family:var(--font-sans);
  font-size:18px;
  font-weight:600;
  color:#F0E7D8;
  margin-bottom:8px;
}
.timeline-panel p{
  color:#AFA392;
  font-size:15px;
  margin-bottom:0;
}
.timeline-panel ul{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.timeline-panel ul li{
  border:1px solid rgba(196,166,106,.28);
  color:#C9BEA8;
  font-size:12px;
  padding:3px 10px;
  border-radius:999px;
}

.faq-section{
  background:var(--paper);
  padding:96px 0;
}
.faq-list{
  background:var(--paper-hi);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
}
.accordion-item{
  background:transparent;
  border:0;
  border-bottom:1px solid var(--line);
}
.accordion-item:last-child{border-bottom:0}
.accordion-button{
  background:transparent;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:23px 28px;
  font-family:var(--font-sans);
  color:var(--ink);
  font-size:16px;
  font-weight:500;
  line-height:1.7;
  transition:background .2s ease,color .2s ease;
}
.accordion-button::after{
  content:"+";
  background-image:none !important;
  flex:0 0 26px;
  width:26px;
  height:26px;
  border:1px solid var(--line);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  font-weight:300;
  color:var(--gold);
  transform:none;
  font-family:var(--font-sans);
}
.accordion-button:not(.collapsed){
  background:rgba(196,166,106,.05);
  color:var(--ink);
  box-shadow:none;
}
.accordion-button:not(.collapsed)::after{
  content:"×";
  transform:none;
  background-image:none;
  color:var(--ink);
  border-color:var(--gold);
}
.accordion-button:focus{
  background:rgba(196,166,106,.06);
  box-shadow:none !important;
  outline:none;
}
.accordion-button:hover{background:rgba(196,166,106,.05)}
.accordion-body{
  padding:8px 28px 28px;
  color:var(--muted);
  font-size:15px;
  line-height:1.95;
}
.accordion-body p{margin-bottom:.6em}
.accordion-body a{
  color:var(--gold);
  border-bottom:1px solid rgba(196,166,106,.48);
}
.accordion-body a:hover{color:var(--ink);border-color:var(--ink)}

.cta-area{
  background:var(--night);
  color:#E8DFD1;
  padding:96px 0;
  position:relative;
  overflow:hidden;
}
.cta-area::before{
  content:"";
  position:absolute;
  right:-90px;
  top:-120px;
  width:380px;height:380px;
  border:1px solid rgba(196,166,106,.22);
  border-radius:50%;
  transform:rotate(18deg);
}
.cta-area::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(17,21,27,.92) 0%, rgba(17,21,27,.72) 100%), url('/assets/images/backpic/back-2.png') no-repeat center/cover;
  opacity:.2;
  pointer-events:none;
}
.cta-wrap{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  gap:36px;
  align-items:flex-start;
}
.cta-wrap h2{
  color:#F6EFE2;
  font-size:clamp(28px,4vw,44px);
  max-width:980px;
  margin-bottom:16px;
}
.cta-wrap p{
  color:#BDB09E;
  max-width:760px;
  margin-bottom:10px;
}
.btn-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
}
.cta-note{
  font-size:13px;
  color:#908675;
  margin-left:4px;
}

.site-footer{
  background:#0E1116;
  color:#B7AD9E;
  padding:76px 0 34px;
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:9px;
  font-family:var(--font-display);
  font-size:22px;
  color:#F1E9DB;
  margin-bottom:20px;
}
.footer-brand .brand-mark{color:var(--gold);font-size:18px}
.footer-about{
  color:#877E6F;
  font-size:14px;
  line-height:2;
  margin-bottom:18px;
  max-width:340px;
}
.footer-info{
  font-size:13px;
  color:#A69A88;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.footer-heading{
  font-size:13px;
  font-weight:600;
  letter-spacing:.08em;
  color:#D7CDBB;
  margin-bottom:18px;
}
.footer-links li{
  margin-bottom:10px;
}
.footer-links a{
  color:#877E6F;
  font-size:14px;
  transition:color .2s ease, padding-left .2s ease;
}
.footer-links a:hover{
  color:#E4D9C4;
  padding-left:3px;
}
.footer-bottom{
  margin-top:52px;
  padding-top:24px;
  border-top:1px solid #272C33;
  display:flex;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  color:#6D675F;
  font-size:13px;
}

@media (max-width:1199.98px){
  .brief-stats{padding-left:18px;grid-template-columns:1fr 1fr;gap:8px}
  .merit-card{padding:22px 18px}
}
@media (max-width:991.98px){
  .site-nav-card{flex-wrap:wrap}
  .nav-toggler{
    display:flex;
    margin-left:auto;
  }
  .main-nav-collapse{
    position:absolute;
    left:16px;
    right:16px;
    top:calc(100% + 10px);
    background:var(--paper-hi);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:16px;
    box-shadow:var(--shadow-float);
  }
  .main-nav{flex-direction:column}
  .nav-chip{width:100%}
  .header-cta{margin-left:0;width:auto}
  .header-cta .btn-site{font-size:13px;padding:9px 14px}
  .brand-name{font-size:19px}
  .page-banner{padding:58px 0 138px}
  .page-title{font-size:44px}
  .brief-stats{
    border-left:0;
    padding-left:0;
    grid-template-columns:1fr 1fr 1fr;
    margin-top:28px;
    border-top:1px solid var(--line);
    padding-top:22px;
  }
  .brief-panel{padding:28px 24px}
  .media-main{min-height:340px}
  .timeline-item{grid-template-columns:150px 1fr;padding-left:28px}
}
@media (max-width:767.98px){
  .site-nav-card{gap:12px;padding:10px 12px}
  .main-nav-collapse{left:0;right:0}
  .brand-mark{font-size:15px}
  .brand-name{font-size:17px}
  .page-section{padding:72px 0}
  .schedule-section{padding:72px 0}
  .faq-section{padding:72px 0}
  .cta-area{padding:72px 0}
  .page-banner{padding:46px 0 132px}
  .page-title{font-size:36px;line-height:1.2}
  .page-lead{font-size:15px}
  .banner-meta{flex-direction:column;gap:8px}
  .brief-wrap{margin-top:-54px}
  .brief-text h2{font-size:22px}
  .brief-stats{grid-template-columns:1fr 1fr}
  .merit-grid .row{--bs-gutter-y:16px}
  .section-head h2{font-size:28px}
  .section-head p{font-size:15px}
  .media-main{min-height:260px;height:auto;position:relative}
  .media-main img{position:static;height:auto;min-height:260px}
  .check-list li{padding:14px 0}
  .timeline-item{
    display:block;
    padding:0 0 34px 26px;
  }
  .timeline-date{margin-bottom:8px}
  .timeline-panel{padding:18px 20px}
  .timeline-panel h3{font-size:16px}
  .accordion-button{padding:18px 18px}
  .accordion-body{padding:6px 18px 22px}
  .cta-wrap h2{font-size:30px}
  .footer-bottom{flex-direction:column}
}
@media (max-width:575.98px){
  .header-cta{display:none}
  .main-nav-collapse .header-cta{display:flex;margin-top:12px}
  .brief-stats{grid-template-columns:1fr}
  .btn-row{width:100%}
  .btn-row .btn-site{width:100%}
  .banner-kicker{letter-spacing:.08em}
}
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* roulang page: category2 */
:root{
  --paper:#F5F1E9;
  --paper-deep:#ECE4D6;
  --ink:#1B1815;
  --ink-soft:#6F675D;
  --line:#DCD3C6;
  --night:#11151A;
  --night-soft:#1A2027;
  --night-line:#2A323A;
  --gold:#C4A66A;
  --muted-green:#7D8D86;
  --danger-dark:#8B3A3A;
  --radius-xs:2px;
  --radius-sm:4px;
  --radius-md:8px;
  --radius-full:999px;
  --shadow-card:0 1px 2px rgba(0,0,0,.03),0 16px 48px rgba(20,15,10,.05);
  --shadow-float:0 2px 6px rgba(20,15,10,.05),0 24px 72px rgba(20,15,10,.12);
  --transition: all .25s ease-out;
  --font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC",SimSun,serif;
  --font-sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:var(--transition)}
button{font-family:inherit}
input,select,textarea{
  font-family:inherit;
  font-size:1rem;
  color:var(--ink);
  background:#fff;
  border:1px solid #D9CFBF;
  border-radius:var(--radius-sm);
  padding:.7rem .9rem;
  width:100%;
  transition:var(--transition);
}
input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(196,166,106,.18);
}
label{font-size:.88rem;color:var(--ink);font-weight:600}
p{margin:0 0 1rem}
h1,h2,h3,h4,h5,h6{line-height:1.3;margin:0 0 .6rem;font-weight:600}
h1,h2,.display-serif{font-family:var(--font-serif)}
h2{font-size:clamp(1.75rem,3vw,2.75rem);letter-spacing:.02em}
h3{font-size:clamp(1.1rem,1.6vw,1.35rem)}
h4{font-size:1.05rem}
.container{max-width:1240px;padding-left:2rem;padding-right:2rem}
.row{--bs-gutter-x:2.2rem}

.site-header{
  position:absolute;
  top:0;left:0;width:100%;
  z-index:1050;
  padding:1.1rem 0 .4rem;
}
.site-nav-card{
  position:relative;
  background:rgba(245,241,233,.92);
  backdrop-filter:blur(6px);
  border:1px solid rgba(220,211,198,.9);
  border-radius:var(--radius-sm);
  box-shadow:0 1px 2px rgba(0,0,0,.02),0 12px 40px rgba(17,21,26,.12);
  padding:9px 12px 9px 18px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  transition:var(--transition);
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  color:var(--ink);
  font-family:var(--font-serif);
  font-size:1.25rem;
  font-weight:700;
  letter-spacing:.04em;
  white-space:nowrap;
}
.brand:hover{color:var(--ink)}
.brand-mark{
  color:var(--gold);
  font-size:1.35rem;
  line-height:1;
}
.nav-toggler{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;height:42px;
  margin-left:auto;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:transparent;
  color:var(--ink);
  cursor:pointer;
}
.nav-toggler svg{width:22px;height:22px}
.main-nav-collapse{
  order:4;
  flex-basis:100%;
  min-width:0;
}
.main-nav{
  display:flex;
  gap:.4rem;
  flex-wrap:wrap;
  padding:.35rem 0 .15rem;
  border-top:1px solid var(--line);
  margin-top:.25rem;
}
.nav-chip{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.48rem .7rem;
  border-radius:var(--radius-sm);
  border:1px solid transparent;
  color:var(--ink-soft);
  font-size:.87rem;
  font-weight:600;
  white-space:nowrap;
}
.nav-chip .chip-icon{
  display:inline-block;
  width:18px;height:18px;
  position:relative;
  color:var(--gold);
}
.chip-icon::before{
  content:"✦";
  position:absolute;
  left:0;top:-3px;
  font-size:.8rem;
  opacity:.9;
}
.nav-chip:hover{
  color:var(--ink);
  background:#ece5d8;
  border-color:var(--line);
}
.nav-chip.is-active{
  color:var(--ink);
  background:#fff;
  border-color:#cbbea9;
  box-shadow:0 1px 8px rgba(0,0,0,.03);
}
.nav-chip.is-active::after{
  content:"";
  width:5px;height:5px;
  border-radius:var(--radius-full);
  background:var(--gold);
  flex:0 0 auto;
}
.header-cta{
  order:3;
  margin-left:auto;
}
.btn-site{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  border:1px solid var(--night);
  background:var(--night);
  color:#fff;
  font-weight:600;
  border-radius:var(--radius-sm);
  padding:.8rem 1.8rem;
  font-size:.95rem;
  letter-spacing:.03em;
  transition:var(--transition);
  cursor:pointer;
  text-align:center;
}
.btn-site:hover{
  background:#26262b;
  border-color:#26262b;
  color:#fff;
  transform:translateY(-1px);
}
.btn-site:active{transform:translateY(0)}
.btn-site--sm{padding:.48rem 1.1rem;font-size:.87rem}
.btn-site--ghost{
  background:transparent;
  color:#fff;
  border-color:#4d5661;
}
.btn-site--ghost:hover{
  background:#1A2027;
  border-color:#6c7885;
  color:#fff;
}
.btn-site--gold{
  background:#c4a66a;
  border:1px solid #c4a66a;
  color:#17130c;
}
.btn-site--gold:hover{
  background:#b39455;
  border-color:#b39455;
  color:#17130c;
}

@media (min-width:992px){
  .nav-toggler{display:none}
  .site-nav-card{
    flex-wrap:nowrap;
    gap:1.3rem;
    padding:.45rem .5rem .45rem 1.3rem;
  }
  .brand{font-size:1.35rem}
  .main-nav-collapse{
    order:2;
    flex-basis:auto;
    display:flex !important;
    margin:0;
    padding:0;
    border:0;
  }
  .main-nav{
    border:0;
    margin:0;
    padding:0;
    flex-wrap:nowrap;
    gap:.12rem;
  }
  .nav-chip{border:1px solid transparent;padding:.46rem .78rem}
  .nav-chip:hover{border-color:var(--line)}
  .nav-chip.is-active{border-color:var(--line);background:#fff}
  .header-cta{order:3;margin-left:auto;padding-right:.4rem}
}
@media (max-width:991.98px){
  .site-header{position:absolute;padding:.7rem 0}
  .site-header .container{padding-left:1.2rem;padding-right:1.2rem}
  .site-nav-card{gap:.6rem}
  .brand{font-size:1.18rem}
  .header-cta{margin-left:auto;line-height:0}
  .header-cta .btn-site{padding:.45rem .9rem;font-size:.83rem}
}
@media (max-width:575.98px){
  .brand-name{font-size:1.05rem;letter-spacing:.02em}
  .header-cta .btn-site span{display:none}
  .header-cta .btn-site::after{content:"预约";display:inline}
}

.page-hero{
  position:relative;
  background:
    linear-gradient(rgba(17,21,26,.9),rgba(17,21,26,.94)),
    url("/assets/images/backpic/back-2.png") center 30%/cover no-repeat;
  color:#f0ebe2;
  padding:clamp(7.2rem,14vw,11rem) 0 clamp(2.6rem,6vw,5rem);
  overflow:hidden;
  border-bottom:1px solid #2b2e33;
}
.page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.25;
  background-image:
    linear-gradient(rgba(196,166,106,.28) 1px,transparent 1px),
    linear-gradient(90deg,rgba(196,166,106,.28) 1px,transparent 1px);
  background-size:80px 80px;
  pointer-events:none;
  -webkit-mask-image:radial-gradient(ellipse at 22% 18%,#000 10%,transparent 75%);
          mask-image:radial-gradient(ellipse at 22% 18%,#000 10%,transparent 75%);
}
.page-hero .container{position:relative;z-index:2}
.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  color:var(--gold);
  font-size:.8rem;
  letter-spacing:.18em;
  font-weight:600;
  margin-bottom:1.1rem;
  text-transform:uppercase;
  border:1px solid rgba(196,166,106,.45);
  padding:.3rem .8rem;
  border-radius:var(--radius-full);
  background:rgba(196,166,106,.04);
}
.page-hero h1{
  font-size:clamp(2.55rem,6.4vw,5.4rem);
  margin:0 0 .7rem;
  color:#fff;
  letter-spacing:.02em;
  line-height:1.16;
  max-width:900px;
}
.hero-subline{
  font-size:1.08rem;
  max-width:730px;
  color:#d9d2c7;
  margin-bottom:2.5rem;
}
.hero-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.2rem;
  align-items:center;
  font-size:.93rem;
  color:#c3bcb2;
}
.hero-meta span{display:inline-flex;align-items:center;gap:.45rem}
.hero-meta i{color:var(--gold);font-size:.85rem;width:16px;text-align:center}
.hero-meta .divider{width:1px;height:14px;background:var(--night-line)}
.spot-note{
  border-left:2px solid var(--gold);
  background:rgba(255,255,255,.03);
  font-size:.85rem;
  color:#abcfc2;
  padding:.45rem .8rem;
  border-radius:0 var(--radius-xs) var(--radius-xs) 0;
}
.breadcrumb-zone{
  background:var(--paper);
  border-bottom:1px solid var(--line);
  padding:.72rem 0;
}
.breadcrumb-ul{
  list-style:none;
  display:flex;
  margin:0;
  padding:0;
  font-size:.85rem;
  color:var(--ink-soft);
}
.breadcrumb-ul li:not(:last-child)::after{
  content:"/";
  margin:0 .65rem;
  color:#aaa097;
}
.breadcrumb-ul a:hover{color:var(--ink)}
.breadcrumb-ul .bc-current{color:var(--ink)}

.page-section{
  padding:clamp(3.5rem,8vw,6.5rem) 0;
  border-bottom:1px solid var(--line);
}
.section-head{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:flex-end;
  gap:1rem 2rem;
  margin-bottom:clamp(1.8rem,4vw,3rem);
}
.section-head h2{
  max-width:640px;
  margin:0;
}
.section-head p{
  color:var(--ink-soft);
  max-width:420px;
  margin:0;
  font-size:.98rem;
}
.eyebrow{
  display:inline-block;
  font-size:.78rem;
  letter-spacing:.36em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:700;
  margin-bottom:.8rem;
  border-left:2px solid var(--gold);
  padding-left:.7rem;
}
.eyebrow--muted{color:var(--muted-green);border-color:var(--muted-green)}

.day-tabs{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.4rem;
}
.day-card{
  background:#fff;
  border:1px solid #e5ded2;
  border-radius:var(--radius-sm);
  padding:1.4rem 1.4rem .4rem;
  box-shadow:var(--shadow-card);
  transition:var(--transition);
}
.day-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-float);
  border-color:var(--gold);
}
.day-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
  padding-bottom:1.1rem;
  border-bottom:1px solid var(--line);
  margin-bottom:.2rem;
}
.day-num{
  font-family:var(--font-serif);
  font-size:1.6rem;
  font-weight:600;
  color:var(--gold);
  letter-spacing:0;
}
.day-name{
  font-weight:700;
  color:var(--ink);
  font-size:1.06rem;
  margin-bottom:.2rem;
}
.day-name small{
  color:var(--ink-soft);
  font-weight:400;
  font-size:.8rem;
  margin-left:.4rem;
}
.timetable-list{
  list-style:none;
  margin:0;
  padding:0;
}
.timetable-list li{
  position:relative;
  padding:.25rem 0 .9rem 1.35rem;
  border-bottom:1px dashed var(--line);
}
.timetable-list li:last-child{border-bottom:0}
.timetable-list li::before{
  content:"";
  position:absolute;
  left:0;top:.8rem;
  width:7px;height:7px;
  border-radius:50%;
  background:var(--gold);
  opacity:.65;
}
.time-val{
  font-family:var(--font-serif);
  font-variant-numeric:tabular-nums;
  font-weight:600;
  font-size:1.04rem;
  color:var(--ink);
  letter-spacing:.03em;
}
.time-title{
  font-weight:600;
  color:var(--ink);
  margin:.1rem 0 .15rem;
  font-size:.95rem;
}
.time-desc{
  font-size:.84rem;
  color:var(--ink-soft);
  line-height:1.65;
  margin:0;
}
.time-meta{
  font-size:.78rem;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  color:var(--muted-green);
  margin-top:.3rem;
}

@media(max-width:991.98px){
  .day-tabs{grid-template-columns:1fr}
}

.venue-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
}
.venue-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid #e2dbcf;
  border-radius:var(--radius-sm);
  overflow:hidden;
  box-shadow:var(--shadow-card);
  transition:var(--transition);
}
.venue-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-float);
  border-color:#d0c3ac;
}
.venue-media{
  aspect-ratio:16/10;
  overflow:hidden;
  background:var(--paper-deep);
}
.venue-media img{
  width:100%;height:100%;
  object-fit:cover;
}
.venue-body{
  padding:1.5rem 1.4rem 1.4rem;
  display:flex;
  flex-direction:column;
  flex:1;
}
.venue-body h3{font-size:1.28rem}
.venue-body h3 small{
  display:block;
  font-family:var(--font-sans);
  color:var(--ink-soft);
  font-weight:500;
  font-size:.82rem;
  letter-spacing:.06em;
  margin-top:.3rem;
}
.venue-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin:.4rem 0 1.1rem;
}
.venue-tags span{
  background:var(--paper);
  border:1px solid var(--line);
  padding:.1rem .55rem;
  font-size:.76rem;
  border-radius:var(--radius-full);
  color:var(--ink-soft);
  font-weight:600;
}
.venue-info{
  list-style:none;
  margin:0 0 1.4rem;
  padding:0;
}
.venue-info li{
  display:flex;
  gap:.6rem;
  padding:.35rem 0;
  font-size:.86rem;
  color:var(--ink);
  border-bottom:1px dotted #e3dacd;
}
.venue-info li i{
  color:var(--gold);
  width:18px;
  padding-top:.18rem;
  font-size:.8rem;
}
.venue-foot{
  margin-top:auto;
  font-size:.84rem;
  color:var(--ink-soft);
  background:var(--paper);
  padding:.7rem .9rem;
  border-radius:var(--radius-xs);
  border-left:2px solid var(--gold);
}
@media(max-width:991.98px){
  .venue-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:575.98px){
  .venue-grid{grid-template-columns:1fr}
}

.prep-wrap{
  background:var(--night);
  color:#ede8df;
  padding:clamp(2.8rem,6vw,5rem) 0;
}
.prep-wrap .section-head h2{color:#fff}
.prep-wrap .section-head p{color:#b8b0a4}
.prep-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.2rem;
}
.prep-item{
  border:1px solid var(--night-line);
  border-radius:var(--radius-sm);
  background:rgba(26,32,39,.75);
  padding:1.5rem 1.3rem;
  display:flex;
  flex-direction:column;
  gap:.6rem;
  transition:var(--transition);
}
.prep-item:hover{border-color:#59636b;background:var(--night-soft)}
.prep-item i{
  font-size:1.5rem;
  color:var(--gold);
  opacity:.95;
  width:36px;height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #39424a;
  border-radius:var(--radius-full);
}
.prep-item h4{color:#fff;margin:.2rem 0}
.prep-item p{color:#a8a199;font-size:.84rem;margin:0;line-height:1.65}
.prep-note{
  margin-top:2rem;
  background:rgba(196,166,106,.05);
  border-left:3px solid var(--gold);
  padding:1rem 1.4rem;
  font-size:.9rem;
  color:#d3ccc1;
}
@media(max-width:991.98px){.prep-grid{grid-template-columns:1fr 1fr}}
@media(max-width:575.98px){.prep-grid{grid-template-columns:1fr}}

.route-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:2rem;
  align-items:center;
}
.route-copy .route-list{
  list-style:none;
  margin:2.2rem 0 0;
  padding:0;
  display:grid;
  gap:1.4rem;
}
.route-list li{
  position:relative;
  padding-left:2.3rem;
  counter-increment:step;
}
.route-list{
  counter-reset:step;
}
.route-list li::before{
  content:counter(step,decimal-leading-zero);
  position:absolute;
  left:0;top:0;
  width:34px;height:34px;
  border:1px solid var(--gold);
  border-radius:var(--radius-full);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--gold);
  font-family:var(--font-serif);
  font-size:.8rem;
  font-weight:600;
  background:var(--paper);
}
.route-list li strong{
  display:block;
  font-size:1rem;
  color:var(--ink);
  font-weight:700;
}
.route-list li p{margin:.3rem 0 0;color:var(--ink-soft);font-size:.89rem}
.route-visual{
  background:url("/assets/images/backpic/back-1.webp") left center/cover no-repeat;
  min-height:430px;
  border-radius:var(--radius-sm);
  border:1px solid var(--line);
  display:flex;
  align-items:flex-end;
  box-shadow:var(--shadow-card);
}
.route-quote{
  background:rgba(245,241,233,.92);
  backdrop-filter:blur(2px);
  padding:1.5rem 1.6rem;
  margin:1rem;
  border-radius:var(--radius-sm);
  border-left:3px solid var(--gold);
}
.route-quote p{
  font-size:.94rem;
  color:var(--ink);
  margin:0 0 .4rem;
  font-family:var(--font-serif);
}
.route-quote span{
  color:var(--ink-soft);
  font-size:.8rem;
  letter-spacing:.08em;
}
@media(max-width:991.98px){
  .route-grid{grid-template-columns:1fr}
  .route-visual{min-height:300px}
}
@media(max-width:575.98px){
  .route-list li{padding-left:0;padding-top:2.6rem}
  .route-list li::before{left:0;top:0}
}

.choice-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.2rem;
}
.choice-card{
  background:#fff;
  border:1px solid #e3dbce;
  padding:1.6rem 1.5rem;
  border-radius:var(--radius-sm);
  position:relative;
  overflow:hidden;
  transition:var(--transition);
  box-shadow:var(--shadow-card);
}
.choice-card:hover{
  transform:translateY(-4px);
  border-color:#cfc1a8;
}
.choice-card::after{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:2px;
  background:var(--gold);
  opacity:.35;
}
.choice-tag{
  display:inline-block;
  font-size:.75rem;
  color:var(--gold);
  border:1px solid rgba(196,166,106,.45);
  padding:.1rem .6rem;
  border-radius:var(--radius-full);
  margin-bottom:1.2rem;
  letter-spacing:.07em;
  font-weight:600;
  background:#fbf8f2;
}
.choice-card h4{font-family:var(--font-serif);font-size:1.3rem}
.choice-card p{color:var(--ink-soft);font-size:.9rem;margin-bottom:1.1rem}
.choice-list{
  list-style:none;
  margin:0;
  padding:0;
  border-top:1px solid var(--line);
}
.choice-list li{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.72rem 0 .15rem;
  font-size:.88rem;
  border-bottom:1px dotted var(--line);
}
.choice-list li span:first-child{color:var(--ink-soft)}
.choice-list li span:last-child{font-weight:600}
@media(max-width:991.98px){
  .choice-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:575.98px){
  .choice-grid{grid-template-columns:1fr}
}

.faq-section{
  background:var(--paper);
}
.accordion-item{
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line);
  margin:0;
}
.accordion-button{
  background:transparent !important;
  color:var(--ink) !important;
  box-shadow:none !important;
  font-family:var(--font-sans);
  font-size:1.02rem;
  font-weight:600;
  padding:1.3rem 2rem 1.3rem .2rem;
  position:relative;
}
.accordion-button::after{
  display:none !important;
}
.accordion-button::before{
  content:"+";
  position:absolute;
  right:.3rem;
  top:50%;
  width:18px;
  height:18px;
  color:var(--gold);
  font-size:1.3rem;
  line-height:1;
  transform:translateY(-50%);
  transition:var(--transition);
  font-weight:300;
}
.accordion-button:not(.collapsed)::before{
  content:"×";
}
.accordion-button:hover{color:var(--gold) !important}
.accordion-body{
  padding:.1rem 2.2rem 1.4rem .2rem;
  color:var(--ink-soft);
  font-size:.93rem;
  max-width:760px;
}

.cta-panel{
  background:
    linear-gradient(rgba(17,21,26,.92),rgba(17,21,26,.96)),
    url("/assets/images/backpic/back-3.webp") center 20%/cover no-repeat;
  color:#e9e2d8;
}
.cta-wrap{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:3rem;
  align-items:center;
}
.cta-heading h2{
  color:#fff;
  font-size:clamp(1.9rem,3.6vw,3rem);
  line-height:1.3;
}
.cta-heading p{
  color:#bdb5aa;
  margin:1.2rem 0 1.8rem;
}
.cta-points{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.7rem;
}
.cta-points li{
  display:flex;
  gap:.7rem;
  align-items:flex-start;
  color:#d9d3ca;
  font-size:.93rem;
}
.cta-points i{
  color:var(--gold);
  margin-top:.5rem;
  font-size:.8rem;
}
.reg-form{
  background:var(--paper);
  padding:1.9rem 1.8rem 1.6rem;
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow-float);
}
.reg-form h4{
  font-family:var(--font-serif);
  font-size:1.4rem;
  margin-bottom:.4rem;
}
.reg-form .form-label{font-weight:600}
.reg-form .form-muted{font-size:.82rem;color:var(--ink-soft)}
.reg-form textarea{min-height:90px;resize:vertical}
.reg-btn{
  width:100%;
  border:none;
}
#feedback{
  margin-top:1rem;
  color:var(--muted-green);
  font-size:.85rem;
}
.form-err{border-color:var(--danger-dark) !important}
@media(max-width:991.98px){
  .cta-wrap{grid-template-columns:1fr;gap:2rem}
}

.site-footer{
  background:var(--night);
  color:#b6b0a6;
  padding:4.2rem 0 0;
}
.site-footer a{color:#c9c1b7}
.site-footer a:hover{color:#fff}
.footer-brand{
  display:flex;
  align-items:center;
  gap:.8rem;
  font-family:var(--font-serif);
  font-size:1.55rem;
  color:#fff;
  line-height:1;
  margin-bottom:1.2rem;
}
.footer-brand .brand-mark{color:var(--gold)}
.footer-about{
  color:#8e8a82;
  font-size:.93rem;
  max-width:320px;
  margin-bottom:1.2rem;
}
.footer-info{
  color:var(--muted-green);
  font-size:.85rem;
}
.footer-heading{
  font-size:.85rem;
  font-weight:700;
  color:#fff;
  letter-spacing:.16em;
  margin-bottom:1.2rem;
}
.footer-links{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:.55rem;
}
.footer-links a{font-size:.92rem}
.footer-bottom{
  margin-top:3.4rem;
  border-top:1px solid var(--night-line);
  padding:1.4rem 0;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.6rem;
  font-size:.82rem;
  color:#77776f;
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
}

.site-header.is-scrolled .site-nav-card{
  box-shadow:0 2px 8px rgba(0,0,0,.06),0 18px 42px rgba(20,15,10,.12);
}
.text-gold{color:var(--gold)}
.m-0{margin:0}

/* roulang page: category3 */
:root {
            --bg: #f5f1e9;
            --bg-soft: #faf7f1;
            --bg-card: #fffdf8;
            --night: #11151a;
            --night-2: #1a2027;
            --night-line: #2a323a;
            --ink: #1b1815;
            --muted: #6f675d;
            --line: #dcd3c6;
            --gold: #c4a66a;
            --sage: #7d8d86;
            --serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", SimSun, serif;
            --sans: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
            --shadow-card: 0 1px 2px rgba(0, 0, 0, .03), 0 16px 48px rgba(20, 15, 10, .05);
            --radius: 4px;
            --radius-sm: 2px;
            --transition: all .25s ease-out;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            margin: 0;
            background: var(--bg);
            color: var(--ink);
            font-family: var(--sans);
            line-height: 1.7;
            font-size: 16px;
            -webkit-font-smoothing: antialiased;
        }

        h1,
        h2,
        h3,
        h4 {
            font-family: var(--serif);
            color: var(--ink);
        }

        p {
            margin-bottom: 0;
        }

        a {
            color: inherit;
            text-decoration: none;
        }

        img {
            max-width: 100%;
            height: auto;
            display: block;
        }

        ul {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        .site-header {
            padding: 22px 0 6px;
            position: relative;
            z-index: 20;
        }

        .site-nav-card {
            background: var(--bg-soft);
            border: 1px solid var(--line);
            border-radius: 8px;
            box-shadow: var(--shadow-card);
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 14px;
            padding: 12px 14px;
        }

        .brand {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            flex: 0 0 auto;
            margin-right: 10px;
        }

        .brand-mark {
            color: var(--gold);
            font-size: 1.55rem;
            line-height: 1;
            letter-spacing: 0;
        }

        .brand-name {
            font-family: var(--serif);
            font-size: 1.45rem;
            letter-spacing: .06em;
            font-weight: 600;
            white-space: nowrap;
        }

        .main-nav-collapse {
            flex: 1 1 auto;
            min-width: 0;
            order: 3;
        }

        .main-nav {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            align-items: center;
        }

        .nav-chip {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            padding: 8px 11px;
            border: 1px solid transparent;
            border-radius: 5px;
            color: #4d463e;
            font-size: .89rem;
            font-weight: 500;
            transition: var(--transition);
            line-height: 1.2;
        }

        .nav-chip .chip-icon {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--gold);
            flex: 0 0 auto;
            opacity: .78;
            transition: var(--transition);
        }

        .nav-chip:hover {
            background: #fffefb;
            border-color: var(--line);
            color: var(--ink);
            transform: translateY(-1px);
        }

        .nav-chip.is-active {
            background: #fffefb;
            border-color: #e0d5c6;
            color: var(--ink);
            box-shadow: 0 0 0 1px rgba(196, 166, 106, .08);
        }

        .nav-chip.is-active .chip-icon {
            box-shadow: 0 0 0 3px rgba(196, 166, 106, .20);
            opacity: 1;
        }

        .nav-toggler {
            display: none;
            align-items: center;
            justify-content: center;
            width: 42px;
            height: 42px;
            border: 1px solid var(--line);
            border-radius: 5px;
            background: transparent;
            color: var(--ink);
            transition: var(--transition);
        }

        .header-cta {
            flex: 0 0 auto;
            margin-left: auto;
        }

        .btn-site {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            background: var(--ink);
            color: #f7f2e9;
            border: 1px solid var(--ink);
            border-radius: 3px;
            padding: 13px 26px;
            font-weight: 600;
            font-family: var(--sans);
            line-height: 1;
            transition: var(--transition);
            text-align: center;
            letter-spacing: .02em;
        }

        .btn-site:hover,
        .btn-site:focus {
            background: #11151a;
            color: #fffdf8;
            border-color: #11151a;
            transform: translateY(-1px);
            box-shadow: 0 8px 24px rgba(17, 21, 26, .14);
        }

        .btn-site--sm {
            padding: 10px 17px;
            font-size: .84rem;
            border-radius: 3px;
            background: var(--night);
            color: #f5f1e9;
            border-color: var(--night);
        }

        .btn-site--light {
            background: #f5f1e9;
            color: var(--night);
            border-color: #f5f1e9;
        }

        .btn-site--light:hover,
        .btn-site--light:focus {
            background: #ffffff;
            border-color: #ffffff;
            color: var(--night);
        }

        .btn-text-link {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-weight: 600;
            border-bottom: 1px solid currentColor;
            transition: var(--transition);
        }

        .btn-text-link:hover {
            gap: 10px;
            color: var(--gold);
        }

        .category-hero {
            position: relative;
            overflow: hidden;
            color: #eee7da;
            padding: 78px 0 70px;
            background: var(--night);
        }

        .category-hero::before {
            content: "";
            position: absolute;
            inset: 0;
            background-image: linear-gradient(100deg, rgba(17, 21, 26, .97) 8%, rgba(17, 21, 26, .82) 55%, rgba(17, 21, 26, .58)), url("/assets/images/backpic/back-1.webp");
            background-position: center;
            background-size: cover;
            background-repeat: no-repeat;
            z-index: 1;
        }

        .category-hero .container {
            position: relative;
            z-index: 2;
        }

        .breadcrumb-nav {
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: .83rem;
            color: rgba(245, 241, 233, .74);
            margin-bottom: 34px;
        }

        .breadcrumb-nav a {
            color: rgba(245, 241, 233, .74);
        }

        .breadcrumb-nav a:hover {
            color: #ffffff;
        }

        .breadcrumb-nav .bi {
            font-size: .68rem;
            opacity: .65;
        }

        .hero-kicker {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            font-size: .78rem;
            letter-spacing: .24em;
            text-transform: uppercase;
            color: var(--gold);
            margin-bottom: 14px;
            font-weight: 600;
        }

        .hero-kicker::before {
            content: "";
            width: 36px;
            height: 1px;
            background: var(--gold);
        }

        .category-hero h1 {
            font-size: clamp(42px, 6vw, 72px);
            line-height: 1.18;
            color: #fffaf1;
            margin-bottom: 20px;
            max-width: 900px;
        }

        .hero-lead {
            font-size: 1.1rem;
            line-height: 1.85;
            color: rgba(245, 241, 233, .86);
            max-width: 720px;
            margin-bottom: 28px;
        }

        .hero-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 20px;
            align-items: center;
            margin-bottom: 46px;
        }

        .btn-text-link.light-link {
            color: rgba(245, 241, 233, .9);
        }

        .hero-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 10px 40px;
            border-top: 1px solid rgba(255, 255, 255, .16);
            padding-top: 26px;
            font-size: .96rem;
        }

        .hero-meta li {
            color: rgba(245, 241, 233, .76);
        }

        .hero-meta strong {
            display: block;
            color: #f5f1e9;
            font-weight: 600;
            font-size: 1.05rem;
            margin-top: 2px;
        }

        .page-section {
            padding: 88px 0;
        }

        .paper-section {
            background: var(--bg);
        }

        .soft-section {
            background: #efe9dd;
            border-top: 1px solid var(--line);
            border-bottom: 1px solid var(--line);
        }

        .section-head {
            max-width: 850px;
            margin-bottom: 50px;
        }

        .overline {
            font-size: .76rem;
            letter-spacing: .26em;
            color: var(--gold);
            text-transform: uppercase;
            font-weight: 700;
            margin-bottom: 12px;
            display: block;
        }

        .section-title {
            font-size: clamp(30px, 4.2vw, 48px);
            line-height: 1.26;
            letter-spacing: .02em;
            margin-bottom: 16px;
        }

        .section-intro {
            color: var(--muted);
            font-size: 1.05rem;
            line-height: 1.8;
            max-width: 720px;
        }

        .photo-card {
            background: var(--bg-card);
            border: 1px solid var(--line);
            border-radius: var(--radius);
            overflow: hidden;
            box-shadow: 0 1px 2px rgba(0, 0, 0, .02);
            transition: var(--transition);
            height: 100%;
        }

        .photo-card:hover {
            transform: translateY(-5px);
            box-shadow: var(--shadow-card);
            border-color: #cdbea9;
        }

        .photo-card figure {
            height: 190px;
            background: #ddd5c8;
            overflow: hidden;
            position: relative;
        }

        .photo-card figure img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform .4s ease-out;
        }

        .photo-card:hover figure img {
            transform: scale(1.02);
        }

        .photo-card .card-content {
            padding: 24px;
        }

        .card-num {
            font-family: var(--serif);
            font-size: .9rem;
            color: var(--gold);
            letter-spacing: .12em;
            margin-bottom: 8px;
            display: block;
        }

        .photo-card h3 {
            font-size: 1.25rem;
            margin-bottom: 10px;
        }

        .photo-card p {
            font-size: .94rem;
            color: #5d554c;
            line-height: 1.75;
        }

        .dark-section {
            background: var(--night);
            color: rgba(245, 241, 233, .85);
        }

        .dark-section .section-title {
            color: #f7f1e6;
        }

        .dark-section .section-intro,
        .dark-section p {
            color: rgba(245, 241, 233, .78);
        }

        .review-card {
            background: var(--night-2);
            border: 1px solid var(--night-line);
            border-radius: var(--radius);
            padding: 30px 26px;
            height: 100%;
            transition: var(--transition);
        }

        .review-card:hover {
            border-color: #3c4851;
            transform: translateY(-3px);
        }

        .review-card .number {
            width: 38px;
            height: 38px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: var(--night);
            background: var(--gold);
            border-radius: 50%;
            font-family: var(--serif);
            font-size: .95rem;
            margin-bottom: 20px;
        }

        .review-card h3 {
            font-size: 1.2rem;
            color: #f5f1e9;
            margin-bottom: 10px;
        }

        .step-card {
            position: relative;
            background: var(--bg-card);
            border: 1px solid var(--line);
            border-radius: var(--radius);
            padding: 26px 22px 24px;
            height: 100%;
            overflow: hidden;
            transition: var(--transition);
        }

        .step-card::before {
            content: "";
            position: absolute;
            left: 0;
            top: 0;
            width: 3px;
            height: 48px;
            background: var(--gold);
        }

        .step-card:hover {
            box-shadow: var(--shadow-card);
            transform: translateY(-4px);
        }

        .step-num {
            font-family: var(--serif);
            font-size: 32px;
            line-height: 1;
            color: var(--line);
            display: block;
            margin-bottom: 18px;
        }

        .step-card h3 {
            font-size: 1.18rem;
            margin-bottom: 8px;
        }

        .step-card p {
            color: var(--muted);
            font-size: .94rem;
            line-height: 1.75;
        }

        .spec-panel {
            background: var(--bg-card);
            border: 1px solid var(--line);
            border-radius: var(--radius);
            padding: 30px 28px;
            height: 100%;
        }

        .spec-panel h3 {
            font-size: 1.25rem;
            display: flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 16px;
        }

        .spec-panel i {
            color: var(--gold);
        }

        .spec-panel ul {
            display: grid;
            gap: 12px;
        }

        .spec-panel li {
            padding-left: 22px;
            position: relative;
            color: #4d463e;
            font-size: .96rem;
            line-height: 1.75;
        }

        .spec-panel li::before {
            content: "·";
            position: absolute;
            left: 4px;
            color: var(--gold);
            font-weight: 700;
        }

        .cta-section {
            background: var(--night);
            color: rgba(245, 241, 233, .85);
            padding: 96px 0;
            position: relative;
            overflow: hidden;
        }

        .cta-section::before {
            content: "";
            position: absolute;
            inset: 0;
            background-image: linear-gradient(90deg, rgba(17, 21, 26, .96), rgba(17, 21, 26, .76)), url("/assets/images/backpic/back-2.png");
            background-size: cover;
            background-position: center;
            opacity: .48;
            z-index: 1;
        }

        .cta-section .container {
            position: relative;
            z-index: 2;
        }

        .cta-section .section-title,
        .cta-section h2 {
            color: #f7f1e6;
        }

        .cta-intro {
            color: rgba(245, 241, 233, .8);
            max-width: 540px;
            line-height: 1.8;
            margin: 16px 0 20px;
        }

        .cta-form-card {
            background: #faf7f1;
            color: var(--ink);
            border-radius: 6px;
            padding: 28px;
            box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
        }

        .form-label {
            font-weight: 600;
            font-size: .9rem;
            color: #2f2a25;
            margin-bottom: 6px;
        }

        .form-control {
            border: 1px solid var(--line);
            border-radius: 3px;
            padding: 11px 13px;
            background: #fffdf8;
            font-family: var(--sans);
            font-size: .95rem;
        }

        .form-control:focus {
            border-color: var(--gold);
            box-shadow: 0 0 0 .2rem rgba(196, 166, 106, .16);
        }

        .form-select {
            border: 1px solid var(--line);
            border-radius: 3px;
            background-color: #fffdf8;
            padding: 11px 13px;
            color: #1b1815;
        }

        textarea.form-control {
            min-height: 90px;
            resize: vertical;
        }

        .form-result {
            font-size: .9rem;
            padding: 12px 14px;
            border: 1px solid var(--line);
            border-radius: 3px;
            background: #f5efe5;
            color: #4a433a;
            display: none;
        }

        .form-result.is-visible {
            display: block;
        }

        .form-note {
            font-size: .82rem;
            color: #797066;
        }

        .cta-notes {
            margin-top: 24px;
        }

        .cta-notes li {
            display: flex;
            gap: 10px;
            align-items: flex-start;
            font-size: .94rem;
            color: rgba(245, 241, 233, .78);
            margin-bottom: 12px;
        }

        .cta-notes i {
            color: var(--gold);
            line-height: 1.6;
        }

        .faq-wrap {
            max-width: 900px;
        }

        .accordion-item {
            background: transparent;
            border: 0;
            border-bottom: 1px solid var(--line);
        }

        .accordion-button {
            background: transparent;
            padding: 22px 4px;
            color: var(--ink);
            font-weight: 600;
            font-size: 1.03rem;
            box-shadow: none;
            border: 0;
        }

        .accordion-button:not(.collapsed) {
            background: transparent;
            color: var(--ink);
            box-shadow: none;
        }

        .accordion-button:focus {
            box-shadow: none;
            border-color: transparent;
        }

        .accordion-button::after {
            content: "+";
            background-image: none;
            width: 1.1rem;
            height: 1.1rem;
            font-size: 1.6rem;
            font-weight: 300;
            line-height: 1;
            color: var(--gold);
            transform: none;
            transition: var(--transition);
        }

        .accordion-button:not(.collapsed)::after {
            content: "−";
            transform: none;
        }

        .accordion-body {
            padding: 0 4px 24px;
            color: var(--muted);
            line-height: 1.8;
            font-size: .97rem;
        }

        .register-block {
            background: #f2ecdf;
            border-top: 1px solid var(--line);
            border-bottom: 1px solid var(--line);
            padding: 66px 0;
        }

        .register-panel {
            background: var(--bg-card);
            border: 1px solid var(--line);
            border-radius: 6px;
            padding: 34px;
            box-shadow: var(--shadow-card);
        }

        .register-panel .register-icon {
            font-size: 1.7rem;
            color: var(--gold);
        }

        .register-panel h2 {
            font-size: 1.9rem;
            margin: 8px 0 14px;
        }

        .register-panel p {
            color: var(--muted);
            margin-bottom: 20px;
            max-width: 700px;
        }

        .site-footer {
            background: var(--night);
            color: rgba(245, 241, 233, .74);
            padding: 68px 0 0;
        }

        .site-footer .footer-brand {
            display: flex;
            align-items: center;
            gap: 8px;
            font-family: var(--serif);
            font-size: 1.5rem;
            color: #f5f1e9;
            margin-bottom: 16px;
        }

        .site-footer .footer-about {
            font-size: .93rem;
            line-height: 1.85;
            color: rgba(245, 241, 233, .66);
            max-width: 400px;
        }

        .footer-info {
            border-top: 1px solid rgba(255, 255, 255, .12);
            margin-top: 20px;
            padding-top: 16px;
            font-size: .88rem;
            color: rgba(245, 241, 233, .66);
            max-width: 400px;
        }

        .footer-heading {
            color: rgba(245, 241, 233, .55);
            font-size: .82rem;
            letter-spacing: .16em;
            margin-bottom: 20px;
            font-weight: 600;
        }

        .footer-links li {
            margin-bottom: 12px;
        }

        .footer-links a {
            color: rgba(245, 241, 233, .78);
            font-size: .94rem;
            transition: var(--transition);
        }

        .footer-links a:hover {
            color: var(--gold);
            padding-left: 4px;
        }

        .footer-bottom {
            border-top: 1px solid rgba(255, 255, 255, .12);
            padding: 20px 0 28px;
            margin-top: 40px;
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 10px 20px;
            font-size: .82rem;
            color: rgba(245, 241, 233, .5);
        }

        @media (max-width: 991.98px) {
            .main-nav-collapse {
                order: 4;
                width: 100%;
                flex-basis: 100%;
                display: block;
            }

            .main-nav-collapse:not(.show) {
                display: none;
            }

            .main-nav {
                display: grid;
                grid-template-columns: 1fr 1fr;
                gap: 6px;
                padding-top: 8px;
                border-top: 1px solid var(--line);
            }

            .nav-toggler {
                display: inline-flex;
            }

            .header-cta {
                order: 3;
                margin-left: 0;
            }

            .nav-chip {
                border: 1px solid var(--line);
                background: #fffdf8;
                padding: 11px 10px;
            }

            .category-hero {
                padding: 58px 0 48px;
            }

            .page-section {
                padding: 62px 0;
            }
        }

        @media (max-width: 767.98px) {
            body {
                font-size: 15px;
            }

            .site-header {
                padding-top: 12px;
            }

            .site-nav-card {
                padding: 10px 10px;
                gap: 10px;
            }

            .brand-name {
                font-size: 1.18rem;
            }

            .main-nav {
                grid-template-columns: 1fr;
            }

            .hero-actions {
                gap: 14px;
            }

            .hero-meta {
                gap: 16px 20px;
            }

            .photo-card figure {
                height: 220px;
            }

            .cta-form-card {
                padding: 20px;
            }

            .spec-panel {
                padding: 24px;
            }

            .review-card {
                padding: 24px;
            }

            .register-panel {
                padding: 24px;
            }

            .site-footer {
                padding-top: 48px;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            *,
            *::before,
            *::after {
                animation-duration: .01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: .01ms !important;
                scroll-behavior: auto !important;
            }
        }

/* roulang page: category4 */
:root{
  --paper:#F5F1E9;
  --paper-deep:#EDE5D6;
  --ink:#1B1815;
  --ink-2:#6F675D;
  --line:#DCD3C6;
  --night:#11151A;
  --night-2:#1A2027;
  --night-line:#2A323A;
  --gold:#C4A66A;
  --sage:#7D8D86;
  --white-card:#FFFDF8;
  --font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC",SimSun,serif;
  --font-sans:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  --shadow-card:0 1px 2px rgba(0,0,0,.03),0 18px 48px rgba(20,15,10,.05);
  --shadow-float:0 2px 4px rgba(0,0,0,.04),0 22px 64px rgba(20,15,10,.08);
  --radius:2px;
}
html{
  scroll-behavior:smooth;
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans);
  line-height:1.75;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
*,*::before,*::after{
  box-sizing:border-box;
}
a{
  color:inherit;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  transition:color .2s ease-out,border-color .2s ease-out,background .2s ease-out;
}
a:hover{
  color:#3E362C;
}
img{
  max-width:100%;
  display:block;
}
button,input,select,textarea{
  font:inherit;
}
.skip-link{
  position:absolute;
  left:-999px;
  top:0;
  z-index:2000;
  background:var(--ink);
  color:#fff;
  padding:.75rem 1.25rem;
}
.skip-link:focus{
  left:1rem;
  top:1rem;
}
.container{
  max-width:1240px;
}
.container-narrow{
  max-width:840px;
}
.section{
  padding:5.5rem 0;
}
.section-head{
  margin-bottom:3rem;
}
.section-head .lead{
  max-width:820px;
  color:var(--ink-2);
  margin:.8rem 0 0;
}
.bg-soft{
  background:#FAF7F1;
}
.text-gold{
  color:var(--gold);
}
::selection{
  background:rgba(196,166,106,.28);
}

/* header */
.site-header{
  padding-top:1.1rem;
  padding-bottom:.4rem;
  position:relative;
  z-index:1040;
}
.site-nav-card{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.4rem .9rem;
  background:rgba(245,241,233,.95);
  border:1px solid rgba(220,211,198,.9);
  box-shadow:0 10px 34px rgba(31,24,14,.05);
  border-radius:6px;
  padding:.6rem .6rem .6rem 1rem;
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  text-decoration:none;
  color:var(--ink);
  font-family:var(--font-serif);
}
.brand:hover{
  color:var(--ink);
}
.brand-mark{
  color:var(--gold);
  font-size:1.28rem;
  line-height:1;
}
.brand-name{
  font-size:1.06rem;
  font-weight:700;
  letter-spacing:.02em;
  white-space:nowrap;
}
.nav-toggler{
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  margin-left:auto;
  border:1px solid var(--line);
  border-radius:50%;
  background:transparent;
  color:var(--ink);
  padding:0;
}
.nav-toggler svg{
  width:20px;
  height:20px;
}
.main-nav{
  display:flex;
  align-items:center;
  gap:.1rem;
  flex-wrap:wrap;
}
.nav-chip{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family:var(--font-sans);
  font-size:.87rem;
  font-weight:500;
  padding:.52rem .78rem;
  color:var(--ink-2);
  text-decoration:none;
  border-radius:999px;
  border:1px solid transparent;
  transition:all .2s ease-out;
}
.chip-icon{
  width:6px;
  height:6px;
  border-radius:999px;
  background:#BDB3A2;
  transition:background .2s ease-out,box-shadow .2s ease-out;
}
.nav-chip:hover{
  color:var(--ink);
  border-color:var(--line);
  background:rgba(255,255,255,.2);
}
.nav-chip:hover .chip-icon{
  background:var(--gold);
}
.main-nav-collapse{
  flex:1 1 auto;
}
.header-cta{
  display:flex;
  align-items:center;
}
.btn-site{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  font-family:var(--font-sans);
  font-weight:600;
  font-size:.94rem;
  line-height:1;
  color:#F9F4EA;
  background:var(--ink);
  border:1px solid var(--ink);
  border-radius:2px;
  padding:.9rem 1.7rem;
  text-decoration:none;
  transition:transform .2s ease-out,background .2s ease-out,color .2s ease-out,border-color .2s ease-out;
  cursor:pointer;
}
.btn-site:hover{
  color:#fff;
  background:#000;
  border-color:#000;
  transform:translateY(-2px);
}
.btn-site:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}
.btn-site--sm{
  padding:.55rem 1rem;
  font-size:.84rem;
  border-radius:2px;
}
.btn-site--lg{
  padding:1rem 2rem;
  font-size:1rem;
}
.btn-site--light{
  background:#F5F1E9;
  color:var(--ink);
  border-color:#F5F1E9;
}
.btn-site--light:hover{
  background:#fff;
  color:var(--ink);
  border-color:#fff;
}
.btn-site--outline{
  background:transparent;
  color:var(--ink);
  border-color:var(--ink);
}
.btn-site--outline:hover{
  background:var(--ink);
  color:#fff;
}
.btn-site--ghost{
  background:transparent;
  color:#F5F1E9;
  border-color:rgba(255,255,255,.58);
}
.btn-site--ghost:hover{
  background:#F5F1E9;
  color:var(--ink);
  border-color:#F5F1E9;
}
.btn-text{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-weight:600;
  color:rgba(255,255,255,.86);
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.4);
  padding-bottom:.2rem;
}
.btn-text:hover{
  color:#fff;
  border-color:var(--gold);
}
.btn-text .arrow{
  transition:transform .2s ease-out;
}
.btn-text:hover .arrow{
  transform:translateX(4px);
}

@media (min-width:992px){
  .main-nav-collapse{
    display:block !important;
    margin-left:.4rem;
  }
  .main-nav{
    justify-content:center;
  }
  .nav-toggler{
    display:none;
  }
  .header-cta{
    margin-left:auto;
  }
}
@media (max-width:991.98px){
  .site-nav-card{
    align-items:center;
  }
  .brand{
    flex:0 1 auto;
  }
  .main-nav-collapse{
    order:5;
    width:100%;
    margin-top:.4rem;
  }
  .main-nav-collapse:not(.show){
    display:none;
  }
  .main-nav{
    flex-direction:column;
    align-items:stretch;
    gap:.2rem;
    padding:.25rem 0 .35rem;
  }
  .nav-chip{
    justify-content:flex-start;
    padding:.78rem 1rem;
  }
  .nav-chip.is-active{
    background:rgba(196,166,106,.12);
  }
  .header-cta{
    margin-left:auto;
    margin-right:.4rem;
  }
}
@media (max-width:575.98px){
  .brand-name{
    font-size:.98rem;
  }
  .header-cta .btn-site{
    padding:.5rem .7rem;
    font-size:.78rem;
  }
  .site-nav-card{
    padding:.45rem .45rem .45rem .75rem;
  }
}
.nav-chip.is-active{
  color:var(--ink);
  font-weight:600;
}
.nav-chip.is-active .chip-icon{
  background:var(--gold);
  box-shadow:0 0 0 4px rgba(196,166,106,.14);
}

/* hero */
.page-hero{
  position:relative;
  color:#F5F1E9;
  padding:5.8rem 0 4.8rem;
  overflow:hidden;
  background-color:var(--night);
}
.page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background-image:
    linear-gradient(rgba(255,255,255,.038) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.038) 1px,transparent 1px);
  background-size:72px 72px;
}
.page-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,rgba(17,21,26,.96) 0%,rgba(17,21,26,.84) 58%,rgba(17,21,26,.48) 100%),
    url("/assets/images/backpic/back-1.webp") center/cover no-repeat;
}
.page-hero .container{
  position:relative;
  z-index:3;
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:3rem;
  align-items:end;
}
.hero-breadcrumb{
  margin-bottom:2rem;
}
.breadcrumb-list{
  list-style:none;
  display:flex;
  align-items:center;
  gap:.6rem;
  padding:0;
  margin:0;
  font-size:.82rem;
  color:rgba(245,241,233,.66);
  letter-spacing:.02em;
}
.breadcrumb-list li{
  display:flex;
  align-items:center;
  gap:.6rem;
}
.breadcrumb-list li:not(:last-child)::after{
  content:"/";
  color:rgba(245,241,233,.42);
}
.breadcrumb-list a{
  color:rgba(245,241,233,.66);
  text-decoration:none;
}
.breadcrumb-list a:hover{
  color:#fff;
}
.hero-kicker{
  font-family:var(--font-sans);
  font-size:.8rem;
  letter-spacing:.32em;
  color:var(--gold);
  margin:0 0 1.1rem;
  text-transform:uppercase;
}
.page-hero h1{
  font-family:var(--font-serif);
  font-size:clamp(2.5rem,6vw,4.6rem);
  line-height:1.12;
  margin:0 0 1.7rem;
  color:#F7F2EA;
  font-weight:500;
  max-width:17ch;
}
.page-hero h1 span{
  display:block;
  font-size:.38em;
  font-family:var(--font-sans);
  font-weight:500;
  letter-spacing:.12em;
  color:var(--gold);
  margin-top:.7em;
  padding-top:.7em;
  border-top:1px solid rgba(255,255,255,.16);
}
.hero-lead{
  font-size:1.05rem;
  line-height:1.95;
  color:rgba(245,241,233,.78);
  max-width:56ch;
  margin-bottom:2.2rem;
}
.hero-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
}
.hero-facts{
  display:grid;
  grid-template-columns:1fr;
  border-top:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
  margin:0;
}
.hero-facts div{
  padding:1.15rem 0;
  border-bottom:1px solid rgba(255,255,255,.1);
  display:grid;
  grid-template-columns:110px 1fr;
  gap:.8rem;
}
.hero-facts div:last-child{
  border-bottom:none;
}
.hero-facts dt{
  font-size:.8rem;
  color:rgba(245,241,233,.55);
}
.hero-facts dd{
  margin:0;
  font-weight:600;
  color:#fff;
  font-variant-numeric:tabular-nums;
  letter-spacing:.02em;
}
@media (max-width:991.98px){
  .hero-grid{
    grid-template-columns:1fr;
  }
  .page-hero{
    padding:4rem 0 3.5rem;
  }
}
@media (max-width:575.98px){
  .page-hero h1{
    font-size:clamp(2rem,9vw,3rem);
  }
  .hero-facts div{
    grid-template-columns:1fr;
    gap:.1rem;
  }
  .hero-actions .btn-site{
    width:100%;
  }
}

/* section titles */
.section-kicker{
  display:flex;
  align-items:center;
  gap:.75rem;
  font-family:var(--font-sans);
  color:var(--gold);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.3em;
  margin:0 0 .65rem;
}
.section-kicker::before{
  content:"";
  width:38px;
  height:1px;
  background:var(--gold);
}
.section-title{
  font-family:var(--font-serif);
  font-size:clamp(1.8rem,3.4vw,2.7rem);
  line-height:1.25;
  font-weight:600;
  margin:0;
  color:var(--ink);
}
.section-lead{
  font-size:1rem;
  color:var(--ink-2);
  max-width:780px;
  margin-top:.8rem;
  margin-bottom:0;
}
.section-head--light .section-title{
  color:#fff;
}
.section-head--light .section-lead{
  color:rgba(255,255,255,.66);
}
.section-head--light .section-kicker{
  color:var(--gold);
}
@media (max-width:767.98px){
  .section{
    padding:3.5rem 0;
  }
  .section-head{
    margin-bottom:2rem;
  }
}

/* tickets */
.ticket-grid{
  display:grid;
  gap:1.35rem;
}
.ticket-card{
  position:relative;
  display:flex;
  flex-direction:column;
  padding:1.9rem 1.55rem 1.7rem;
  background:var(--white-card);
  border:1px solid var(--line);
  border-radius:4px;
  box-shadow:var(--shadow-card);
  transition:transform .22s ease-out,border-color .22s ease-out,box-shadow .22s ease-out;
}
.ticket-card:hover{
  transform:translateY(-5px);
  box-shadow:var(--shadow-float);
  border-color:#C9BCA7;
}
.ticket-card--feature{
  border-color:rgba(196,166,106,.65);
  box-shadow:0 2px 6px rgba(45,27,5,.04),0 32px 72px rgba(41,27,8,.09);
}
.ticket-flag{
  position:absolute;
  top:-1px;
  right:1.3rem;
  font-family:var(--font-sans);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.18em;
  color:var(--ink);
  background:var(--gold);
  padding:.32rem .7rem .28rem;
  border-radius:0 0 2px 2px;
}
.ticket-tier{
  font-family:var(--font-sans);
  font-size:.78rem;
  color:var(--sage);
  font-weight:700;
  letter-spacing:.12em;
  margin-bottom:.5rem;
}
.ticket-name{
  font-family:var(--font-serif);
  font-size:1.45rem;
  line-height:1.4;
  margin:0 0 .2rem;
}
.ticket-description{
  font-size:.9rem;
  color:var(--ink-2);
  min-height:3.4em;
  margin:0 0 1rem;
  line-height:1.8;
}
.ticket-price{
  font-family:var(--font-serif);
  font-size:2.35rem;
  color:var(--ink);
  line-height:1.1;
  padding:.6rem 0 1.1rem;
  border-bottom:1px solid var(--line);
  margin-bottom:1.1rem;
  font-variant-numeric:tabular-nums;
}
.ticket-price small{
  font-size:.8rem;
  font-family:var(--font-sans);
  color:var(--ink-2);
  font-weight:400;
  margin-left:.25rem;
}
.ticket-benefits{
  list-style:none;
  margin:0 0 1.5rem;
  padding:0;
  display:grid;
  gap:.4rem;
}
.ticket-benefits li{
  position:relative;
  padding-left:1.4rem;
  font-size:.9rem;
  color:#24201B;
}
.ticket-benefits li::before{
  content:"";
  position:absolute;
  left:0;
  top:.42em;
  width:8px;
  height:8px;
  border:1px solid var(--gold);
  border-radius:50%;
}
.ticket-action{
  margin-top:auto;
}
.ticket-action .btn-site{
  width:100%;
}
@media (min-width:768px){
  .ticket-grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media (min-width:1100px){
  .ticket-grid{
    grid-template-columns:repeat(4,1fr);
  }
}

/* process dark */
.section-night{
  background:var(--night);
  color:rgba(255,255,255,.78);
}
.section-night::before{
  content:"";
  display:block;
  height:0;
}
.process-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.7fr);
  gap:4rem;
  align-items:start;
}
.process-list{
  list-style:none;
  margin:0;
  padding:0;
  position:relative;
}
.process-list::before{
  content:"";
  position:absolute;
  left:0;
  top:.4rem;
  bottom:1rem;
  width:1px;
  background:rgba(255,255,255,.16);
}
.process-step{
  position:relative;
  padding-left:2.6rem;
  padding-bottom:2.2rem;
}
.process-step:last-child{
  padding-bottom:.2rem;
}
.process-step::before{
  content:"";
  position:absolute;
  left:-6px;
  top:.25rem;
  width:12px;
  height:12px;
  border-radius:50%;
  background:var(--night);
  border:1px solid var(--gold);
}
.process-step:nth-child(odd)::before{
  box-shadow:0 0 0 5px rgba(196,166,106,.12);
}
.step-index{
  font-family:var(--font-serif);
  font-size:.92rem;
  color:var(--gold);
  letter-spacing:.1em;
}
.step-title{
  font-family:var(--font-serif);
  font-size:1.25rem;
  color:#fff;
  margin:.12rem 0 .3rem;
}
.step-text{
  font-size:.92rem;
  color:rgba(255,255,255,.64);
  margin:0;
  max-width:43rem;
}
.process-aside{
  background:var(--night-2);
  border:1px solid var(--night-line);
  border-radius:4px;
  padding:2rem 1.8rem;
}
.process-aside h3{
  font-family:var(--font-serif);
  color:#fff;
  font-size:1.05rem;
  border-bottom:1px solid rgba(255,255,255,.12);
  padding-bottom:1rem;
  margin-bottom:1rem;
}
.process-aside ul{
  list-style:none;
  margin:0;
  padding:0;
}
.process-aside li{
  padding:.55rem 0;
  border-bottom:1px solid rgba(255,255,255,.07);
  font-size:.9rem;
  display:flex;
  gap:.6rem;
  align-items:flex-start;
}
.process-aside i{
  color:var(--gold);
  margin-top:.35rem;
  font-size:.78rem;
}
@media (max-width:991.98px){
  .process-wrap{
    grid-template-columns:1fr;
    gap:2.5rem;
  }
}
@media (max-width:575.98px){
  .process-step{
    padding-left:1.8rem;
  }
}

/* media split */
.media-split{
  align-items:center;
}
.media-frame{
  position:relative;
  background:#E2DAC9;
  border-radius:4px;
  overflow:hidden;
  box-shadow:var(--shadow-card);
}
.media-frame img{
  width:100%;
  height:auto;
  aspect-ratio:16/11;
  object-fit:cover;
}
.media-caption{
  position:absolute;
  left:1rem;
  bottom:1rem;
  background:rgba(17,21,26,.76);
  color:#fff;
  font-size:.78rem;
  padding:.35rem .75rem;
  border-radius:2px;
  backdrop-filter:blur(4px);
}
.scene-list{
  list-style:none;
  margin:0;
  padding:0;
}
.scene-list li{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1.05rem 0;
  border-bottom:1px solid var(--line);
}
.scene-list li:last-child{
  border-bottom:none;
}
.scene-icon{
  flex:0 0 2.2rem;
  width:2.2rem;
  height:2.2rem;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--gold);
  font-size:.8rem;
  background:#fff;
  margin-top:.25rem;
}
.scene-list strong{
  display:block;
  color:var(--ink);
  font-family:var(--font-serif);
  font-size:1.05rem;
  margin-bottom:.18rem;
  font-weight:600;
}
.scene-list p{
  margin:0;
  color:var(--ink-2);
  font-size:.9rem;
}

/* scenario */
.scenario-grid{
  display:grid;
  gap:1.25rem;
}
.scenario-card{
  position:relative;
  background:var(--white-card);
  border:1px solid var(--line);
  border-radius:4px;
  padding:1.8rem 1.9rem 1.7rem;
  box-shadow:var(--shadow-card);
}
.scenario-no{
  font-family:var(--font-serif);
  font-size:.9rem;
  color:var(--gold);
  letter-spacing:.15em;
}
.scenario-card h3{
  font-family:var(--font-serif);
  font-size:1.4rem;
  color:var(--ink);
  margin:.45rem 0 .6rem;
  font-weight:600;
}
.scenario-card p{
  font-size:.92rem;
  color:var(--ink-2);
  max-width:54ch;
  margin-bottom:1.1rem;
}
.scenario-tag{
  font-family:var(--font-sans);
  font-size:.74rem;
  letter-spacing:.08em;
  font-weight:700;
  color:var(--ink);
  background:rgba(196,166,106,.16);
  padding:.3rem .85rem;
  border-radius:999px;
}
@media (min-width:768px){
  .scenario-grid{
    grid-template-columns:repeat(3,1fr);
  }
}

/* faq */
.faq-list{
  max-width:900px;
  margin:0 auto;
}
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-item:first-of-type{
  border-top:1px solid var(--line);
}
.faq-item summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.3rem .2rem;
  cursor:pointer;
  font-family:var(--font-serif);
  font-size:1.1rem;
  color:var(--ink);
  font-weight:600;
  user-select:none;
}
.faq-item summary::-webkit-details-marker{
  display:none;
}
.faq-item summary:hover{
  color:#4A3520;
}
.faq-icon{
  flex:0 0 1.7rem;
  width:1.7rem;
  height:1.7rem;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:50%;
  font-size:1rem;
  color:var(--gold);
  transition:transform .3s ease,border-color .3s ease;
}
.faq-item[open] .faq-icon{
  transform:rotate(45deg);
  border-color:var(--gold);
}
.faq-answer{
  padding:0 1.5rem 1.6rem .2rem;
  color:var(--ink-2);
  font-size:.96rem;
  line-height:1.95;
  max-width:78ch;
}
.faq-answer p{
  margin:0;
}

/* register */
.register-section{
  position:relative;
  background:var(--night);
  color:#fff;
  padding:6rem 0;
  overflow:hidden;
}
.register-section::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("/assets/images/backpic/back-2.png") center/cover no-repeat;
  opacity:.12;
}
.register-section .container{
  position:relative;
  z-index:2;
}
.register-copy h2{
  font-family:var(--font-serif);
  font-size:clamp(2rem,4vw,3.2rem);
  line-height:1.25;
  color:#fff;
  margin:0 0 1rem;
}
.register-copy p{
  color:rgba(255,255,255,.66);
  font-size:1.02rem;
  max-width:46ch;
}
.register-contact{
  list-style:none;
  margin:2rem 0 0;
  padding:0;
  display:grid;
  gap:.7rem;
}
.register-contact li{
  display:flex;
  align-items:center;
  gap:.8rem;
  color:rgba(255,255,255,.78);
  font-size:.95rem;
}
.register-contact i{
  color:var(--gold);
  width:1rem;
}
.register-card{
  background:var(--white-card);
  border-radius:4px;
  border:1px solid rgba(255,255,255,.12);
  padding:2.1rem;
  box-shadow:0 28px 80px rgba(0,0,0,.28);
  color:var(--ink);
}
.form-label{
  font-family:var(--font-sans);
  font-size:.86rem;
  font-weight:600;
  color:var(--ink);
  margin-bottom:.3rem;
}
.form-control,.form-select{
  background:#FAF7F1;
  border:1px solid var(--line);
  border-radius:2px;
  color:var(--ink);
  font-family:var(--font-sans);
  font-size:.94rem;
  padding:.7rem .9rem;
}
.form-control::placeholder{
  color:#9A8F80;
}
.form-control:focus,.form-select:focus{
  background:#fff;
  border-color:var(--gold);
  box-shadow:0 0 0 .22rem rgba(196,166,106,.16);
}
.form-check-input{
  border-radius:2px;
  border-color:var(--line);
}
.form-check-input:checked{
  background-color:var(--ink);
  border-color:var(--ink);
}
.agree-note{
  font-size:.8rem;
  color:var(--ink-2);
  margin-top:.55rem;
  padding-left:.2rem;
}
.privacy-line{
  font-size:.76rem;
  color:var(--ink-2);
  margin-top:1.1rem;
  border-top:1px solid var(--line);
  padding-top:1rem;
}
.register-card .btn-site{
  width:100%;
  margin-top:.4rem;
}
.form-message{
  margin-top:1rem;
}
@media (min-width:992px){
  .register-row{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:5rem;
  }
}
@media (max-width:991.98px){
  .register-section{
    padding:4rem 0;
  }
  .register-card{
    margin-top:2rem;
    padding:1.6rem;
  }
}
@media (max-width:575.98px){
  .register-card{
    padding:1.3rem;
  }
}

/* footer */
.site-footer{
  background:#0D1014;
  color:rgba(255,255,255,.68);
  padding:4.5rem 0 1.8rem;
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:.6rem;
  font-family:var(--font-serif);
  font-size:1.32rem;
  color:#fff;
  font-weight:700;
}
.footer-brand .brand-mark{
  color:var(--gold);
}
.footer-about{
  font-size:.9rem;
  line-height:1.95;
  color:rgba(255,255,255,.58);
  margin:1.2rem 0;
  max-width:38rem;
}
.footer-info{
  font-size:.82rem;
  color:rgba(255,255,255,.45);
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
}
.footer-heading{
  font-size:.82rem;
  letter-spacing:.1em;
  color:#D8D1C4;
  margin-bottom:1.2rem;
  font-weight:700;
}
.footer-links{
  list-style:none;
  margin:0;
  padding:0;
}
.footer-links li{
  margin-bottom:.45rem;
}
.footer-links a{
  color:rgba(255,255,255,.58);
  text-decoration:none;
  font-size:.9rem;
  transition:color .2s ease,opacity .2s ease;
}
.footer-links a:hover{
  color:#fff;
  opacity:.9;
}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:3.5rem;
  padding-top:1.6rem;
  display:flex;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  font-size:.82rem;
  color:rgba(255,255,255,.4);
}
.footer-bottom span:last-child{
  text-align:right;
}
@media (max-width:767.98px){
  .site-footer{
    padding-top:3rem;
  }
  .footer-bottom span:last-child{
    text-align:left;
  }
}

@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}
