:root {
  --color-primary: #FF6B35;
  --color-secondary: #8B5CF6;
  --color-background: #0B1A3B;
  --color-text: #FFFFFF;
  --color-muted: #A0AEC0;
  --color-dark: #07122A;
  --color-glass-bg: rgba(255,255,255,0.06);
  --color-glass-border: rgba(255,255,255,0.08);
  --color-glass-hover: rgba(255,255,255,0.1);
  --color-active-bg: rgba(255,107,53,0.18);
  --color-active-border: rgba(255,107,53,0.25);
  --font-default: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans SC", sans-serif;
  --radius-glass: 20px;
  --radius-pill: 24px;
  --transition-default: 0.2s ease;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,"Noto Sans SC",sans-serif;background:#0B1A3B;color:#FFFFFF;line-height:1.6;min-height:100vh;overflow-x:hidden}
:focus-visible{outline:2px solid #FF6B35;outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}}
img{max-width:100%;height:auto;display:block}
a{color:#FFFFFF;text-decoration:none;transition:color 0.2s ease}
a:hover{color:#FF6B35}
ul{list-style:none}

/* skip link */
.skip-link{position:absolute;top:-100%;left:1rem;z-index:9999;padding:0.75rem 1.5rem;background:#FF6B35;color:#0B1A3B;font-weight:700;border-radius:0 0 8px 8px;transition:top 0.2s}
.skip-link:focus{top:0;color:#0B1A3B}

/* header - left floating island */
.site-header{position:fixed;left:1.5rem;top:50%;transform:translateY(-50%);z-index:1000;background:rgba(255,255,255,0.06);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,0.08);border-radius:20px;padding:1.25rem 0.75rem;width:auto;box-shadow:0 8px 32px rgba(0,0,0,0.4)}
.header-inner{display:flex;flex-direction:column;align-items:center;gap:0.5rem}
.brand{text-align:center;padding-bottom:0.75rem;border-bottom:1px solid rgba(255,255,255,0.08);width:100%}
.brand-link{display:flex;flex-direction:column;align-items:center;gap:0.1rem;color:#FFFFFF;text-decoration:none}
.brand-link:hover{color:#FF6B35}
.brand-logo{font-size:1.25rem;font-weight:900;letter-spacing:0.02em;line-height:1.2}
.brand-sub{font-size:0.65rem;font-weight:300;letter-spacing:0.15em;color:#A0AEC0;text-transform:uppercase}

/* nav toggle */
.nav-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;width:40px;height:40px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);border-radius:12px;cursor:pointer;padding:10px;gap:4px;transition:background 0.2s}
.nav-toggle:hover{background:rgba(255,255,255,0.14)}
.nav-toggle-line{display:block;width:20px;height:2px;background:#FFFFFF;border-radius:2px;transition:transform 0.3s,opacity 0.3s}
.nav-toggle[aria-expanded="true"] .nav-toggle-line:nth-child(1){transform:translateY(6px) 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(-6px) rotate(-45deg)}

/* site nav */
.site-nav{width:100%}
.nav-list{display:flex;flex-direction:column;gap:0.35rem}
.nav-item{list-style:none}
.nav-link{display:flex;align-items:center;gap:0.6rem;padding:0.55rem 1rem;border-radius:24px;color:#FFFFFF;font-size:0.875rem;font-weight:500;text-decoration:none;transition:background 0.25s,color 0.25s,box-shadow 0.25s;white-space:nowrap;position:relative;overflow:hidden}
.nav-link::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#FF6B35,#8B5CF6);border-radius:0 3px 3px 0;transform:translateX(-100%);transition:transform 0.3s ease}
.nav-link:hover{background:rgba(255,255,255,0.1);color:#FFFFFF}
.nav-link:hover::before{transform:translateX(0)}
.nav-link[aria-current="page"]{background:rgba(255,107,53,0.18);color:#FF6B35;box-shadow:inset 0 0 0 1px rgba(255,107,53,0.25)}
.nav-link[aria-current="page"]::before{transform:translateX(0);background:#FF6B35}
.nav-icon{font-size:1rem;line-height:1;flex-shrink:0;width:1.2rem;text-align:center}
.nav-label{font-size:0.8rem;font-weight:500;letter-spacing:0.01em}

/* main content offset */
#main-content{min-height:80vh;padding:2rem 2rem 2rem 7rem;position:relative;z-index:1}

/* footer */
.site-footer{position:relative;z-index:1;background:#07122A;padding:2.5rem 2rem 1.5rem 7rem;margin-top:3rem;border-top:1px solid rgba(255,255,255,0.04)}
.footer-inner{max-width:1200px;margin:0 auto}
.footer-divider{height:2px;background:linear-gradient(90deg,transparent,#8B5CF6,transparent);margin-bottom:2rem;border-radius:2px;opacity:0.5}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1.6fr;gap:2.5rem;margin-bottom:2rem}
.footer-brand{display:flex;flex-direction:column;gap:0.3rem}
.footer-logo{font-size:1.4rem;font-weight:900;color:#FFFFFF;letter-spacing:0.02em}
.footer-sub{font-size:0.7rem;font-weight:300;color:#A0AEC0;letter-spacing:0.15em;text-transform:uppercase}
.footer-tagline{font-size:0.85rem;color:#A0AEC0;margin-top:0.25rem;font-weight:400}
.footer-links,.footer-contact{display:flex;flex-direction:column;gap:0.5rem}
.footer-links-title,.footer-contact-title{font-size:0.75rem;font-weight:700;color:#FFFFFF;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.25rem}
.footer-link{font-size:0.85rem;color:#A0AEC0;text-decoration:none;transition:color 0.2s;padding:0.15rem 0}
.footer-link:hover{color:#FF6B35}
.footer-contact-item{font-size:0.82rem;color:#A0AEC0;line-height:1.5}
.footer-bottom{padding-top:1.25rem;border-top:1px solid rgba(255,255,255,0.06);text-align:center;font-size:0.78rem;color:#A0AEC0;letter-spacing:0.02em}

/* scroll-top button */
.scroll-top{position:fixed;bottom:2rem;right:2rem;z-index:900;width:48px;height:48px;border-radius:50%;background:#FF6B35;color:#0B1A3B;border:none;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(255,107,53,0.35);opacity:0;visibility:hidden;transform:scale(0.8);transition:opacity 0.3s,visibility 0.3s,transform 0.3s,background 0.2s}
.scroll-top.visible{opacity:1;visibility:visible;transform:scale(1)}
.scroll-top:hover{background:#E55A2B;box-shadow:0 6px 28px rgba(255,107,53,0.5)}
.scroll-top:focus-visible{outline:2px solid #FFFFFF;outline-offset:3px}

/* section watcher (章节跟随) */
[data-section-nav]{position:relative}
[data-section-nav] .section-link{display:block;padding:0.4rem 0.75rem;font-size:0.85rem;color:#A0AEC0;border-left:2px solid transparent;transition:color 0.25s,border-color 0.25s;text-decoration:none}
[data-section-nav] .section-link:hover{color:#FFFFFF}
[data-section-nav] .section-link.active{color:#FF6B35;border-left-color:#FF6B35;font-weight:600}

/* utility */
.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* responsive */
@media (max-width:1024px){
.site-header{left:1rem;padding:1rem 0.6rem}
.nav-link{padding:0.5rem 0.75rem}
.nav-icon{font-size:1.1rem;width:1.2rem}
.nav-label{font-size:0.75rem}
#main-content{padding:1.5rem 1.5rem 1.5rem 5.5rem}
.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}
.site-footer{padding:2rem 1.5rem 1.25rem 5.5rem}
}

@media (max-width:768px){
.site-header{left:0;top:0;transform:none;width:100%;border-radius:0;padding:0.6rem 1rem;background:rgba(11,26,59,0.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:none;border-bottom:1px solid rgba(255,255,255,0.06)}
.header-inner{flex-direction:row;align-items:center;justify-content:space-between;gap:0}
.brand{padding-bottom:0;border-bottom:none;width:auto;text-align:left}
.brand-logo{font-size:1.05rem}
.brand-sub{display:none}
.nav-toggle{display:flex}
.site-nav{position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;background:rgba(0,0,0,0.92);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);z-index:2000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity 0.35s,visibility 0.35s}
.site-nav[data-open]{opacity:1;visibility:visible}
.nav-list{flex-direction:column;align-items:center;gap:0.75rem;padding:2rem}
.nav-link{padding:0.8rem 2rem;font-size:1.1rem;border-radius:32px}
.nav-link::before{width:4px}
.nav-icon{font-size:1.3rem;width:1.6rem}
.nav-label{font-size:1rem}
.nav-toggle[aria-expanded="true"]{position:relative;z-index:3001}
#main-content{padding:4.5rem 1rem 1.5rem 1rem}
.site-footer{padding:2rem 1rem 1.25rem 1rem}
.footer-grid{grid-template-columns:1fr;gap:1.5rem;text-align:center}
.footer-brand{align-items:center}
.footer-links{align-items:center}
.footer-contact{align-items:center}
.footer-bottom{text-align:center}
.scroll-top{bottom:1.25rem;right:1.25rem;width:44px;height:44px;font-size:1.1rem}
}

@media (max-width:480px){
.brand-logo{font-size:0.95rem}
.nav-link{padding:0.7rem 1.5rem;font-size:1rem}
.nav-icon{font-size:1.15rem;width:1.4rem}
.nav-label{font-size:0.9rem}
#main-content{padding:4rem 0.75rem 1rem 0.75rem}
.site-footer{padding:1.5rem 0.75rem 1rem 0.75rem}
}
