/* Hallmark · genre: editorial · macrostructure: Photographic / Long Document · theme: Midnight Arsenal · enrichment: Tier A · nav: N1a · footer: Ft1 */
/* Hallmark · pre-emit critique: P5 H4 E5 S5 R4 V5 */
:root {
  --color-ink: #e8e9e4;
  --color-muted: #a7ada9;
  --color-paper: #111518;
  --color-paper-2: #171d20;
  --color-paper-3: #20282a;
  --color-line: rgba(232, 233, 228, .16);
  --color-line-strong: rgba(232, 233, 228, .32);
  --color-accent: #c5f36a;
  --color-accent-deep: #7e9f3f;
  --color-warm: #f1b47b;
  --color-focus: #f1b47b;
  --font-display: "Noto Serif SC", Georgia, serif;
  --font-body: "Noto Sans SC", system-ui, sans-serif;
  --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --space-1: .35rem;
  --space-2: .65rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2.25rem;
  --space-6: 3.5rem;
  --space-7: 5.5rem;
  --radius-sm: 2px;
  --radius-md: 8px;
  --content: 1160px;
}

* { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; background: var(--color-paper); }
body { margin: 0; overflow-x: clip; color: var(--color-ink); background: var(--color-paper); font: 400 1rem/1.7 var(--font-body); }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; font: inherit; }
h1, h2, h3, p { margin-block-start: 0; }
h1, h2, h3 { font-family: var(--font-display); font-style: normal; overflow-wrap: anywhere; min-width: 0; }
h1 { font-size: clamp(2.6rem, 8vw, 6.8rem); line-height: .98; letter-spacing: -.055em; max-width: 10ch; margin-block-end: var(--space-4); }
h2 { font-size: clamp(2rem, 4vw, 3.8rem); line-height: 1.05; letter-spacing: -.04em; margin-block-end: var(--space-3); }
h3 { font-size: 1.32rem; line-height: 1.2; margin-block-end: .5rem; }
p { max-width: 68ch; }
.container { width: min(100% - 2rem, var(--content)); margin-inline: auto; }
.narrow { width: min(100% - 2rem, 760px); margin-inline: auto; }
.hairline { border-top: 1px solid var(--color-line); }
.eyebrow { color: var(--color-accent); font: 700 .72rem/1.2 var(--font-mono); letter-spacing: .13em; text-transform: uppercase; }
.muted { color: var(--color-muted); }
.small { font-size: .86rem; }
.display-serif { font-family: var(--font-display); }
.tabular { font-variant-numeric: tabular-nums; }

.site-header { position: fixed; z-index: 20; inset: 0 0 auto; background: rgba(17, 21, 24, .93); border-bottom: 1px solid var(--color-line); backdrop-filter: blur(14px); }
.nav-shell { min-height: 4rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; white-space: nowrap; text-decoration: none; font-weight: 800; letter-spacing: .02em; }
.brand-mark { width: 1.65rem; height: 1.65rem; display: grid; place-items: center; background: var(--color-accent); color: var(--color-paper); font: 700 .8rem/1 var(--font-mono); border-radius: 50%; }
.nav-links { display: none; gap: 1.3rem; align-items: center; }
.nav-links a { white-space: nowrap; font-size: .88rem; text-decoration: none; color: var(--color-muted); }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--color-ink); }
.mobile-toggle { width: 2.7rem; height: 2.7rem; border: 1px solid var(--color-line-strong); background: transparent; cursor: pointer; }
.mobile-toggle span { display: block; width: 1rem; height: 1px; margin: .25rem auto; background: var(--color-ink); }
.mobile-menu { display: none; padding: .5rem 1rem 1rem; border-top: 1px solid var(--color-line); }
.mobile-menu.is-open { display: grid; }
.mobile-menu a { padding: .55rem 0; text-decoration: none; color: var(--color-muted); }

.hero { min-height: min(820px, 100dvh); padding-block: 8rem 4rem; display: grid; align-items: end; position: relative; isolation: isolate; background: var(--color-paper); overflow: hidden; }
.hero::before { content: ""; position: absolute; z-index: -2; inset: 0; background: url("public/images/chongchao-gubao-background-01.webp") center/cover no-repeat; opacity: .55; }
.hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: rgba(17, 21, 24, .68); }
.hero-grid { display: grid; gap: 2rem; align-items: end; }
.hero-copy { max-width: 700px; }
.hero-kicker { display: flex; flex-wrap: wrap; gap: .5rem; margin-block-end: 1.5rem; }
.tag { display: inline-flex; align-items: center; min-height: 2rem; padding: .35rem .65rem; border: 1px solid var(--color-line-strong); background: rgba(17, 21, 24, .5); color: var(--color-ink); font-size: .76rem; white-space: nowrap; }
.hero h1 { text-shadow: 0 2px 24px rgba(0,0,0,.26); }
.hero h1 span { display: block; font: 700 clamp(1rem, 2vw, 1.55rem)/1.2 var(--font-mono); color: var(--color-accent); letter-spacing: .02em; margin-block-start: 1.25rem; }
.hero-lede { max-width: 58ch; color: #d6dad5; font-size: clamp(1rem, 2vw, 1.25rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-block-start: 1.75rem; }
.btn { min-height: 3.15rem; display: inline-flex; align-items: center; justify-content: center; padding: .75rem 1.15rem; border: 1px solid var(--color-line-strong); background: transparent; color: var(--color-ink); font-weight: 800; white-space: nowrap; text-decoration: none; cursor: pointer; transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.btn:hover { transform: translateY(-2px); border-color: var(--color-ink); }
.btn:focus-visible, button:focus-visible, a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.btn-primary { position: relative; overflow: hidden; background: var(--color-accent); border-color: var(--color-accent); color: #19200e; }
.btn-primary::after { content: ""; position: absolute; inset: -20% auto -20% -45%; width: 25%; transform: skewX(-22deg); background: rgba(255,255,255,.48); animation: shine 3.5s ease-in-out infinite; }
.btn-primary:hover { background: #d7fa8e; border-color: #d7fa8e; }
@keyframes shine { 0%, 55% { left: -45%; } 72%, 100% { left: 125%; } }
.hero-side { max-width: 380px; padding: 1.25rem; border: 1px solid var(--color-line-strong); background: rgba(17, 21, 24, .78); }
.hero-side-image { width: 100%; aspect-ratio: 460 / 215; object-fit: cover; margin-block-end: 1rem; filter: saturate(.84) contrast(1.05); }
.hero-side-row { display: flex; justify-content: space-between; gap: 1rem; padding-block: .6rem; border-top: 1px solid var(--color-line); font-size: .84rem; }
.hero-side-row strong { color: var(--color-accent); text-align: end; }

.info-strip { position: relative; z-index: 1; margin-top: -1px; background: var(--color-paper-2); border-block: 1px solid var(--color-line); }
.info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.info-item { padding: 1.15rem .85rem; border-inline-end: 1px solid var(--color-line); }
.info-item:nth-child(2n) { border-inline-end: 0; }
.info-label { color: var(--color-muted); font-size: .76rem; }
.info-value { margin-block-start: .25rem; font-size: .92rem; }

main section { padding-block: 5rem; }
.section-head { display: grid; gap: 1rem; margin-block-end: 2.5rem; }
.section-head p { color: var(--color-muted); margin-block-end: 0; }
.story-layout { display: grid; gap: 2rem; }
.story-copy { font-size: 1.08rem; line-height: 1.95; }
.story-aside { align-self: start; padding: 1.25rem; background: var(--color-paper-2); border-top: 2px solid var(--color-accent); }
.story-aside strong { display: block; margin-block-end: .45rem; }
.features-grid { display: grid; gap: 1px; background: var(--color-line); border-block: 1px solid var(--color-line); }
.feature-card { min-height: 230px; padding: 1.5rem; background: var(--color-paper); transition: background .2s ease, transform .2s ease; }
.feature-card:nth-child(2), .feature-card:nth-child(5) { background: var(--color-paper-2); }
.feature-card:hover { background: var(--color-paper-3); transform: translateY(-3px); }
.feature-number { color: var(--color-accent); font: 700 .8rem/1 var(--font-mono); margin-block-end: 2.5rem; }
.feature-card p { color: var(--color-muted); margin-block-end: 0; }

.gallery-preview { display: grid; grid-template-columns: 1.35fr .8fr; gap: 1rem; }
.gallery-preview figure { margin: 0; position: relative; overflow: hidden; background: var(--color-paper-2); }
.gallery-preview figure:first-child { grid-row: span 2; }
.gallery-preview img { width: 100%; height: 100%; min-height: 180px; object-fit: cover; transition: transform .4s ease, filter .4s ease; }
.gallery-preview figure:hover img { transform: scale(1.03); filter: brightness(1.1); }
.gallery-caption { position: absolute; inset: auto 0 0; padding: 1rem; background: rgba(17,21,24,.78); color: var(--color-ink); font-size: .8rem; }

.timeline { display: grid; gap: 1rem; }
.timeline-item { display: grid; grid-template-columns: 5rem 1fr; gap: 1rem; padding-block: 1.1rem; border-top: 1px solid var(--color-line); }
.timeline-date { color: var(--color-accent); font: 700 .78rem/1.4 var(--font-mono); }
.timeline-item p { color: var(--color-muted); margin-block-end: 0; }
.quote-grid { display: grid; gap: 1px; background: var(--color-line); }
.quote-card { padding: 1.5rem; min-height: 160px; background: var(--color-paper-2); }
.quote-card p { font-family: var(--font-display); font-size: 1.2rem; line-height: 1.55; }
.quote-card small { color: var(--color-muted); }
.empty-state { padding: 1rem 0; color: var(--color-muted); border-top: 1px solid var(--color-line); }

.faq-list { border-top: 1px solid var(--color-line); }
.faq-item { border-bottom: 1px solid var(--color-line); }
.faq-question { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 0; border: 0; background: transparent; text-align: start; cursor: pointer; font-weight: 800; }
.faq-symbol { color: var(--color-accent); font: 700 1.3rem/1 var(--font-mono); }
.faq-answer { display: none; padding: 0 2.4rem 1.25rem 0; color: var(--color-muted); }
.faq-item.is-open .faq-answer { display: block; }
.faq-item.is-open .faq-symbol { transform: rotate(45deg); }

.download-band { padding-block: 4.5rem; background: var(--color-accent); color: #19200e; }
.download-band h2 { max-width: 12ch; }
.download-band p { color: #445126; }
.download-band .btn-primary { background: #19200e; color: var(--color-accent); border-color: #19200e; }
.download-band .btn-primary:hover { background: #263315; border-color: #263315; }
.cta-row { display: flex; flex-wrap: wrap; gap: .75rem; }

.page-hero { padding-block: 9rem 4rem; background: var(--color-paper-2); border-bottom: 1px solid var(--color-line); }
.page-hero h1 { max-width: 12ch; }
.page-hero p { color: var(--color-muted); font-size: 1.1rem; }
.page-layout { display: grid; gap: 2rem; }
.toc { align-self: start; padding: 1rem; background: var(--color-paper-2); border-top: 2px solid var(--color-accent); }
.toc a { display: block; padding: .42rem 0; color: var(--color-muted); text-decoration: none; }
.toc a:hover { color: var(--color-ink); }
.content-block { padding-block: 1rem 2.5rem; border-top: 1px solid var(--color-line); }
.content-block h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
.content-block h3 { margin-block-start: 1.8rem; }
.content-block li { margin-block: .55rem; }
.content-block table { width: 100%; border-collapse: collapse; margin-block: 1.25rem; font-size: .9rem; }
.content-block th, .content-block td { padding: .75rem .6rem; border-top: 1px solid var(--color-line); text-align: start; vertical-align: top; }
.content-block th { color: var(--color-accent); font-weight: 700; }
.step-list { padding-inline-start: 1.2rem; }
.guide-grid { display: grid; gap: 1rem; }
.guide-card { display: flex; flex-direction: column; min-height: 220px; padding: 1.25rem; background: var(--color-paper-2); border-top: 2px solid var(--color-accent); }
.guide-card p { color: var(--color-muted); }
.guide-card .text-link { margin-top: auto; }
.text-link { display: inline-flex; align-items: center; gap: .45rem; color: var(--color-accent); font-weight: 800; white-space: nowrap; }
.article-index { display: grid; gap: .7rem; }
.article-index a { display: grid; grid-template-columns: 2.2rem 1fr auto; gap: .7rem; padding: 1rem 0; border-top: 1px solid var(--color-line); text-decoration: none; }
.article-index a:hover .article-title { color: var(--color-accent); }
.article-number { color: var(--color-accent); font: 700 .8rem/1.2 var(--font-mono); }
.article-summary { color: var(--color-muted); font-size: .88rem; }
.article-arrow { color: var(--color-muted); }

.gallery-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-block-end: 2rem; }
.tab { padding: .6rem .8rem; border: 1px solid var(--color-line-strong); background: transparent; color: var(--color-muted); cursor: pointer; white-space: nowrap; }
.tab.is-active, .tab:hover { color: var(--color-paper); background: var(--color-accent); border-color: var(--color-accent); }
.gallery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.gallery-card { position: relative; aspect-ratio: 16 / 10; overflow: hidden; border: 0; padding: 0; background: var(--color-paper-2); cursor: zoom-in; }
.gallery-card[hidden] { display: none; }
.gallery-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease, filter .4s ease; }
.gallery-card:hover img { transform: scale(1.035); filter: brightness(1.08); }
.lightbox { position: fixed; z-index: 50; inset: 0; display: none; place-items: center; padding: 1rem; background: rgba(8, 10, 11, .94); }
.lightbox.is-open { display: grid; }
.lightbox-image { max-width: min(94vw, 1200px); max-height: 82dvh; width: auto; height: auto; object-fit: contain; }
.lightbox-close, .lightbox-prev, .lightbox-next { position: absolute; width: 2.8rem; height: 2.8rem; display: grid; place-items: center; border: 1px solid var(--color-line-strong); background: var(--color-paper-2); cursor: pointer; }
.lightbox-close { inset: 1rem 1rem auto auto; font-size: 1.3rem; }
.lightbox-prev { inset: 50% auto auto 1rem; transform: translateY(-50%); }
.lightbox-next { inset: 50% 1rem auto auto; transform: translateY(-50%); }
.lightbox-caption { position: absolute; inset: auto 1rem 1rem; text-align: center; color: var(--color-muted); }

.spec-grid { display: grid; gap: 1rem; }
.spec-card { padding: 1.25rem; background: var(--color-paper-2); border-top: 1px solid var(--color-line-strong); }
.spec-card h3 { margin-bottom: .9rem; }
.spec-row { display: flex; justify-content: space-between; gap: 1rem; padding-block: .55rem; border-top: 1px solid var(--color-line); color: var(--color-muted); font-size: .9rem; }
.spec-row strong { color: var(--color-ink); text-align: end; }
.notice { padding: 1.25rem; border: 1px solid rgba(241,180,123,.55); background: rgba(241,180,123,.08); color: #e7c2a2; }

.site-footer { padding-block: 3rem 6rem; background: #0d1012; border-top: 1px solid var(--color-line); }
.footer-grid { display: grid; gap: 2rem; }
.footer-brand p { color: var(--color-muted); max-width: 34ch; }
.footer-links { display: grid; gap: .45rem; }
.footer-links a { color: var(--color-muted); text-decoration: none; }
.footer-links a:hover { color: var(--color-ink); }
.footer-title { margin-bottom: .75rem; color: var(--color-ink); font-weight: 800; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; padding-top: 1rem; margin-top: 2rem; border-top: 1px solid var(--color-line); color: var(--color-muted); font-size: .8rem; }
.floating-download { position: fixed; z-index: 15; right: 1rem; bottom: max(1rem, env(safe-area-inset-bottom)); }
.floating-download .btn { box-shadow: 0 10px 30px rgba(0,0,0,.3); }

@media (min-width: 40rem) {
  .container, .narrow { width: min(100% - 3rem, var(--content)); }
  .info-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .info-item:nth-child(2n) { border-inline-end: 1px solid var(--color-line); }
  .info-item:last-child { border-inline-end: 0; }
  .features-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quote-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .spec-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
}

@media (min-width: 60rem) {
  .container { width: min(100% - 5rem, var(--content)); }
  .nav-links { display: flex; }
  .mobile-toggle, .mobile-menu { display: none !important; }
  .hero-grid { grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); }
  .hero-side { justify-self: end; }
  .section-head { grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); align-items: end; }
  .story-layout { grid-template-columns: minmax(0, 1.45fr) minmax(240px, .55fr); }
  .page-layout { grid-template-columns: 220px minmax(0, 760px); align-items: start; justify-content: center; }
  .toc { position: sticky; top: 6rem; }
  .gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
