/* ============================================================
   皇冠真人会馆 — 共享层 /assets/site.css
   夜场会馆 · 墨黑金紫 · 奶油纸阅读面
   ============================================================ */

:root{
  --ink-900:#0B0A0F;
  --ink-700:#15121E;
  --panel-600:#1E1A2B;
  --line-400:#2E2A3C;
  --cream-100:#F3EBDA;
  --gold-500:#C9A227;
  --gold-300:#E7CE83;
  --purple-500:#7A4BD0;
  --emerald-500:#17C08A;
  --orange-500:#FF8A3D;
  --violet-muted:#8E86A8;

  --font-display:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --font-body:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --font-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --font-serif:"Source Han Serif SC","Noto Serif SC",Georgia,"Songti SC",serif;

  --gutter:20px;
  --shell:1240px;
  --header-h:72px;
  --radius-lg:32px;
  --radius-md:20px;
  --radius-pill:999px;

  --ease-out:cubic-bezier(.2,.7,.3,1);
}

@media (min-width:768px){ :root{ --gutter:32px; --header-h:80px; } }
@media (min-width:1280px){ :root{ --gutter:40px; } }

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 24px); }
body,h1,h2,h3,h4,h5,p,figure,blockquote,dl,dd,ul,ol{ margin:0; }
ul,ol{ padding:0; }
ul[class],ol[class]{ list-style:none; }
img,svg,video{ max-width:100%; display:block; }
button{ font:inherit; color:inherit; }
a{ color:inherit; }
[hidden]{ display:none !important; }

/* ---------- base ---------- */
body{
  min-height:100vh;
  background:
    radial-gradient(1100px 640px at 84% -10%, rgba(122,75,208,.24), transparent 62%),
    radial-gradient(880px 560px at 4% 6%, rgba(201,162,39,.13), transparent 66%),
    var(--ink-900);
  background-attachment:fixed;
  color:var(--cream-100);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.75;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:900;
  letter-spacing:.06em;
  line-height:1.16;
  color:var(--cream-100);
}

::selection{ background:rgba(122,75,208,.45); color:#fff; }

:focus-visible{
  outline:2px solid var(--gold-300);
  outline-offset:3px;
  border-radius:6px;
}

/* ---------- layout ---------- */
.container{
  width:min(var(--shell), calc(100% - var(--gutter) * 2));
  margin-inline:auto;
}

.grid{ display:grid; gap:24px; }
.grid--12{ grid-template-columns:repeat(12, minmax(0,1fr)); }
.grid--auto{ grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); }

@media (max-width:900px){
  .grid--12{ grid-template-columns:repeat(6, minmax(0,1fr)); }
}
@media (max-width:560px){
  .grid--12{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .grid{ gap:18px; }
}

/* ---------- utilities ---------- */
.mono{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
}
.muted{ color:var(--violet-muted); }
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  letter-spacing:.22em;
  color:var(--gold-500);
  text-transform:uppercase;
}
.eyebrow::before{
  content:"";
  width:26px;
  height:1px;
  background:linear-gradient(90deg,var(--gold-500),transparent);
}
.gold-rule{
  height:1px;
  border:0;
  background:linear-gradient(90deg,rgba(201,162,39,.7),rgba(201,162,39,.08) 70%,transparent);
}

/* ---------- skip link ---------- */
.skip-link{
  position:fixed;
  left:16px;
  top:-120px;
  z-index:400;
  padding:12px 22px;
  border-radius:0 0 16px 16px;
  background:var(--gold-500);
  color:#150F02;
  font-weight:700;
  font-size:14px;
  text-decoration:none;
  transition:top .18s var(--ease-out);
}
.skip-link:focus{ top:0; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:44px;
  padding:0 24px;
  border:1px solid transparent;
  border-radius:var(--radius-pill);
  font-family:var(--font-body);
  font-size:15px;
  font-weight:600;
  letter-spacing:.04em;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
  transition:background .2s var(--ease-out), color .2s var(--ease-out),
             border-color .2s var(--ease-out), box-shadow .2s var(--ease-out),
             transform .2s var(--ease-out);
}
.btn--sm{ height:38px; padding:0 18px; font-size:13.5px; }
.btn--block{ width:100%; }

.btn--primary{
  background:var(--purple-500);
  color:#FFFFFF;
  box-shadow:0 12px 28px rgba(122,75,208,.36);
}
.btn--primary:hover{ background:#8C5EE6; transform:translateY(-1px); }

.btn--ghost{
  background:rgba(30,26,43,.62);
  border-color:var(--line-400);
  color:var(--cream-100);
}
.btn--ghost:hover{
  border-color:rgba(201,162,39,.65);
  color:var(--gold-300);
  background:rgba(30,26,43,.9);
}

.btn--gold{
  background:var(--gold-500);
  color:#17110A;
  box-shadow:0 12px 28px rgba(201,162,39,.24);
}
.btn--gold:hover{ background:var(--gold-300); transform:translateY(-1px); }

.btn--emerald{
  background:var(--emerald-500);
  color:#04241A;
  box-shadow:0 12px 28px rgba(23,192,138,.22);
}
.btn--emerald:hover{ background:#2BD79E; transform:translateY(-1px); }

/* ---------- tags ---------- */
.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:30px;
  padding:0 14px;
  border-radius:15px;
  border:1px solid var(--line-400);
  background:rgba(30,26,43,.7);
  font-size:13px;
  line-height:1;
  letter-spacing:.04em;
  color:var(--violet-muted);
  white-space:nowrap;
}
.tag--gold{ color:var(--gold-300); border-color:rgba(201,162,39,.5); background:rgba(201,162,39,.12); }
.tag--purple{ color:#CDB8F5; border-color:rgba(122,75,208,.55); background:rgba(122,75,208,.16); }
.tag--emerald{ color:#7BEDC6; border-color:rgba(23,192,138,.5); background:rgba(23,192,138,.13); }
.tag--orange{ color:#FFC097; border-color:rgba(255,138,61,.5); background:rgba(255,138,61,.13); }

/* ---------- media frame ---------- */
.media-frame{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-lg);
  border:1px solid var(--line-400);
  background:
    radial-gradient(120% 90% at 78% 8%, rgba(122,75,208,.34), transparent 60%),
    radial-gradient(90% 70% at 10% 92%, rgba(201,162,39,.20), transparent 62%),
    linear-gradient(155deg, var(--panel-600), var(--ink-700) 72%);
  aspect-ratio:16 / 10;
  box-shadow:0 26px 60px rgba(0,0,0,.45);
}
.media-frame > img,
.media-frame > svg,
.media-frame > picture{
  width:100%;
  height:100%;
  object-fit:cover;
}
.media-frame--portrait{ aspect-ratio:4 / 5; }
.media-frame--square{ aspect-ratio:1 / 1; }
.media-frame--wide{ aspect-ratio:21 / 9; }
.media-frame--flat{ box-shadow:none; }
.media-frame__caption{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:38px 22px 18px;
  font-size:13px;
  letter-spacing:.04em;
  color:rgba(243,235,218,.82);
  background:linear-gradient(180deg, transparent, rgba(11,10,15,.82));
}

/* ---------- prose ---------- */
.prose{
  max-width:68ch;
  font-size:17px;
  line-height:1.8;
  color:rgba(243,235,218,.87);
}
.prose > * + *{ margin-top:1.05em; }
.prose h2{
  margin-top:1.9em;
  font-size:clamp(24px,3vw,32px);
  letter-spacing:.05em;
}
.prose h3{ margin-top:1.6em; font-size:clamp(19px,2.2vw,22px); }
.prose a{ color:var(--gold-300); text-decoration:underline; text-underline-offset:4px; }
.prose a:hover{ color:var(--cream-100); }
.prose ul,.prose ol{ padding-left:1.25em; list-style:disc; }
.prose ol{ list-style:decimal; }
.prose li + li{ margin-top:.4em; }
.prose blockquote{
  padding:4px 0 4px 22px;
  border-left:2px solid var(--gold-500);
  font-family:var(--font-serif);
  font-weight:300;
  font-size:19px;
  color:var(--cream-100);
}

/* ---------- breadcrumbs ---------- */
.breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.04em;
  color:var(--violet-muted);
}
.breadcrumbs li{ display:flex; align-items:center; gap:6px; }
.breadcrumbs li + li::before{ content:"/"; color:var(--line-400); }
.breadcrumbs a{ color:var(--violet-muted); text-decoration:none; transition:color .2s var(--ease-out); }
.breadcrumbs a:hover{ color:var(--gold-300); }
.breadcrumbs [aria-current="page"]{ color:var(--cream-100); }

/* ============================================================
   HEADER — 悬浮胶囊导航
   ============================================================ */
.site-header{
  position:sticky;
  top:0;
  z-index:120;
  padding:14px 0 0;
}

.header-rail{
  width:min(var(--shell), calc(100% - var(--gutter) * 2));
  margin-inline:auto;
  display:flex;
  align-items:center;
  gap:18px;
  padding:9px 12px 9px 18px;
  border-radius:var(--radius-pill);
  border:1px solid transparent;
  background:transparent;
  transition:background .2s var(--ease-out), border-color .2s var(--ease-out),
             box-shadow .2s var(--ease-out), padding .2s var(--ease-out);
}

.site-header[data-scrolled="true"]{ padding-top:10px; }
.site-header[data-scrolled="true"] .header-rail{
  background:rgba(11,10,15,.9);
  border-color:var(--line-400);
  box-shadow:0 20px 46px rgba(0,0,0,.58), inset 0 0 0 1px rgba(201,162,39,.08);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}

/* brand */
.brand{
  display:inline-flex;
  align-items:center;
  gap:11px;
  flex:0 0 auto;
  text-decoration:none;
  color:var(--cream-100);
}
.brand__mark{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:13px;
  border:1px solid rgba(201,162,39,.45);
  background:linear-gradient(150deg, rgba(201,162,39,.22), rgba(122,75,208,.26));
  color:var(--gold-300);
  transition:border-color .2s var(--ease-out), color .2s var(--ease-out);
}
.brand__mark svg{ width:22px; height:22px; }
.brand__name{
  font-family:var(--font-display);
  font-weight:900;
  font-size:19px;
  letter-spacing:.14em;
  color:var(--cream-100);
  transition:color .2s var(--ease-out);
}
.brand:hover .brand__mark{ border-color:var(--gold-300); color:var(--gold-300); }
.brand:hover .brand__name{ color:var(--gold-300); }

/* main nav */
.main-nav{
  flex:1 1 auto;
  display:flex;
  justify-content:center;
  min-width:0;
}
.main-nav__list{
  display:flex;
  align-items:center;
  gap:2px;
}
.main-nav__link{
  position:relative;
  display:inline-block;
  padding:8px 13px;
  border-radius:var(--radius-pill);
  font-size:15px;
  font-weight:500;
  letter-spacing:.03em;
  color:var(--violet-muted);
  text-decoration:none;
  transition:color .2s var(--ease-out);
}
.main-nav__link::after{
  content:"";
  position:absolute;
  left:13px;
  right:13px;
  bottom:2px;
  height:2px;
  border-radius:2px;
  background:var(--purple-500);
  transform:scaleX(0);
  transform-origin:0 50%;
  transition:transform .2s var(--ease-out);
}
.main-nav__link:hover{ color:var(--gold-300); }
.main-nav__link:hover::after{ transform:scaleX(1); }
.main-nav__link[aria-current="page"]{
  color:var(--cream-100);
  font-weight:600;
}
.main-nav__link[aria-current="page"]::after{
  transform:scaleX(1);
  background:linear-gradient(90deg, var(--gold-500), var(--purple-500));
}

/* header tools */
.header-tools{
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:auto;
  flex:0 0 auto;
}

/* status pill */
.status-pill{ position:relative; }
.status-pill__btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:38px;
  padding:0 14px 0 13px;
  border-radius:var(--radius-pill);
  border:1px solid var(--line-400);
  background:rgba(30,26,43,.6);
  color:var(--violet-muted);
  font-size:13px;
  letter-spacing:.06em;
  cursor:pointer;
  transition:color .2s var(--ease-out), border-color .2s var(--ease-out), background .2s var(--ease-out);
}
.status-pill__btn:hover{
  color:var(--cream-100);
  border-color:rgba(255,138,61,.55);
  background:rgba(255,138,61,.1);
}
.status-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--orange-500);
  animation:breathe 2.4s ease-in-out infinite;
}
@keyframes breathe{
  0%,100%{ box-shadow:0 0 0 0 rgba(255,138,61,.6); opacity:1; }
  50%{ box-shadow:0 0 0 7px rgba(255,138,61,0); opacity:.66; }
}
.status-panel{
  position:absolute;
  top:calc(100% + 12px);
  right:0;
  width:min(320px, calc(100vw - var(--gutter) * 2));
  padding:16px;
  border-radius:24px;
  border:1px solid var(--line-400);
  background:linear-gradient(160deg, var(--panel-600), #14111F);
  box-shadow:0 28px 64px rgba(0,0,0,.66);
  z-index:140;
}
.status-panel__title{
  margin-bottom:10px;
  font-size:12px;
  letter-spacing:.2em;
  color:var(--gold-500);
}
.status-panel__item{
  display:block;
  padding:10px 12px;
  border-radius:16px;
  font-size:13.5px;
  line-height:1.5;
  color:var(--cream-100);
  text-decoration:none;
  transition:background .2s var(--ease-out), color .2s var(--ease-out);
}
.status-panel__item:hover{ background:rgba(122,75,208,.2); }
.status-panel__time{
  display:block;
  margin-top:3px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.04em;
  color:var(--violet-muted);
}
.status-panel__more{
  display:block;
  margin-top:10px;
  padding-top:12px;
  border-top:1px solid var(--line-400);
  font-size:13px;
  letter-spacing:.04em;
  color:var(--orange-500);
  text-decoration:none;
}
.status-panel__more:hover{ color:#FFB180; }

/* nav toggle */
.nav-toggle{
  display:none;
  align-items:center;
  gap:9px;
  height:38px;
  padding:0 15px;
  border-radius:var(--radius-pill);
  border:1px solid var(--line-400);
  background:rgba(30,26,43,.6);
  color:var(--cream-100);
  font-size:13px;
  letter-spacing:.06em;
  cursor:pointer;
  transition:border-color .2s var(--ease-out), color .2s var(--ease-out);
}
.nav-toggle:hover{ border-color:var(--purple-500); color:var(--gold-300); }
.nav-toggle__bars{
  position:relative;
  width:16px;
  height:2px;
  border-radius:2px;
  background:currentColor;
  transition:background .2s var(--ease-out);
}
.nav-toggle__bars::before,
.nav-toggle__bars::after{
  content:"";
  position:absolute;
  left:0;
  width:16px;
  height:2px;
  border-radius:2px;
  background:currentColor;
  transition:transform .2s var(--ease-out), top .2s var(--ease-out);
}
.nav-toggle__bars::before{ top:-5px; }
.nav-toggle__bars::after{ top:5px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars{ background:transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::before{ top:0; transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bars::after{ top:0; transform:rotate(-45deg); }

/* scroll progress */
.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  z-index:200;
  width:100%;
  height:2px;
  transform:scaleX(0);
  transform-origin:0 50%;
  background:linear-gradient(90deg, var(--purple-500), var(--gold-500) 58%, var(--orange-500));
  pointer-events:none;
}

/* ---------- header responsive ---------- */
@media (max-width:1180px){
  .header-tools__link{ display:none; }
  .main-nav__link{ padding:8px 10px; font-size:14.5px; }
  .main-nav__link::after{ left:10px; right:10px; }
}

@media (max-width:960px){
  .nav-toggle{ display:inline-flex; }
  .main-nav{
    position:fixed;
    left:var(--gutter);
    right:var(--gutter);
    top:calc(var(--header-h) + 6px);
    z-index:130;
    display:block;
    padding:14px;
    border-radius:28px;
    border:1px solid var(--line-400);
    background:linear-gradient(160deg, rgba(30,26,43,.98), rgba(11,10,15,.98));
    box-shadow:0 30px 70px rgba(0,0,0,.7);
    opacity:0;
    visibility:hidden;
    transform:translateY(-10px);
    transition:opacity .2s var(--ease-out), transform .2s var(--ease-out), visibility .2s linear;
  }
  .main-nav[data-open="true"]{
    opacity:1;
    visibility:visible;
    transform:none;
  }
  .main-nav__list{
    flex-direction:column;
    align-items:stretch;
    gap:4px;
  }
  .main-nav__link{
    display:block;
    padding:13px 16px;
    border-radius:18px;
    font-size:17px;
    letter-spacing:.06em;
  }
  .main-nav__link::after{ left:16px; right:auto; width:22px; bottom:9px; }
  .main-nav__link:hover{ background:rgba(122,75,208,.14); }
}

@media (max-width:760px){
  .brand__name{ font-size:17px; letter-spacing:.1em; }
  .brand__mark{ width:34px; height:34px; border-radius:12px; }
  .brand__mark svg{ width:20px; height:20px; }
  .status-pill__label{ display:none; }
  .status-pill__btn{ padding:0 12px; }
}

@media (max-width:620px){
  .header-tools__cta{ display:none; }
  .header-rail{ gap:10px; padding:8px 10px 8px 14px; }
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  position:relative;
  margin-top:110px;
  border-top:1px solid rgba(201,162,39,.32);
  background:linear-gradient(180deg, var(--ink-700), #07060A 78%);
  overflow:hidden;
}
.footer__glow{
  position:absolute;
  right:-16%;
  bottom:-58%;
  width:min(760px, 92vw);
  height:520px;
  border-radius:50%;
  background:radial-gradient(closest-side, rgba(122,75,208,.34), transparent 72%);
  pointer-events:none;
}

.footer__inner{
  position:relative;
  padding:64px 0 44px;
  display:grid;
  grid-template-columns:1.1fr 1.7fr;
  gap:52px;
}
.footer__brand-line{
  font-family:var(--font-display);
  font-size:19px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1.5;
  color:var(--cream-100);
}
.footer__note{
  margin-top:12px;
  font-size:14px;
  letter-spacing:.04em;
  color:var(--violet-muted);
}
.footer__meta{
  margin-top:18px;
  font-size:12.5px;
  letter-spacing:.06em;
  color:rgba(201,162,39,.72);
}

.footer__cols{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:28px;
}
.footer__col-title{
  margin-bottom:16px;
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.22em;
  color:var(--gold-500);
}
.footer__list li + li{ margin-top:10px; }
.footer__list a{
  font-size:15px;
  letter-spacing:.03em;
  color:rgba(243,235,218,.72);
  text-decoration:none;
  transition:color .2s var(--ease-out), padding-left .2s var(--ease-out);
}
.footer__list a:hover{
  color:var(--gold-300);
  padding-left:4px;
}

.footer__contact{
  position:relative;
  display:flex;
  flex-wrap:wrap;
  gap:8px 34px;
  padding:26px 0;
  border-top:1px solid var(--line-400);
  font-size:13.5px;
  letter-spacing:.03em;
  color:var(--violet-muted);
}
.footer__contact .mono{ color:rgba(243,235,218,.86); }

.footer__bottom{
  position:relative;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 24px;
  padding:20px 0 34px;
  border-top:1px solid var(--line-400);
  font-size:12.5px;
  letter-spacing:.06em;
  color:var(--violet-muted);
}
.footer__legal{ color:rgba(142,134,168,.85); }

@media (max-width:900px){
  .footer__inner{
    grid-template-columns:1fr;
    gap:40px;
    padding:48px 0 36px;
  }
  .footer__cols{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width:560px){
  .site-footer{ margin-top:76px; }
  .footer__cols{ grid-template-columns:1fr; gap:26px; }
  .footer__brand-line{ font-size:17px; }
}

/* ============================================================
   REVEAL / MOTION
   ============================================================ */
.reveal-init{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .32s var(--ease-out), transform .32s var(--ease-out);
}
.reveal-init.is-revealed{
  opacity:1;
  transform: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;
  }
  .reveal-init{ opacity:1 !important; transform:none !important; }
  .status-dot{ animation:none; box-shadow:0 0 0 3px rgba(255,138,61,.25); }
}
