:root{
  --green-900:#0B3D2E;
  --green-800:#114536;
  --green-700:#1F5C46;
  --green-500:#2E7D5B;
  --green-300:#4FA98A;
  --gold:#D4AF37;
  --highlight:#FFD700;
  --ink:#0A0A0A;
  --text:#E8F0EB;
  --muted:#9CADA3;
  --white:#FFFFFF;
  --font-display:'Oswald','Impact','Arial Narrow',sans-serif;
  --font-body:'Noto Sans SC','Open Sans','PingFang SC','Microsoft YaHei',sans-serif;
  --font-num:'Roboto Mono','SFMono-Regular',Consolas,monospace;
  --container:1600px;
  --container-narrow:960px;
  --ease:cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body,h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul[class],ol[class]{list-style:none;margin:0;padding:0}
img{display:block;max-width:100%;height:auto}
button{font:inherit;border:0;background:none;color:inherit;cursor:pointer}
input,select,textarea{font:inherit}

body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
  background:var(--green-900);
  color:var(--text);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.75;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

#main-content{
  width:100%;
  scroll-margin-top:2rem;
}

.site-main{
  position:relative;
  display:block;
  flex:1 0 auto;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.1;
  color:var(--white);
  letter-spacing:.02em;
  margin:0 0 .5em;
}

h1{font-size:clamp(2.8rem,8vw,6.5rem)}
h2{font-size:clamp(2.1rem,5vw,4rem)}
h3{font-size:clamp(1.4rem,3vw,2.2rem)}
h4{font-size:1.2rem}

p{max-width:72ch}
a{color:var(--gold);text-decoration-thickness:.08em;text-underline-offset:.16em}
a:hover{color:var(--highlight)}
strong{color:var(--white)}
::selection{background:var(--gold);color:var(--ink)}
.num,[data-num]{font-family:var(--font-num);font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid var(--highlight);outline-offset:2px}

.skip-link{
  position:fixed;
  top:-100px;
  left:1rem;
  z-index:2000;
  display:inline-flex;
  padding:.6rem 1rem;
  background:var(--gold);
  color:var(--ink);
  font-weight:700;
  text-decoration:none;
  border-radius:999px;
  transition:top .2s var(--ease);
}
.skip-link:focus{top:1rem}

.site-header{
  position:relative;
  z-index:100;
  background:linear-gradient(180deg, rgba(10,10,10,.35) 0%, rgba(10,10,10,0) 30%),var(--green-900);
  border-top:4px solid var(--gold);
  border-bottom:1px solid var(--green-700);
}
.site-header::after{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:min(42vw,34rem);
  height:100%;
  background:linear-gradient(100deg, rgba(79,169,138,0) 18%, rgba(79,169,138,.14) 48%, rgba(212,175,55,.18) 100%);
  clip-path:polygon(24% 0,100% 0,86% 100%,0 100%);
  pointer-events:none;
  z-index:0;
}

.header-frame{
  position:relative;
  z-index:1;
  max-width:var(--container);
  margin:0 auto;
  padding:0 clamp(1rem,3vw,2.5rem);
  min-height:84px;
  display:grid;
  grid-template-columns:minmax(190px,290px) 1fr;
  align-items:stretch;
}

.site-brand{
  display:flex;
  align-items:center;
  border-right:1px solid var(--green-700);
  padding-right:1.25rem;
}

.brand-link{
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  color:var(--white);
  text-decoration:none;
}
.brand-badge{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--gold);
  color:var(--ink);
  font-family:var(--font-display);
  font-size:1.6rem;
  font-weight:700;
  line-height:1;
  box-shadow:0 0 0 2px rgba(212,175,55,.22);
}
.brand-name{
  font-family:var(--font-display);
  font-size:1.35rem;
  line-height:1;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.brand-name small{
  display:block;
  margin-top:4px;
  font-family:var(--font-num);
  font-size:.6rem;
  letter-spacing:.3em;
  color:var(--muted);
}

.site-nav{
  display:flex;
  align-items:stretch;
  justify-content:flex-end;
  gap:1.25rem;
}

.nav-list{
  display:flex;
  align-items:stretch;
  overflow-x:auto;
  scrollbar-width:none;
}
.nav-list::-webkit-scrollbar{display:none}
.nav-item{display:flex}
.nav-link{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  padding:0 1rem;
  font-size:.95rem;
  font-weight:600;
  letter-spacing:.08em;
  white-space:nowrap;
  color:var(--text);
  text-decoration:none;
  border-bottom:2px solid transparent;
  transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
}
.nav-link:hover{
  background:var(--green-700);
  color:var(--highlight);
}
.nav-link[aria-current="page"]{
  color:var(--highlight);
  border-bottom-color:var(--gold);
  background:linear-gradient(180deg, rgba(212,175,55,.18), rgba(212,175,55,0) 72%);
}
.nav-index{
  font-family:var(--font-num);
  font-size:.7rem;
  color:var(--gold);
  letter-spacing:0;
}
.nav-note{
  align-self:center;
  max-width:230px;
  margin:0 0 0 auto;
  padding-left:1rem;
  border-left:1px solid var(--gold);
  color:var(--muted);
  font-size:.75rem;
  line-height:1.55;
}

.scroll-progress,[data-scroll-progress]{
  position:fixed;
  top:0;
  left:0;
  width:0;
  height:4px;
  background:linear-gradient(90deg,var(--highlight),var(--gold));
  z-index:1200;
  pointer-events:none;
  opacity:.75;
}

.nav-toggle{
  display:none;
}
.nav-toggle-text{
  line-height:1;
}
.nav-toggle-icon{
  position:relative;
  width:1rem;
  height:2px;
  background:currentColor;
  transition:background .2s var(--ease);
}
.nav-toggle-icon::before,
.nav-toggle-icon::after{
  content:"";
  position:absolute;
  left:0;
  width:100%;
  height:2px;
  background:currentColor;
  transition:transform .2s var(--ease);
}
.nav-toggle-icon::before{top:-5px}
.nav-toggle-icon::after{top:5px}
.nav-toggle[aria-expanded="true"] .nav-toggle-icon{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle-icon::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-icon::after{top:0;transform:rotate(-45deg)}

.site-footer{
  position:relative;
  flex-shrink:0;
  background:var(--ink);
  color:var(--muted);
  border-top:1px solid var(--green-700);
}
.site-footer::before{
  content:"";
  position:absolute;
  top:-1px;
  left:0;
  width:100%;
  height:2px;
  background:linear-gradient(90deg,var(--gold) 0 22%,var(--green-700) 22.5% 32%,transparent 32.5%);
}

.footer-frame{
  max-width:var(--container);
  margin:0 auto;
  padding:clamp(2.5rem,6vw,5rem) clamp(1.25rem,4vw,4rem) 1.5rem;
}
.footer-cols{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr) minmax(0,1.1fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:start;
}

.footer-insignia{min-width:0}
.footer-nav{min-width:0}
.footer-contact{min-width:0}

.footer-brand{
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  color:var(--white);
  text-decoration:none;
}
.footer-brand-mark{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:50%;
  background:var(--gold);
  color:var(--ink);
  font-family:var(--font-display);
  font-size:1.45rem;
  font-weight:700;
  line-height:1;
}
.footer-brand-name{
  font-family:var(--font-display);
  font-size:1.25rem;
  line-height:1;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--white);
}
.footer-brand-name small{
  display:block;
  margin-top:4px;
  font-family:var(--font-num);
  font-size:.55rem;
  letter-spacing:.24em;
  color:var(--muted);
}
.footer-statement{
  max-width:46ch;
  margin-top:1.25rem;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.8;
}

.footer-heading{
  margin:0 0 1rem;
  font-family:var(--font-display);
  font-size:.95rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold);
}
.footer-list{
  display:grid;
  gap:.65rem;
}
.footer-list a{
  color:var(--text);
  text-decoration:none;
  transition:color .2s var(--ease);
}
.footer-list a:hover{color:var(--highlight)}
.footer-contact-list{
  gap:.45rem;
  color:var(--muted);
  font-size:.875rem;
  line-height:1.6;
}
.footer-response{
  margin:1rem 0 0;
  font-size:.75rem;
  line-height:1.6;
  color:var(--muted);
}
.footer-legal{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin-top:1.5rem;
}
.footer-legal a{
  display:inline-flex;
  align-items:center;
  padding:.4rem .8rem;
  border:1px solid var(--green-700);
  border-radius:999px;
  background:rgba(11,61,46,.45);
  color:var(--text);
  font-size:.78rem;
  text-decoration:none;
  transition:border-color .2s var(--ease),color .2s var(--ease),background .2s var(--ease);
}
.footer-legal a:hover{
  border-color:var(--gold);
  color:var(--highlight);
  background:rgba(31,92,70,.4);
}
.footer-bottom{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  justify-content:space-between;
  align-items:center;
  margin-top:clamp(2rem,5vw,3.5rem);
  padding-top:1.25rem;
  border-top:1px solid rgba(212,175,55,.28);
  color:var(--muted);
  font-size:.8rem;
}
.footer-copy{margin:0}
.footer-icp{margin:0}
.footer-icp-link{color:var(--muted);text-decoration:none}
.footer-icp-link:hover{color:var(--highlight)}

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:clamp(1.25rem,4vw,4rem);
}
.container--narrow{max-width:var(--container-narrow)}

.section{
  position:relative;
  padding-block:clamp(3.5rem,8vw,7rem);
}
.section--alt{background:var(--green-800)}
.section--ink{background:var(--ink);color:var(--muted)}
.section--tight{padding-block:clamp(2rem,4vw,3.5rem)}
.section--canvas{background:var(--green-900)}
.section--canvas::after{
  content:"";
  position:absolute;
  top:14%;
  right:-4%;
  width:min(38vw,32rem);
  height:2px;
  background:linear-gradient(90deg,transparent,rgba(212,175,55,.45),transparent);
  transform:rotate(-7deg);
  pointer-events:none;
}

.grid{
  display:grid;
  gap:clamp(1.25rem,3vw,2.5rem);
}
.grid--halves{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid--thirds{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid--wide{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin-bottom:1rem;
  color:var(--gold);
  font-family:var(--font-num);
  font-size:.8rem;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.eyebrow::before{
  content:"";
  width:2.25rem;
  height:2px;
  background:var(--gold);
}
.display-title{
  font-family:var(--font-display);
  font-size:clamp(2.8rem,8vw,6.5rem);
  line-height:.95;
  letter-spacing:.01em;
  text-transform:uppercase;
  margin:0 0 1.25rem;
}
.lead{
  max-width:60ch;
  margin:0 0 1.5rem;
  font-size:clamp(1.1rem,2vw,1.35rem);
  line-height:1.8;
  color:var(--muted);
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.75em 1.3em;
  border-radius:999px;
  border:1px solid var(--green-500);
  background:var(--green-500);
  color:var(--white);
  font-family:var(--font-body);
  font-weight:600;
  text-decoration:none;
  line-height:1.2;
  cursor:pointer;
  transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease);
}
.btn:hover{
  background:var(--green-300);
  border-color:var(--green-300);
  color:var(--ink);
}
.btn--gold{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--ink);
}
.btn--gold:hover{
  background:var(--highlight);
  border-color:var(--highlight);
  color:var(--ink);
}
.btn--ghost{
  background:transparent;
  border-color:var(--green-500);
  color:var(--text);
}
.btn--ghost:hover{
  background:rgba(47,125,91,.18);
  border-color:var(--gold);
  color:var(--highlight);
}

.block{
  background:var(--green-800);
  border-radius:2rem .75rem 2.5rem 1rem / 1.25rem 2rem .85rem 2.25rem;
  padding:clamp(1.5rem,4vw,3rem);
}
.block--ink{
  background:var(--ink);
  color:var(--muted);
  border:1px solid var(--green-700);
}
.block--gold{
  box-shadow:inset .32rem 0 0 var(--gold);
}

.data-list{
  display:grid;
  gap:1px;
  background:var(--green-700);
  border:1px solid var(--green-700);
  list-style:none;
  padding:0;
}
.data-item{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 1.25rem;
  background:var(--green-800);
}
.data-key{color:var(--muted)}
.data-value{
  font-family:var(--font-num);
  font-weight:700;
  color:var(--highlight);
  font-variant-numeric:tabular-nums;
}
.stat{
  min-width:0;
  padding:1.5rem 1.25rem;
  background:linear-gradient(135deg,var(--green-800) 0%,var(--green-900) 100%);
  border-left:3px solid var(--gold);
}
.stat-number{
  margin:0;
  font-family:var(--font-num);
  font-size:clamp(2.2rem,5vw,4rem);
  line-height:1;
  color:var(--highlight);
  font-variant-numeric:tabular-nums;
}
.stat-label{
  margin-top:.5rem;
  color:var(--muted);
  font-size:.85rem;
  letter-spacing:.1em;
}

.entry-list{
  list-style:none;
  margin:0;
  padding:0;
}
.entry{
  display:grid;
  grid-template-columns:minmax(5.5rem,7rem) 1fr;
  gap:1.25rem;
  padding:1.4rem 0;
  border-bottom:1px solid var(--green-700);
}
.entry:last-child{border-bottom:0}
.entry-date{
  font-family:var(--font-num);
  color:var(--highlight);
  font-size:.9rem;
  line-height:1.6;
}
.entry-title{
  margin:0;
  font-size:1.2rem;
}
.entry-summary{
  margin:.3rem 0 0;
  color:var(--muted);
  font-size:.925rem;
  line-height:1.7;
}

.tag-list{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  list-style:none;
  padding:0;
  margin:0;
}
.tag{
  display:inline-block;
  padding:.3rem .75rem;
  border:1px solid var(--green-700);
  border-radius:999px;
  background:rgba(17,69,54,.65);
  color:var(--text);
  font-size:.8rem;
  letter-spacing:.04em;
  text-decoration:none;
  transition:border-color .2s var(--ease),color .2s var(--ease);
}
.tag:hover{
  border-color:var(--gold);
  color:var(--highlight);
}

.media{
  position:relative;
  overflow:hidden;
  min-height:12rem;
  background:linear-gradient(135deg,var(--green-800),var(--ink));
  border-radius:2rem .75rem 2.25rem 1rem / 1.25rem 2rem .85rem 2.25rem;
}
.media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.media--tall{min-height:clamp(20rem,45vw,32rem)}
.media--diag{border-radius:0 3rem 0 3rem}

.breadcrumb{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.5rem;
  margin:0 0 2.5rem;
  padding:0;
  list-style:none;
  font-size:.85rem;
  color:var(--muted);
}
.breadcrumb a{
  color:var(--text);
  text-decoration:none;
}
.breadcrumb a:hover{color:var(--highlight)}
.breadcrumb li+li::before{
  content:"/";
  margin-right:.5rem;
  color:var(--green-500);
}
.breadcrumb [aria-current="page"]{color:var(--highlight)}

.content-prose{max-width:68ch}
.content-prose p{margin-bottom:1.2rem}
.content-prose ul,.content-prose ol{
  padding-left:1.25rem;
  margin-bottom:1.2rem;
}
.content-prose li+li{margin-top:.4rem}
.content-prose h2,.content-prose h3{margin-top:2.25em}

.table-wrap{
  overflow-x:auto;
  border:1px solid var(--green-700);
  background:var(--green-800);
}
.table-wrap table{
  width:100%;
  min-width:42rem;
  border-collapse:collapse;
}
.table-wrap th,.table-wrap td{
  padding:.85rem 1rem;
  text-align:left;
  border-bottom:1px solid var(--green-700);
}
.table-wrap th{
  background:var(--ink);
  color:var(--gold);
  font-family:var(--font-display);
  font-size:.85rem;
  letter-spacing:.08em;
}
.table-wrap td{color:var(--text)}
.table-wrap tr:last-child td{border-bottom:0}
.table-wrap .num{
  font-family:var(--font-num);
  color:var(--highlight);
}

.decor-line{
  display:block;
  width:min(100%,30rem);
  height:2px;
  margin:1.5rem 0;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  transform:rotate(-4deg);
}
.decor-speed{
  position:relative;
}
.decor-speed::after{
  content:"";
  position:absolute;
  top:-.5rem;
  right:-1rem;
  width:9rem;
  height:9rem;
  background:repeating-linear-gradient(135deg,rgba(212,175,55,.16) 0 1px,transparent 1px 6px);
  -webkit-mask-image:radial-gradient(circle at center,black 20%,transparent 66%);
  mask-image:radial-gradient(circle at center,black 20%,transparent 66%);
  pointer-events:none;
}

@media (max-width:1100px){
  .header-frame{
    grid-template-columns:minmax(170px,240px) 1fr;
  }
  .nav-link{
    padding:0 .7rem;
    font-size:.88rem;
  }
  .nav-note{
    display:none;
  }
  .footer-cols{
    grid-template-columns:1fr 1fr;
  }
  .footer-insignia{
    grid-column:1/-1;
  }
}

@media (max-width:900px){
  .header-frame{
    grid-template-columns:1fr auto;
    min-height:68px;
  }
  .site-brand{
    border-right:0;
  }
  .nav-toggle{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    margin-left:auto;
    padding:.6rem 1rem;
    border:1px solid var(--green-700);
    border-radius:999px;
    background:var(--green-800);
    color:var(--text);
    font-size:.85rem;
    font-weight:600;
    line-height:1;
    position:relative;
    z-index:600;
    transition:background .2s var(--ease),border-color .2s var(--ease);
  }
  .nav-toggle:hover{
    background:var(--green-700);
    border-color:var(--gold);
  }
  .nav-toggle[aria-expanded="true"]{
    border-color:var(--gold);
    color:var(--highlight);
  }

  .site-nav{
    position:fixed;
    top:0;
    right:0;
    z-index:400;
    width:min(82vw,24rem);
    height:100vh;
    height:100dvh;
    padding:5.5rem 1.5rem 2rem;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:var(--green-900);
    border-left:1px solid var(--green-700);
    box-shadow:-2rem 0 4rem rgba(0,0,0,.35);
    transform:translateX(102%);
    visibility:hidden;
    transition:transform .3s var(--ease),visibility .3s var(--ease);
  }
  .site-nav[data-open]{
    transform:translateX(0);
    visibility:visible;
  }

  .nav-list{
    flex-direction:column;
    align-items:stretch;
    width:100%;
    overflow-x:visible;
  }
  .nav-link{
    min-height:3.2rem;
    padding:0 .75rem;
    border-bottom:1px solid var(--green-800);
  }
  .nav-link[aria-current="page"]{
    border-bottom-color:var(--gold);
    background:linear-gradient(90deg,rgba(212,175,55,.16),transparent);
  }
  .nav-note{
    display:block;
    align-self:auto;
    margin:2rem 0 0;
    padding-left:0;
    padding-top:1rem;
    border-left:0;
    border-top:1px solid var(--green-700);
    max-width:100%;
  }

  .footer-cols{
    grid-template-columns:1fr;
    gap:2.5rem;
  }
  .footer-insignia{
    grid-column:auto;
  }
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
  }
  .grid--halves,.grid--thirds,.grid--wide{
    grid-template-columns:1fr;
  }
}

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