:root{
  --ink:#0B1F17;
  --ink-deep:#06120D;
  --cyan:#00E5C3;
  --cyan-bright:#7CF7E4;
  --red:#FF3B4E;
  --white:#F4FFF9;
  --grey:#8AA79B;
  --gold:#FFD166;
  --panel:#12352A;
  --line:#2AAE9B;
  --rail-w:268px;
  --topbar-h:64px;
  --r-lg:22px;
  --r-md:14px;
  --r-sm:8px;
  --wrap-w:1240px;
  --font-sans:system-ui,-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
  --font-display:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html.is-nav-open,html.is-nav-open body{overflow:hidden}
body{
  margin:0;
  min-height:100%;
  background-color:var(--ink);
  background-image:
    radial-gradient(1200px 620px at 88% -12%,rgba(0,229,195,.10),transparent 62%),
    radial-gradient(900px 520px at -12% 108%,rgba(255,59,78,.07),transparent 62%);
  background-attachment:fixed;
  color:var(--white);
  font-family:var(--font-sans);
  font-size:17px;
  line-height:1.75;
  letter-spacing:.005em;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.2;margin:0 0 .6em;font-weight:800;letter-spacing:-.012em;color:var(--white)}
p{margin:0 0 1em}
a{color:var(--cyan);text-decoration:none}
a:hover{color:var(--cyan-bright)}
img,svg,video{max-width:100%;display:block}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit}
[id]{scroll-margin-top:96px}
::selection{background:var(--cyan);color:#04241C}

:focus-visible{outline:2px solid var(--cyan-bright);outline-offset:3px;border-radius:4px}

@media (min-width:1024px){body{padding-left:var(--rail-w)}}
@media (max-width:1023.98px){body{padding-top:var(--topbar-h)}}

/* ---------- skip link ---------- */
.skip-link{
  position:fixed;top:10px;left:10px;z-index:120;
  display:inline-block;padding:10px 18px;border-radius:999px;
  background:var(--cyan);color:#04241C;font-weight:800;font-size:.86rem;
  transform:translateY(-180%);
  transition:transform .22s ease;
}
.skip-link:focus{transform:translateY(0);color:#04241C}

/* ---------- header shell ---------- */
.og-header{position:static}

/* ---------- topbar (mobile only) ---------- */
.og-topbar{display:none}
.og-topbar__brand{display:inline-flex;align-items:center;gap:10px;color:var(--white);text-decoration:none}
.og-topbar__name{font-family:var(--font-display);font-weight:800;font-size:.98rem;letter-spacing:.02em}

.og-logo{
  --s:1.5rem;
  position:relative;display:inline-block;flex:none;
  width:var(--s);height:var(--s);border-radius:calc(var(--s)*.3);
  background:linear-gradient(135deg,var(--cyan),#0a8f7c 70%);
  box-shadow:inset 0 0 0 1px rgba(124,247,228,.4),0 6px 18px -10px rgba(0,229,195,.9);
}
.og-logo--lg{--s:2.35rem}
.og-logo i{position:absolute;left:24%;right:24%;height:10%;border-radius:2px;background:var(--ink-deep)}
.og-logo i:nth-child(1){top:25%}
.og-logo i:nth-child(2){top:45%}
.og-logo i:nth-child(3){top:65%;right:auto;width:30%}

.og-burger{
  display:inline-flex;align-items:center;gap:9px;cursor:pointer;
  padding:8px 14px;border-radius:999px;
  background:rgba(0,229,195,.08);
  border:1px solid rgba(42,174,155,.5);
  color:var(--white);font-size:.8rem;font-weight:700;letter-spacing:.04em;
  transition:border-color .2s,background .2s;
}
.og-burger:hover{border-color:var(--cyan);background:rgba(0,229,195,.14)}
.og-burger__bars{position:relative;display:block;width:16px;height:10px}
.og-burger__bars::before,
.og-burger__bars::after{content:"";position:absolute;left:0;right:0;height:2px;border-radius:2px;background:var(--cyan);transition:transform .25s ease,top .25s ease}
.og-burger__bars::before{top:0}
.og-burger__bars::after{top:8px}
.og-burger[aria-expanded="true"] .og-burger__bars::before{top:4px;transform:rotate(45deg)}
.og-burger[aria-expanded="true"] .og-burger__bars::after{top:4px;transform:rotate(-45deg)}

.og-scrim{
  position:fixed;inset:0;z-index:65;
  background:rgba(3,10,7,.74);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
}
.og-scrim[data-open]{opacity:1;visibility:visible;pointer-events:auto}

/* ---------- rail ---------- */
.rail{
  position:fixed;top:0;bottom:0;left:0;z-index:70;
  width:var(--rail-w);
  display:flex;flex-direction:column;gap:20px;
  padding:26px 22px 22px;
  overflow-y:auto;overscroll-behavior:contain;
  background:linear-gradient(180deg,#0B1F17 0%,#06120D 100%);
  border-right:1px solid rgba(42,174,155,.32);
}
.rail::after{
  content:"";position:absolute;top:14%;right:-1px;width:5px;height:24%;
  background:linear-gradient(180deg,var(--cyan),rgba(0,229,195,0));
  opacity:.55;pointer-events:none;border-radius:3px;
}
.rail__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.rail__brand{display:flex;align-items:center;gap:12px;color:var(--white);text-decoration:none}
.rail__brand-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.rail__brand-text strong{font-family:var(--font-display);font-size:1.06rem;font-weight:800;letter-spacing:.03em;line-height:1.25}
.rail__brand-text em{font-style:normal;font-size:.72rem;color:var(--grey);letter-spacing:.08em}
.rail__close{
  display:none;place-items:center;flex:none;
  width:36px;height:36px;border-radius:50%;cursor:pointer;
  background:transparent;border:1px solid rgba(42,174,155,.5);
  transition:border-color .2s,background .2s;
}
.rail__close:hover{border-color:var(--cyan);background:rgba(0,229,195,.12)}
.rail__close span{position:relative;display:block;width:14px;height:14px}
.rail__close span::before,
.rail__close span::after{content:"";position:absolute;left:0;right:0;top:6px;height:2px;border-radius:2px;background:currentColor}
.rail__close span::before{transform:rotate(45deg)}
.rail__close span::after{transform:rotate(-45deg)}

.rail__nav{display:flex;flex-direction:column;gap:10px}
.rail__nav-title{
  display:flex;align-items:center;gap:10px;
  margin:0;font-size:.72rem;font-weight:700;letter-spacing:.2em;
  color:var(--grey);text-transform:uppercase;
}
.rail__list{display:flex;flex-direction:column;gap:3px}
.rail__link{
  position:relative;display:flex;align-items:baseline;gap:12px;
  padding:11px 14px 11px 18px;border-radius:12px;
  color:var(--grey);font-size:.97rem;font-weight:600;
  transition:color .2s ease,background .2s ease,transform .2s ease;
}
.rail__link::before{
  content:"";position:absolute;left:0;top:50%;width:3px;height:0;border-radius:3px;
  background:var(--cyan);transform:translateY(-50%);
  transition:height .26s ease,box-shadow .26s ease;
}
.rail__link:hover{color:var(--white);background:rgba(0,229,195,.07);transform:translateX(2px)}
.rail__link:hover::before{height:52%}
.rail__link[aria-current="page"]{
  color:var(--white);
  background:linear-gradient(90deg,rgba(0,229,195,.17),rgba(0,229,195,0));
}
.rail__link[aria-current="page"]::before{height:74%;box-shadow:0 0 14px var(--cyan)}
.rail__link[aria-current="page"] .rail__num{color:var(--cyan)}
.rail__num{font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--line);font-variant-numeric:tabular-nums}
.rail__label{min-width:0}

.rail__sections{display:flex;flex-direction:column;gap:10px;padding-top:18px;border-top:1px solid rgba(42,174,155,.24)}
.rail__sections[hidden]{display:none}
.rail__sections-list{display:flex;flex-direction:column;gap:2px}
.rail__sec-link{
  display:flex;align-items:baseline;gap:10px;
  padding:7px 12px 7px 18px;border-radius:10px;
  font-size:.83rem;color:var(--grey);
  border-left:1px solid transparent;
  transition:color .2s,background .2s,border-color .2s;
}
.rail__sec-link:hover{color:var(--white);background:rgba(0,229,195,.06)}
.rail__sec-link[aria-current="true"]{color:var(--cyan);border-left-color:var(--cyan);background:rgba(0,229,195,.09)}
.rail__sec-num{font-family:var(--font-mono);font-size:.7rem;color:var(--line);font-variant-numeric:tabular-nums}
.rail__sec-link[aria-current="true"] .rail__sec-num{color:var(--cyan)}

.rail__foot{margin-top:auto;display:flex;flex-direction:column;gap:9px;padding-top:18px;border-top:1px solid rgba(42,174,155,.24)}
.rail__note{display:flex;align-items:center;gap:8px;margin:4px 0 0;font-size:.74rem;color:var(--grey);letter-spacing:.04em}

/* ---------- progress + to top ---------- */
.og-progress{
  position:fixed;top:0;left:0;right:0;height:3px;z-index:110;
  background:rgba(0,229,195,.12);pointer-events:none;
}
.og-progress span{
  display:block;height:100%;width:100%;
  transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--cyan),var(--cyan-bright) 62%,var(--gold));
}
.og-totop{
  position:fixed;right:20px;bottom:20px;z-index:60;
  width:48px;height:48px;border-radius:50%;cursor:pointer;
  display:grid;place-items:center;
  background:rgba(18,53,42,.94);color:var(--cyan);
  border:1px solid rgba(42,174,155,.6);
  opacity:0;transform:translateY(14px);pointer-events:none;
  transition:opacity .26s ease,transform .26s ease,background .2s ease,color .2s ease;
}
.og-totop::before{
  content:"";width:10px;height:10px;
  border-left:2px solid currentColor;border-top:2px solid currentColor;
  transform:rotate(45deg) translate(2px,2px);
}
.og-totop[data-visible]{opacity:1;transform:none;pointer-events:auto}
.og-totop:hover{background:var(--cyan);color:#04241C}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 20px;border-radius:999px;border:1px solid transparent;
  font-family:var(--font-sans);font-size:.92rem;font-weight:700;letter-spacing:.02em;
  text-decoration:none;cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .2s ease,color .2s ease,border-color .2s ease;
}
.btn--primary{
  background:linear-gradient(120deg,var(--cyan),var(--cyan-bright));
  color:#04241C;
  box-shadow:0 10px 26px -14px rgba(0,229,195,.95);
}
.btn--primary:hover{transform:translateY(-2px);color:#04241C;box-shadow:0 16px 34px -14px rgba(0,229,195,1)}
.btn--ghost{background:transparent;color:var(--white);border-color:rgba(42,174,155,.55)}
.btn--ghost:hover{border-color:var(--cyan);color:var(--cyan);background:rgba(0,229,195,.08)}
.btn--block{width:100%}

/* ---------- footer ---------- */
.og-footer{
  position:relative;overflow:hidden;
  margin-top:clamp(52px,7vw,104px);
  padding:clamp(42px,6vw,76px) 0 26px;
  background:linear-gradient(180deg,#06120D 0%,#040C09 55%,#06120D 100%);
  border-top:1px solid rgba(42,174,155,.3);
}
.og-footer__glow{
  position:absolute;right:-12%;bottom:-52%;
  width:min(720px,86vw);aspect-ratio:1;
  background:radial-gradient(circle at 50% 50%,rgba(0,229,195,.16),transparent 66%);
  pointer-events:none;
}
.og-footer__inner{position:relative;z-index:1;width:min(100% - 40px,var(--wrap-w));margin-inline:auto}
.og-footer__grid{display:grid;grid-template-columns:1fr;gap:clamp(26px,4vw,48px)}
.og-footer__brand{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.og-footer__mark{display:inline-flex;align-items:center;gap:12px;color:var(--white);text-decoration:none}
.og-footer__mark strong{font-family:var(--font-display);font-size:1.12rem;font-weight:800;letter-spacing:.03em}
.og-footer__tagline{margin:0;font-size:.9rem;color:var(--cyan);letter-spacing:.08em}
.og-footer__note{margin:0;max-width:44ch;font-size:.84rem;line-height:1.85;color:var(--grey)}
.og-footer__col{display:flex;flex-direction:column;gap:12px}
.og-footer__col-title{
  display:flex;align-items:center;gap:9px;margin:0;
  font-size:.72rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);
}
.og-footer__col-title::before{content:"";width:18px;height:1px;background:var(--cyan)}
.og-footer__links{display:flex;flex-direction:column;gap:9px}
.og-footer__links a{
  position:relative;display:inline-block;
  font-size:.9rem;color:var(--grey);padding-left:14px;
  transition:color .2s ease,padding-left .2s ease;
}
.og-footer__links a::before{
  content:"";position:absolute;left:0;top:.66em;width:5px;height:1px;background:var(--line);
  transition:background .2s ease,width .2s ease;
}
.og-footer__links a:hover{color:var(--white);padding-left:18px}
.og-footer__links a:hover::before{width:9px;background:var(--cyan)}
.og-footer__contact{display:flex;flex-direction:column;gap:12px}
.og-footer__contact li{display:flex;flex-direction:column;gap:3px}
.og-footer__k{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;color:var(--line);text-transform:uppercase}
.og-footer__v{font-size:.87rem;line-height:1.7;color:var(--white);word-break:break-word}
.og-footer__bottom{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  margin-top:clamp(30px,4vw,52px);padding-top:20px;
  border-top:1px solid rgba(42,174,155,.26);
}
.og-footer__legal{margin:0;font-size:.79rem;color:var(--grey);letter-spacing:.03em}
.og-footer__meta{display:flex;align-items:center;gap:9px;margin:0;font-size:.78rem;color:var(--grey);letter-spacing:.1em}

/* ---------- shared page components ---------- */
.wrap{width:min(100% - 40px,var(--wrap-w));margin-inline:auto}
.wrap--narrow{width:min(100% - 40px,780px)}
.section{padding-block:clamp(40px,6vw,88px)}

.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-mono);font-size:.72rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--cyan);
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--cyan)}

.anno{
  font-family:var(--font-mono);font-size:.72rem;font-weight:700;
  letter-spacing:.18em;color:var(--cyan);text-transform:uppercase;
}

.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 18px;font-size:.8rem;color:var(--grey)}
.crumbs__item{display:inline-flex;align-items:center;gap:8px}
.crumbs__item a{color:var(--grey)}
.crumbs__item a:hover{color:var(--cyan)}
.crumbs__sep{color:var(--line)}

.tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 11px;border-radius:999px;
  font-size:.76rem;font-weight:700;letter-spacing:.02em;
  background:rgba(0,229,195,.12);color:var(--cyan-bright);
  border:1px solid rgba(0,229,195,.32);
}
.tag--red{background:rgba(255,59,78,.14);color:#FF8A96;border-color:rgba(255,59,78,.42)}
.tag--gold{background:rgba(255,209,102,.14);color:var(--gold);border-color:rgba(255,209,102,.42)}
.tag--mute{background:rgba(138,167,155,.12);color:var(--grey);border-color:rgba(138,167,155,.3)}

.panel{
  position:relative;
  padding:clamp(20px,3vw,32px);
  border-radius:var(--r-lg);
  background:linear-gradient(160deg,rgba(18,53,42,.92),rgba(11,31,23,.94));
  border:1px solid rgba(42,174,155,.28);
}
.panel__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel__title{margin:0;font-size:1.08rem;font-weight:800;letter-spacing:.01em}

.stat{display:flex;flex-direction:column;gap:6px}
.stat__num{
  font-family:var(--font-mono);font-weight:700;
  font-variant-numeric:tabular-nums;font-size:clamp(1.6rem,3vw,2.4rem);
  line-height:1.1;color:var(--cyan);
}
.stat__label{font-size:.8rem;color:var(--grey);letter-spacing:.04em}

.figure{margin:0}
.figure__media{
  position:relative;overflow:hidden;
  aspect-ratio:16/10;
  border-radius:var(--r-lg);
  background:linear-gradient(140deg,#0E2A21,#07160F);
  border:1px solid rgba(42,174,155,.25);
}
.figure__media img{width:100%;height:100%;object-fit:cover}
.figure__media::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,18,13,0) 52%,rgba(6,18,13,.62));
}
.figure__media--wide{aspect-ratio:21/9}
.figure__media--tall{aspect-ratio:4/5}
.figure__cap{margin-top:10px;font-size:.79rem;color:var(--grey);letter-spacing:.03em}
.ratio-wide{aspect-ratio:21/9}
.ratio-tall{aspect-ratio:4/5}

.dot{
  display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--cyan);box-shadow:0 0 0 3px rgba(0,229,195,.18);
  animation:pulse 2.4s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 3px rgba(0,229,195,.16)}
  50%{box-shadow:0 0 0 7px rgba(0,229,195,0)}
}

/* ---------- reveal ---------- */
.has-js [data-reveal]{
  opacity:0;transform:translateY(18px);
  transition:opacity .55s cubic-bezier(.22,.7,.24,1),transform .55s cubic-bezier(.22,.7,.24,1);
}
.has-js [data-reveal="in"]{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1023.98px){
  .og-topbar{
    position:fixed;top:0;left:0;right:0;z-index:80;
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    height:var(--topbar-h);padding:0 16px;
    background:rgba(6,18,13,.94);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(42,174,155,.3);
  }
  .og-topbar::after{
    content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
    background:linear-gradient(90deg,rgba(0,229,195,.7),rgba(0,229,195,0));
    pointer-events:none;
  }
  .rail{
    width:min(84vw,340px);
    z-index:90;
    transform:translateX(-104%);
    transition:transform .32s cubic-bezier(.22,.7,.24,1);
    box-shadow:26px 0 60px -32px rgba(0,0,0,.95);
  }
  .rail[data-open]{transform:translateX(0)}
  .rail__close{display:inline-grid}
  .og-scrim{display:block}
}
@media (min-width:1024px){
  .og-scrim{display:none}
  .rail__close{display:none}
}
@media (min-width:760px){
  .og-footer__grid{grid-template-columns:1.5fr 1fr 1fr}
  .og-footer__brand{grid-column:1 / -1}
}
@media (min-width:1080px){
  .og-footer__grid{grid-template-columns:1.6fr .85fr .85fr 1.05fr}
  .og-footer__brand{grid-column:auto}
}
@media (max-width:600px){
  body{font-size:16px}
  .wrap,.wrap--narrow,.og-footer__inner{width:min(100% - 28px,var(--wrap-w))}
  .og-totop{right:14px;bottom:14px;width:44px;height:44px}
  .og-footer__bottom{flex-direction:column;align-items:flex-start}
}

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