/* ============================================================
   /assets/site.css — 欧宝娱乐官网 共享层
   01 变量 02 Reset 03 排版 04 工具类 05 按钮 06 标签与卡片
   07 图片容器 08 头部框架 09 页脚 10 响应式 11 可访问性
   ============================================================ */

/* ---------- 01 变量 ---------- */
:root{
  --ink:#061A13;
  --studio:#0B241C;
  --pitch:#1F6B45;
  --grass:#2E9E63;
  --signal:#FF5A2A;
  --ember:#C93412;
  --blue:#8FA3B0;
  --sand:#E3CFA8;
  --paper:#F4F1E8;
  --mute:#A9BDB2;
  --line:#24463A;

  --rail-w:0px;
  --pad:clamp(16px,3.2vw,40px);
  --wrap:1440px;

  --font-display:"Noto Sans SC","Archivo Black","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono","JetBrains Mono","Roboto Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --fs-xs:clamp(11px,.9vw,12px);
  --fs-sm:clamp(13px,1.15vw,14px);
  --fs-body:clamp(15px,1.25vw,16.5px);
  --fs-lg:clamp(17px,1.7vw,20px);
  --fs-xl:clamp(21px,2.4vw,28px);
  --fs-2xl:clamp(26px,3.4vw,40px);
  --fs-3xl:clamp(32px,5vw,56px);
  --fs-4xl:clamp(38px,6.2vw,72px);

  --ease:cubic-bezier(.2,.7,.3,1);
  --t:.18s var(--ease);
}
@media (min-width:1120px){ :root{ --rail-w:64px; } }

/* ---------- 02 Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ul,ol{margin:0}
ul[class],ol[class]{list-style:none;padding:0}
img,svg,video{max-width:100%}
button{font:inherit;color:inherit;background:none;border:0}
table{border-collapse:collapse;width:100%}

/* ---------- 03 排版 ---------- */
body{
  min-height:100vh;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.7;
  padding-inline-start:var(--rail-w);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  font-weight:900;
  letter-spacing:-.02em;
  line-height:1.06;
  color:var(--paper);
  text-wrap:balance;
}
h1{font-size:var(--fs-4xl);line-height:1.02}
h2{font-size:var(--fs-3xl)}
h3{font-size:var(--fs-xl);line-height:1.24}
h4{font-size:var(--fs-lg);line-height:1.32}
p{max-width:68ch}
a{color:var(--grass);text-decoration:none;text-underline-offset:3px;transition:color var(--t)}
a:hover{color:var(--paper)}
strong,b{font-weight:700;color:var(--paper)}
small{font-size:var(--fs-xs)}
hr{border:0;height:1px;background:var(--line);margin:0}

/* ---------- 04 工具类 ---------- */
.mono{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:.04em;
}
.dot{
  display:inline-block;
  width:6px;height:6px;
  background:var(--grass);
  border-radius:50%;
  box-shadow:0 0 0 3px rgba(46,158,99,.18);
  animation:pulse 2.4s var(--ease) infinite;
}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 3px rgba(46,158,99,.18)}
  50%{box-shadow:0 0 0 6px rgba(46,158,99,.05)}
}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.page{padding-block:clamp(18px,2.6vw,36px) 0}
.section{padding-block:clamp(32px,4.6vw,68px)}
.grid{display:grid;gap:clamp(16px,2vw,24px)}
.grid--12{grid-template-columns:repeat(12,minmax(0,1fr))}
.grid--cards{grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:clamp(16px,1.8vw,24px)}
.span-3{grid-column:span 3}
.span-4{grid-column:span 4}
.span-8{grid-column:span 8}
.span-9{grid-column:span 9}
.rule{margin-block:clamp(28px,4vw,56px)}
.eyebrow{
  display:flex;align-items:center;gap:10px;
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--grass);
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--signal);flex:0 0 auto}

/* 面包屑 */
.breadcrumb{padding-block:14px}
.breadcrumb__list{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.breadcrumb__item{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.breadcrumb__link{color:var(--mute)}
.breadcrumb__link:hover{color:var(--sand)}
.breadcrumb__sep{color:var(--line)}

/* ---------- 05 按钮 ---------- */
.btn{
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 20px;
  font-family:var(--font-display);
  font-weight:900;
  font-size:var(--fs-sm);
  line-height:1;
  letter-spacing:.01em;
  color:var(--paper);
  text-decoration:none;
  cursor:pointer;
  transition:color var(--t),transform var(--t);
}
.btn::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--studio);
  border:1px solid var(--line);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 11px),calc(100% - 11px) 100%,0 100%);
  transition:background var(--t),border-color var(--t);
}
.btn:hover{color:var(--paper)}
.btn:hover::before{border-color:var(--pitch);background:#0d2a20}
.btn:active{transform:translateY(1px)}
.btn--sm{padding:9px 14px;font-size:var(--fs-xs)}
.btn--block{display:flex;width:100%}
.btn--signal{color:var(--ink)}
.btn--signal::before{background:var(--signal);border-color:var(--signal)}
.btn--signal:hover{color:var(--paper)}
.btn--signal:hover::before{background:var(--ember);border-color:var(--ember)}
.btn--ghost{color:var(--paper)}
.btn--ghost::before{background:transparent;border-color:var(--line)}
.btn--ghost:hover{color:var(--grass)}
.btn--ghost:hover::before{background:rgba(46,158,99,.08);border-color:var(--grass)}
.btn--sand{color:var(--ink)}
.btn--sand::before{background:var(--sand);border-color:var(--sand)}
.btn--sand:hover{color:var(--ink)}
.btn--sand:hover::before{background:#f0dfc0;border-color:#f0dfc0}

/* ---------- 06 标签与卡片 ---------- */
.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 9px;
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  letter-spacing:.1em;
  line-height:1.5;
  text-transform:uppercase;
  color:var(--blue);
  background:rgba(143,163,176,.13);
  border:1px solid rgba(143,163,176,.3);
  clip-path:polygon(0 0,100% 0,100% 100%,7px 100%,0 calc(100% - 7px));
}
.tag--sand{color:var(--sand);background:rgba(227,207,168,.13);border-color:rgba(227,207,168,.32)}
.tag--grass{color:var(--grass);background:rgba(46,158,99,.13);border-color:rgba(46,158,99,.34)}
.tag--signal{color:var(--ink);background:var(--signal);border-color:var(--signal);font-weight:700}

.card{
  position:relative;
  isolation:isolate;
  padding:clamp(16px,2vw,22px);
  transition:transform var(--t);
}
.card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:var(--studio);
  border:1px solid var(--line);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 15px),calc(100% - 15px) 100%,0 100%);
  transition:background var(--t),border-color var(--t);
}
.card:hover{transform:translateY(-2px)}
.card:hover::before{background:#0d2a20;border-color:var(--pitch)}
.card__title{
  font-family:var(--font-display);
  font-weight:900;
  font-size:var(--fs-lg);
  line-height:1.3;
  letter-spacing:-.01em;
  color:var(--paper);
  margin-block:8px 6px;
}
.card__meta{
  display:flex;flex-wrap:wrap;gap:10px 16px;
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  letter-spacing:.08em;
  color:var(--blue);
}

/* ---------- 07 图片容器 ---------- */
.media{
  position:relative;
  display:block;
  overflow:hidden;
  aspect-ratio:16/9;
  background:linear-gradient(155deg,#123a2a 0%,var(--ink) 58%,#0e2c22 100%);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%);
}
.media::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background-image:repeating-linear-gradient(135deg,rgba(46,158,99,.12) 0 2px,transparent 2px 13px);
  pointer-events:none;
}
.media img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.92) contrast(1.04);
}
.media::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:
    linear-gradient(180deg,rgba(6,26,19,.12) 0%,rgba(6,26,19,.74) 100%),
    linear-gradient(90deg,rgba(31,107,69,.42) 0%,rgba(31,107,69,0) 62%);
  pointer-events:none;
}
.media--wide{aspect-ratio:21/9}
.media--square{aspect-ratio:1/1}
.media--tall{aspect-ratio:4/5}
.media__label{
  position:absolute;
  z-index:3;
  left:12px;
  bottom:12px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 10px;
  font-family:var(--font-mono);
  font-size:var(--fs-xs);
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--paper);
  background:rgba(6,26,19,.78);
  border:1px solid rgba(244,241,232,.28);
  clip-path:polygon(0 0,100% 0,100% 100%,6px 100%,0 calc(100% - 6px));
}

/* ---------- 08 头部框架 ---------- */
.skip{
  position:fixed;
  top:10px;
  left:10px;
  z-index:200;
  display:inline-flex;
  align-items:center;
  padding:10px 18px;
  font-family:var(--font-display);
  font-weight:900;
  font-size:var(--fs-sm);
  color:var(--ink);
  background:var(--signal);
  border-left:4px solid var(--ink);
  text-decoration:none;
  transform:translateY(-220%);
  transition:transform .2s var(--ease);
}
.skip:focus,
.skip:focus-visible{transform:translateY(0);outline:2px solid var(--paper);outline-offset:2px}

.frame{position:relative;z-index:60}
.frame__rail{
  position:fixed;
  top:0;
  bottom:0;
  left:0;
  z-index:70;
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  width:var(--rail-w);
  padding:16px 0;
  background:var(--studio);
  border-right:1px solid var(--line);
}
.rail__dot{
  width:9px;height:9px;
  background:var(--signal);
  transform:rotate(45deg);
}
.rail__word{
  writing-mode:vertical-rl;
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.36em;
  text-transform:uppercase;
  color:var(--blue);
}
.rail__ticks{display:flex;flex-direction:column;align-items:center;gap:7px}
.rail__ticks span{display:block;width:10px;height:1px;background:var(--line)}
.rail__ticks span:nth-child(3n){width:20px;background:var(--grass)}
.rail__code{font-size:10px;color:var(--sand);letter-spacing:.14em}

.frame__bar{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(6,26,19,.95);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.frame__inner{
  display:flex;
  align-items:center;
  gap:clamp(10px,1.8vw,28px);
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  min-height:66px;
  padding:10px var(--pad);
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
  color:var(--paper);
  text-decoration:none;
}
.brand:hover{color:var(--paper)}
.brand__mark{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
  width:32px;height:32px;
  padding-inline:6px;
  background:var(--pitch);
  clip-path:polygon(0 0,100% 0,100% 68%,68% 100%,0 100%);
}
.brand__mark i{display:block;height:3px;width:100%;background:var(--paper)}
.brand__mark i:first-child{background:var(--signal);width:56%}
.brand__mark i:last-child{width:80%}
.brand__text{display:flex;flex-direction:column;gap:1px;line-height:1.1}
.brand__name{
  font-family:var(--font-display);
  font-weight:900;
  font-size:16px;
  letter-spacing:-.01em;
  color:var(--paper);
}
.brand__sub{
  font-size:10px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--blue);
}
.brand__ver{
  align-self:flex-start;
  padding:2px 6px;
  font-size:10px;
  line-height:1.4;
  color:var(--ink);
  background:var(--sand);
  clip-path:polygon(0 0,100% 0,100% 100%,5px 100%,0 calc(100% - 5px));
}
.brand--foot{align-items:flex-start}
.brand--foot .brand__mark{width:30px;height:30px}
.brand--foot .brand__name{font-size:17px}

.nav-toggle{
  display:none;
  width:44px;height:40px;
  padding:0;
  place-items:center;
  margin-inline-start:auto;
  color:var(--paper);
  background:var(--studio);
  border:1px solid var(--line);
  cursor:pointer;
  transition:background var(--t),border-color var(--t);
}
.nav-toggle:hover{border-color:var(--pitch);background:#0d2a20}
.nav-toggle[aria-expanded="true"]{background:var(--pitch);border-color:var(--grass)}
.nav-toggle__box{position:relative;display:block;width:20px;height:14px}
.nav-toggle__bar{
  position:absolute;
  left:0;
  width:20px;height:2px;
  background:currentColor;
  transition:transform var(--t);
}
.nav-toggle__bar:first-child{top:1px}
.nav-toggle__bar:last-child{bottom:1px}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:first-child{transform:translateY(5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:last-child{transform:translateY(-5px) rotate(-45deg)}

.nav{margin-inline:auto}
.nav__list{display:flex;align-items:center;gap:2px}
.nav__item{display:block}
.nav__link{
  position:relative;
  display:block;
  padding:9px 12px;
  font-size:var(--fs-sm);
  font-weight:500;
  letter-spacing:.02em;
  color:var(--mute);
  transition:color var(--t),background var(--t);
}
.nav__link::after{
  content:"";
  position:absolute;
  left:12px;right:12px;bottom:3px;
  height:2px;
  background:var(--grass);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform var(--t),background var(--t);
}
.nav__link:hover{color:var(--paper);background:rgba(11,36,28,.9)}
.nav__link:hover::after{transform:scaleX(1)}
.nav__link[aria-current="page"]{color:var(--paper);background:rgba(46,158,99,.12)}
.nav__link[aria-current="page"]::after{transform:scaleX(1);background:var(--sand)}
.nav__util{display:none}

.hd-utils{display:flex;align-items:center;gap:8px;flex:0 0 auto}

.frame__coords{
  display:flex;
  align-items:center;
  gap:clamp(12px,2vw,28px);
  max-width:var(--wrap);
  margin-inline:auto;
  padding:5px var(--pad);
  border-top:1px solid var(--line);
  overflow:hidden;
  white-space:nowrap;
}
.coords__item{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.coords__item--live{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-inline-start:auto;
  color:var(--grass);
}

/* ---------- 09 页脚 ---------- */
.foot{
  margin-top:clamp(44px,6vw,88px);
  border-top:1px solid var(--line);
  background-color:#04120D;
  background-image:repeating-linear-gradient(90deg,rgba(36,70,58,.55) 0 1px,transparent 1px 88px);
  color:var(--paper);
}
.foot__grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.4fr;
  gap:clamp(24px,3vw,40px);
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding:clamp(34px,4.6vw,64px) var(--pad) clamp(24px,3vw,40px);
}
.foot__brand{display:flex;flex-direction:column;gap:12px}
.foot__tagline{
  max-width:26ch;
  font-size:var(--fs-body);
  line-height:1.6;
  color:var(--paper);
}
.foot__note{
  max-width:32ch;
  font-size:var(--fs-xs);
  line-height:1.7;
  color:var(--mute);
}
.foot__col{display:block}
.foot__col--contact{display:flex;flex-direction:column;gap:6px}
.foot__heading{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
  font-family:var(--font-mono);
  font-weight:500;
  font-size:10px;
  letter-spacing:.24em;
  line-height:1.4;
  text-transform:uppercase;
  color:var(--blue);
}
.foot__heading::before{
  content:"";
  width:6px;height:6px;
  background:var(--signal);
  transform:rotate(45deg);
  flex:0 0 auto;
}
.foot__list{display:flex;flex-direction:column;gap:9px}
.foot__list--contact{gap:14px}
.foot__link{
  display:inline-block;
  font-size:var(--fs-sm);
  color:var(--mute);
  border-bottom:1px solid transparent;
  transition:color var(--t),border-color var(--t);
}
.foot__link:hover{color:var(--paper);border-color:var(--grass)}
.foot__label{
  display:block;
  margin-bottom:2px;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--blue);
}
.foot__text{display:block;font-size:var(--fs-sm);color:var(--mute);line-height:1.6}
.copy{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0;
  text-align:left;
  cursor:pointer;
}
.copy__value{
  font-size:var(--fs-sm);
  color:var(--paper);
  border-bottom:1px dashed var(--line);
  transition:color var(--t),border-color var(--t);
}
.copy:hover .copy__value{color:var(--grass);border-color:var(--grass)}
.copy__label{
  padding:1px 6px;
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:.1em;
  color:var(--blue);
  border:1px solid var(--line);
  transition:color var(--t),border-color var(--t),background var(--t);
}
.copy:hover .copy__label{color:var(--ink);background:var(--sand);border-color:var(--sand)}
.copy__status{
  min-height:18px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.06em;
  color:var(--grass);
}
.copy__status[data-state="err"]{color:var(--signal)}
.foot__base{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px 24px;
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding:16px var(--pad) 30px;
  border-top:1px solid var(--line);
}
.foot__legal{font-size:11px;letter-spacing:.1em;color:var(--blue)}

/* ---------- 10 响应式 ---------- */
@media (min-width:1120px){
  .frame__rail{display:flex}
}
@media (max-width:1119px){
  .nav-toggle{display:grid}
  .hd-utils{display:none}
  .nav{
    position:absolute;
    inset-inline:0;
    top:100%;
    display:none;
    max-height:calc(100vh - 96px);
    overflow-y:auto;
    padding:8px var(--pad) 22px;
    background:var(--studio);
    border-bottom:1px solid var(--line);
    box-shadow:0 26px 48px rgba(0,0,0,.55);
  }
  .nav[data-open]{display:block}
  .nav__list{flex-direction:column;align-items:stretch;gap:0}
  .nav__item{border-bottom:1px solid var(--line)}
  .nav__link{padding:14px 4px;font-size:16px}
  .nav__link::after{display:none}
  .nav__link[aria-current="page"]{background:rgba(46,158,99,.14);color:var(--sand)}
  .nav__util{display:block;margin-top:12px}
  .nav__util + .nav__util{margin-top:8px}
}
@media (max-width:980px){
  .foot__grid{grid-template-columns:1fr 1fr}
  .foot__brand{grid-column:1 / -1}
}
@media (max-width:900px){
  .span-3,.span-4,.span-8,.span-9{grid-column:span 12}
}
@media (max-width:720px){
  .frame__inner{min-height:60px;padding-block:8px}
  .coords__item:nth-child(2),
  .coords__item:nth-child(3){display:none}
  .foot__grid{grid-template-columns:1fr;gap:28px}
  .foot__base{flex-direction:column;align-items:flex-start}
}
@media (max-width:600px){
  .brand__sub{display:none}
}
@media (max-width:420px){
  .brand__ver{display:none}
  .brand__name{font-size:15px}
}

/* ---------- 11 可访问性与状态 ---------- */
:focus-visible{
  outline:2px solid var(--signal);
  outline-offset:2px;
}
.nav__link:focus-visible,
.foot__link:focus-visible,
.copy:focus-visible,
.brand:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
[data-panel][hidden]{display:none !important}
[data-tab]{cursor:pointer}
[data-tab].is-active{color:var(--paper)}
[data-spy-link][aria-current="true"]{color:var(--sand)}
[data-collect][aria-pressed="true"]{color:var(--sand)}
[data-progress]{
  position:fixed;
  top:0;left:0;
  z-index:190;
  width:100%;height:3px;
  background:var(--signal);
  transform:scaleX(0);
  transform-origin:0 50%;
  pointer-events:none;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .card:hover{transform:none}
  .btn:active{transform:none}
  .skip{transition:none}
}
