:root{
  --c-ink:#08161F;
  --c-deep:#0E2A27;
  --c-turf:#143A31;
  --c-line:#1F5546;
  --c-moss:#6C8C83;
  --c-fog:#E9F2EF;
  --c-cyan:#3FE0C8;
  --c-warn:#FF7A34;
  --c-warn-soft:#FFB37A;
  --c-steel:#7E93A6;
  --font-display:'Barlow Condensed','Oswald','Noto Sans SC','Source Han Sans SC',sans-serif;
  --font-body:'Noto Sans SC','Source Han Sans SC',system-ui,-apple-system,sans-serif;
  --font-num:'JetBrains Mono','IBM Plex Mono','Roboto Mono',monospace;
  --max:1280px;
  --pad:96px;
  --r-card:24px;
  --r-lg:32px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --t-enter:240ms;
  --t-switch:170ms;
  --t-hover:120ms;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--c-ink);
  color:var(--c-fog);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.85;
  font-weight:400;
  letter-spacing:.01em;
  background-image:
    linear-gradient(180deg,rgba(63,224,200,.05),rgba(8,22,31,0) 420px),
    repeating-linear-gradient(90deg,rgba(31,85,70,.16) 0 1px,transparent 1px 96px);
}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:700;
  line-height:.98;
  letter-spacing:-.01em;
  margin:0 0 .5em;
  color:var(--c-fog);
}
h1{font-size:clamp(2.4rem,6vw,5.6rem);}
h2{font-size:clamp(1.7rem,3.4vw,2.75rem);}
h3{font-size:1.25rem;line-height:1.3;}
p{margin:0 0 1.1em;max-width:68ch;}
a{color:var(--c-cyan);text-decoration:none;transition:color var(--t-hover) var(--ease);}
a:hover{color:var(--c-warn-soft);}
ul,ol{margin:0;padding:0;list-style:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
:focus-visible{outline:2px solid var(--c-cyan);outline-offset:3px;border-radius:4px;}

.ms-shell{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--pad);}
.ms-num{
  font-family:var(--font-num);
  font-variant-numeric:tabular-nums;
  font-feature-settings:'zero' 1;
  letter-spacing:.02em;
}
.ms-annot{font-size:13px;line-height:1.7;color:var(--c-moss);margin:0 0 .8em;}
.ms-badge{
  display:inline-flex;align-items:center;gap:.4em;
  height:28px;padding:0 14px;border-radius:999px;
  border:1px solid var(--c-line);background:rgba(20,58,49,.6);
  font-family:var(--font-num);font-size:12px;letter-spacing:.06em;
  color:var(--c-cyan);
}
.ms-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  min-height:44px;padding:0 22px;border-radius:999px;
  border:1px solid var(--c-line);background:var(--c-turf);color:var(--c-fog);
  font-size:15px;transition:background var(--t-hover) var(--ease),border-color var(--t-hover) var(--ease),color var(--t-hover) var(--ease);
}
.ms-btn:hover{background:var(--c-cyan);border-color:var(--c-cyan);color:var(--c-ink);}
.ms-breadcrumb{
  display:flex;flex-wrap:wrap;gap:.6em;align-items:center;
  font-size:13px;color:var(--c-moss);padding:28px 0 0;
}
.ms-breadcrumb a{color:var(--c-moss);}
.ms-breadcrumb a:hover{color:var(--c-cyan);}
.ms-breadcrumb li::after{content:"/";margin-left:.6em;color:var(--c-line);}
.ms-breadcrumb li:last-child::after{content:"";}

.ms-skip{
  position:absolute;left:-9999px;top:0;z-index:120;
  padding:12px 20px;border-radius:0 0 999px 0;
  background:var(--c-cyan);color:var(--c-ink);font-size:14px;
}
.ms-skip:focus{left:0;top:0;color:var(--c-ink);}

.ms-header{
  position:sticky;top:0;z-index:100;
  background:rgba(8,22,31,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(31,85,70,.55);
  transition:padding var(--t-enter) var(--ease),background var(--t-enter) var(--ease);
}
.ms-header__inner{
  display:flex;align-items:flex-start;justify-content:space-between;
  gap:24px;padding-top:22px;padding-bottom:16px;
  transition:padding var(--t-enter) var(--ease);
}
.ms-header.is-condensed .ms-header__inner{padding-top:10px;padding-bottom:8px;}
.ms-brand{display:flex;flex-direction:column;gap:6px;min-width:0;}
.ms-brand__mark{display:inline-flex;align-items:center;gap:10px;color:var(--c-fog);}
.ms-brand__mark:hover{color:var(--c-cyan);}
.ms-brand__glyph{
  width:22px;height:22px;flex:none;border-radius:7px;
  border:2px solid var(--c-cyan);
  background:linear-gradient(135deg,rgba(63,224,200,.35),rgba(8,22,31,0) 70%);
}
.ms-brand__name{
  font-family:var(--font-display);font-weight:700;font-size:1.35rem;
  letter-spacing:.02em;white-space:nowrap;
}
.ms-meta{
  margin:0;font-family:var(--font-num);font-size:12px;letter-spacing:.04em;
  color:var(--c-moss);white-space:nowrap;
}
.ms-nav{
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:flex-end;
}
.ms-nav__list{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.ms-nav__link{
  display:inline-flex;align-items:center;height:34px;padding:0 15px;
  border-radius:999px;border:1px solid transparent;
  color:var(--c-fog);font-size:14.5px;letter-spacing:.02em;
  transition:background var(--t-hover) var(--ease),color var(--t-hover) var(--ease),border-color var(--t-hover) var(--ease);
}
.ms-nav__link:hover{background:rgba(31,85,70,.5);border-color:var(--c-line);color:var(--c-fog);}
.ms-nav__link[aria-current="page"]{
  background:var(--c-turf);border-color:var(--c-cyan);color:var(--c-cyan);
}
.ms-cta{
  display:inline-flex;align-items:center;height:34px;padding:0 18px;
  border-radius:999px;background:var(--c-cyan);color:var(--c-ink);
  font-size:14px;font-weight:600;white-space:nowrap;
  transition:background var(--t-hover) var(--ease),color var(--t-hover) var(--ease);
}
.ms-cta:hover{background:var(--c-warn);color:var(--c-ink);}
.ms-cta--ghost{background:transparent;border:1px solid var(--c-cyan);color:var(--c-cyan);}
.ms-cta--ghost:hover{background:var(--c-cyan);color:var(--c-ink);}
.ms-ruler{
  height:10px;
  background-image:repeating-linear-gradient(90deg,var(--c-line) 0 1px,transparent 1px 24px);
  background-position:0 100%;background-size:100% 6px;background-repeat:repeat-x;
  opacity:.7;
}
.ms-progress{
  height:2px;width:0;background:var(--c-cyan);
  transition:width 120ms linear;
}
.ms-nav-toggle{
  display:none;align-items:center;gap:8px;height:40px;padding:0 16px;
  border-radius:999px;border:1px solid var(--c-line);background:rgba(14,42,39,.7);
}
.ms-nav-toggle__bar{display:block;width:16px;height:2px;background:var(--c-fog);border-radius:2px;}
.ms-nav-toggle__label{font-size:14px;}

.ms-footer{
  background:var(--c-deep);border-top:1px solid var(--c-line);
  margin-top:96px;padding:64px 0 32px;
}
.ms-footer__inner{
  display:grid;grid-template-columns:1.4fr 2.6fr;gap:48px;align-items:start;
}
.ms-footer__brand .ms-brand__name{font-size:1.2rem;}
.ms-footer__note{font-size:14px;line-height:1.8;color:var(--c-moss);max-width:44ch;margin:14px 0 12px;}
.ms-footer__stamp{font-family:var(--font-num);font-size:12px;color:var(--c-steel);margin:0;}
.ms-footer__cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;}
.ms-footer__title{
  font-family:var(--font-display);font-size:15px;letter-spacing:.08em;
  color:var(--c-cyan);margin:0 0 12px;font-weight:600;
}
.ms-footer__list li{margin-bottom:8px;}
.ms-footer__list a{color:var(--c-fog);font-size:14.5px;}
.ms-footer__list a:hover{color:var(--c-cyan);}
.ms-footer__legal{
  margin-top:48px;padding-top:20px;border-top:1px solid rgba(31,85,70,.6);
  display:flex;flex-direction:column;gap:6px;
}
.ms-footer__contact,.ms-footer__addr,.ms-footer__copy{
  margin:0;font-size:13px;line-height:1.7;color:var(--c-moss);max-width:none;
}
.ms-footer__copy{color:var(--c-steel);}

.ms-backtop{
  position:fixed;right:24px;bottom:24px;z-index:90;
  width:46px;height:46px;border-radius:999px;
  border:1px solid var(--c-line);background:rgba(20,58,49,.92);color:var(--c-cyan);
  font-size:18px;line-height:1;opacity:0;pointer-events:none;
  transition:opacity var(--t-switch) var(--ease),transform var(--t-switch) var(--ease);
}
.ms-backtop.is-visible{opacity:1;pointer-events:auto;}
.ms-backtop:hover{background:var(--c-cyan);color:var(--c-ink);}

.ms-section{padding:72px 0 0;}
.ms-section__head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:28px;}
.ms-section__title{margin:0;font-size:clamp(1.6rem,3vw,2.5rem);}
.ms-section__ruler{
  flex:1 1 120px;height:6px;min-width:80px;
  background-image:repeating-linear-gradient(90deg,var(--c-line) 0 1px,transparent 1px 16px);
  background-repeat:repeat-x;background-size:100% 6px;opacity:.8;
}
.ms-card{
  border:1px solid var(--c-line);border-radius:var(--r-card);
  padding:24px;background:rgba(8,22,31,.4);
}
.ms-card--data{background:var(--c-turf);border-color:rgba(63,224,200,.28);}
.ms-card--note{background:transparent;border-style:dashed;border-color:var(--c-moss);}
.ms-band{
  position:relative;border-radius:var(--r-lg);border:1px solid var(--c-line);
  padding:22px;overflow:hidden;
  background-color:var(--c-turf);
  background-image:repeating-linear-gradient(90deg,rgba(233,242,239,.05) 0 1px,transparent 1px 10px);
}
.ms-band--warn{border-color:rgba(255,122,52,.45);}

.ms-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;}
.ms-span-3{grid-column:span 3;}
.ms-span-4{grid-column:span 4;}
.ms-span-5{grid-column:span 5;}
.ms-span-6{grid-column:span 6;}
.ms-span-7{grid-column:span 7;}
.ms-span-8{grid-column:span 8;}
.ms-span-12{grid-column:span 12;}

.ms-img{
  display:block;width:100%;aspect-ratio:16/10;border-radius:var(--r-card);
  border:1px solid var(--c-line);overflow:hidden;background:var(--c-deep);
  background-image:
    radial-gradient(120% 90% at 50% 0%,rgba(63,224,200,.14),rgba(8,22,31,0) 60%),
    repeating-linear-gradient(90deg,rgba(31,85,70,.4) 0 1px,transparent 1px 48px);
}
.ms-img > img{display:block;width:100%;height:100%;object-fit:cover;}
.ms-img--wide{aspect-ratio:21/9;}
.ms-img--band{aspect-ratio:3/1;border-radius:var(--r-lg);}
.ms-img figcaption{font-size:13px;color:var(--c-moss);padding:10px 4px 0;}

[data-reveal]{opacity:0;transform:translateX(-16px);transition:opacity var(--t-enter) var(--ease),transform var(--t-enter) var(--ease);}
[data-reveal].is-revealed{opacity:1;transform:none;}

.ms-toc{
  position:fixed;left:20px;top:50%;transform:translateY(-50%);z-index:60;
  display:flex;flex-direction:column;gap:14px;width:6px;
}
.ms-toc__link{position:relative;display:block;width:6px;height:6px;border-radius:50%;background:var(--c-line);}
.ms-toc__link span{
  position:absolute;left:18px;top:-4px;white-space:nowrap;font-size:12px;color:var(--c-moss);
  opacity:0;transition:opacity var(--t-switch) var(--ease),transform var(--t-switch) var(--ease);
  transform:translateX(-6px);
}
.ms-toc__link:hover span,.ms-toc__link.is-active span{opacity:1;transform:none;}
.ms-toc__link.is-active{background:var(--c-cyan);height:18px;border-radius:999px;transition:height 200ms var(--ease);}

@media (max-width:1100px){
  :root{--pad:48px;}
  .ms-footer__inner{grid-template-columns:1fr;gap:36px;}
  .ms-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ms-meta{white-space:normal;}
}
@media (max-width:860px){
  :root{--pad:20px;}
  body{font-size:16px;}
  .ms-header__inner{flex-wrap:wrap;align-items:center;padding-top:14px;padding-bottom:12px;gap:12px;}
  .ms-nav-toggle{display:inline-flex;}
  .ms-nav{
    display:none;flex-basis:100%;flex-direction:column;align-items:flex-start;gap:10px;
    padding:12px 0 4px;
  }
  .ms-nav[data-open]{display:flex;}
  .ms-nav__list{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;width:100%;gap:8px;padding-bottom:6px;}
  .ms-nav__list::-webkit-scrollbar{height:4px;}
  .ms-nav__list::-webkit-scrollbar-thumb{background:var(--c-line);border-radius:99px;}
  .ms-nav__link{border:1px solid var(--c-line);background:rgba(14,42,39,.6);white-space:nowrap;}
  .ms-header.is-condensed .ms-header__inner{padding-top:10px;padding-bottom:10px;}
  .ms-section{padding-top:52px;}
  .ms-footer{margin-top:64px;padding-top:48px;}
  .ms-footer__cols{grid-template-columns:minmax(0,1fr);gap:8px;}
  .ms-footer__title{margin-top:18px;}
  .ms-backtop{right:16px;bottom:16px;}
}
@media (max-width:640px){
  .ms-grid{gap:16px;}
  .ms-span-3,.ms-span-4,.ms-span-5,.ms-span-6,.ms-span-7,.ms-span-8{grid-column:span 12;}
  .ms-img--wide,.ms-img--band{aspect-ratio:16/9;}
  .ms-card{padding:18px;border-radius:20px;}
  .ms-toc{display:none;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition-duration:1ms !important;animation-duration:1ms !important;}
  [data-reveal]{opacity:1;transform:none;}
}
