/* roulang page: index */
:root{
  --bg:#101010;
  --bg-soft:#171717;
  --bg-card:#1d1d1d;
  --bg-card-2:#232323;
  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.14);
  --text:#f4f1eb;
  --muted:rgba(244,241,235,.72);
  --muted-2:rgba(244,241,235,.56);
  --accent:#d28c42;
  --accent-2:#e3b36a;
  --accent-3:#78a9a0;
  --shadow:0 18px 45px rgba(0,0,0,.34);
  --shadow-soft:0 10px 24px rgba(0,0,0,.22);
  --radius:18px;
  --radius-sm:14px;
  --radius-xs:12px;
  --container:1280px;
  --gap:24px;
  --header-h:76px;
  --speed:.22s ease;
}

*,
*::before,
*::after{box-sizing:border-box;}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  min-height:100vh;
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
  line-height:1.78;
  background:
    radial-gradient(circle at top left, rgba(210,140,66,.15), transparent 28%),
    radial-gradient(circle at 85% 18%, rgba(120,169,160,.11), transparent 26%),
    linear-gradient(180deg, #0e0e0e 0%, #111111 22%, #0d0d0d 100%);
  overflow-x:hidden;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(120deg, rgba(255,255,255,.03), transparent 35%),
    radial-gradient(circle at 50% 0, rgba(255,255,255,.03), transparent 40%);
  opacity:.7;
  z-index:0;
}

a{
  color:inherit;
  text-decoration:none;
}

img{
  display:block;
  width:100%;
  height:auto;
}

button,
input{
  font:inherit;
}

button{
  cursor:pointer;
}

:focus-visible{
  outline:2px solid rgba(210,140,66,.9);
  outline-offset:3px;
}

::selection{
  background:rgba(210,140,66,.32);
  color:#fff;
}

.container{
  width:min(var(--container), calc(100% - 32px));
  margin:0 auto;
  position:relative;
  z-index:1;
}

.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:50;
  height:var(--header-h);
  background:rgba(14,14,14,.68);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:background var(--speed), box-shadow var(--speed), border-color var(--speed);
}

.site-header.is-scrolled{
  background:rgba(14,14,14,.88);
  box-shadow:0 12px 36px rgba(0,0,0,.24);
}

.header-inner{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.brand-mark{
  width:44px;
  height:44px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:
    linear-gradient(135deg, rgba(210,140,66,.98), rgba(227,179,106,.85));
  color:#171717;
  font-weight:800;
  letter-spacing:.06em;
  box-shadow:0 12px 24px rgba(210,140,66,.22);
  flex:0 0 auto;
}

.brand-text{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.brand-text strong{
  font-size:1.05rem;
  line-height:1.1;
  letter-spacing:.02em;
}

.brand-text small{
  margin-top:3px;
  color:var(--muted-2);
  font-size:.82rem;
  letter-spacing:.02em;
}

.site-nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.site-nav a{
  position:relative;
  padding:10px 14px;
  border-radius:999px;
  color:var(--muted);
  font-size:.95rem;
  transition:transform var(--speed), background var(--speed), color var(--speed), border-color var(--speed);
  border:1px solid transparent;
}

.site-nav a:hover,
.site-nav a:focus-visible{
  color:var(--text);
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.08);
  transform:translateY(-1px);
}

.site-nav a.active{
  color:#1a160f;
  background:linear-gradient(135deg, var(--accent), var(--accent-2));
  box-shadow:0 10px 20px rgba(210,140,66,.18);
}

.nav-toggle{
  display:none;
  width:46px;
  height:46px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:0;
  transition:transform var(--speed), background var(--speed), border-color var(--speed);
}

.nav-toggle:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.14);
}

.nav-toggle span{
  width:18px;
  height:2px;
  border-radius:999px;
  background:var(--text);
  display:block;
}

main{
  position:relative;
  z-index:1;
}

.hero{
  position:relative;
  padding:calc(var(--header-h) + 34px) 0 30px;
  overflow:hidden;
}

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(12,12,12,.56), rgba(12,12,12,.86)),
    url('/assets/images/backpic/back-2.webp') center/cover no-repeat;
  filter:saturate(1.02);
  transform:scale(1.02);
  z-index:0;
}

.hero::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:120px;
  background:linear-gradient(180deg, transparent, rgba(16,16,16,1));
  z-index:0;
}

.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);
  gap:28px;
  align-items:stretch;
}

.hero-copy,
.hero-visual{
  position:relative;
  z-index:1;
}

.hero-copy{
  padding:34px 0 10px;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:rgba(244,241,235,.82);
  border:1px solid rgba(255,255,255,.09);
  font-size:.9rem;
  letter-spacing:.06em;
}

.eyebrow::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 6px rgba(210,140,66,.12);
}

.hero h1{
  margin:18px 0 16px;
  font-size:clamp(2.25rem, 4.8vw, 4.8rem);
  line-height:1.08;
  letter-spacing:-.02em;
  max-width:12.5em;
}

.hero p{
  margin:0;
  max-width:46em;
  color:var(--muted);
  font-size:1.05rem;
  line-height:1.9;
}

.hero-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin:28px 0 18px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:48px;
  padding:0 18px;
  border-radius:14px;
  border:1px solid transparent;
  font-weight:700;
  letter-spacing:.01em;
  transition:transform var(--speed), background var(--speed), border-color var(--speed), box-shadow var(--speed), color var(--speed);
  user-select:none;
  white-space:nowrap;
}

.btn:hover,
.btn:focus-visible{
  transform:translateY(-2px);
}

.btn-primary{
  background:linear-gradient(135deg, var(--accent), var(--accent-2));
  color:#191610;
  box-shadow:0 14px 28px rgba(210,140,66,.22);
}

.btn-primary:hover{
  box-shadow:0 18px 30px rgba(210,140,66,.26);
}

.btn-secondary{
  background:rgba(255,255,255,.04);
  color:var(--text);
  border-color:rgba(255,255,255,.12);
}

.btn-secondary:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.16);
}

.btn-ghost{
  background:transparent;
  color:var(--text);
  border-color:rgba(255,255,255,.12);
}

.btn-ghost:hover{
  background:rgba(255,255,255,.05);
}

.search-bar{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:18px;
  padding:10px 12px;
  border-radius:18px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow-soft);
  max-width:720px;
}

.search-icon{
  width:36px;
  height:36px;
  border-radius:12px;
  display:grid;
  place-items:center;
  background:rgba(210,140,66,.12);
  color:var(--accent-2);
  flex:0 0 auto;
  font-size:1.1rem;
}

.search-bar input{
  flex:1 1 auto;
  min-width:0;
  height:42px;
  border:none;
  background:transparent;
  color:var(--text);
  outline:none;
}

.search-bar input::placeholder{
  color:rgba(244,241,235,.42);
}

.hero-visual{
  display:grid;
  grid-template-rows:minmax(340px,1fr) auto;
  gap:16px;
  min-width:0;
}

.poster-card{
  position:relative;
  border-radius:28px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:var(--shadow);
  background:var(--bg-card);
  min-height:340px;
}

.poster-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.poster-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.68)),
    linear-gradient(135deg, rgba(210,140,66,.20), transparent 45%);
}

.poster-overlay{
  position:absolute;
  inset:auto 20px 20px 20px;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.poster-overlay .title{
  font-size:1.3rem;
  font-weight:800;
  line-height:1.25;
}

.poster-overlay .desc{
  color:rgba(244,241,235,.78);
  font-size:.95rem;
}

.poster-chip-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border-radius:999px;
  font-size:.82rem;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.20);
  color:rgba(244,241,235,.88);
  backdrop-filter:blur(12px);
}

.play-pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  width:max-content;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(0,0,0,.34);
  border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(10px);
  color:#fff;
  box-shadow:var(--shadow-soft);
}

.play-pill i{
  width:32px;
  height:32px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--accent), var(--accent-2));
  display:grid;
  place-items:center;
  color:#18150f;
  font-style:normal;
  font-weight:800;
}

.poster-stack{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.mini-card{
  position:relative;
  min-height:176px;
  border-radius:22px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background:var(--bg-card);
  box-shadow:var(--shadow-soft);
}

.mini-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.mini-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.66));
}

.mini-card .mini-content{
  position:absolute;
  inset:auto 14px 14px 14px;
  z-index:1;
}

.mini-card .mini-content strong{
  display:block;
  font-size:1rem;
  line-height:1.3;
}

.mini-card .mini-content span{
  display:block;
  color:rgba(244,241,235,.72);
  font-size:.84rem;
  margin-top:4px;
}

.info-strip{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:14px;
}

.stat-card{
  padding:18px 18px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 24px rgba(0,0,0,.16);
  transition:transform var(--speed), background var(--speed), border-color var(--speed);
}

.stat-card:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.12);
}

.stat-card strong{
  display:block;
  font-size:1.45rem;
  line-height:1.1;
  letter-spacing:-.02em;
}

.stat-card span{
  display:block;
  margin-top:8px;
  color:var(--muted-2);
  font-size:.92rem;
}

.section{
  padding:76px 0;
}

.section--tight{
  padding-top:40px;
}

.section-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:24px;
}

.section-head h2{
  margin:0;
  font-size:clamp(1.55rem, 2vw, 2.25rem);
  line-height:1.2;
  letter-spacing:-.02em;
}

.section-head p{
  margin:0;
  color:var(--muted);
  max-width:48em;
  font-size:1rem;
}

.kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
  color:var(--accent-2);
  font-size:.92rem;
  letter-spacing:.04em;
}

.featured-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);
  gap:18px;
}

.feature-card{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  background:var(--bg-card);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:var(--shadow-soft);
}

.feature-card:hover{
  border-color:rgba(255,255,255,.14);
}

.feature-card .thumb{
  position:relative;
  min-height:260px;
  overflow:hidden;
}

.feature-card .thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease;
}

.feature-card:hover .thumb img{
  transform:scale(1.03);
}

.feature-card .thumb::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.72));
}

.feature-card .content{
  padding:20px 20px 22px;
}

.meta-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 10px;
  color:var(--muted-2);
  font-size:.88rem;
}

.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(210,140,66,.12);
  color:var(--accent-2);
  border:1px solid rgba(210,140,66,.16);
  font-size:.8rem;
}

.tag--soft{
  background:rgba(120,169,160,.12);
  color:#b9dfd8;
  border-color:rgba(120,169,160,.16);
}

.feature-card h3,
.news-card h3,
.collection-card h3{
  margin:12px 0 10px;
  font-size:1.18rem;
  line-height:1.45;
}

.feature-card p,
.news-card p,
.collection-card p,
.mini-list li,
.faq-a p{
  margin:0;
  color:var(--muted);
  font-size:.98rem;
  line-height:1.85;
}

.feature-bullets{
  display:grid;
  gap:10px;
  margin:16px 0 0;
  padding:0;
  list-style:none;
}

.feature-bullets li{
  position:relative;
  padding-left:18px;
  color:rgba(244,241,235,.84);
  line-height:1.8;
}

.feature-bullets li::before{
  content:"";
  position:absolute;
  left:0;
  top:.68em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
}

.feature-actions{
  margin-top:18px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.feature-side{
  display:grid;
  gap:18px;
}

.feature-side .feature-card .thumb{
  min-height:206px;
}

.feature-side .feature-card:last-child{
  background:
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02)),
    linear-gradient(135deg, rgba(210,140,66,.08), rgba(120,169,160,.06));
}

.mini-list{
  padding:0;
  margin:0;
  list-style:none;
  display:grid;
  gap:12px;
}

.mini-list li{
  display:flex;
  gap:10px;
  align-items:flex-start;
}

.mini-list li::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  margin-top:.55em;
  background:var(--accent-2);
  flex:0 0 auto;
}

.panel{
  padding:24px;
  border-radius:24px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow-soft);
}

.news-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:18px;
}

.news-card{
  overflow:hidden;
  border-radius:22px;
  background:var(--bg-card);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:var(--shadow-soft);
  transition:transform var(--speed), border-color var(--speed), background var(--speed);
}

.news-card:hover{
  transform:translateY(-2px);
  border-color:rgba(255,255,255,.14);
  background:var(--bg-card-2);
}

.news-card__thumb{
  position:relative;
  display:block;
  height:220px;
  overflow:hidden;
}

.news-card__thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .38s ease;
}

.news-card:hover .news-card__thumb img{
  transform:scale(1.04);
}

.news-card__thumb::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.62));
}

.news-card__badge{
  position:absolute;
  left:14px;
  top:14px;
  z-index:1;
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.38);
  color:#fff;
  border:1px solid rgba(255,255,255,.14);
  font-size:.82rem;
  backdrop-filter:blur(12px);
}

.news-card__body{
  padding:18px 18px 20px;
}

.news-card__body h3 a{
  display:block;
  color:var(--text);
}

.news-card__body h3 a:hover{
  color:#fff;
}

.news-card__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.news-card__meta time{
  color:var(--muted-2);
  font-size:.86rem;
}

.card-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:16px;
  color:var(--accent-2);
  font-weight:700;
  transition:transform var(--speed), color var(--speed);
}

.card-link:hover{
  transform:translateX(2px);
  color:#f0cf97;
}

.empty-state{
  padding:38px 24px;
  text-align:center;
  border-radius:22px;
  border:1px dashed rgba(255,255,255,.16);
  background:rgba(255,255,255,.03);
  color:rgba(244,241,235,.82);
  box-shadow:var(--shadow-soft);
}

.collection-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:18px;
}

.collection-card{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  background:var(--bg-card);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:var(--shadow-soft);
  min-height:100%;
}

.collection-card .thumb{
  position:relative;
  height:190px;
}

.collection-card .thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s ease;
}

.collection-card:hover .thumb img{
  transform:scale(1.04);
}

.collection-card .thumb::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.68));
}

.collection-card .content{
  padding:18px;
}

.collection-card:hover{
  transform:translateY(-2px);
}

.workflow{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);
  gap:18px;
  align-items:stretch;
}

.workflow-visual{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  min-height:420px;
  border:1px solid rgba(255,255,255,.09);
  background:
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.68)),
    url('/assets/images/backpic/back-1.jpg') center/cover no-repeat;
  box-shadow:var(--shadow-soft);
}

.workflow-visual .frame{
  position:absolute;
  inset:auto 20px 20px 20px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.workflow-visual .frame .card{
  min-height:150px;
  border-radius:18px;
  overflow:hidden;
  position:relative;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.22);
}

.workflow-visual .frame .card img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.workflow-visual .frame .card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,.72));
}

.workflow-visual .frame .card .label{
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:1;
  font-size:.86rem;
  color:#fff;
}

.timeline{
  display:grid;
  gap:14px;
}

.timeline-item{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:18px 18px 18px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  transition:transform var(--speed), border-color var(--speed), background var(--speed);
}

.timeline-item:hover{
  transform:translateY(-2px);
  border-color:rgba(255,255,255,.13);
  background:rgba(255,255,255,.06);
}

.timeline-num{
  width:34px;
  height:34px;
  border-radius:12px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  background:rgba(210,140,66,.14);
  color:var(--accent-2);
  font-weight:800;
}

.timeline-content strong{
  display:block;
  margin-bottom:4px;
  font-size:1.02rem;
}

.faq-list{
  display:grid;
  gap:12px;
}

.faq-item{
  border-radius:18px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  overflow:hidden;
}

.faq-q{
  width:100%;
  border:none;
  background:transparent;
  color:var(--text);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  text-align:left;
  padding:18px 18px;
  font-weight:700;
  font-size:1rem;
}

.faq-q span{
  flex:1 1 auto;
}

.faq-q .toggle{
  width:28px;
  height:28px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  color:var(--accent-2);
  transition:transform var(--speed), background var(--speed);
}

.faq-item.open .faq-q .toggle{
  transform:rotate(45deg);
  background:rgba(210,140,66,.14);
}

.faq-a{
  display:none;
  padding:0 18px 18px;
}

.faq-item.open .faq-a{
  display:block;
}

.cta-box{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.10);
  background:
    linear-gradient(140deg, rgba(0,0,0,.28), rgba(0,0,0,.70)),
    url('/assets/images/backpic/back-3.webp') center/cover no-repeat;
  box-shadow:var(--shadow);
}

.cta-box::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(16,16,16,.92), rgba(16,16,16,.58));
}

.cta-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
  gap:20px;
  align-items:center;
  padding:30px;
}

.cta-inner h2{
  margin:0 0 10px;
  font-size:clamp(1.55rem, 2.6vw, 2.35rem);
  line-height:1.18;
}

.cta-inner p{
  margin:0;
  color:rgba(244,241,235,.82);
  max-width:46em;
}

.cta-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:flex-end;
}

.cta-note{
  margin-top:12px;
  color:rgba(244,241,235,.68);
  font-size:.92rem;
}

.site-footer{
  padding:34px 0 44px;
  border-top:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.16);
  margin-top:14px;
}

.footer-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr .8fr;
  gap:18px;
  align-items:start;
}

.footer-brand{
  display:flex;
  align-items:flex-start;
  gap:14px;
}

.footer-brand .copy{
  color:var(--muted);
  margin-top:10px;
  max-width:32em;
}

.footer-title{
  display:block;
  margin-bottom:12px;
  font-weight:800;
  font-size:1rem;
}

.footer-links{
  display:grid;
  gap:10px;
}

.footer-links a{
  color:var(--muted);
  transition:transform var(--speed), color var(--speed);
  width:max-content;
}

.footer-links a:hover,
.footer-links a:focus-visible{
  color:var(--text);
  transform:translateX(2px);
}

.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.08);
  color:var(--muted-2);
  font-size:.92rem;
}

.article-entry{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:18px;
}

.article-entry .more{
  color:var(--accent-2);
  font-weight:700;
}

.article-entry .more:hover{
  color:#f0cf97;
}

@media (max-width: 1120px){
  .hero-grid,
  .featured-grid,
  .workflow,
  .cta-inner{
    grid-template-columns:1fr;
  }

  .news-grid,
  .collection-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .info-strip{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .cta-actions{
    justify-content:flex-start;
  }
}

@media (max-width: 820px){
  .nav-toggle{
    display:inline-flex;
  }

  .site-nav{
    position:absolute;
    top:calc(var(--header-h) - 4px);
    left:16px;
    right:16px;
    padding:14px;
    display:grid;
    gap:8px;
    background:rgba(16,16,16,.96);
    border:1px solid rgba(255,255,255,.10);
    border-radius:20px;
    box-shadow:var(--shadow);
    transform:translateY(-16px);
    opacity:0;
    pointer-events:none;
    transition:transform var(--speed), opacity var(--speed);
  }

  .site-header.menu-open .site-nav{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }

  .site-nav a{
    padding:12px 14px;
    border-radius:14px;
    background:rgba(255,255,255,.03);
  }

  .header-inner{
    gap:12px;
  }

  .hero{
    padding-top:calc(var(--header-h) + 20px);
  }

  .hero-copy{
    padding-top:12px;
  }

  .hero h1{
    max-width:100%;
  }

  .poster-stack{
    grid-template-columns:1fr;
  }

  .news-grid,
  .collection-grid,
  .info-strip{
    grid-template-columns:1fr;
  }

  .workflow-visual{
    min-height:340px;
  }

  .footer-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 560px){
  :root{
    --header-h:72px;
  }

  .container{
    width:min(var(--container), calc(100% - 20px));
  }

  .hero h1{
    font-size:2.05rem;
  }

  .hero p,
  .section-head p,
  .cta-inner p{
    font-size:.98rem;
  }

  .search-bar{
    flex-direction:column;
    align-items:stretch;
  }

  .search-bar .search-icon{
    display:none;
  }

  .btn{
    width:100%;
  }

  .hero-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .section{
    padding:58px 0;
  }

  .cta-inner{
    padding:22px;
  }

  .feature-card .content,
  .news-card__body,
  .collection-card .content{
    padding:16px;
  }

  .faq-q{
    font-size:.96rem;
    padding:16px;
  }
}

/* roulang page: article */
:root{
      --bg:#101010;
      --bg-soft:#171717;
      --bg-card:#1d1d1d;
      --bg-card-2:#232323;
      --line:rgba(255,255,255,.10);
      --line-2:rgba(255,255,255,.14);
      --text:#f4f1eb;
      --muted:rgba(244,241,235,.72);
      --muted-2:rgba(244,241,235,.56);
      --accent:#d28c42;
      --accent-2:#e3b36a;
      --accent-3:#78a9a0;
      --shadow:0 18px 45px rgba(0,0,0,.34);
      --shadow-soft:0 10px 24px rgba(0,0,0,.22);
      --radius:18px;
      --radius-sm:14px;
      --radius-xs:12px;
      --container:1280px;
      --gap:24px;
      --header-h:76px;
      --speed:.22s ease;
    }
    :root{
      --header-h:72px;
    }
    html{
      scroll-behavior:smooth;
    }
    body{
      margin:0;
      min-height:100vh;
      color:var(--text);
      font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
      line-height:1.78;
      background:
        radial-gradient(circle at top left, rgba(210,140,66,.15), transparent 28%),
        radial-gradient(circle at 85% 18%, rgba(120,169,160,.11), transparent 26%),
        linear-gradient(180deg, #0e0e0e 0%, #111111 22%, #0d0d0d 100%);
      overflow-x:hidden;
    }
    body::before{
      content:"";
      position:fixed;
      inset:0;
      pointer-events:none;
      background:
        linear-gradient(120deg, rgba(255,255,255,.03), transparent 35%),
        radial-gradient(circle at 50% 0, rgba(255,255,255,.03), transparent 40%);
      opacity:.72;
      z-index:0;
    }
    a{
      color:inherit;
      text-decoration:none;
    }
    a:hover{
      color:inherit;
    }
    img{
      display:block;
      width:100%;
      height:auto;
    }
    button,
    input,
    textarea,
    select{
      font:inherit;
    }
    button{
      cursor:pointer;
    }
    :focus-visible{
      outline:2px solid rgba(227,179,106,.8);
      outline-offset:3px;
    }
    .container{
      width:min(var(--container), calc(100% - 32px));
      margin:0 auto;
      position:relative;
      z-index:1;
    }
    main{
      position:relative;
      z-index:1;
      padding-bottom:40px;
    }
    #home,
    #latest,
    #collections,
    #faq{
      scroll-margin-top:calc(var(--header-h) + 18px);
    }

    .site-header{
      position:fixed;
      top:0;
      left:0;
      right:0;
      z-index:50;
      height:var(--header-h);
      background:rgba(14,14,14,.68);
      backdrop-filter:blur(18px);
      border-bottom:1px solid rgba(255,255,255,.08);
      transition:background var(--speed), box-shadow var(--speed), border-color var(--speed);
    }
    .site-header.is-scrolled{
      background:rgba(14,14,14,.88);
      box-shadow:0 12px 36px rgba(0,0,0,.24);
    }
    .header-inner{
      height:100%;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
      position:relative;
    }
    .brand{
      display:flex;
      align-items:center;
      gap:14px;
      min-width:0;
    }
    .brand-mark{
      width:44px;
      height:44px;
      border-radius:14px;
      display:grid;
      place-items:center;
      background:linear-gradient(135deg, rgba(210,140,66,.98), rgba(227,179,106,.85));
      color:#171717;
      font-weight:800;
      letter-spacing:.06em;
      box-shadow:0 12px 24px rgba(210,140,66,.22);
      flex:0 0 auto;
    }
    .brand-text{
      display:flex;
      flex-direction:column;
      min-width:0;
    }
    .brand-text strong{
      font-size:1.05rem;
      line-height:1.1;
      letter-spacing:.02em;
      white-space:nowrap;
    }
    .brand-text small{
      margin-top:3px;
      color:var(--muted-2);
      font-size:.82rem;
      letter-spacing:.02em;
      white-space:nowrap;
    }
    .site-nav{
      display:flex;
      align-items:center;
      gap:8px;
      flex-wrap:wrap;
    }
    .site-nav a{
      position:relative;
      padding:10px 14px;
      border-radius:999px;
      color:var(--muted);
      font-size:.95rem;
      transition:transform var(--speed), background var(--speed), color var(--speed), border-color var(--speed), box-shadow var(--speed);
      border:1px solid transparent;
      line-height:1;
    }
    .site-nav a:hover,
    .site-nav a:focus-visible{
      color:var(--text);
      background:rgba(255,255,255,.05);
      border-color:rgba(255,255,255,.08);
      transform:translateY(-1px);
    }
    .site-nav a.active{
      color:#1a160f;
      background:linear-gradient(135deg, var(--accent), var(--accent-2));
      box-shadow:0 10px 20px rgba(210,140,66,.18);
    }
    .nav-toggle{
      display:none;
      width:46px;
      height:46px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      align-items:center;
      justify-content:center;
      gap:5px;
      padding:0;
      transition:transform var(--speed), background var(--speed), border-color var(--speed);
      flex-direction:column;
    }
    .nav-toggle:hover{
      transform:translateY(-1px);
      background:rgba(255,255,255,.07);
      border-color:rgba(255,255,255,.14);
    }
    .nav-toggle span{
      width:18px;
      height:2px;
      border-radius:999px;
      background:var(--text);
      display:block;
    }

    .hero-shell{
      position:relative;
      padding:calc(var(--header-h) + 30px) 0 28px;
      overflow:hidden;
    }
    .hero-shell::before{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(180deg, rgba(12,12,12,.50), rgba(12,12,12,.84)),
        url('/assets/images/backpic/back-3.webp') center/cover no-repeat;
      transform:scale(1.02);
      z-index:0;
    }
    .hero-shell::after{
      content:"";
      position:absolute;
      inset:auto 0 0 0;
      height:130px;
      background:linear-gradient(180deg, transparent, rgba(16,16,16,1));
      z-index:0;
    }
    .hero-grid{
      display:grid;
      grid-template-columns:minmax(0,1.14fr) minmax(300px,.86fr);
      gap:28px;
      align-items:stretch;
      position:relative;
      z-index:1;
    }
    .hero-copy,
    .hero-visual{
      position:relative;
      z-index:1;
    }
    .hero-copy{
      padding:28px 0 8px;
    }
    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:8px 12px;
      border-radius:999px;
      background:rgba(255,255,255,.06);
      color:rgba(244,241,235,.82);
      border:1px solid rgba(255,255,255,.09);
      font-size:.9rem;
      letter-spacing:.05em;
      box-shadow:0 10px 18px rgba(0,0,0,.14);
    }
    .eyebrow::before{
      content:"";
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--accent);
      box-shadow:0 0 0 6px rgba(210,140,66,.12);
      flex:0 0 auto;
    }
    .hero-breadcrumb{
      display:flex;
      flex-wrap:wrap;
      align-items:center;
      gap:8px;
      color:var(--muted-2);
      font-size:.92rem;
      margin-bottom:12px;
    }
    .hero-breadcrumb a{
      color:rgba(244,241,235,.82);
    }
    .hero-breadcrumb span{
      color:rgba(244,241,235,.42);
    }
    .hero-copy h1{
      margin:16px 0 14px;
      font-size:clamp(2.1rem, 4.5vw, 4.3rem);
      line-height:1.08;
      letter-spacing:-.03em;
      max-width:14em;
    }
    .hero-copy .subtitle{
      margin:0;
      max-width:48em;
      color:var(--muted);
      font-size:1.05rem;
      line-height:1.9;
    }
    .article-meta{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin:22px 0 0;
    }
    .meta-pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:10px 14px;
      border-radius:999px;
      background:rgba(255,255,255,.05);
      border:1px solid rgba(255,255,255,.08);
      color:rgba(244,241,235,.80);
      font-size:.92rem;
      line-height:1;
      white-space:nowrap;
    }
    .meta-pill b{
      color:var(--text);
      font-weight:700;
    }
    .hero-actions{
      display:flex;
      align-items:center;
      gap:12px;
      flex-wrap:wrap;
      margin:28px 0 10px;
    }
    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      min-height:48px;
      padding:0 18px;
      border-radius:14px;
      border:1px solid transparent;
      font-weight:700;
      letter-spacing:.01em;
      transition:transform var(--speed), background var(--speed), border-color var(--speed), box-shadow var(--speed), color var(--speed), opacity var(--speed);
      user-select:none;
      white-space:nowrap;
    }
    .btn:hover,
    .btn:focus-visible{
      transform:translateY(-2px);
    }
    .btn-primary{
      background:linear-gradient(135deg, var(--accent), var(--accent-2));
      color:#191610;
      box-shadow:0 14px 28px rgba(210,140,66,.22);
    }
    .btn-primary:hover{
      box-shadow:0 18px 30px rgba(210,140,66,.26);
      color:#17160f;
    }
    .btn-secondary{
      background:rgba(255,255,255,.04);
      color:var(--text);
      border-color:rgba(255,255,255,.12);
    }
    .btn-secondary:hover{
      background:rgba(255,255,255,.07);
      border-color:rgba(255,255,255,.16);
      color:var(--text);
    }
    .hero-visual{
      display:flex;
      align-items:stretch;
    }
    .hero-card{
      width:100%;
      border-radius:var(--radius);
      overflow:hidden;
      background:linear-gradient(180deg, rgba(35,35,35,.96), rgba(24,24,24,.96));
      border:1px solid var(--line);
      box-shadow:var(--shadow);
      position:relative;
    }
    .hero-card::before{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(180deg, rgba(18,18,18,.05), rgba(18,18,18,.52));
      z-index:1;
      pointer-events:none;
    }
    .hero-card .poster{
      aspect-ratio: 4 / 5;
      object-fit:cover;
    }
    .hero-card .card-body{
      position:relative;
      z-index:2;
      padding:18px;
      border-top:1px solid var(--line);
      background:
        linear-gradient(180deg, rgba(255,255,255,.03), transparent),
        rgba(20,20,20,.88);
    }
    .hero-card h2{
      margin:0 0 8px;
      font-size:1.1rem;
      line-height:1.4;
    }
    .hero-card p{
      margin:0;
      color:var(--muted);
      font-size:.95rem;
      line-height:1.8;
    }
    .hero-card .card-meta{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      margin-top:14px;
    }
    .tag{
      display:inline-flex;
      align-items:center;
      gap:6px;
      padding:7px 10px;
      border-radius:999px;
      background:rgba(120,169,160,.12);
      border:1px solid rgba(120,169,160,.18);
      color:#cde3df;
      font-size:.82rem;
      line-height:1;
    }
    .tag.accent{
      background:rgba(210,140,66,.12);
      border-color:rgba(210,140,66,.18);
      color:#f2d3af;
    }
    .tag.muted{
      background:rgba(255,255,255,.05);
      border-color:rgba(255,255,255,.08);
      color:rgba(244,241,235,.82);
    }

    .section{
      padding:22px 0 0;
    }
    .panel{
      background:linear-gradient(180deg, rgba(29,29,29,.96), rgba(24,24,24,.96));
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow-soft);
    }
    .section-head{
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:18px;
      margin-bottom:18px;
      flex-wrap:wrap;
    }
    .section-title{
      margin:0;
      font-size:1.4rem;
      line-height:1.2;
      letter-spacing:-.02em;
    }
    .section-desc{
      margin:8px 0 0;
      color:var(--muted);
      max-width:62em;
      font-size:1rem;
      line-height:1.85;
    }
    .section-link{
      color:rgba(244,241,235,.84);
      font-size:.95rem;
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:10px 14px;
      border-radius:999px;
      background:rgba(255,255,255,.04);
      border:1px solid rgba(255,255,255,.08);
      transition:transform var(--speed), background var(--speed), border-color var(--speed);
    }
    .section-link:hover,
    .section-link:focus-visible{
      transform:translateY(-1px);
      background:rgba(255,255,255,.06);
      border-color:rgba(255,255,255,.12);
    }

    .quick-strip{
      margin-top:-2px;
    }
    .strip-grid{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:14px;
    }
    .strip-item{
      padding:18px 18px 16px;
      border-radius:var(--radius-sm);
      background:linear-gradient(180deg, rgba(35,35,35,.94), rgba(27,27,27,.94));
      border:1px solid var(--line);
      min-height:116px;
      transition:transform var(--speed), border-color var(--speed), background var(--speed), box-shadow var(--speed);
    }
    .strip-item:hover{
      transform:translateY(-2px);
      border-color:rgba(255,255,255,.16);
      box-shadow:0 16px 28px rgba(0,0,0,.20);
    }
    .strip-item .label{
      display:inline-flex;
      padding:6px 10px;
      border-radius:999px;
      background:rgba(120,169,160,.12);
      border:1px solid rgba(120,169,160,.16);
      color:#d6ebe7;
      font-size:.8rem;
      line-height:1;
    }
    .strip-item h3{
      margin:14px 0 8px;
      font-size:1.02rem;
      line-height:1.45;
    }
    .strip-item p{
      margin:0;
      color:var(--muted);
      font-size:.92rem;
      line-height:1.8;
    }

    .article-layout{
      display:grid;
      grid-template-columns:minmax(0,1fr) 330px;
      gap:24px;
      align-items:start;
    }
    .content-panel{
      padding:24px;
      border-radius:var(--radius);
      background:linear-gradient(180deg, rgba(29,29,29,.98), rgba(23,23,23,.98));
      border:1px solid var(--line);
      box-shadow:var(--shadow-soft);
    }
    .content-head{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:16px;
      margin-bottom:18px;
      flex-wrap:wrap;
    }
    .content-head .info{
      display:flex;
      flex-direction:column;
      gap:8px;
      min-width:0;
    }
    .content-head .info .kicker{
      display:inline-flex;
      align-items:center;
      gap:8px;
      width:fit-content;
      padding:7px 11px;
      border-radius:999px;
      background:rgba(255,255,255,.05);
      border:1px solid rgba(255,255,255,.08);
      color:rgba(244,241,235,.78);
      font-size:.84rem;
      letter-spacing:.04em;
    }
    .content-head h2{
      margin:0;
      font-size:1.42rem;
      line-height:1.3;
      letter-spacing:-.02em;
    }
    .content-head .meta-line{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      color:var(--muted-2);
      font-size:.92rem;
    }
    .content-head .meta-line span{
      display:inline-flex;
      align-items:center;
      gap:7px;
      padding:5px 0;
    }
    .content-head .meta-line span::before{
      content:"";
      width:5px;
      height:5px;
      border-radius:50%;
      background:var(--accent-3);
      opacity:.9;
    }

    .article-body{
      color:rgba(244,241,235,.92);
      font-size:1rem;
      line-height:1.95;
      word-break:break-word;
    }
    .article-body > :first-child{
      margin-top:0;
    }
    .article-body > :last-child{
      margin-bottom:0;
    }
    .article-body h2,
    .article-body h3,
    .article-body h4{
      margin:1.6em 0 .75em;
      line-height:1.35;
      letter-spacing:-.01em;
      color:var(--text);
    }
    .article-body h2{font-size:1.38rem;}
    .article-body h3{font-size:1.16rem;}
    .article-body h4{font-size:1.02rem;}
    .article-body p{
      margin:0 0 1.1em;
      color:rgba(244,241,235,.92);
    }
    .article-body a{
      color:#f0be72;
      text-decoration:none;
      border-bottom:1px solid rgba(240,190,114,.32);
      transition:color var(--speed), border-color var(--speed), opacity var(--speed);
    }
    .article-body a:hover,
    .article-body a:focus-visible{
      color:#ffd79b;
      border-color:rgba(255,215,155,.6);
    }
    .article-body ul,
    .article-body ol{
      margin:0 0 1.1em 1.25em;
      padding:0;
      color:rgba(244,241,235,.90);
    }
    .article-body li{
      margin:.42em 0;
      padding-left:.15em;
    }
    .article-body blockquote{
      margin:1.35em 0;
      padding:18px 18px 18px 20px;
      border-left:3px solid var(--accent);
      border-radius:0 14px 14px 0;
      background:rgba(255,255,255,.04);
      color:rgba(244,241,235,.88);
    }
    .article-body strong{
      color:#fff6e9;
      font-weight:700;
    }
    .article-body figure{
      margin:1.4em 0;
    }
    .article-body figcaption{
      margin-top:8px;
      color:var(--muted-2);
      font-size:.88rem;
      line-height:1.6;
    }
    .article-body img{
      border-radius:16px;
      border:1px solid rgba(255,255,255,.08);
      box-shadow:0 14px 24px rgba(0,0,0,.18);
      background:#161616;
    }
    .article-body hr{
      border:0;
      border-top:1px solid rgba(255,255,255,.10);
      margin:1.6em 0;
    }
    .article-body table{
      width:100%;
      border-collapse:collapse;
      margin:1.2em 0;
      overflow:hidden;
      border-radius:14px;
      background:rgba(255,255,255,.03);
      border:1px solid rgba(255,255,255,.08);
    }
    .article-body th,
    .article-body td{
      padding:12px 14px;
      border-bottom:1px solid rgba(255,255,255,.08);
      text-align:left;
      vertical-align:top;
    }
    .article-body th{
      background:rgba(255,255,255,.05);
      color:#fff;
      font-weight:700;
    }
    .article-body tr:last-child td{
      border-bottom:none;
    }
    .article-body code{
      padding:.15em .4em;
      border-radius:8px;
      background:rgba(255,255,255,.07);
      border:1px solid rgba(255,255,255,.06);
      color:#ffdba7;
    }
    .article-body pre{
      overflow:auto;
      padding:16px 18px;
      border-radius:16px;
      background:#151515;
      border:1px solid rgba(255,255,255,.08);
      color:#f4f1eb;
      margin:1.2em 0;
    }

    .empty-state{
      padding:28px 22px;
      border-radius:16px;
      background:rgba(255,255,255,.04);
      border:1px solid rgba(255,255,255,.08);
      text-align:center;
    }
    .empty-state h3{
      margin:0 0 10px;
      font-size:1.18rem;
    }
    .empty-state p{
      margin:0 0 18px;
      color:var(--muted);
    }
    .empty-state .btn{
      min-width:160px;
    }

    .article-actions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-top:22px;
      padding-top:18px;
      border-top:1px solid rgba(255,255,255,.08);
    }

    .aside{
      position:sticky;
      top:calc(var(--header-h) + 20px);
      display:grid;
      gap:16px;
    }
    .aside-card{
      padding:18px;
      border-radius:var(--radius);
      background:linear-gradient(180deg, rgba(29,29,29,.96), rgba(23,23,23,.96));
      border:1px solid var(--line);
      box-shadow:var(--shadow-soft);
    }
    .aside-card h3{
      margin:0 0 12px;
      font-size:1.05rem;
      line-height:1.3;
    }
    .aside-card p{
      margin:0;
      color:var(--muted);
      font-size:.94rem;
      line-height:1.82;
    }
    .aside-list{
      display:grid;
      gap:10px;
      margin-top:14px;
    }
    .aside-link{
      display:flex;
      align-items:flex-start;
      gap:12px;
      padding:12px;
      border-radius:14px;
      background:rgba(255,255,255,.04);
      border:1px solid rgba(255,255,255,.07);
      transition:transform var(--speed), background var(--speed), border-color var(--speed);
    }
    .aside-link:hover,
    .aside-link:focus-visible{
      transform:translateY(-1px);
      background:rgba(255,255,255,.06);
      border-color:rgba(255,255,255,.11);
    }
    .aside-link .mini-dot{
      width:10px;
      height:10px;
      border-radius:50%;
      margin-top:6px;
      background:linear-gradient(135deg, var(--accent), var(--accent-2));
      box-shadow:0 0 0 6px rgba(210,140,66,.08);
      flex:0 0 auto;
    }
    .aside-link .txt{
      min-width:0;
    }
    .aside-link .txt strong{
      display:block;
      font-size:.95rem;
      line-height:1.45;
      margin-bottom:4px;
    }
    .aside-link .txt small{
      color:var(--muted-2);
      font-size:.82rem;
      line-height:1.6;
    }
    .mini-tags{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:12px;
    }
    .mini-tags .tag{
      font-size:.78rem;
      padding:6px 9px;
    }

    .cards-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:18px;
    }
    .content-card{
      display:flex;
      flex-direction:column;
      overflow:hidden;
      border-radius:var(--radius);
      background:linear-gradient(180deg, rgba(29,29,29,.98), rgba(24,24,24,.98));
      border:1px solid var(--line);
      box-shadow:var(--shadow-soft);
      transition:transform var(--speed), border-color var(--speed), box-shadow var(--speed), background var(--speed);
      min-height:100%;
    }
    .content-card:hover,
    .content-card:focus-within{
      transform:translateY(-2px);
      border-color:rgba(255,255,255,.14);
      box-shadow:0 16px 30px rgba(0,0,0,.22);
    }
    .content-card .cover{
      position:relative;
      aspect-ratio: 16 / 10;
      overflow:hidden;
    }
    .content-card .cover img{
      width:100%;
      height:100%;
      object-fit:cover;
      transition:transform .45s ease;
    }
    .content-card:hover .cover img{
      transform:scale(1.03);
    }
    .content-card .cover::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(180deg, transparent, rgba(16,16,16,.42));
      pointer-events:none;
    }
    .content-card .content{
      padding:16px;
      display:flex;
      flex-direction:column;
      gap:10px;
      flex:1;
    }
    .content-card h3{
      margin:0;
      font-size:1.04rem;
      line-height:1.5;
      letter-spacing:-.01em;
    }
    .content-card p{
      margin:0;
      color:var(--muted);
      font-size:.93rem;
      line-height:1.8;
      display:-webkit-box;
      -webkit-line-clamp:3;
      -webkit-box-orient:vertical;
      overflow:hidden;
      min-height:5.1em;
    }
    .card-meta{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:auto;
    }
    .meta-chip{
      display:inline-flex;
      align-items:center;
      gap:6px;
      padding:6px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(255,255,255,.04);
      color:rgba(244,241,235,.78);
      font-size:.8rem;
      line-height:1;
    }
    .meta-chip.accent{
      background:rgba(210,140,66,.12);
      border-color:rgba(210,140,66,.18);
      color:#f1d2aa;
    }

    .split-grid{
      display:grid;
      grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
      gap:18px;
      align-items:stretch;
    }
    .feature-panel{
      padding:20px;
      border-radius:var(--radius);
      background:linear-gradient(180deg, rgba(29,29,29,.96), rgba(24,24,24,.96));
      border:1px solid var(--line);
      box-shadow:var(--shadow-soft);
      display:flex;
      flex-direction:column;
      gap:16px;
    }
    .feature-panel .photo{
      border-radius:16px;
      overflow:hidden;
      aspect-ratio: 16 / 11;
      border:1px solid rgba(255,255,255,.08);
    }
    .feature-panel .photo img{
      width:100%;
      height:100%;
      object-fit:cover;
    }
    .feature-panel ul{
      margin:0;
      padding:0;
      list-style:none;
      display:grid;
      gap:10px;
    }
    .feature-panel li{
      display:flex;
      gap:10px;
      align-items:flex-start;
      color:var(--muted);
      font-size:.96rem;
      line-height:1.78;
    }
    .feature-panel li::before{
      content:"";
      width:8px;
      height:8px;
      margin-top:9px;
      border-radius:50%;
      background:linear-gradient(135deg, var(--accent), var(--accent-2));
      box-shadow:0 0 0 6px rgba(210,140,66,.08);
      flex:0 0 auto;
    }
    .timeline{
      display:grid;
      gap:12px;
      margin:0;
      padding:0;
      list-style:none;
    }
    .timeline li{
      display:grid;
      grid-template-columns:96px minmax(0,1fr);
      gap:12px;
      align-items:start;
      padding:14px 14px 14px 16px;
      border-radius:16px;
      background:rgba(255,255,255,.04);
      border:1px solid rgba(255,255,255,.08);
    }
    .timeline time{
      color:#f1cf9e;
      font-weight:700;
      font-size:.9rem;
      line-height:1.7;
    }
    .timeline strong{
      display:block;
      margin-bottom:4px;
      font-size:.98rem;
      line-height:1.5;
    }
    .timeline p{
      margin:0;
      color:var(--muted);
      font-size:.9rem;
      line-height:1.75;
    }

    .faq-wrap{
      display:grid;
      gap:12px;
    }
    .faq-item{
      border-radius:16px;
      background:linear-gradient(180deg, rgba(29,29,29,.96), rgba(24,24,24,.96));
      border:1px solid var(--line);
      overflow:hidden;
      box-shadow:var(--shadow-soft);
    }
    .faq-question{
      width:100%;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
      background:transparent;
      border:0;
      color:var(--text);
      padding:18px 18px 18px 20px;
      text-align:left;
      transition:background var(--speed), color var(--speed);
    }
    .faq-question:hover{
      background:rgba(255,255,255,.03);
    }
    .faq-question strong{
      font-size:1rem;
      line-height:1.5;
    }
    .faq-icon{
      width:34px;
      height:34px;
      flex:0 0 auto;
      border-radius:50%;
      display:grid;
      place-items:center;
      background:rgba(255,255,255,.05);
      border:1px solid rgba(255,255,255,.08);
      color:var(--accent-2);
      font-size:1.15rem;
      transition:transform var(--speed), background var(--speed);
    }
    .faq-item.is-open .faq-icon{
      transform:rotate(45deg);
      background:rgba(210,140,66,.12);
    }
    .faq-panel{
      max-height:0;
      overflow:hidden;
      transition:max-height .28s ease;
      border-top:1px solid transparent;
    }
    .faq-panel .faq-content{
      padding:0 20px 18px;
      color:var(--muted);
      font-size:.95rem;
      line-height:1.88;
    }

    .cta-panel{
      padding:24px;
      border-radius:var(--radius);
      background:
        radial-gradient(circle at 20% 20%, rgba(210,140,66,.14), transparent 35%),
        linear-gradient(180deg, rgba(29,29,29,.98), rgba(22,22,22,.98));
      border:1px solid var(--line);
      box-shadow:var(--shadow-soft);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:22px;
      flex-wrap:wrap;
    }
    .cta-panel h2{
      margin:0 0 8px;
      font-size:1.42rem;
      line-height:1.35;
    }
    .cta-panel p{
      margin:0;
      color:var(--muted);
      max-width:56em;
      font-size:1rem;
      line-height:1.85;
    }
    .cta-actions{
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    .site-footer{
      padding:30px 0 24px;
      position:relative;
      z-index:1;
      border-top:1px solid rgba(255,255,255,.08);
      background:linear-gradient(180deg, rgba(13,13,13,.68), rgba(10,10,10,.92));
    }
    .footer-grid{
      display:grid;
      grid-template-columns:1.45fr 1fr 1fr;
      gap:24px;
      align-items:start;
    }
    .footer-brand{
      display:flex;
      align-items:flex-start;
      gap:14px;
    }
    .footer-brand .brand-mark{
      width:42px;
      height:42px;
      border-radius:14px;
    }
    .footer-brand strong{
      display:block;
      font-size:1.05rem;
      line-height:1.3;
      margin-top:2px;
    }
    .copy{
      margin-top:8px;
      color:var(--muted);
      font-size:.92rem;
      line-height:1.9;
      max-width:32em;
    }
    .footer-title{
      display:block;
      margin-bottom:12px;
      color:#fff;
      font-weight:700;
      font-size:.95rem;
      letter-spacing:.02em;
    }
    .footer-links{
      display:flex;
      flex-direction:column;
      gap:10px;
    }
    .footer-links a{
      color:var(--muted);
      font-size:.94rem;
      transition:color var(--speed), transform var(--speed);
      width:fit-content;
    }
    .footer-links a:hover,
    .footer-links a:focus-visible{
      color:#fff;
      transform:translateX(2px);
    }
    .footer-bottom{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      flex-wrap:wrap;
      margin-top:22px;
      padding-top:18px;
      border-top:1px solid rgba(255,255,255,.08);
      color:var(--muted-2);
      font-size:.88rem;
    }

    .fade-in{
      animation:fadeIn .42s ease both;
    }
    @keyframes fadeIn{
      from{opacity:0; transform:translateY(8px);}
      to{opacity:1; transform:translateY(0);}
    }

    @media (max-width: 1180px){
      .hero-grid{
        grid-template-columns:1fr .92fr;
      }
      .strip-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }
      .cards-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }
      .article-layout{
        grid-template-columns:1fr 300px;
      }
    }
    @media (max-width: 1024px){
      .hero-shell{
        padding-top:calc(var(--header-h) + 22px);
      }
      .split-grid{
        grid-template-columns:1fr;
      }
      .hero-grid{
        grid-template-columns:1fr;
      }
      .hero-copy h1{
        max-width:12.6em;
      }
      .aside{
        position:static;
      }
      .footer-grid{
        grid-template-columns:1fr 1fr;
      }
      .footer-grid > :first-child{
        grid-column:1 / -1;
      }
    }
    @media (max-width: 900px){
      .site-nav{
        position:absolute;
        top:calc(var(--header-h) - 2px);
        left:0;
        right:0;
        display:none;
        flex-direction:column;
        align-items:stretch;
        gap:8px;
        padding:14px;
        border-radius:0 0 18px 18px;
        background:rgba(14,14,14,.96);
        border:1px solid rgba(255,255,255,.09);
        border-top:none;
        box-shadow:0 16px 40px rgba(0,0,0,.26);
      }
      .site-nav.is-open{
        display:flex;
      }
      .site-nav a{
        width:100%;
        text-align:center;
        padding:12px 14px;
      }
      .nav-toggle{
        display:inline-flex;
      }
      .article-layout{
        grid-template-columns:1fr;
      }
      .hero-copy h1{
        font-size:clamp(2rem, 8vw, 3.4rem);
      }
      .content-panel,
      .aside-card,
      .cta-panel{
        padding:20px;
      }
    }
    @media (max-width: 768px){
      .hero-shell{
        padding-top:calc(var(--header-h) + 18px);
      }
      .hero-copy{
        padding-top:18px;
      }
      .hero-copy .subtitle,
      .section-desc,
      .cta-panel p{
        font-size:.98rem;
      }
      .strip-grid,
      .cards-grid{
        grid-template-columns:1fr;
      }
      .timeline li{
        grid-template-columns:1fr;
        gap:6px;
      }
      .footer-grid{
        grid-template-columns:1fr;
      }
      .footer-grid > :first-child{
        grid-column:auto;
      }
      .footer-bottom{
        flex-direction:column;
        align-items:flex-start;
      }
      .content-head{
        flex-direction:column;
      }
      .hero-breadcrumb{
        font-size:.86rem;
      }
    }
    @media (max-width: 520px){
      .container{
        width:min(var(--container), calc(100% - 22px));
      }
      .brand-text small{
        display:none;
      }
      .hero-copy h1{
        font-size:2.05rem;
      }
      .hero-actions,
      .cta-actions{
        width:100%;
      }
      .btn{
        width:100%;
      }
      .meta-pill{
        width:100%;
        justify-content:flex-start;
      }
      .faq-question{
        padding:16px;
      }
      .faq-content{
        padding:0 16px 16px;
      }
    }
    @media (prefers-reduced-motion: reduce){
      html{
        scroll-behavior:auto;
      }
      *, *::before, *::after{
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.01ms !important;
        scroll-behavior:auto !important;
      }
    }

/* roulang: framework shim */
/* 覆盖 Bootstrap 等对 a/btn 的全局默认，避免导航出现下划线/蓝链 */
.site-header a,.site-header a:hover,.navbar a,.navbar a:hover,.nav-links a,.nav-links a:hover,header nav a,header nav a:hover{text-decoration:none}
.site-header .btn,.navbar .btn,.nav-cta{text-decoration:none}
