*,*::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,ul,ol,figure,blockquote,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{border:0;background:none;cursor:pointer}
img,picture,svg{display:block;max-width:100%}
[hidden]{display:none!important}

:root{
  --polar-900:#0B1F33;
  --polar-800:#12314D;
  --ice:#F4F8FA;
  --paper:#EFE9DC;
  --orange:#FF6B2C;
  --cyan:#4FF0C0;
  --stone:#6F7772;
  --moss:#3F5D4A;
  --clay:#B4653F;
  --ink:#101418;
  --ice-line:#CFE3EE;
  --font-display:"Arial Narrow","Helvetica Neue Condensed","PingFang SC","Microsoft YaHei",sans-serif;
  --font-body:"Noto Sans SC","PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
  --font-mono:"JetBrains Mono","IBM Plex Mono",ui-monospace,SFMono-Regular,Consolas,monospace;
  --gutter:clamp(18px,4vw,64px);
  --shell:min(1440px,calc(100% - var(--gutter) * 2));
  --header-height:84px;
}

body{
  min-height:100vh;
  background:var(--ice);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:clamp(16px,.32vw + 15px,18px);
  line-height:1.75;
}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:900;
  line-height:1.06;
  letter-spacing:-.02em;
}
p{max-width:75ch}
.mono{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:.02em;
}
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.skip-link{
  position:fixed;
  top:10px;
  left:10px;
  z-index:200;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:10px 16px;
  background:var(--orange);
  color:var(--polar-900);
  font-weight:900;
  text-decoration:none;
  box-shadow:4px 4px 0 var(--cyan);
  transform:translateY(-160%);
  transition:transform .18s ease;
}
.skip-link:focus{transform:translateY(0)}
:where(a,button,[tabindex]):focus-visible{
  outline:3px solid var(--orange);
  outline-offset:3px;
  box-shadow:0 0 0 6px rgba(11,31,51,.35);
}

.site-header{
  position:sticky;
  top:0;
  z-index:80;
  background:rgba(11,31,51,.97);
  color:var(--ice);
  border-bottom:1px solid rgba(207,227,238,.2);
  transition:background .22s ease,box-shadow .22s ease;
}
@supports (backdrop-filter:blur(10px)){
  .site-header{backdrop-filter:blur(14px);background:rgba(11,31,51,.88)}
}
.site-header::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:3px;
  background:linear-gradient(90deg,var(--orange) 0 88px,var(--cyan) 88px 132px,transparent 132px);
  pointer-events:none;
}
.site-header[data-scrolled]{
  background:rgba(11,31,51,.98);
  box-shadow:0 18px 36px rgba(2,10,18,.28);
}
.header-inner{
  width:var(--shell);
  min-height:var(--header-height);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(18px,4vw,64px);
}
.brand-cluster{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.brand-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-height:44px;
  color:var(--ice);
  text-decoration:none;
}
.brand-mark{
  position:relative;
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:block;
  overflow:hidden;
  background:var(--polar-800);
  border:1.5px solid var(--ice-line);
  box-shadow:4px 4px 0 var(--orange);
}
.brand-mark::before{
  content:"";
  position:absolute;
  inset:7px;
  background:linear-gradient(135deg,var(--ice) 0 44%,transparent 44% 56%,var(--cyan) 56% 100%);
  clip-path:polygon(0 0,100% 0,62% 100%,0 100%);
}
.brand-mark::after{
  content:"";
  position:absolute;
  top:6px;
  right:6px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--orange);
}
.brand-copy{display:grid;gap:2px;min-width:0}
.brand-name{
  display:block;
  color:var(--ice);
  font-family:var(--font-display);
  font-size:clamp(21px,1.35vw,27px);
  font-weight:900;
  line-height:1;
  letter-spacing:.06em;
  white-space:nowrap;
}
.brand-sub{
  display:block;
  color:var(--ice-line);
  font-family:var(--font-mono);
  font-size:10px;
  line-height:1.4;
  letter-spacing:.12em;
  white-space:nowrap;
}
.cn-chip{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:2px 8px;
  border:1px solid var(--orange);
  color:var(--orange);
  font-size:10px;
  line-height:1;
  letter-spacing:.08em;
  white-space:nowrap;
}
.header-tools{
  display:flex;
  align-items:center;
  gap:clamp(12px,2vw,28px);
}
.site-nav{display:block}
.nav-list{
  display:flex;
  align-items:center;
  gap:clamp(12px,1.5vw,24px);
}
.nav-item{position:relative}
.nav-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  color:var(--ice);
  text-decoration:none;
  font-size:14px;
  font-weight:700;
  letter-spacing:.02em;
  transition:color .18s ease;
}
.nav-link::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:8px;
  height:2px;
  background:var(--orange);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s ease;
}
.nav-link:hover{color:var(--cyan)}
.nav-link:hover::after,
.nav-link:focus-visible::after,
.nav-link[aria-current="page"]::after{transform:scaleX(1)}
.nav-link[aria-current="page"]{color:var(--orange)}
.header-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:9px 14px;
  background:var(--orange);
  color:var(--polar-900);
  border:1px solid var(--orange);
  box-shadow:4px 4px 0 var(--cyan);
  font-size:14px;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.header-cta:hover{
  transform:translate(-1px,-2px);
  box-shadow:6px 7px 0 var(--cyan);
  background:#ff7c47;
}
.route-arrow{
  font-family:var(--font-mono);
  font-size:1.12em;
  line-height:1;
}
.nav-toggle{
  display:none;
  width:48px;
  height:48px;
  flex:0 0 48px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(207,227,238,.42);
  color:var(--ice);
  background:transparent;
}
.nav-toggle-box{
  width:24px;
  display:grid;
  gap:5px;
}
.nav-toggle-line{
  display:block;
  width:24px;
  height:2px;
  background:currentColor;
  transition:transform .2s ease,opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.site-footer{
  position:relative;
  overflow:hidden;
  background:var(--polar-900);
  color:var(--ice);
  border-top:4px solid var(--orange);
}
.site-footer::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:repeating-linear-gradient(135deg,rgba(244,248,250,.028) 0 1px,transparent 1px 14px);
  opacity:.7;
}
.footer-signal,
.footer-shell{position:relative;z-index:1}
.footer-signal{
  width:var(--shell);
  margin:0 auto;
  padding:clamp(32px,5vw,64px) 0 0;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  border-bottom:1px solid rgba(207,227,238,.22);
}
.footer-kicker{
  color:var(--cyan);
  font-family:var(--font-mono);
  font-size:11px;
  line-height:1.4;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.footer-home-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding-bottom:18px;
  color:var(--orange);
  border-bottom:2px solid transparent;
  font-size:14px;
  font-weight:900;
  line-height:1;
  letter-spacing:.04em;
  text-decoration:none;
  transition:color .18s ease,border-color .18s ease;
}
.footer-home-link:hover{color:var(--cyan);border-bottom-color:var(--cyan)}
.footer-shell{
  width:var(--shell);
  margin:0 auto;
  padding:clamp(20px,3vw,34px) 0 clamp(28px,4vw,48px);
}
.footer-stack{display:grid;gap:20px}
.footer-direct{
  padding:clamp(18px,2.4vw,28px);
  background:var(--paper);
  color:var(--ink);
  border:1px solid rgba(11,31,51,.22);
  box-shadow:10px 10px 0 rgba(79,240,192,.16),18px 18px 0 rgba(255,107,44,.1);
}
.footer-heading{
  margin:0 0 14px;
  color:var(--moss);
  font-family:var(--font-display);
  font-size:14px;
  font-weight:900;
  line-height:1.3;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.footer-route-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.footer-route{
  display:flex;
  align-items:baseline;
  gap:10px;
  min-height:54px;
  padding:12px 14px;
  background:var(--ice);
  color:var(--ink);
  border:1px solid rgba(11,31,51,.15);
  text-decoration:none;
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.footer-route:hover{
  transform:translateY(-2px);
  background:var(--cyan);
  box-shadow:4px 4px 0 var(--orange);
}
.footer-route-index{
  flex:0 0 auto;
  color:var(--moss);
  font-size:11px;
}
.footer-route-label{
  font-size:14px;
  font-weight:800;
  line-height:1.35;
}
.footer-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(20px,3vw,48px);
  padding:clamp(26px,4vw,48px) 0;
  border-bottom:1px solid rgba(207,227,238,.18);
}
.footer-col{min-width:0}
.footer-list{display:grid;gap:8px}
.footer-link{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  color:var(--ice-line);
  font-size:14px;
  line-height:1.5;
  text-decoration:none;
  transition:color .18s ease,transform .18s ease;
}
.footer-link::before{
  content:"↳";
  width:0;
  overflow:hidden;
  opacity:0;
  color:var(--orange);
  transform:translateX(-4px);
  transition:width .18s ease,opacity .18s ease,transform .18s ease;
}
.footer-link:hover{
  color:var(--orange);
  transform:translateX(2px);
}
.footer-link:hover::before{
  width:16px;
  opacity:1;
  transform:translateX(0);
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:14px;
  color:var(--ice);
  text-decoration:none;
}
.footer-brand-text{display:grid;gap:2px;min-width:0}
.footer-meta{
  margin-bottom:14px;
  color:var(--ice-line);
  font-size:13px;
  line-height:1.7;
}
.footer-contact-line{
  margin-bottom:10px;
  color:var(--ice);
  font-family:var(--font-mono);
  font-size:12px;
  line-height:1.7;
  overflow-wrap:anywhere;
}
.footer-note{
  max-width:36ch;
  margin-top:10px;
  color:var(--ice-line);
  font-size:12px;
  line-height:1.7;
}
.footer-base{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px 28px;
  padding-top:20px;
  color:var(--ice-line);
  font-size:12px;
  line-height:1.7;
}
.footer-legal{
  margin:0;
  font-family:var(--font-mono);
}
.footer-legal-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
}
.footer-legal-nav .footer-link{
  min-height:24px;
  font-size:12px;
}

.content-shell{
  width:var(--shell);
  margin-inline:auto;
}
.page-shell{
  width:min(1600px,calc(100% - var(--gutter) * 2));
  margin-inline:auto;
}
.breadcrumb{
  margin:18px 0;
  color:var(--stone);
  font-family:var(--font-mono);
  font-size:12px;
  line-height:1.5;
}
.breadcrumb-list{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.breadcrumb-list li+li::before{
  content:"/";
  margin-right:8px;
  color:var(--clay);
}
.breadcrumb a{
  color:var(--moss);
  text-decoration:none;
}
.breadcrumb a:hover{color:var(--orange)}
.prose{
  max-width:70ch;
  color:var(--ink);
  font-size:1rem;
  line-height:1.8;
}
.prose > * + *{margin-top:1em}
.prose h2,.prose h3{margin-top:1.4em;color:var(--polar-900)}
.prose a{color:var(--moss);text-decoration-thickness:.08em;text-underline-offset:.18em}
.prose a:hover{color:var(--orange)}
.chapter-index{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:1px;
  background:var(--ice-line);
  border:1px solid var(--ice-line);
}
.chapter-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:52px;
  padding:12px 16px;
  background:var(--ice);
  color:var(--ink);
  border-left:3px solid transparent;
  font-family:var(--font-mono);
  font-size:12px;
  font-weight:600;
  line-height:1.4;
  text-decoration:none;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
.chapter-link:hover{
  background:var(--paper);
  border-left-color:var(--orange);
  transform:translateY(-1px);
}
.chapter-link[data-active]{
  background:var(--polar-900);
  color:var(--cyan);
  border-left-color:var(--orange);
}
.chapter-jump{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--moss);
  font-family:var(--font-mono);
  font-size:12px;
  line-height:1.4;
  text-decoration:none;
}
.chapter-jump:hover{color:var(--orange)}
.filter-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
.filter-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:7px 13px;
  background:transparent;
  color:var(--ink);
  border:1px solid rgba(16,20,24,.24);
  font-family:var(--font-body);
  font-size:13px;
  font-weight:600;
  line-height:1;
  letter-spacing:.02em;
  transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.filter-chip:hover{border-color:var(--orange);color:var(--clay)}
.filter-chip[aria-pressed="true"]{
  background:var(--polar-900);
  color:var(--ice);
  border-color:var(--orange);
  box-shadow:3px 3px 0 var(--cyan);
}
.filter-count{
  color:var(--moss);
  font-family:var(--font-mono);
  font-size:12px;
  line-height:1.4;
}
.filter-item{transition:opacity .18s ease,transform .18s ease}
.data-stamp{
  display:inline-flex;
  align-items:baseline;
  gap:6px;
  padding:5px 9px;
  background:var(--polar-900);
  color:var(--cyan);
  border:1px solid rgba(79,240,192,.35);
  font-family:var(--font-mono);
  font-size:12px;
  line-height:1.2;
}
.paper-card{
  padding:clamp(18px,3vw,32px);
  background:var(--paper);
  color:var(--ink);
  border:1px solid rgba(11,31,51,.18);
  box-shadow:8px 8px 0 rgba(63,93,74,.12),16px 16px 0 rgba(180,101,63,.09);
}
.media-frame{
  --media-ratio:16 / 10;
  position:relative;
  aspect-ratio:var(--media-ratio);
  overflow:hidden;
  background:var(--polar-800);
  border:1px solid var(--ice-line);
}
.media-frame--wide{--media-ratio:21 / 9}
.media-frame--square{--media-ratio:1 / 1}
.media-frame__img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.92) contrast(1.04);
}
.media-frame::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(120deg,rgba(11,31,51,.36),transparent 42%);
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:10px 16px;
  border:1px solid transparent;
  font-size:14px;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,border-color .18s ease;
}
.btn--primary{
  background:var(--orange);
  color:var(--polar-900);
  border-color:var(--orange);
  box-shadow:4px 4px 0 var(--cyan);
}
.btn--primary:hover{
  transform:translate(-1px,-2px);
  box-shadow:6px 7px 0 var(--cyan);
}
.btn--ghost{
  background:transparent;
  color:var(--moss);
  border-color:rgba(63,93,74,.45);
}
.btn--ghost:hover{
  color:var(--orange);
  border-color:var(--orange);
}
.tag{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:3px 9px;
  background:var(--paper);
  color:var(--moss);
  border:1px solid rgba(63,93,74,.28);
  font-family:var(--font-mono);
  font-size:11px;
  line-height:1.2;
  letter-spacing:.04em;
}
.route-line{
  position:relative;
  display:grid;
  gap:12px;
  padding-left:22px;
}
.route-line::before{
  content:"";
  position:absolute;
  left:7px;
  top:5px;
  bottom:5px;
  width:1px;
  background:var(--orange);
}
.route-node{
  position:relative;
  padding-left:4px;
}
.route-node::before{
  content:"";
  position:absolute;
  left:-20px;
  top:.6em;
  width:9px;
  height:9px;
  background:var(--ice);
  border:2px solid var(--orange);
  border-radius:50%;
}

@media (max-width:980px){
  .site-header{--header-height:72px}
  .header-inner{gap:12px}
  .header-tools{gap:10px}
  .header-cta{display:none}
  .nav-toggle{display:inline-flex}
  .site-nav{
    position:fixed;
    top:var(--header-height);
    left:0;
    right:0;
    z-index:79;
    width:100%;
    max-height:calc(100dvh - var(--header-height));
    overflow:auto;
    padding:16px var(--gutter) 28px;
    background:var(--polar-900);
    border-bottom:1px solid var(--ice-line);
    box-shadow:0 18px 40px rgba(0,0,0,.35);
    opacity:0;
    visibility:hidden;
    transform:translateY(-10px);
    pointer-events:none;
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
  }
  .site-nav[data-open]{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
  }
  .nav-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 18px;
  }
  .nav-link{
    width:100%;
    min-height:56px;
    padding:0 0 0 14px;
    border-bottom:1px solid rgba(207,227,238,.18);
  }
  .nav-link::after{
    left:0;
    right:auto;
    bottom:0;
    width:4px;
    height:100%;
    transform:scaleY(0);
    transform-origin:top;
  }
  .nav-link:hover::after,
  .nav-link:focus-visible::after,
  .nav-link[aria-current="page"]::after{transform:scaleY(1)}
  .nav-link[aria-current="page"]{background:rgba(255,107,44,.08)}
  body.nav-open{overflow:hidden}
  .footer-route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:620px){
  .cn-chip{display:none}
  .brand-mark{
    width:38px;
    height:38px;
    flex-basis:38px;
    box-shadow:3px 3px 0 var(--orange);
  }
  .brand-name{font-size:19px}
  .brand-sub{font-size:9px;letter-spacing:.06em}
  .nav-list{grid-template-columns:1fr}
  .site-nav{padding-top:8px}
  .footer-signal{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }
  .footer-home-link{padding-bottom:14px}
  .footer-direct{
    box-shadow:6px 6px 0 rgba(79,240,192,.16),12px 12px 0 rgba(255,107,44,.1);
  }
  .footer-route-grid,
  .footer-grid{grid-template-columns:1fr}
  .footer-base{display:grid}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
  .skip-link,
  .header-cta,
  .footer-route,
  .footer-link,
  .chapter-link,
  .filter-chip,
  .btn{transform:none!important}
}
