/* roulang page: index */
:root{
  --amber:#E07A3D;
  --amber-deep:#B4532A;
  --bg:#14110F;
  --bg-alt:#1E1916;
  --card:#2A2320;
  --ivory:#F6F1EA;
  --muted:#B7A89C;
  --line:rgba(246,241,234,.14);
  --lime:#C6F26D;
  --coral:#FF6B4A;
  --radius:16px;
  --radius-bar:8px;
  --shadow:0 10px 28px rgba(40,18,8,.28);
  --pad:88px;
  --font:"Noto Sans SC",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--ivory);
  font-family:var(--font);
  font-size:17px;
  line-height:1.75;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;height:auto;border:0}
a{color:var(--ivory);text-decoration:none}
a:hover{color:var(--amber);text-decoration:underline}
a:focus-visible,button:focus-visible,.b-solid:focus-visible,.b-line:focus-visible,.b-text:focus-visible{
  outline:2px solid var(--amber);
  outline-offset:3px;
}
button,input{font-family:inherit}
h1,h2,h3,p{margin:0}
h1{font-size:40px;line-height:1.25;font-weight:900;letter-spacing:0}
h2{font-size:28px;line-height:1.35;font-weight:700}
h3{font-size:18px;line-height:1.45;font-weight:700}
.skip{
  position:absolute;left:12px;top:-40px;background:var(--amber);color:#1A120E;
  padding:6px 12px;border-radius:8px;z-index:2000
}
.skip:focus{top:12px;text-decoration:none}
.container{width:min(1120px,calc(100% - 32px));margin-inline:auto}
.block{padding:var(--pad) 0;background:var(--bg)}
.block.alt{background:var(--bg-alt)}
.sec-lead{margin-top:14px;max-width:42em;color:var(--ivory)}
.kicker{color:var(--amber);font-size:13px;font-weight:700;margin-bottom:8px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.badge-live{
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;background:var(--lime);color:#172006;
  font-size:12px;font-weight:700;line-height:1;padding:4px 8px;
  letter-spacing:.04em
}
.label-bad{color:var(--coral);font-weight:700;font-size:13px}
.b-solid,.b-line,.b-text{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:0 18px;border-radius:999px;font-weight:700;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease;
  cursor:pointer;text-decoration:none
}
.b-solid{background:var(--amber);color:#1A120E;border:1px solid var(--amber)}
.b-solid:hover{background:var(--amber-deep);color:#1A120E;text-decoration:none;transform:translateY(-2px)}
.b-solid:active{background:#8C3E1E;transform:translateY(1px)}
.b-line{background:transparent;color:var(--ivory);border:1px solid var(--ivory)}
.b-line:hover{color:var(--ivory);border-color:var(--amber);text-decoration:none;transform:translateY(-2px)}
.b-line:active{border-color:var(--amber-deep);color:var(--muted)}
.b-text{background:transparent;color:var(--amber);border:0;padding:0 6px;min-height:auto}
.b-text:hover{text-decoration:underline}
.panel{
  background:var(--card);border:1px solid var(--line);border-left:3px solid var(--amber);
  border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;
  transition:transform .18s ease,border-color .18s ease
}
.panel:hover{transform:translateY(-2px);border-color:rgba(224,122,61,.65)}
.frame{
  position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;
  background:#1A1512;border:1px solid var(--line)
}
.frame .bar,.frame .wave,.frame .tick{position:absolute;display:block}
.site-header{
  position:sticky;top:0;z-index:1000;background:rgba(20,17,15,.96);
  border-bottom:1px solid var(--line);backdrop-filter:none
}
.nav-shell{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:16px}
.brand{display:flex;flex-direction:column;line-height:1.15;color:var(--ivory);text-decoration:none;font-weight:900}
.brand:hover{color:var(--ivory);text-decoration:none}
.brand small{display:block;font-size:15px}
.brand b{display:block;font-size:13px;color:var(--amber);font-weight:900}
.nav-main{display:flex;align-items:center;gap:8px}
.nav-links{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
.nav-links a{
  display:inline-flex;align-items:center;min-height:42px;padding:0 12px;
  color:var(--ivory);border-radius:8px
}
.nav-links a:hover{color:var(--amber);text-decoration:none;background:rgba(224,122,61,.08)}
.nav-links a[aria-current="page"]{
  color:var(--amber);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px
}
.hot-btn{
  background:transparent;color:var(--ivory);border:1px solid var(--line);
  border-radius:999px;min-height:40px;padding:0 14px;font-weight:700
}
.hot-btn:hover,.hot-btn:focus{border-color:var(--amber);color:var(--amber)}
.hot-desktop{position:relative}
.mega-panel{
  display:none;background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:16px;width:min(680px,92vw)
}
.mega-panel.show{display:block}
.mega-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:14px}
.mini-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mini-card{
  display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;
  background:var(--card);border:1px solid var(--line);border-left:3px solid var(--amber);color:var(--ivory)
}
.mini-card:hover{color:var(--ivory);text-decoration:none;border-color:var(--amber);transform:translateY(-2px)}
.mini-card span{color:var(--muted);font-size:13px;line-height:1.6}
.latest{display:flex;flex-direction:column;gap:8px}
.latest a{
  display:grid;grid-template-columns:64px 1fr;gap:8px;padding:8px;border-radius:8px;color:var(--ivory)
}
.latest a:hover{background:rgba(246,241,234,.05);text-decoration:none;color:var(--amber)}
.latest time{font-family:var(--mono);font-size:12px;color:var(--muted)}
.nav-toggle{
  display:none;width:44px;height:44px;border-radius:10px;border:1px solid var(--line);
  background:transparent;position:relative
}
.nav-toggle span{position:absolute;left:10px;right:10px;height:2px;background:var(--ivory)}
.nav-toggle span:nth-child(1){top:14px}
.nav-toggle span:nth-child(2){top:21px}
.nav-toggle span:nth-child(3){top:28px}
.hot-mobile{display:none}
.accordion-item{background:transparent;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.accordion-button{
  background:var(--card);color:var(--ivory);box-shadow:none;font-weight:700
}
.accordion-button:not(.collapsed){background:#322824;color:var(--ivory);box-shadow:none}
.accordion-button:focus{box-shadow:none;border-color:var(--amber)}
.accordion-body{background:var(--bg-alt);color:var(--ivory)}
.time-rail{
  display:none;position:fixed;right:12px;top:50%;transform:translateY(-50%);
  z-index:30;width:78px;padding:10px 8px;border-radius:var(--radius-bar);
  background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)
}
.time-rail span{display:block;font-family:var(--mono);font-size:11px;color:var(--muted)}
.time-rail b{display:block;font-size:12px;font-weight:700;color:var(--ivory);margin-bottom:8px}
.hero{padding-top:56px;padding-bottom:72px}
.hero-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-end}
.sub{margin-top:12px;font-size:18px;max-width:18em}
.hero-side{display:flex;gap:8px;align-items:center}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}
.pane{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.pane header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.pane p{margin-top:10px;color:var(--muted);font-size:15px}
.is-bad{box-shadow:inset 3px 0 0 var(--coral)}
.is-good{box-shadow:inset 3px 0 0 var(--amber)}
.stuck,.run{position:absolute;left:8%;right:8%;bottom:18%;height:8px;border-radius:999px;background:rgba(246,241,234,.12)}
.stuck i,.run i{display:block;height:100%;border-radius:inherit}
.stuck i{width:18%;background:var(--coral)}
.run i{width:68%;background:var(--amber);animation:load 3.6s ease-in-out infinite}
.wave{left:10%;right:10%;top:28%;height:36%;display:flex;align-items:flex-end;gap:6px}
.wave i{display:block;flex:1;background:rgba(224,122,61,.85);border-radius:4px 4px 0 0}
.wave i:nth-child(1){height:40%}
.wave i:nth-child(2){height:70%}
.wave i:nth-child(3){height:52%}
.wave i:nth-child(4){height:88%}
.wave i:nth-child(5){height:46%}
.is-bad .wave i{background:rgba(255,107,74,.75);height:22%}
.hero-note{margin-top:22px;max-width:48em}
.control{
  margin-top:20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:#201A17;border:1px solid var(--line);border-radius:var(--radius-bar);padding:10px
}
.control-time{margin-left:auto;color:var(--muted);font-size:13px}
.faults{display:grid;grid-template-columns:repeat(4,1fr);margin-top:26px;border-top:1px solid var(--line)}
.faults article{padding:16px 14px 4px;border-top:2px solid var(--coral);border-right:1px solid var(--line)}
.faults article:last-child{border-right:0}
.faults h3{font-size:16px;margin-bottom:6px}
.faults p{color:var(--muted);font-size:15px}
.signal{margin-top:28px;position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.signal::before{
  content:"";position:absolute;left:6%;right:6%;top:28px;height:2px;background:var(--amber)
}
.node{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.node .dot{
  width:14px;height:14px;border-radius:50%;background:var(--amber);border:2px solid #1A120E;margin-bottom:10px
}
.step-list{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:14px}
.step-item{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:start}
.step-no{
  font-family:var(--mono);font-size:22px;color:var(--amber);background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius-bar);text-align:center;padding:8px 0
}
.quality-grid{margin-top:28px;display:grid;grid-template-columns:1.7fr .85fr;gap:16px}
.tier{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.tier b{color:var(--ivory)}
.tier span{color:var(--muted)}
.line-box p{color:var(--muted);margin-top:8px}
.ticker{margin-top:26px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-bar);background:#201A17}
.ticker-track{display:flex;gap:14px;width:max-content;padding:14px;animation:tick 32s linear infinite}
.stat{
  min-width:220px;background:var(--card);border-left:3px solid var(--amber);
  border-radius:var(--radius-bar);padding:12px 14px
}
.stat strong{display:block;font-family:var(--mono);font-size:32px;color:var(--amber);line-height:1.1}
.stat em{font-style:normal;font-size:14px;color:var(--muted)}
.voices{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.quote{display:flex;gap:12px}
.avatar{width:42px;height:42px;border-radius:12px;flex:none;background:linear-gradient(135deg,var(--amber),#6A3A28 60%,#1A1512)}
.avatar.b{background:linear-gradient(135deg,#8C3E1E,var(--amber) 40%,#3A2A24)}
.quote p{color:var(--ivory)}
.scene{display:block;margin-top:8px;color:var(--muted);font-size:14px}
.chips{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chip{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 16px 16px 18px}
.chip b{display:block;margin-bottom:4px}
.chip span{color:var(--muted)}
.topic-grid{margin-top:26px;display:grid;grid-template-columns:1.35fr .8fr;gap:16px}
.topic-main{min-height:100%;display:flex;flex-direction:column;gap:12px}
.topic-main p,.side-card p{color:var(--muted)}
.topic-side{display:grid;gap:16px}
.news{list-style:none;margin:22px 0 0;padding:0;border-top:1px solid var(--line)}
.news li{border-bottom:1px solid var(--line)}
.news a{
  display:grid;grid-template-columns:84px 1fr;gap:12px;padding:14px 8px;color:var(--ivory);border-radius:8px
}
.news a:hover{background:rgba(246,241,234,.04);text-decoration:none;color:var(--ivory)}
.news time{font-family:var(--mono);color:var(--amber);font-size:13px}
.news small{display:block;color:var(--muted)}
.metrics{
  margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:14px;
  background-image:linear-gradient(90deg,transparent 49.6%,rgba(224,122,61,.45) 49.6%,rgba(224,122,61,.45) 50.4%,transparent 50.4%);
  padding:8px
}
.metric{background:rgba(20,17,15,.78);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.metric strong{font-family:var(--mono);font-size:40px;color:var(--amber);display:block;line-height:1}
.metric span{color:var(--muted)}
.devices{margin-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start}
.devices .panel:nth-child(2){margin-top:28px}
.devices .panel:nth-child(3){margin-top:56px}
.devices p{color:var(--muted);margin-top:8px}
.dev-phone .b-solid{min-height:52px;font-size:18px}
.dev-pad h3{font-size:22px}
.dev-desk h3{font-size:26px}
.week-axis{margin-top:28px;display:grid;grid-template-columns:repeat(7,1fr);gap:10px;position:relative}
.week-axis::before{content:"";position:absolute;left:0;right:0;top:22px;height:2px;background:rgba(224,122,61,.8)}
.day{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-bar);padding:34px 10px 12px}
.day b{display:block;margin-bottom:6px}
.day span{color:var(--muted);font-size:14px}
.compare{margin-top:26px;display:grid;grid-template-columns:1fr 1px 1fr;gap:18px;align-items:stretch}
.vdiv{background:var(--line)}
.path{padding:8px 8px 0}
.path ul{list-style:none;margin:12px 0 0;padding:0}
.path li{padding:10px 0;border-bottom:1px solid var(--line);color:var(--muted)}
.path-bad h3{color:var(--coral)}
.path-good h3{color:var(--amber)}
.close-sec{background:#241C18}
.close-bar{display:flex;justify-content:space-between;align-items:center;gap:18px}
.site-footer{background:#100E0C;border-top:1px solid var(--line);padding:42px 0 28px}
.foot-grid{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:18px}
.foot-grid h3{font-size:15px;margin-bottom:8px}
.foot-grid a{display:block;color:var(--muted);padding:4px 0}
.foot-grid a:hover{color:var(--amber)}
.copy{margin-top:22px;color:var(--muted);font-size:14px;border-top:1px solid var(--line);padding-top:14px}
@keyframes load{0%{width:12%}50%{width:86%}100%{width:64%}}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (min-width:992px){
  .hot-desktop:hover .mega-panel,.hot-desktop:focus-within .mega-panel{display:block;position:absolute;right:0;top:calc(100% + 8px)}
}
@media (min-width:1200px){
  .container{max-width:1040px}
  .time-rail{display:block}
  .step-list{position:relative;display:block}
  .step-list::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--line)}
  .step-item{width:50%;margin:0 0 22px;display:block}
  .step-item:nth-child(odd){padding-right:28px;text-align:right}
  .step-item:nth-child(even){margin-left:50%;padding-left:28px;text-align:left}
  .step-no{display:inline-block;min-width:64px;margin-bottom:8px}
}
@media (max-width:1199.98px){
  h1{font-size:32px}
  h2{font-size:24px}
}
@media (max-width:991.98px){
  .nav-toggle{display:inline-block}
  .nav-main{display:none;position:absolute;left:0;right:0;top:72px;background:var(--bg);border-bottom:1px solid var(--line);padding:12px 16px 18px}
  .nav-main.open{display:block}
  .nav-links{flex-direction:column;align-items:stretch}
  .mega-panel{position:static;width:100%;margin-top:8px}
  .mega-grid,.mini-list,.foot-grid,.ba,.voices,.quality-grid,.topic-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:767.98px){
  :root{--pad:48px}
  h2{font-size:22px}
  .hot-desktop{display:none}
  .hot-mobile{display:block;margin-top:8px}
  .faults,.signal,.metrics,.devices,.week-axis,.chips{grid-template-columns:1fr}
  .devices .panel,.devices .panel:nth-child(2),.devices .panel:nth-child(3){margin-top:0}
  .week-axis{grid-template-columns:1fr 1fr}
  .week-axis::before{display:none}
  .compare{grid-template-columns:1fr}
  .vdiv{height:1px;width:100%}
  .close-bar,.hero-head{flex-direction:column;align-items:flex-start}
  .control-time{margin-left:0}
}
@media (max-width:575.98px){
  :root{--pad:40px}
  h1{font-size:28px}
  body{font-size:16px}
  .container{width:min(1120px,calc(100% - 24px))}
  .faults{grid-template-columns:1fr}
  .faults article{border-right:0}
  .news a,.step-item{grid-template-columns:1fr}
  .b-solid,.b-line{width:100%}
  .foot-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .run i,.ticker-track{animation:none}
  html{scroll-behavior:auto}
}

/* roulang page: category1 */
:root{
 --amber:#E07A3D;
 --amber-deep:#B4532A;
 --bg:#14110F;
 --bg-alt:#1E1916;
 --card:#2A2320;
 --ivory:#F6F1EA;
 --muted:#B7A89C;
 --line:rgba(246,241,234,.14);
 --lime:#C6F26D;
 --coral:#FF6B4A;
 --radius:16px;
 --radius-bar:8px;
 --shadow:0 10px 28px rgba(40,18,8,.28);
 --pad:88px;
 --font:"Noto Sans SC",sans-serif;
 --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
 margin:0;
 background:var(--bg);
 color:var(--ivory);
 font-family:var(--font);
 font-size:17px;
 line-height:1.75;
 text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;height:auto;border:0}
a{color:var(--ivory);text-decoration:none}
a:hover{color:var(--amber);text-decoration:underline}
a:focus-visible,button:focus-visible,.b-solid:focus-visible,.b-line:focus-visible,.b-text:focus-visible,.chip-btn:focus-visible{
 outline:2px solid var(--amber);
 outline-offset:3px;
}
button,input{font-family:inherit}
h1,h2,h3,p{margin-top:0}
h1{font-size:40px;line-height:1.25;font-weight:900;letter-spacing:-.02em}
h2{font-size:28px;line-height:1.35;font-weight:900}
h3{font-size:18px;line-height:1.45;font-weight:700;margin-bottom:8px}
p{margin-bottom:0}
.container{width:min(1120px,calc(100% - 32px));max-width:1040px;margin-inline:auto}
.band{padding:var(--pad) 0}
.band-alt{background:var(--bg-alt)}
.sec-lead{margin-top:14px;max-width:42em;color:var(--ivory)}
.badge-live{
 display:inline-flex;align-items:center;justify-content:center;
 border-radius:999px;background:var(--lime);color:#172006;
 font-size:12px;font-weight:700;line-height:1;padding:4px 8px;
 letter-spacing:.04em;font-style:normal
}
.site-header{
 position:sticky;top:0;z-index:1000;background:rgba(20,17,15,.96);
 border-bottom:1px solid var(--line)
}
.nav-shell{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:16px;position:relative}
.brand{display:flex;flex-direction:column;line-height:1.15;color:var(--ivory);text-decoration:none;font-weight:900}
.brand:hover{color:var(--ivory);text-decoration:none}
.brand small{display:block;font-size:15px}
.brand b{display:block;font-size:13px;color:var(--amber);font-weight:900}
.nav-main{display:flex;align-items:center;gap:8px}
.nav-links{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
.nav-links a{
 display:inline-flex;align-items:center;min-height:42px;padding:0 12px;
 color:var(--ivory);border-radius:8px
}
.nav-links a:hover{color:var(--amber);text-decoration:none;background:rgba(224,122,61,.08)}
.nav-links a[aria-current="page"]{
 color:var(--amber);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px
}
.hot-desktop{position:relative}
.hot-btn{
 background:transparent;color:var(--ivory);border:1px solid var(--line);
 border-radius:999px;min-height:40px;padding:0 14px;font-weight:700;cursor:pointer
}
.hot-btn:hover,.hot-btn:focus{border-color:var(--amber);color:var(--amber)}
.hot-btn[aria-expanded="true"]{border-color:var(--amber);color:var(--amber)}
.mega-panel{
 display:none;position:absolute;right:0;top:calc(100% + 8px);z-index:30;
 background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius);
 box-shadow:var(--shadow);padding:16px;width:min(680px,92vw)
}
.hot-desktop:hover .mega-panel,.hot-desktop:focus-within .mega-panel,.hot-desktop.is-open .mega-panel{display:block}
.mega-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:14px}
.mini-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mini-card{
 display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;
 background:var(--card);border:1px solid var(--line);border-left:3px solid var(--amber);color:var(--ivory);
 transition:transform .15s ease,border-color .15s ease
}
.mini-card:hover{color:var(--ivory);text-decoration:none;border-color:var(--amber);transform:translateY(-2px)}
.mini-card span{color:var(--muted);font-size:13px;line-height:1.6}
.latest a{
 display:grid;grid-template-columns:64px 1fr;gap:8px;align-items:center;padding:8px;border-radius:8px;color:var(--ivory)
}
.latest a:hover{background:rgba(246,241,234,.05);text-decoration:none;color:var(--amber)}
.latest time,.rel-list time,.dir-copy time{font-family:var(--mono);font-size:13px;color:var(--amber)}
.nav-toggle{
 display:none;width:44px;height:44px;border-radius:10px;border:1px solid var(--line);
 background:transparent;position:relative;cursor:pointer
}
.nav-toggle span{position:absolute;left:10px;right:10px;height:2px;background:var(--ivory)}
.nav-toggle span:nth-child(1){top:14px}
.nav-toggle span:nth-child(2){top:21px}
.nav-toggle span:nth-child(3){top:28px}
.nav-toggle[aria-expanded="true"]{border-color:var(--amber)}
.hot-mobile{display:none}
.accordion-item{background:transparent;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.accordion-button{
 background:var(--card);color:var(--ivory);box-shadow:none;font-weight:700
}
.accordion-button:not(.collapsed){background:#322824;color:var(--ivory);box-shadow:none}
.accordion-button:focus{box-shadow:none;border-color:var(--amber)}
.accordion-button::after{filter:invert(1) grayscale(1)}
.accordion-body{background:var(--bg-alt);color:var(--ivory)}
.b-solid,.b-line,.b-text{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;
 min-height:46px;padding:0 18px;border-radius:var(--radius-bar);font-weight:700;
 cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease,color .15s ease
}
.b-solid{background:var(--amber);color:#1A100C;border:1px solid var(--amber)}
.b-solid:hover{background:var(--amber-deep);color:#fff;text-decoration:none;transform:translateY(-2px)}
.b-solid:active{background:#8C3E1E;color:#fff;transform:translateY(0)}
.b-line{background:transparent;color:var(--ivory);border:1px solid var(--ivory)}
.b-line:hover{border-color:var(--amber);color:var(--amber);text-decoration:none;transform:translateY(-2px)}
.b-line:active{background:rgba(224,122,61,.12);transform:translateY(0)}
.b-text{background:transparent;color:var(--amber);border:0;min-height:auto;padding:0}
.b-text:hover{text-decoration:underline}
.dir-head-grid{display:flex;justify-content:space-between;align-items:flex-end;gap:28px}
.dir-head h1{max-width:12em}
.dir-note{margin-top:12px;color:var(--muted);max-width:36em}
.filter-status{
 margin:0;padding:10px 14px;border:1px solid var(--line);border-radius:999px;
 color:var(--ivory);background:var(--card);font-family:var(--mono);font-size:13px;white-space:nowrap
}
.filter-row{display:flex;flex-wrap:wrap;gap:18px 28px}
.filter-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.filter-group b{font-size:14px;margin-right:4px}
.chip-btn{
 border:1px solid var(--line);background:transparent;color:var(--ivory);
 border-radius:999px;min-height:36px;padding:0 12px;cursor:pointer;font-weight:500
}
.chip-btn:hover{border-color:var(--amber);color:var(--amber)}
.chip-btn.is-on{background:var(--amber);border-color:var(--amber);color:#1A100C}
.chip-btn:active{transform:translateY(1px)}
.dir-stack{display:flex;flex-direction:column;gap:12px}
.dir-row{
 display:grid;grid-template-columns:188px 1fr;gap:16px;align-items:center;
 background:var(--card);border:1px solid var(--line);border-left:3px solid var(--amber);
 border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);
 transition:transform .15s ease,border-color .15s ease
}
.dir-row:hover{transform:translateY(-2px);border-color:var(--amber)}
.dir-row[hidden]{display:none}
.frame{
 position:relative;aspect-ratio:16/10;border-radius:var(--radius-bar);
 background:#1A1512;border:1px solid var(--line);overflow:hidden
}
.frame-line{position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(246,241,234,.2)}
.frame-flag{position:absolute;right:0;top:0;width:18px;height:12px;background:var(--amber)}
.frame .badge-live{position:absolute;left:8px;top:8px}
.frame-bar{position:absolute;left:8px;right:8px;bottom:8px;height:6px;border-radius:8px;background:rgba(246,241,234,.14);overflow:hidden}
.frame-bar i{display:block;height:100%;background:var(--amber);border-radius:8px}
.dir-copy{min-width:0}
.dir-kicker{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;margin-bottom:4px}
.dir-copy p{color:var(--muted);margin:6px 0 10px}
.empty-note{
 margin-top:14px;padding:14px 16px;border:1px dashed var(--coral);border-radius:var(--radius-bar);color:var(--coral)
}
.read-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}
.read-step{
 background:var(--card);border:1px solid var(--line);border-left:3px solid var(--amber);
 border-radius:var(--radius);padding:16px 16px 18px
}
.read-step em{
 display:block;font-family:var(--mono);font-style:normal;color:var(--amber);font-size:13px;margin-bottom:6px
}
.read-step p{color:var(--muted);margin-top:6px}
.rel-list{margin-top:8px;border-top:1px solid var(--line)}
.rel-list a{
 display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;
 padding:14px 8px;border-bottom:1px solid var(--line);color:var(--ivory);border-radius:8px
}
.rel-list a:hover{background:rgba(246,241,234,.05);text-decoration:none;color:var(--ivory)}
.metric-line{
 display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
 background:var(--card);border:1px solid var(--line);border-radius:var(--radius-bar);padding:8px
}
.metric-line div{padding:12px 16px}
.metric-line b{display:block;font-family:var(--mono);font-size:32px;line-height:1.1;color:var(--amber);font-weight:600}
.metric-line span{color:var(--muted);font-size:14px}
.more-wrap{display:flex;justify-content:flex-start}
.cta-band{
 display:flex;justify-content:space-between;align-items:center;gap:20px;
 background:var(--card);border:1px solid var(--line);border-left:3px solid var(--amber);
 border-radius:var(--radius);padding:28px 24px;box-shadow:var(--shadow)
}
.cta-band p{color:var(--muted);margin-top:8px}
.site-footer{background:#100E0C;border-top:1px solid var(--line);padding:42px 0 28px}
.foot-grid{display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:18px}
.foot-grid h3{font-size:15px;margin-bottom:8px}
.foot-grid a{display:block;color:var(--muted);padding:4px 0}
.foot-grid a:hover{color:var(--amber)}
.copy{margin-top:22px;color:var(--muted);font-size:14px}
@media (max-width:1199.98px){
 .mega-panel{width:min(620px,86vw)}
}
@media (max-width:991.98px){
 :root{--pad:56px}
 h1{font-size:32px}
 h2{font-size:24px}
 .nav-toggle{display:inline-block}
 .nav-main{
  display:none;position:absolute;left:0;right:0;top:72px;z-index:40;
  background:var(--bg);border-bottom:1px solid var(--line);padding:8px 16px 16px;
  flex-direction:column;align-items:stretch
 }
 .nav-main.is-open{display:flex}
 .nav-links{flex-direction:column;align-items:stretch}
 .nav-links a{width:100%}
 .hot-desktop{display:none}
 .header-open .hot-mobile{display:block;padding:0 16px 16px}
 .mega-grid,.mini-list{grid-template-columns:1fr}
 .dir-head-grid{flex-direction:column;align-items:flex-start}
 .filter-status{white-space:normal}
 .read-grid{grid-template-columns:1fr}
 .foot-grid{grid-template-columns:1fr 1fr;gap:16px}
}
@media (max-width:767.98px){
 :root{--pad:48px}
 .dir-row{grid-template-columns:1fr}
 .metric-line{grid-template-columns:1fr}
 .cta-band{flex-direction:column;align-items:flex-start}
 .foot-grid{grid-template-columns:1fr}
}
@media (max-width:575.98px){
 :root{--pad:40px}
 h1{font-size:28px}
 h2{font-size:22px}
 body{font-size:16px}
 .container{width:min(1120px,calc(100% - 24px))}
 .filter-group{width:100%}
}

/* 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}
