*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body,h1,h2,h3,h4,h5,p,ul,ol,li,figure,blockquote,dl,dd,fieldset{margin:0}
ul,ol{padding:0;list-style:none}
img,picture,svg,video{display:block;max-width:100%;height:auto}
button{font:inherit;color:inherit}
a{color:inherit}
table{border-collapse:collapse}

:root{
  --zo-black:#0B0F0D;
  --zo-green:#0F2B24;
  --zo-moss:#3F5D4E;
  --zo-rock:#7C857F;
  --zo-clay:#B66A4A;
  --zo-cream:#F2EDE3;
  --zo-coldgray:#C8D0CB;
  --zo-lime:#C9FF3D;
  --zo-orange:#FF7A2F;
  --zo-white:#FFFFFF;
  --zo-line:rgba(200,208,203,.20);
  --zo-line-strong:rgba(200,208,203,.42);
  --zo-shadow:6px 6px 0 0 rgba(0,0,0,.55);
  --zo-shadow-soft:4px 4px 0 0 rgba(0,0,0,.5);
  --zo-font-head:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --zo-font-body:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --zo-font-num:"IBM Plex Mono","JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  --zo-radius:14px;
  --zo-radius-pill:999px;
  --zo-gutter:clamp(1rem,4vw,2.5rem);
  --zo-maxw:1240px;
  --zo-ease:cubic-bezier(.22,.7,.3,1);
}

body{
  min-height:100vh;
  font-family:var(--zo-font-body);
  font-size:clamp(1rem,1.05vw,1.125rem);
  line-height:1.75;
  letter-spacing:.01em;
  color:var(--zo-cream);
  background-color:var(--zo-black);
  background-image:
    radial-gradient(1100px 620px at 82% -12%,rgba(201,255,61,.07),transparent 70%),
    radial-gradient(900px 540px at -6% 18%,rgba(15,43,36,.95),transparent 68%),
    repeating-linear-gradient(90deg,rgba(124,133,127,.07) 0 1px,transparent 1px 96px);
  background-attachment:fixed;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4{font-family:var(--zo-font-head);font-weight:800;line-height:1.16;letter-spacing:.02em;color:var(--zo-cream)}
h1{font-size:clamp(2.6rem,5.5vw,5rem)}
h2{font-size:clamp(1.8rem,3.2vw,3rem)}
h3{font-size:clamp(1.25rem,1.8vw,1.6rem)}
h4{font-size:1.05rem;letter-spacing:.06em}
p{max-width:68ch}
strong{font-weight:800;color:var(--zo-white)}
::selection{background:var(--zo-lime);color:var(--zo-black)}

:focus-visible{outline:3px solid var(--zo-lime);outline-offset:3px;border-radius:4px}

#main-content{display:block;padding-top:clamp(6.2rem,9vw,7.6rem);scroll-margin-top:1rem}

/* ============ skip link ============ */
.zo-skip{
  position:fixed;top:.6rem;left:.8rem;z-index:200;
  padding:.7rem 1.15rem;
  border:2px solid var(--zo-lime);border-radius:var(--zo-radius-pill);
  background:var(--zo-lime);color:var(--zo-black);
  font-weight:800;font-size:.9rem;text-decoration:none;
  transform:translateY(-180%);
  transition:transform .18s var(--zo-ease);
}
.zo-skip:focus{transform:translateY(0)}

/* ============ header ============ */
.zo-header{
  position:fixed;inset:0 0 auto 0;z-index:80;
  padding:.7rem var(--zo-gutter) .8rem;
  background:linear-gradient(180deg,rgba(11,15,13,.97) 0%,rgba(11,15,13,.82) 58%,rgba(11,15,13,0) 100%);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
}
.zo-progress{
  position:absolute;top:0;left:0;right:0;height:3px;
  background:rgba(124,133,127,.24);
  overflow:hidden;
}
.zo-progress__bar{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--zo-lime) 0%,var(--zo-orange) 100%);
  transition:width .12s linear;
}
.zo-header__inner{
  position:relative;
  max-width:var(--zo-maxw);margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;
  gap:.7rem;
}

.zo-brand{
  display:inline-flex;align-items:center;gap:.6rem;
  padding:.4rem .95rem .4rem .45rem;
  border:2px solid var(--zo-line-strong);
  border-radius:var(--zo-radius-pill);
  background:rgba(15,43,36,.93);
  box-shadow:var(--zo-shadow-soft);
  text-decoration:none;
  transition:border-color .16s var(--zo-ease),box-shadow .16s var(--zo-ease),transform .16s var(--zo-ease);
}
.zo-brand:hover{border-color:var(--zo-lime);box-shadow:4px 4px 0 rgba(201,255,61,.32);transform:translate(-1px,-1px)}
.zo-brand__mark{
  display:grid;place-items:center;flex:0 0 38px;
  width:38px;height:38px;
  border-radius:10px;
  background:var(--zo-lime);color:var(--zo-black);
  font-family:var(--zo-font-num);font-weight:700;font-size:.82rem;letter-spacing:.06em;
}
.zo-brand__text{display:flex;flex-direction:column;line-height:1.18}
.zo-brand__name{font-family:var(--zo-font-head);font-weight:800;font-size:1rem;letter-spacing:.07em;color:var(--zo-cream)}
.zo-brand__line{font-family:var(--zo-font-num);font-size:.66rem;letter-spacing:.16em;color:var(--zo-coldgray)}

.zo-nav{
  display:flex;align-items:center;gap:.35rem;
  padding:.32rem .32rem .32rem .4rem;
  border:2px solid var(--zo-line-strong);
  border-radius:var(--zo-radius-pill);
  background:rgba(15,43,36,.9);
  box-shadow:var(--zo-shadow-soft);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
.zo-nav__list{display:flex;align-items:center;gap:.1rem;flex-wrap:wrap}
.zo-nav__item{display:block}
.zo-nav__link{
  display:block;
  padding:.5rem .78rem;
  border-radius:var(--zo-radius-pill);
  font-size:.9rem;font-weight:600;letter-spacing:.02em;
  color:var(--zo-coldgray);text-decoration:none;
  transition:color .16s var(--zo-ease),background-color .16s var(--zo-ease);
}
.zo-nav__link:hover{color:var(--zo-cream);background:rgba(63,93,78,.65)}
.zo-nav__link[aria-current="page"]{
  background:var(--zo-lime);color:var(--zo-black);font-weight:800;
  box-shadow:inset 0 0 0 1px rgba(11,15,13,.28);
}
.zo-nav__cta{
  margin-left:.3rem;
  padding:.52rem .95rem;
  border:2px solid var(--zo-orange);border-radius:var(--zo-radius-pill);
  background:var(--zo-orange);color:#180a03;
  font-weight:800;font-size:.85rem;letter-spacing:.06em;
  text-decoration:none;white-space:nowrap;
  transition:background-color .16s var(--zo-ease),box-shadow .16s var(--zo-ease),transform .16s var(--zo-ease);
}
.zo-nav__cta:hover{background:#ff9350;box-shadow:3px 3px 0 rgba(255,122,47,.35);transform:translate(-1px,-1px)}

.zo-nav__toggle{
  display:none;align-items:center;justify-content:center;gap:.5rem;
  min-width:44px;min-height:44px;
  padding:.5rem .8rem;
  border:2px solid var(--zo-line-strong);border-radius:14px;
  background:rgba(15,43,36,.96);color:var(--zo-cream);
  cursor:pointer;
  transition:border-color .16s var(--zo-ease),color .16s var(--zo-ease);
}
.zo-nav__toggle-text{font-family:var(--zo-font-num);font-size:.72rem;letter-spacing:.16em}
.zo-nav__bars{position:relative;display:block;width:20px;height:12px;color:currentColor}
.zo-nav__bars::before,.zo-nav__bars::after{
  content:"";position:absolute;left:0;width:20px;height:2px;
  background:currentColor;
  transition:top .2s var(--zo-ease),transform .2s var(--zo-ease);
}
.zo-nav__bars::before{top:0}
.zo-nav__bars::after{top:10px}
.zo-header[data-open] .zo-nav__toggle{border-color:var(--zo-lime);color:var(--zo-lime)}
.zo-header[data-open] .zo-nav__bars::before{top:5px;transform:rotate(45deg)}
.zo-header[data-open] .zo-nav__bars::after{top:5px;transform:rotate(-45deg)}

/* ============ mobile quickbar ============ */
.zo-quickbar{display:none}

/* ============ footer ============ */
.zo-footer{
  position:relative;
  margin-top:clamp(3rem,7vw,6rem);
  border-top:2px solid var(--zo-line-strong);
  background:linear-gradient(180deg,rgba(11,15,13,.45) 0%,rgba(11,15,13,0) 60%),var(--zo-green);
  color:var(--zo-cream);
}
.zo-footer::before{
  content:"";display:block;height:6px;
  background-image:repeating-linear-gradient(90deg,var(--zo-lime) 0 26px,transparent 26px 52px);
  background-color:var(--zo-black);
  opacity:.85;
}
.zo-footer__inner{
  max-width:var(--zo-maxw);margin-inline:auto;
  padding:clamp(1.8rem,4vw,3.2rem) var(--zo-gutter) clamp(1.6rem,3vw,2.2rem);
}
.zo-footer__top{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);
  gap:clamp(1.4rem,3vw,2.8rem);
  align-items:start;
}
.zo-footer__brand{
  display:grid;gap:.55rem;justify-items:start;
  padding:clamp(1rem,2vw,1.4rem);
  border:2px solid var(--zo-line);border-radius:var(--zo-radius);
  background:rgba(11,15,13,.5);
  box-shadow:var(--zo-shadow);
}
.zo-footer__brandname{
  font-family:var(--zo-font-head);font-weight:800;font-size:1.22rem;letter-spacing:.09em;color:var(--zo-cream);
}
.zo-footer__tagline{
  font-family:var(--zo-font-num);font-size:.7rem;letter-spacing:.18em;color:var(--zo-lime);
}
.zo-footer__note{
  font-size:.82rem;line-height:1.72;color:var(--zo-coldgray);max-width:36ch;
}
.zo-footer__cols{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2vw,2rem);
}
.zo-footer__col{display:grid;gap:.7rem;align-content:start}
.zo-footer__title{
  font-family:var(--zo-font-num);font-size:.76rem;font-weight:700;
  letter-spacing:.18em;color:var(--zo-lime);line-height:1.4;
  padding-bottom:.5rem;border-bottom:1px dashed var(--zo-line-strong);
}
.zo-footer__list{display:grid;gap:.42rem}
.zo-footer__link{
  display:inline-block;padding:.1rem 0;
  font-size:.9rem;color:var(--zo-coldgray);text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .16s var(--zo-ease),border-color .16s var(--zo-ease);
}
.zo-footer__link:hover{color:var(--zo-cream);border-bottom-color:var(--zo-lime)}

.zo-footer__contact{
  margin-top:clamp(1.3rem,3vw,2rem);
  display:grid;gap:.5rem;
  padding:clamp(.9rem,2vw,1.25rem);
  border:2px solid var(--zo-line);border-radius:var(--zo-radius);
  background:rgba(11,15,13,.42);
}
.zo-footer__contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .85rem}
.zo-footer__label{
  font-family:var(--zo-font-num);font-size:.7rem;letter-spacing:.16em;
  color:var(--zo-rock);min-width:5.5em;
}
.zo-footer__value{
  font-family:var(--zo-font-num);font-size:.84rem;letter-spacing:.03em;
  color:var(--zo-cream);word-break:break-word;
}
.zo-copy{
  padding:.28rem .7rem;
  border:1px solid var(--zo-line-strong);border-radius:var(--zo-radius-pill);
  background:transparent;color:var(--zo-coldgray);
  font-family:var(--zo-font-num);font-size:.72rem;letter-spacing:.1em;
  cursor:pointer;
  transition:border-color .16s var(--zo-ease),color .16s var(--zo-ease),background-color .16s var(--zo-ease);
}
.zo-copy:hover{border-color:var(--zo-lime);color:var(--zo-lime);background:rgba(201,255,61,.08)}
.zo-copy[data-copied="true"]{border-color:var(--zo-lime);color:var(--zo-black);background:var(--zo-lime)}

.zo-footer__bottom{
  margin-top:clamp(1.2rem,2.5vw,1.8rem);
  padding-top:1rem;
  border-top:1px solid var(--zo-line);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1.2rem;
  font-size:.78rem;color:var(--zo-rock);
}
.zo-footer__legal{font-family:var(--zo-font-num);letter-spacing:.08em;max-width:none}

/* ============ generic layout ============ */
.zo-container{
  width:100%;max-width:var(--zo-maxw);margin-inline:auto;
  padding-inline:var(--zo-gutter);
}
.zo-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:clamp(.9rem,2vw,1.5rem);
}

/* ============ panels ============ */
.zo-panel{
  padding:clamp(1.1rem,2.4vw,1.9rem);
  border:2px solid var(--zo-line);
  border-radius:var(--zo-radius);
  background:var(--zo-green);
  box-shadow:var(--zo-shadow);
}
.zo-panel--flat{
  background:rgba(15,43,36,.55);
  box-shadow:none;
}
.zo-panel--outline{
  background:transparent;
  border-style:dashed;
  border-color:var(--zo-line-strong);
  box-shadow:none;
}

/* ============ type helpers ============ */
.zo-eyebrow{
  display:inline-block;
  font-family:var(--zo-font-num);
  font-size:.74rem;font-weight:700;
  letter-spacing:.22em;
  color:var(--zo-lime);
  text-transform:uppercase;
}
.zo-num{
  font-family:var(--zo-font-num);
  font-variant-numeric:tabular-nums;
  letter-spacing:.06em;
}

/* ============ buttons ============ */
.zo-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:44px;
  padding:.72rem 1.3rem;
  border:2px solid var(--zo-lime);border-radius:var(--zo-radius-pill);
  background:var(--zo-lime);color:var(--zo-black);
  font-family:var(--zo-font-head);
  font-weight:800;font-size:.92rem;letter-spacing:.06em;
  text-decoration:none;cursor:pointer;
  transition:transform .16s var(--zo-ease),box-shadow .16s var(--zo-ease),background-color .16s var(--zo-ease),border-color .16s var(--zo-ease),color .16s var(--zo-ease);
}
.zo-btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 rgba(201,255,61,.35)}
.zo-btn--ghost{
  background:transparent;color:var(--zo-cream);
  border-color:var(--zo-line-strong);
}
.zo-btn--ghost:hover{border-color:var(--zo-lime);color:var(--zo-lime);box-shadow:5px 5px 0 rgba(15,43,36,.9)}
.zo-btn--orange{
  background:var(--zo-orange);border-color:var(--zo-orange);color:#180a03;
}
.zo-btn--orange:hover{box-shadow:5px 5px 0 rgba(255,122,47,.35)}

/* ============ tags ============ */
.zo-tag{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.28rem .62rem;
  border:1px solid var(--zo-line-strong);border-radius:6px;
  background:rgba(63,93,78,.4);color:var(--zo-coldgray);
  font-family:var(--zo-font-num);font-size:.72rem;font-weight:700;letter-spacing:.12em;
  line-height:1.5;
}
.zo-tag--lime{background:var(--zo-lime);border-color:var(--zo-lime);color:var(--zo-black)}
.zo-tag--orange{background:var(--zo-orange);border-color:var(--zo-orange);color:#180a03}
.zo-tag--clay{background:rgba(182,106,74,.3);border-color:var(--zo-clay);color:var(--zo-cream)}

/* ============ breadcrumbs ============ */
.zo-crumbs{
  display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;
  margin-bottom:1rem;
  font-size:.8rem;color:var(--zo-rock);
}
.zo-crumbs__link{
  color:var(--zo-coldgray);text-decoration:none;
  border-bottom:1px solid var(--zo-line-strong);
  transition:color .16s var(--zo-ease),border-color .16s var(--zo-ease);
}
.zo-crumbs__link:hover{color:var(--zo-lime);border-bottom-color:var(--zo-lime)}
.zo-crumbs__current{color:var(--zo-cream);font-weight:700}

/* ============ media shells ============ */
.zo-media{
  position:relative;display:block;overflow:hidden;
  border:2px solid var(--zo-line);border-radius:var(--zo-radius);
  background:linear-gradient(155deg,var(--zo-green) 0%,var(--zo-black) 78%);
  box-shadow:var(--zo-shadow);
}
.zo-media__img{display:block;width:100%;height:100%;object-fit:cover}
.zo-media--wide{aspect-ratio:16/9}
.zo-media--tall{aspect-ratio:3/4}
.zo-media--square{aspect-ratio:1/1}
.zo-media__grid{
  position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(200,208,203,.16) 1px,transparent 1px),
    linear-gradient(90deg,rgba(200,208,203,.16) 1px,transparent 1px);
  background-size:32px 32px;
  opacity:.55;
  mix-blend-mode:overlay;
}
.zo-media__stamp{
  position:absolute;left:.7rem;bottom:.7rem;
  padding:.24rem .55rem;
  border:1px solid var(--zo-line-strong);border-radius:6px;
  background:rgba(11,15,13,.8);color:var(--zo-lime);
  font-family:var(--zo-font-num);font-size:.72rem;letter-spacing:.12em;
}

/* ============ reveal ============ */
.zo-js [data-reveal]{
  opacity:0;transform:translateY(16px);
  transition:opacity .55s var(--zo-ease),transform .55s var(--zo-ease);
}
.zo-js [data-reveal].is-visible{opacity:1;transform:none}

/* ============ tablet ============ */
@media (max-width:1120px) and (min-width:901px){
  .zo-nav__link{padding:.45rem .55rem;font-size:.82rem}
  .zo-nav__cta{padding:.46rem .75rem;font-size:.78rem}
  .zo-brand__line{display:none}
}

/* ============ mobile ============ */
@media (max-width:900px){
  body{padding-bottom:calc(4.3rem + env(safe-area-inset-bottom))}
  .zo-header{padding:.55rem var(--zo-gutter) .6rem}
  .zo-header__inner{position:relative;gap:.5rem}
  .zo-brand{padding:.35rem .7rem .35rem .4rem}
  .zo-brand__mark{flex-basis:34px;width:34px;height:34px;font-size:.74rem}
  .zo-brand__name{font-size:.92rem}
  .zo-brand__line{display:none}
  .zo-nav__toggle{display:inline-flex}
  .zo-nav{
    position:absolute;
    top:calc(100% + .55rem);left:0;right:0;
    display:none;
    flex-direction:column;align-items:stretch;gap:.4rem;
    max-height:calc(100vh - 8rem);overflow:auto;
    padding:.6rem;
    border-radius:18px;
    background:rgba(15,43,36,.98);
    box-shadow:0 22px 46px rgba(0,0,0,.7),var(--zo-shadow);
  }
  .zo-header[data-open] .zo-nav{display:flex}
  .zo-nav__list{flex-direction:column;align-items:stretch;gap:.15rem;width:100%}
  .zo-nav__item{display:block;width:100%}
  .zo-nav__link{
    width:100%;padding:.8rem .9rem;border-radius:10px;
    font-size:.98rem;
  }
  .zo-nav__cta{
    display:block;margin:.25rem 0 0;padding:.75rem 1rem;
    text-align:center;font-size:.9rem;border-radius:10px;
  }
  .zo-quickbar{
    position:fixed;left:0;right:0;bottom:0;z-index:75;
    display:flex;align-items:stretch;gap:.25rem;
    padding:.45rem .5rem calc(.45rem + env(safe-area-inset-bottom));
    border-top:2px solid var(--zo-line-strong);
    background:rgba(11,15,13,.97);
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
  }
  .zo-quickbar__link{
    flex:1 1 0;min-height:44px;
    display:flex;align-items:center;justify-content:center;
    padding:.4rem .2rem;border-radius:10px;
    font-size:.76rem;font-weight:700;letter-spacing:.04em;
    color:var(--zo-coldgray);text-decoration:none;
    transition:color .16s var(--zo-ease),background-color .16s var(--zo-ease);
  }
  .zo-quickbar__link:hover{color:var(--zo-cream);background:rgba(63,93,78,.6)}
  .zo-quickbar__link[aria-current="page"]{background:var(--zo-lime);color:var(--zo-black)}
  .zo-footer__top{grid-template-columns:minmax(0,1fr)}
  .zo-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zo-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  #main-content{padding-top:clamp(5.2rem,14vw,6.4rem)}
}

@media (max-width:560px){
  body{font-size:1rem;line-height:1.72}
  .zo-footer__cols{grid-template-columns:minmax(0,1fr)}
  .zo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zo-footer__contact-row{align-items:flex-start}
  .zo-footer__label{min-width:100%}
  .zo-footer__legal{font-size:.72rem}
  .zo-copy{margin-left:0}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .zo-js [data-reveal]{opacity:1;transform:none}
  .zo-skip{transition:none}
}
