/* Home-only scope. Existing theme assets load first; supporting pages are unchanged. */
html.cb-noir-document { background: #090a0a; color-scheme: dark; }
body.cb-noir {
  --noir-bg: #090a0a;
  --noir-surface: #191b1f;
  --noir-text: #f3efe7;
  --noir-muted: #b7b0a4;
  --noir-gold: #ceaf72;
  --noir-border: #8f8676;
  --noir-display: "Songti SC", "STSong", "Noto Serif CJK SC", "SimSun", serif;
  --noir-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  /* The legacy theme uses !important with these tokens. Rebind only this page. */
  --ink: var(--noir-text);
  --muted: var(--noir-muted);
  --surface: var(--noir-bg);
  --body: var(--noir-body);
  --display: var(--noir-display);
  margin: 0; min-height: 100vh; background: var(--noir-bg); color: var(--noir-text);
  font: 17px/1.8 var(--noir-body); letter-spacing: 0;
}
.cb-noir *, .cb-noir *::before, .cb-noir *::after { box-sizing: border-box; }
.cb-noir [hidden] { display: none; }
.cb-noir :is(h1,h2,h3,p,figure) { margin: 0; }
.cb-noir p { color: inherit; }
.cb-noir :is(h1,h2,h3) { color: var(--noir-text); font-family: var(--noir-display); font-weight: 400; letter-spacing: 0; }
.cb-noir :is(a,button) { color: inherit; -webkit-tap-highlight-color: transparent; }
.cb-noir a { text-decoration: none; }
.cb-noir button { font: inherit; cursor: pointer; background: none; border: 0; border-radius: 0; }
.cb-noir :is(a,button) { transition: color 160ms ease-out, background-color 160ms ease-out, border-color 160ms ease-out, transform 160ms ease-out; }
.cb-noir :focus-visible { outline: 2px solid #e1c58d !important; outline-offset: 5px !important; }
.cb-noir button:disabled { opacity: .45; cursor: not-allowed; }
.cb-noir .noir-skip { position: fixed; z-index: 20; left: 16px; top: 12px; padding: 10px 16px; background: var(--noir-gold); color: #101113; transform: translateY(-160%); }
.cb-noir .noir-skip:focus { transform: none; }
.cb-noir .noir-frame { position: relative; isolation: isolate; margin-inline: auto; max-width: 1920px; overflow: clip; }
.cb-noir .noir-atmosphere { position: absolute; z-index: -1; top: 0; left: 0; right: 0; height: 1260px; max-width: 1600px; margin-inline: auto; pointer-events: none; overflow: hidden; }
.cb-noir .noir-atmosphere img { width: 100%; height: 100%; object-fit: cover; object-position: center top; max-width: none; }
.cb-noir.is-ready .noir-atmosphere img { animation: noir-light 12s ease-in-out infinite alternate; }
.cb-noir.motion-paused .noir-atmosphere img { animation-play-state: paused; }
@keyframes noir-light { from { filter: brightness(.96); } to { filter: brightness(1.04); } }
.cb-noir .noir-header { height: 112px; margin-inline: 6%; display: grid; grid-template-columns: 1fr 180px 1fr; align-items: center; position: relative; z-index: 2; }
.cb-noir .noir-header-left, .cb-noir .noir-header-right { display: flex; align-items: center; gap: 28px; font-size: 14px; }
.cb-noir .noir-header-right { justify-content: flex-end; gap: 26px; }
.cb-noir .noir-text-link { display: inline-flex; align-items: center; justify-content: center; padding: 10px 0; min-height: 44px; gap: 10px; white-space: nowrap; }
.cb-noir :is(.noir-text-link,.noir-footer-links a,.noir-footer-links button):hover { color: var(--noir-gold); }
.cb-noir .noir-brand { justify-self: center; display: flex; flex-direction: column; align-items: center; gap: 9px; padding: 10px; }
.cb-noir .noir-brand img, .cb-noir .noir-footer-brand img, .cb-noir .noir-age-mark { filter: brightness(0) invert(.96); object-fit: contain; }
.cb-noir .noir-brand span { font: 11px/1.3 Georgia, "Times New Roman", serif; letter-spacing: .17em; white-space: nowrap; }
.cb-noir .noir-whisky-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--noir-gold); border-bottom: 1px solid var(--noir-gold); padding: 9px 0 5px; white-space: nowrap; }
.cb-noir .noir-whisky-link:hover { color: #e1c58d; border-color: #e1c58d; }
.cb-noir .noir-icon { display: inline-block; width: 22px; height: 22px; flex: 0 0 auto; vertical-align: middle; }
.cb-noir .noir-menu-toggle { display: none; align-items: center; gap: 8px; min-width: 44px; min-height: 44px; font-size: 14px; }
.cb-noir .noir-intro { text-align: center; padding: 19px 24px 0; }
.cb-noir .noir-eyebrow { font: 11px/1.8 var(--noir-body); letter-spacing: .21em; color: var(--noir-gold); }
.cb-noir .noir-intro .noir-eyebrow { display: flex; align-items: center; justify-content: center; gap: 10px; }
.cb-noir .noir-intro .noir-eyebrow::before, .cb-noir .noir-intro .noir-eyebrow::after { content: ""; width: 30px; height: 1px; background: var(--noir-gold); margin-inline: 14px; }
.cb-noir .noir-intro h1 { margin-top: 21px; font-size: clamp(48px,4.75vw,68px); line-height: 1.24; white-space: nowrap; }
.cb-noir .noir-subtitle { margin-top: 17px; color: var(--noir-text); font-family: var(--noir-display); font-size: 21px; line-height: 1.8; }
.cb-noir .noir-stage { height: 607px; position: relative; margin: 0; }
.cb-noir .noir-stage figcaption { position: absolute; bottom: 26px; right: 6%; font-size: 11px; color: var(--noir-muted); padding: 2px 6px; background: #090a0a; }
.cb-noir .noir-motion { position: absolute; left: 6%; bottom: 15px; color: var(--noir-muted); font-size: 11px; min-height: 44px; padding: 10px 6px; background: #090a0a; }
.cb-noir .noir-motion:hover { color: var(--noir-text); }
.cb-noir .noir-entries { width: min(1248px,88%); margin: 0 auto; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); position: relative; isolation: isolate; }
.cb-noir .noir-entries::before { content: ""; position: absolute; z-index: -1; top: -24px; bottom: -24px; left: 50%; width: 100vw; transform: translateX(-50%); pointer-events: none; background: linear-gradient(180deg, rgb(9 10 10 / 0), rgb(9 10 10 / .76) 24px, rgb(9 10 10 / .76) calc(100% - 24px), rgb(9 10 10 / 0)); }
.cb-noir .noir-entry { text-align: center; padding: 4px 24px 36px; }
.cb-noir .noir-entry + .noir-entry { border-left: 1px solid var(--noir-border); }
.cb-noir .noir-access { display: inline-block; font-size: 11px; color: var(--noir-muted); padding: 0 5px; background: #090a0a; margin-bottom: 6px; }
.cb-noir .noir-entry h2 { font-size: 36px; line-height: 1.4; }
.cb-noir .noir-entry-copy { color: var(--noir-text); font-size: 16px; line-height: 1.8; margin-top: 10px; }
.cb-noir .noir-button { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 52px; min-width: 222px; padding: 11px 26px; border: 1px solid var(--noir-gold); border-radius: 3px; font: 500 15px/1.6 var(--noir-body); text-decoration: none; }
.cb-noir .noir-entry .noir-button { margin-top: 25px; }
.cb-noir .noir-button-outline { color: var(--noir-text); background: #090a0a; }
.cb-noir .noir-button-outline:hover { background: #211f1a; border-color: #e1c58d; }
.cb-noir .noir-button-gold { background: var(--noir-gold); color: #101113; }
.cb-noir .noir-button-gold .noir-icon { filter: brightness(0); }
.cb-noir .noir-button-gold:hover { background: #e1c58d; border-color: #e1c58d; }
.cb-noir .noir-button:active { transform: translateY(1px); }
.cb-noir .noir-button-gold:active { background: #b99a5c; border-color: #b99a5c; }
.cb-noir .noir-button:hover .noir-icon { transform: translateX(3px); }
.cb-noir .noir-button .noir-icon { transition: transform 160ms ease-out; }
.cb-noir .noir-footer { position: relative; width: min(1248px,88%); border-top: 1px solid var(--noir-border); margin: 24px auto 0; padding: 22px 0 20px; display: grid; grid-template-columns: auto 1fr auto; gap: 12px 24px; align-items: center; font-size: 11px; background: var(--noir-bg); }
.cb-noir .noir-footer-brand { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; }
.cb-noir .noir-footer-brand span { font-family: Georgia,"Times New Roman",serif; font-size: 11px; letter-spacing: .14em; }
.cb-noir .noir-signature { color: var(--noir-muted); border-left: 1px solid var(--noir-border); padding-left: 24px; font-family: var(--noir-display); font-size: 15px; }
.cb-noir .noir-footer-links { display: flex; align-items: center; gap: 24px; color: var(--noir-muted); }
.cb-noir .noir-footer-links :is(a,button) { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0; font-size: 11px; }
.cb-noir .noir-footer-note { grid-column: 1/3; color: var(--noir-muted); font-size: 11px; }
.cb-noir .noir-preview-note { text-align: right; color: var(--noir-muted); font-size: 11px; }
.cb-noir .noir-dialog { width: min(560px,calc(100% - 40px)); max-height: calc(100dvh - 40px); margin: auto; padding: 32px; overflow: auto; border: 1px solid var(--noir-border); border-radius: 8px; background: var(--noir-surface); color: var(--noir-text); font: 16px/1.8 var(--noir-body); }
.cb-noir .noir-dialog::backdrop { background: rgb(0 0 0 / .86); }
.cb-noir .noir-dialog[open] { animation: noir-dialog-in 240ms cubic-bezier(.2,.7,.25,1); }
@keyframes noir-dialog-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.cb-noir .noir-dialog-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 15px; }
.cb-noir .noir-dialog h2 { font-size: 30px; line-height: 1.4; margin-bottom: 16px; }
.cb-noir .noir-dialog p + p { margin-top: 16px; }
.cb-noir .noir-close { min-width: 44px; min-height: 44px; margin: -10px -10px -10px 0; display: inline-flex; justify-content: center; align-items: center; border-radius: 3px; }
.cb-noir .noir-close:hover { background: #2a2c2f; }
.cb-noir .noir-notice { color: var(--noir-muted); padding: 16px 0 16px 18px; border-left: 1px solid var(--noir-gold); margin: 24px 0; font-size: 14px; }
.cb-noir .noir-menu { width: min(520px,100%); max-height: 100dvh; min-height: 100dvh; margin: 0 0 0 auto; border-radius: 0; border-top: 0; border-right: 0; border-bottom: 0; padding: 28px 32px; }
.cb-noir .noir-menu section { padding: 22px 0; border-top: 1px solid var(--noir-border); }
.cb-noir .noir-menu h3 { color: var(--noir-muted); font: 12px/1.8 var(--noir-body); margin-bottom: 8px; }
.cb-noir .noir-menu section :is(a,button) { display: flex; min-height: 46px; align-items: center; justify-content: space-between; padding: 7px 0; font-size: 17px; text-align: left; width: 100%; }
.cb-noir .noir-menu section :is(a,button):hover { color: var(--noir-gold); }
.cb-noir .noir-menu .noir-menu-whisky { border-top-color: var(--noir-gold); }
.cb-noir .noir-menu-whisky a:first-of-type { color: var(--noir-gold); }
.cb-noir .noir-age { text-align: center; padding: 40px; }
.cb-noir .noir-age-mark { display: block; margin: 0 auto 24px; }
.cb-noir .noir-age .noir-eyebrow { margin-bottom: 12px; }
.cb-noir .noir-age-actions { display: grid; gap: 12px; margin-top: 26px; }
.cb-noir .noir-small { color: var(--noir-muted); font-size: 12px; margin-top: 18px; }
.cb-noir #noir-age-exit .noir-button { margin-top: 24px; }
.cb-noir .noir-nojs { position: fixed; inset: 0; z-index: 100; background: var(--noir-bg); display: grid; place-content: center; padding: 30px; text-align: center; }
body.cb-noir.has-noir-dialog { overflow: hidden; }
@media (min-width: 1600px) {
  .cb-noir .noir-atmosphere { height: 1400px; }
  .cb-noir .noir-stage { height: 700px; }
}
@media (max-width: 1080px) {
  .cb-noir .noir-header { height: 100px; margin-inline: 32px; grid-template-columns: 1fr auto 1fr; }
  .cb-noir .noir-header-left { display: none; }
  .cb-noir .noir-brand { grid-column: 2; }
  .cb-noir .noir-header-right { display: none; }
  .cb-noir .noir-menu-toggle { display: inline-flex; grid-column: 3; justify-self: end; }
  .cb-noir .noir-atmosphere { height: 1140px; }
  .cb-noir .noir-stage { height: 540px; }
  .cb-noir .noir-entry { padding-inline: 14px; }
  .cb-noir .noir-entry h2 { font-size: 30px; }
  .cb-noir .noir-entry-copy { font-size: 15px; }
  .cb-noir .noir-footer { grid-template-columns: auto 1fr; }
  .cb-noir .noir-footer-links { grid-column: 1/-1; justify-content: space-between; }
  .cb-noir .noir-footer-note { grid-column: 1/-1; }
  .cb-noir .noir-preview-note { grid-column: 1/-1; text-align: left; }
}
@media (max-width: 767px) {
  body.cb-noir { font-size: 16px; }
  .cb-noir .noir-header { height: 96px; margin-inline: 20px; }
  .cb-noir .noir-brand img { width: 50px; height: 41px; }
  .cb-noir .noir-brand span { font-size: 9px; letter-spacing: .12em; }
  .cb-noir .noir-menu-toggle span { display: none; }
  .cb-noir .noir-menu-toggle { justify-content: center; }
  .cb-noir .noir-intro { padding: 24px 20px 0; }
  .cb-noir .noir-intro .noir-eyebrow { font-size: 9px; letter-spacing: .14em; gap: 5px; }
  .cb-noir .noir-intro .noir-eyebrow::before, .cb-noir .noir-intro .noir-eyebrow::after { width: 12px; margin-inline: 2px; }
  .cb-noir .noir-intro h1 { margin-top: 21px; font-size: 40px; line-height: 1.3; white-space: normal; }
  .cb-noir .noir-intro h1 span { display: block; }
  .cb-noir .noir-subtitle { max-width: 280px; margin: 15px auto 0; font: 14px/1.8 var(--noir-body); color: var(--noir-muted); }
  .cb-noir .noir-atmosphere { height: 820px; top: 135px; }
  .cb-noir .noir-atmosphere img { object-fit: cover; object-position: center top; }
  .cb-noir .noir-stage { height: 420px; }
  .cb-noir .noir-stage figcaption { bottom: 14px; right: 20px; font-size: 10px; }
  .cb-noir .noir-motion { left: 20px; bottom: 3px; font-size: 10px; }
  .cb-noir .noir-entries { width: 100%; padding-inline: 20px; grid-template-columns: 1fr; background: var(--noir-bg); }
  .cb-noir .noir-entries::before { display: none; }
  .cb-noir .noir-entry { padding: 28px 0 32px; }
  .cb-noir .noir-entry + .noir-entry { border-left: 0; border-top: 1px solid var(--noir-border); }
  .cb-noir .noir-access { font-size: 11px; margin-bottom: 7px; }
  .cb-noir .noir-entry h2 { font-size: 30px; }
  .cb-noir .noir-entry-copy { max-width: 290px; margin: 10px auto 0; font-size: 16px; }
  .cb-noir .noir-entry .noir-button { margin-top: 22px; min-width: 230px; }
  .cb-noir .noir-footer { width: calc(100% - 40px); margin-top: 8px; padding-top: 24px; grid-template-columns: 1fr; gap: 10px; }
  .cb-noir .noir-signature { border: 0; padding: 0; margin-top: 2px; }
  .cb-noir .noir-footer-links { gap: 8px; }
  .cb-noir .noir-footer-note { font-size: 10px; }
  .cb-noir .noir-preview-note { font-size: 10px; }
  .cb-noir .noir-dialog { padding: 24px; }
  .cb-noir .noir-dialog h2 { font-size: 28px; }
  .cb-noir .noir-dialog .noir-button { min-width: 0; }
  .cb-noir .noir-menu { width: 100%; padding: 28px; }
  .cb-noir .noir-age { padding: 28px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .cb-noir *, .cb-noir *::before, .cb-noir *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .cb-noir .noir-motion { display: none; }
}
