*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0}
a{color:inherit}
[hidden]{display:none !important}

:root{
  --ink:#0B2239;
  --ink-2:#13354F;
  --ink-3:#0A1B2C;
  --steel:#7C93A3;
  --gold:#D8B36A;
  --gold-soft:#F0D9A6;
  --coral:#E66A4E;
  --paper:#F4EBDD;
  --paper-2:#E9DBC4;
  --white:#F7F4EE;
  --brown:#1B1712;
  --green:#4F8A7B;
  --font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC","SimSun",Georgia,serif;
  --font-sans:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"JetBrains Mono","IBM Plex Mono","SFMono-Regular",Consolas,"Courier New",monospace;
  --cut:16px;
  --wrap:1180px;
  --line:rgba(124,147,163,.28);
  --line-gold:rgba(216,179,106,.42);
  --shadow:0 22px 46px -30px rgba(0,0,0,.92);
}

body{
  min-height:100vh;
  background:var(--ink);
  color:var(--white);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:600;line-height:1.3;letter-spacing:.02em}
p{overflow-wrap:break-word}
main:focus{outline:none}

.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px}
.colophon :focus-visible{outline:2px solid var(--coral);outline-offset:3px}

/* ---------- skip link ---------- */
.skip-link{
  position:absolute;
  left:50%;
  top:0;
  transform:translate(-50%,-160%);
  z-index:200;
  padding:10px 20px;
  background:var(--gold);
  color:#22190C;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.12em;
  text-decoration:none;
  transition:transform .18s ease;
}
.skip-link:focus,
.skip-link:focus-visible{transform:translate(-50%,0);outline:2px solid var(--white);outline-offset:2px}

/* ---------- reading rail ---------- */
.reading-rail{
  position:fixed;
  top:0;left:0;right:0;
  height:3px;
  background:rgba(124,147,163,.18);
  z-index:130;
  pointer-events:none;
}
.reading-rail__fill{
  display:block;
  height:100%;
  width:0;
  background:linear-gradient(90deg,var(--gold),var(--coral));
  transition:width .12s linear;
}

/* ---------- masthead ---------- */
.masthead{
  position:relative;
  padding:0 0 14px;
  background:
    radial-gradient(900px 320px at 50% -140px,rgba(216,179,106,.16),transparent 72%),
    linear-gradient(180deg,#0C2540 0%,#0B2239 55%,#0A1E33 100%);
  border-bottom:1px solid var(--line-gold);
  color:var(--white);
}
.masthead::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:repeating-linear-gradient(114deg,rgba(124,147,163,.10) 0 1px,transparent 1px 30px);
  opacity:.55;
}
.masthead__sheet{
  position:relative;
  width:100%;
  max-width:var(--wrap);
  margin:0 auto;
  padding:14px clamp(16px,4vw,28px) 0;
}
.masthead__meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:8px 22px;
  padding:4px 0 12px;
  border-bottom:1px solid rgba(124,147,163,.2);
}
.meta-item{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.16em;
  color:rgba(124,147,163,.95);
  white-space:nowrap;
}
.meta-item--status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--gold-soft);
}
.status-dot{
  width:6px;height:6px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 0 3px rgba(79,138,123,.24);
}
.masthead__plate{
  display:flex;
  align-items:center;
  gap:clamp(10px,2.4vw,26px);
  padding:clamp(16px,3vw,26px) 0 clamp(12px,2vw,18px);
}
.plate-orn{
  position:relative;
  flex:1 1 auto;
  min-width:24px;
  height:24px;
}
.plate-orn::before{
  content:"";
  position:absolute;
  top:50%;left:0;right:16px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(216,179,106,.65));
}
.plate-orn::after{
  content:"";
  position:absolute;
  right:2px;top:4px;
  width:1px;height:15px;
  background:var(--gold);
  transform:rotate(22deg);
}
.plate-orn--r::before{background:linear-gradient(270deg,transparent,rgba(216,179,106,.65));left:16px;right:0}
.plate-orn--r::after{left:2px;right:auto;transform:rotate(-22deg)}

.brand{
  display:block;
  flex:0 1 auto;
  text-align:center;
  text-decoration:none;
  color:inherit;
}
.brand__cn{
  display:block;
  font-family:var(--font-serif);
  font-size:clamp(27px,4.4vw,46px);
  font-weight:600;
  letter-spacing:.16em;
  line-height:1.22;
  padding-left:.16em;
  color:var(--white);
}
.brand__accent{
  color:var(--gold);
  letter-spacing:.08em;
  padding:0 .06em;
  font-family:var(--font-mono);
  font-weight:700;
  font-size:.82em;
}
.brand__sub{
  display:block;
  margin-top:9px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.32em;
  color:var(--steel);
  text-indent:.32em;
}

/* ---------- navigation ---------- */
.nav{
  position:relative;
  padding-top:4px;
}
.nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  padding:11px 14px;
  border:1px solid var(--line-gold);
  background:rgba(19,53,79,.55);
  color:var(--gold-soft);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.2em;
  cursor:pointer;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
  transition:background-color .18s ease,border-color .18s ease;
}
.nav-toggle:hover{background:rgba(216,179,106,.14);border-color:var(--gold)}
.nav-toggle__bars{display:inline-flex;flex-direction:column;gap:4px;width:16px}
.nav-toggle__bars span{display:block;height:1px;background:currentColor}
.nav-toggle__bars span:nth-child(2){width:68%;margin-left:auto}
.nav-toggle__label{text-indent:.2em}

.nav__list{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:4px;
  padding:8px 0 4px;
  border-top:1px solid rgba(124,147,163,.22);
}
.nav__item{display:block}
.nav__link{
  position:relative;
  display:block;
  padding:9px 20px;
  color:rgba(247,244,238,.84);
  font-size:15px;
  letter-spacing:.08em;
  text-decoration:none;
  transition:color .18s ease;
}
.nav__link::after{
  content:"";
  position:absolute;
  left:20px;right:20px;bottom:4px;
  height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .2s ease;
}
.nav__link:hover,
.nav__link:focus-visible{color:var(--gold-soft)}
.nav__link:hover::after,
.nav__link:focus-visible::after{transform:scaleX(1)}
.nav__link[aria-current="page"]{color:#1B1712}
.nav__link[aria-current="page"]::before{
  content:"";
  position:absolute;
  inset:2px 4px;
  z-index:-1;
  background:var(--gold);
  clip-path:polygon(9px 0,100% 0,calc(100% - 9px) 100%,0 100%);
}
.nav__link[aria-current="page"]::after{display:none}

/* ---------- footer / colophon ---------- */
.colophon{
  position:relative;
  margin-top:clamp(48px,8vw,104px);
  padding:clamp(52px,6vw,78px) 0 0;
  background:
    repeating-linear-gradient(0deg,rgba(27,23,18,.05) 0 1px,transparent 1px 32px),
    linear-gradient(180deg,var(--paper) 0%,#F0E4D2 74%,var(--paper-2) 100%);
  color:var(--brown);
  clip-path:polygon(0 26px,38% 0,100% 30px,100% 100%,0 100%);
}
.colophon__inner{
  width:100%;
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 clamp(16px,4vw,28px) clamp(30px,4vw,46px);
  display:grid;
  grid-template-columns:1.15fr .78fr 1.05fr;
  gap:clamp(22px,3.4vw,46px);
  border-top:1px solid rgba(27,23,18,.18);
  padding-top:clamp(22px,3vw,34px);
}
.colophon__brand{
  font-family:var(--font-serif);
  font-size:clamp(22px,2.5vw,29px);
  font-weight:600;
  letter-spacing:.14em;
  color:var(--brown);
}
.colophon__tag{
  margin-top:8px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.2em;
  color:rgba(27,23,18,.62);
}
.colophon__tag::before{
  content:"";
  display:inline-block;
  width:18px;height:1px;
  margin-right:9px;
  vertical-align:middle;
  background:var(--coral);
}
.colophon__note{
  margin-top:14px;
  max-width:34ch;
  font-size:13.5px;
  line-height:1.9;
  color:rgba(27,23,18,.78);
}
.colophon__lead .btn{margin-top:18px}

.colophon__nav,
.colophon__contact{
  border-left:1px solid rgba(27,23,18,.16);
  padding-left:clamp(16px,2.5vw,30px);
}
.colophon__head{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.24em;
  color:rgba(27,23,18,.58);
  padding-bottom:10px;
  margin-bottom:12px;
  border-bottom:1px solid rgba(27,23,18,.16);
}
.colophon__list{display:grid;gap:8px}
.colophon__link{
  display:inline-block;
  font-size:14.5px;
  color:rgba(27,23,18,.88);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .16s ease,border-color .16s ease;
}
.colophon__link:hover,
.colophon__link:focus-visible{color:#8A3A24;border-bottom-color:var(--coral)}
.colophon__rows{display:grid;gap:10px}
.colophon__row{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:baseline}
.colophon__key{
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.12em;
  color:rgba(27,23,18,.55);
}
.colophon__val{
  font-size:13.5px;
  line-height:1.75;
  color:rgba(27,23,18,.86);
  word-break:break-word;
}
.colophon__row:nth-child(2) .colophon__val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.colophon__bar{
  width:100%;
  max-width:var(--wrap);
  margin:0 auto;
  padding:14px clamp(16px,4vw,28px) 26px;
  border-top:1px solid rgba(27,23,18,.2);
  display:flex;
  flex-wrap:wrap;
  gap:6px 20px;
  justify-content:space-between;
  align-items:baseline;
}
.colophon__legal{
  font-size:12px;
  letter-spacing:.04em;
  color:rgba(27,23,18,.62);
}
.colophon__legal--mono{
  font-family:var(--font-mono);
  letter-spacing:.1em;
  color:rgba(27,23,18,.72);
}

/* ---------- layout primitives ---------- */
.container{
  width:100%;
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:clamp(16px,4vw,28px);
}
.container--narrow{max-width:820px}
.grid{display:grid;gap:clamp(16px,2.6vw,32px)}
.grid--5-7{grid-template-columns:5fr 7fr}
.grid--7-5{grid-template-columns:7fr 5fr}
.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}

/* ---------- text pieces ---------- */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.7em;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
}
.eyebrow::before{
  content:"";
  width:26px;height:1px;
  background:var(--gold);
  transform:rotate(-12deg);
}
.lede{
  max-width:62ch;
  font-size:clamp(16px,1.55vw,18px);
  line-height:1.95;
  color:rgba(247,244,238,.82);
}
.rule-double{
  height:6px;
  margin-block:clamp(20px,4vw,40px);
  border-top:1px solid var(--line-gold);
  border-bottom:1px solid rgba(124,147,163,.3);
}
.edge-index{
  display:flex;
  gap:.9em;
  writing-mode:vertical-rl;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.4em;
  text-transform:uppercase;
  color:rgba(124,147,163,.75);
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6em;
  padding:.72em 1.5em;
  font-family:var(--font-sans);
  font-size:14px;
  font-weight:500;
  letter-spacing:.09em;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
  transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn--gold{background:var(--gold);color:#22190C}
.btn--gold:hover{background:var(--gold-soft)}
.btn--coral{background:var(--coral);color:#FFF6F2}
.btn--coral:hover{background:#D9593D}
.btn--ghost{border-color:var(--line-gold);color:var(--gold-soft);background:rgba(19,53,79,.35)}
.btn--ghost:hover{background:rgba(216,179,106,.14);border-color:var(--gold)}

/* ---------- filter chips ---------- */
.filter-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  padding:10px 0;
}
.chip{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.1em;
  padding:6px 15px;
  color:var(--steel);
  background:rgba(19,53,79,.42);
  border:1px solid var(--line);
  cursor:pointer;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
  transition:color .18s ease,background-color .18s ease,border-color .18s ease;
}
.chip:hover{color:var(--gold-soft);border-color:var(--line-gold)}
.chip[aria-pressed="true"]{background:var(--coral);border-color:var(--coral);color:#FFF6F2}

/* ---------- tags ---------- */
.tag{
  display:inline-flex;
  align-items:center;
  gap:.4em;
  padding:3px 9px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.08em;
  color:var(--steel);
  border:1px solid var(--line);
}
.tag--gold{background:var(--gold);border-color:var(--gold);color:#2A1F0C}
.tag--sync{background:var(--green);border-color:var(--green);color:#E4F4EE}
.tag--coral{background:var(--coral);border-color:var(--coral);color:#FFF6F2}

/* ---------- panels ---------- */
.cut-panel{
  position:relative;
  padding:clamp(18px,3vw,30px);
  background:var(--ink-2);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));
}
.cut-panel--paper{
  background:var(--paper);
  color:var(--brown);
  border-color:rgba(27,23,18,.16);
}
.cut-panel--paper h2,
.cut-panel--paper h3,
.cut-panel--paper h4{color:var(--brown)}
.cut-panel--paper .lede{color:rgba(27,23,18,.82)}

/* ---------- breadcrumb ---------- */
.breadcrumb{
  padding:14px 0 6px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.06em;
  color:var(--steel);
}
.breadcrumb__list{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px}
.breadcrumb__item{display:flex;align-items:center;gap:8px}
.breadcrumb__item:not(:last-child)::after{content:"/";color:rgba(216,179,106,.6)}
.breadcrumb__link{
  color:var(--steel);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .16s ease,border-color .16s ease;
}
.breadcrumb__link:hover,
.breadcrumb__link:focus-visible{color:var(--gold-soft);border-bottom-color:var(--line-gold)}
.breadcrumb__current{color:var(--gold-soft)}

/* ---------- figure / image container base ---------- */
.figure{margin:0}
.figure__media{
  position:relative;
  overflow:hidden;
  aspect-ratio:16/10;
  border:1px solid var(--line);
  background:
    radial-gradient(120% 90% at 15% 0%,rgba(216,179,106,.22),transparent 60%),
    linear-gradient(158deg,var(--ink-2) 0%,var(--ink-3) 62%,rgba(216,179,106,.26) 100%);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%);
}
.figure__media > img,
.figure__media > svg{width:100%;height:100%;object-fit:cover}
.figure__media::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:3px;
  background:linear-gradient(90deg,var(--gold),transparent 72%);
}
.figure__media--tall{aspect-ratio:4/5}
.figure__media--square{aspect-ratio:1}
.figure__cap{
  margin-top:8px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.08em;
  color:var(--steel);
}

/* ---------- reveal protocol ---------- */
.reveal-ready [data-reveal]{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .5s ease,transform .5s ease;
}
.reveal-ready [data-reveal].is-shown{opacity:1;transform:none}

/* ---------- entrance motion ---------- */
@keyframes riseIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes navDrop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .masthead__meta,
  .masthead__plate,
  .nav__list{animation:riseIn .5s ease both}
  .masthead__plate{animation-delay:.08s}
  .nav__list{animation-delay:.16s}
  .nav__item{animation:riseIn .45s ease both}
  .nav__item:nth-child(1){animation-delay:.18s}
  .nav__item:nth-child(2){animation-delay:.24s}
  .nav__item:nth-child(3){animation-delay:.30s}
  .nav__item:nth-child(4){animation-delay:.36s}
  .nav__item:nth-child(5){animation-delay:.42s}
  .nav__item:nth-child(6){animation-delay:.48s}
}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .grid--5-7,
  .grid--7-5,
  .grid--3{grid-template-columns:1fr}
  .colophon__inner{grid-template-columns:1fr 1fr}
  .colophon__contact{grid-column:1 / -1;border-left:0;padding-left:0;border-top:1px solid rgba(27,23,18,.16);padding-top:16px}
  .colophon__lead{grid-column:1 / -1}
  .colophon__nav{border-left:0;padding-left:0;border-top:1px solid rgba(27,23,18,.16);padding-top:16px}
}
@media (max-width:860px){
  .masthead__sheet{padding-top:12px}
  .masthead__meta{gap:6px 16px;padding-bottom:10px}
  .masthead__plate{gap:8px;padding-bottom:10px}
  .plate-orn{display:none}
  .brand__cn{letter-spacing:.12em;padding-left:.12em}
  .brand__sub{letter-spacing:.2em;text-indent:.2em;font-size:10.5px}
  .nav-toggle{display:flex}
  .nav__list{
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:2px;
    margin-top:10px;
    padding-top:6px;
    border-top:1px solid var(--line);
  }
  .nav[data-open="false"] .nav__list{display:none}
  .nav[data-open="true"] .nav__list{display:flex;animation:navDrop .22s ease both}
  .nav__link{text-align:center;padding:12px 12px;border-bottom:1px solid rgba(124,147,163,.16)}
  .nav__link::after{display:none}
  .nav__link[aria-current="page"]::before{inset:0;clip-path:none;background:rgba(216,179,106,.16)}
  .nav__link[aria-current="page"]{color:var(--gold-soft)}
}
@media (max-width:640px){
  body{font-size:15.5px;line-height:1.8}
  .masthead__plate{padding-top:14px}
  .brand__cn{font-size:clamp(24px,7.4vw,30px)}
  .colophon{clip-path:polygon(0 18px,46% 0,100% 22px,100% 100%,0 100%);padding-top:46px}
  .colophon__inner{grid-template-columns:1fr;gap:20px}
  .colophon__bar{flex-direction:column;align-items:flex-start;gap:4px}
  .colophon__note{max-width:none}
  .btn{width:100%}
  .colophon__lead .btn{width:auto}
}
@media (min-width:861px){
  .nav__list{display:flex}
}

/* ---------- reduced motion ---------- */
@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-ready [data-reveal]{opacity:1;transform:none}
  .reading-rail__fill{transition:none}
  .btn:hover{transform:none}
}
