:root{
  --brand-blue:#0A1F44;
  --accent-gold:#C9A063;
  --cream-bg:#F4EFE6;
  --dark-brown:#2B2A26;
  --red-orange:#D1543F;
  --steel-blue:#4A5A7A;
  --white-card:#FFFFFF;
  --pale-gold:#E2D0B1;
  --font-headline:'Playfair Display',Georgia,'Times New Roman',serif;
  --font-body:'Inter','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  --container-max:1440px;
  --header-height:72px;
  --transition-fast:160ms ease;
  --transition-base:320ms cubic-bezier(.25,.8,.35,1);
  --radius-sm:4px;
  --radius-md:10px;
  --radius-lg:18px;
  --shadow-soft:0 10px 30px rgba(10,31,68,.08);
  --shadow-raised:0 24px 60px rgba(10,31,68,.14);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
@media(max-width:768px){html{font-size:15px}}
body{
  background:var(--cream-bg);
  color:var(--dark-brown);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  min-height:100vh;
}
img{max-width:100%;height:auto;display:block}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}
:focus-visible{
  outline:3px solid var(--accent-gold);
  outline-offset:3px;
  border-radius:2px;
}
::selection{background:var(--accent-gold);color:var(--brand-blue)}
.skip-link{
  position:fixed;
  top:0;
  left:0;
  z-index:1200;
  transform:translateY(-160%);
  padding:12px 24px;
  background:var(--brand-blue);
  color:var(--cream-bg);
  font-weight:600;
  font-size:.875rem;
  letter-spacing:.05em;
  border-radius:0 0 var(--radius-md) 0;
  transition:transform var(--transition-base);
}
.skip-link:focus{
  transform:translateY(0);
  color:var(--white-card);
  outline:3px solid var(--accent-gold);
}
.site-progress{
  position:fixed;
  top:0;left:0;
  height:3px;
  width:100%;
  background:transparent;
  z-index:1100;
  pointer-events:none;
}
.site-progress::after{
  content:'';
  display:block;
  height:100%;
  width:0%;
  background:linear-gradient(90deg,var(--accent-gold),var(--red-orange));
  transition:width 80ms linear;
}
.site-header{
  position:fixed;
  top:0;left:0;
  width:100%;
  height:var(--header-height);
  z-index:1000;
  background:transparent;
  color:var(--white-card);
  transition:background-color var(--transition-base),color var(--transition-base),box-shadow var(--transition-base);
}
.site-header[data-scrolled="true"]{
  background:var(--cream-bg);
  color:var(--brand-blue);
  box-shadow:0 1px 0 var(--pale-gold),0 8px 30px rgba(10,31,68,.06);
}
.site-header__inner{
  max-width:var(--container-max);
  height:100%;
  margin:0 auto;
  padding:0 48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
}
.nav-brand{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-shrink:0;
}
.nav-brand__name{
  font-family:var(--font-headline);
  font-size:1.625rem;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1.2;
}
.nav-brand__sub{
  font-size:.6875rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent-gold);
  border-left:1px solid currentColor;
  padding-left:10px;
  transition:color var(--transition-base);
}
.site-header[data-scrolled="true"] .nav-brand__sub{
  color:var(--accent-gold);
}
.nav-links{
  flex:1;
  display:flex;
  justify-content:center;
  min-width:0;
}
.nav-menu{
  display:flex;
  align-items:center;
  gap:4px;
}
.nav-menu__link{
  display:inline-block;
  padding:8px 14px;
  font-size:.875rem;
  font-weight:500;
  letter-spacing:.06em;
  color:inherit;
  border-radius:var(--radius-sm);
  position:relative;
  transition:color var(--transition-fast),background-color var(--transition-fast);
}
.nav-menu__link::after{
  content:'';
  position:absolute;
  left:14px;right:14px;
  bottom:2px;
  height:2px;
  background:var(--accent-gold);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform var(--transition-base);
}
.nav-menu__link:hover::after,
.nav-menu__link[aria-current="page"]::after{
  transform:scaleX(1);
}
.nav-menu__link[aria-current="page"]{
  font-weight:700;
}
.header-cta{
  flex-shrink:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 22px;
  border:1px solid var(--accent-gold);
  border-radius:999px;
  font-size:.8125rem;
  font-weight:600;
  letter-spacing:.08em;
  color:var(--accent-gold);
  background:transparent;
  transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);
}
.header-cta:hover{
  background:var(--accent-gold);
  color:var(--brand-blue);
  transform:translateY(-1px);
}
.nav-toggle{
  display:none;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:var(--radius-sm);
  font-size:.8125rem;
  font-weight:600;
  letter-spacing:.1em;
  color:inherit;
}
.nav-toggle__line{
  width:20px;
  height:2px;
  background:currentColor;
  display:block;
  position:relative;
  transition:background-color var(--transition-fast);
}
.nav-toggle__line::before,
.nav-toggle__line::after{
  content:'';
  position:absolute;
  left:0;
  width:20px;
  height:2px;
  background:currentColor;
  transition:transform var(--transition-base),top var(--transition-base);
}
.nav-toggle__line::before{top:-6px}
.nav-toggle__line::after{top:6px}
.nav-toggle[aria-expanded="true"] .nav-toggle__line{
  background:transparent;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__line::before{
  top:0;
  transform:rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__line::after{
  top:0;
  transform:rotate(-45deg);
}
.site-footer{
  background:var(--brand-blue);
  color:var(--cream-bg);
  padding:72px 48px 32px;
  margin-top:72px;
  position:relative;
}
.site-footer::before{
  content:'';
  position:absolute;
  top:0;left:0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg,var(--accent-gold),var(--red-orange) 40%,var(--accent-gold));
  opacity:.6;
}
.site-footer__top{
  max-width:var(--container-max);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(260px,1.1fr) 2.4fr;
  gap:56px;
  padding-bottom:48px;
}
.footer-brand__name{
  display:block;
  font-family:var(--font-headline);
  font-size:2rem;
  font-weight:700;
  letter-spacing:.18em;
  line-height:1.3;
}
.footer-brand__badge{
  display:inline-block;
  margin-top:8px;
  padding:4px 14px;
  border:1px solid var(--accent-gold);
  border-radius:999px;
  font-size:.75rem;
  letter-spacing:.16em;
  color:var(--accent-gold);
}
.footer-brand__summary{
  margin-top:20px;
  font-size:.875rem;
  line-height:1.8;
  color:rgba(244,239,230,.72);
  max-width:36ch;
}
.footer-links-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.footer-links-group__title,
.footer-contact__title{
  font-family:var(--font-headline);
  font-size:1rem;
  letter-spacing:.1em;
  margin-bottom:16px;
  color:var(--accent-gold);
  font-weight:700;
}
.footer-links-group__list li+li{
  margin-top:8px;
}
.footer-links-group__list a{
  font-size:.875rem;
  color:rgba(244,239,230,.8);
  transition:color var(--transition-fast),padding-left var(--transition-fast);
  position:relative;
}
.footer-links-group__list a:hover{
  color:var(--white-card);
  padding-left:6px;
}
.footer-contact__item{
  font-size:.875rem;
  line-height:1.7;
  color:rgba(244,239,230,.8);
}
.footer-contact__item a{
  color:var(--pale-gold);
  border-bottom:1px solid rgba(201,160,99,.4);
  transition:color var(--transition-fast),border-color var(--transition-fast);
}
.footer-contact__item a:hover{
  color:var(--accent-gold);
  border-color:var(--accent-gold);
}
.footer-contact__item--note{
  margin-top:12px;
  font-size:.75rem;
  opacity:.65;
}
.site-footer__bottom{
  max-width:var(--container-max);
  margin:0 auto;
  padding-top:28px;
  border-top:1px solid rgba(201,160,99,.3);
  display:flex;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}
.footer-icp{
  font-size:.75rem;
  letter-spacing:.08em;
  color:rgba(244,239,230,.6);
}
.footer-motto{
  font-size:.75rem;
  letter-spacing:.04em;
  color:rgba(201,160,99,.8);
  max-width:56ch;
  text-align:right;
}
main{
  min-height:70vh;
}
.content-shell{
  max-width:var(--container-max);
  margin:0 auto;
  padding:calc(var(--header-height) + 40px) 48px 80px;
}
.breadcrumb{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  font-size:.8125rem;
  color:var(--steel-blue);
  margin-bottom:40px;
  letter-spacing:.04em;
}
.breadcrumb a{
  transition:color var(--transition-fast);
}
.breadcrumb a:hover{
  color:var(--accent-gold);
}
.breadcrumb__sep{
  opacity:.5;
}
.breadcrumb__current{
  font-family:var(--font-headline);
  font-weight:700;
  font-size:.875rem;
  color:var(--brand-blue);
}
.btn-system,
.btn-system--primary,
.btn-system--gold,
.btn-system--ghost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 28px;
  border-radius:var(--radius-sm);
  font-size:.875rem;
  font-weight:600;
  letter-spacing:.06em;
  line-height:1.4;
  transition:all var(--transition-fast);
  cursor:pointer;
  text-align:center;
}
.btn-system--primary{
  background:var(--brand-blue);
  color:var(--white-card);
  box-shadow:var(--shadow-soft);
}
.btn-system--primary:hover{
  background:#12305e;
  transform:translateY(-2px);
  box-shadow:var(--shadow-raised);
}
.btn-system--gold{
  background:var(--accent-gold);
  color:var(--brand-blue);
}
.btn-system--gold:hover{
  background:#d9b57c;
  transform:translateY(-2px);
}
.btn-system--ghost{
  border:1px solid var(--brand-blue);
  color:var(--brand-blue);
  background:transparent;
}
.btn-system--ghost:hover{
  background:var(--brand-blue);
  color:var(--white-card);
}
.tags-filter{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:36px;
}
.tags-filter button{
  padding:8px 20px;
  border-radius:999px;
  font-size:.8125rem;
  font-weight:600;
  letter-spacing:.08em;
  background:var(--white-card);
  border:1px solid var(--steel-blue);
  color:var(--steel-blue);
  transition:all var(--transition-fast);
}
.tags-filter button:hover{
  border-color:var(--accent-gold);
  color:var(--accent-gold);
}
.tags-filter button[aria-pressed="true"]{
  background:var(--brand-blue);
  border-color:var(--brand-blue);
  color:var(--cream-bg);
}
.entry-card{
  background:var(--white-card);
  border:1px solid var(--steel-blue);
  border-radius:var(--radius-md);
  padding:28px;
  margin-bottom:24px;
  position:relative;
  transition:box-shadow var(--transition-base),transform var(--transition-base);
}
.entry-card:hover{
  box-shadow:var(--shadow-raised);
  transform:translateY(-2px);
}
.entry-card__number{
  font-family:var(--font-headline);
  font-size:.875rem;
  letter-spacing:.12em;
  color:var(--accent-gold);
  font-weight:700;
}
.entry-card__title{
  font-family:var(--font-headline);
  font-size:1.375rem;
  color:var(--brand-blue);
  margin:10px 0 8px;
  line-height:1.3;
}
.entry-card__summary{
  font-size:.875rem;
  line-height:1.8;
  color:var(--dark-brown);
  opacity:.85;
}
.entry-card__meta{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid var(--pale-gold);
  display:flex;
  gap:18px;
  font-size:.75rem;
  color:var(--steel-blue);
}
.evidence-block{
  background:var(--cream-bg);
  border-left:4px solid var(--accent-gold);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  padding:24px 28px;
  margin:24px 0;
  font-size:.9375rem;
  line-height:1.9;
  color:var(--dark-brown);
}
.term-sidebar{
  background:var(--brand-blue);
  color:var(--cream-bg);
  border-radius:var(--radius-md);
  padding:28px;
  margin:24px 0;
}
.term-sidebar__title{
  font-family:var(--font-headline);
  font-size:1.125rem;
  color:var(--accent-gold);
  margin-bottom:16px;
}
.visual-stage{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  background:
    radial-gradient(ellipse at 20% 20%,rgba(201,160,99,.16),transparent 42%),
    linear-gradient(135deg,var(--brand-blue) 0%,#132a55 55%,#0a1f44 100%);
  min-height:320px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.visual-stage::after{
  content:'';
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(30deg,rgba(201,160,99,.08) 12%,transparent 12.5%,transparent 87%,rgba(201,160,99,.08) 87.5%),
    linear-gradient(150deg,rgba(255,255,255,.04) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.04) 87.5%);
  background-size:48px 84px;
  mix-blend-mode:overlay;
  pointer-events:none;
}
.visual-stage--16x9{
  aspect-ratio:16/9;
}
.visual-stage--4x3{
  aspect-ratio:4/3;
}
[data-reveal]{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .7s cubic-bezier(.25,.8,.35,1),transform .7s cubic-bezier(.25,.8,.35,1);
}
[data-reveal][data-revealed="true"]{
  opacity:1;
  transform:none;
}
.section-track{
  display:none;
}
@media(min-width:1200px){
  .section-track{
    display:block;
    position:fixed;
    left:24px;
    top:50%;
    transform:translateY(-50%);
    z-index:500;
    width:20px;
  }
  .section-track__dot{
    display:block;
    width:8px;height:8px;
    border-radius:50%;
    background:var(--pale-gold);
    margin:18px auto;
    transition:background-color var(--transition-base),transform var(--transition-base);
  }
  .section-track__dot[data-active="true"]{
    background:var(--accent-gold);
    transform:scale(1.5);
  }
}
@media(max-width:1100px){
  .site-footer__top{
    grid-template-columns:1fr;
    gap:40px;
  }
  .site-footer{
    padding:56px 32px 28px;
  }
}
@media(max-width:960px){
  .site-header__inner{
    padding:0 24px;
  }
  .content-shell{
    padding-left:24px;
    padding-right:24px;
  }
  .nav-links{
    order:3;
  }
  .nav-toggle{
    display:inline-flex;
  }
  .nav-menu{
    position:fixed;
    top:var(--header-height);
    left:0;
    right:0;
    background:var(--cream-bg);
    color:var(--brand-blue);
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:16px 24px 24px;
    border-bottom:1px solid var(--pale-gold);
    box-shadow:var(--shadow-raised);
    display:none;
  }
  .nav-menu[data-open="true"]{
    display:flex;
  }
  .nav-menu__item{
    border-bottom:1px solid rgba(74,90,122,.15);
  }
  .nav-menu__item:last-child{
    border-bottom:none;
  }
  .nav-menu__link{
    display:block;
    padding:16px 12px;
    font-size:1rem;
  }
  .nav-menu__link::after{
    left:0;bottom:4px;right:auto;
    width:24px;
  }
  .header-cta{
    margin-left:auto;
    padding:8px 14px;
    font-size:.75rem;
  }
  .footer-links-grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:640px){
  .site-header__inner{
    gap:12px;
  }
  .nav-brand__name{
    font-size:1.375rem;
  }
  .nav-brand__sub{
    font-size:.625rem;
    letter-spacing:.12em;
    padding-left:8px;
  }
  .header-cta{
    display:none;
  }
  .nav-links{
    order:2;
    justify-content:flex-end;
  }
  .footer-links-grid{
    grid-template-columns:1fr;
    gap:24px;
  }
  .site-footer__bottom{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .footer-motto{
    text-align:left;
  }
  .content-shell{
    padding-left:20px;
    padding-right:20px;
  }
  .entry-card{
    padding:20px;
  }
  .btn-system,.btn-system--primary,.btn-system--gold,.btn-system--ghost{
    width:100%;
  }
}
@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto;
  }
  *,
  *::before,
  *::after{
    transition-duration:.01ms !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
  }
  [data-reveal]{
    opacity:1;
    transform:none;
  }
}
