:root {
  --bg:#fdfcfa;
  --panel:#ffffff;
  --panel-2:#f4f3f0;
  --line:#e7e5e1;
  --line-strong:#d9d6d0;
  --accent:#2f6e6a;
  --accent-dark:#1f4c49;
  --accent-wash:rgba(47,110,106,.075);
  --accent-ring:rgba(47,110,106,.22);
  --coral:#d86a4f;
  --text:#26272a;
  --text-hover:#3a3b3f;
  --muted:#6b6c70;
  --faint:#9a9b9f;
  --on-dark:#ffffff;
  --success:#3f8f5a;
  --warn:#c98a2b;
  --error:#c2483b;
  --clear:transparent;
  --veil:rgba(38,39,42,.24);
  --sky-mist:#8fb3b0;
  --sky-sage:#b2c1b4;
  --sky-blush:#e2bea5;
  --sky-peach:#f2b48c;
  --cloud:#f7dcc6;
  --cloud-soft:rgba(247,220,198,0);
  --haze:rgba(253,252,250,.28);
  --haze-none:rgba(253,252,250,0);
  --hill-near:#9fbfb4;
  --hill-mid:#c3d3c8;
  --hill-far:#e6d6c4;
  --glass:rgba(253,252,250,.74);
  --glass-line:rgba(255,255,255,.6);
  --shadow-soft:0 24px 60px -28px rgba(38,39,42,.18);
  --shadow-near:0 1px 2px rgba(38,39,42,.05);
  --shadow-float:0 2px 6px -2px rgba(38,39,42,.08),0 30px 70px -30px rgba(31,40,44,.32);
  --shadow-chip:0 1px 2px rgba(38,39,42,.07),0 0 0 1px rgba(38,39,42,.04);
  --r-card:10px;
  --r-float:12px;
  --r-btn:10px;
  --r-pill:999px;
  --r-shot:8px;
  --r-sec:7px;
  --r-line:2px;
  --r-dot:50%;
  --font-display:"Inter","Noto Sans SC","Noto Sans JP","Noto Sans KR","PingFang SC","Hiragino Sans","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"Inter","Noto Sans SC","Noto Sans JP","Noto Sans KR","PingFang SC","Hiragino Sans","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --fs-body:15px;
  --fs-small:13px;
  --fs-tiny:11.5px;
  --fs-h1:clamp(34px,calc(1.8vw + 20px),46px);
  --fs-h2:clamp(24px,calc(1vw + 18px),34px);
  --fs-h3:21px;
  --fw-normal:400;
  --fw-display:480;
  --fw-medium:500;
  --fw-strong:550;
  --tracking-title:-.02em;
  --tracking-small:-.005em;
  --gutter:max(16px,4vw);
  --read-width:1120px;
  --header-width:1280px;
  --header-height:60px;
  --section-space:160px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --time-fast:.2s;
  --time-reveal:.65s;
}
*,*::before,*::after { box-sizing:border-box }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:24px }
html.nav-open { overflow:hidden }
body {
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--font-body); font-size:var(--fs-body); line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
[hidden] { display:none !important }
img,svg { max-width:100%; vertical-align:middle }
img { height:auto }
svg { flex-shrink:0 }
button,input,select,textarea { font:inherit }
button,a { -webkit-tap-highlight-color:var(--clear) }
button { cursor:pointer }
a { color:inherit; text-decoration:none }
a:hover { text-decoration:none }
:focus-visible { outline:2px solid var(--accent); outline-offset:4px }
button { color:var(--text) }
h1,h2,h3,h4 { font-family:var(--font-display); font-weight:var(--fw-display); text-wrap:balance; overflow-wrap:break-word }
h1 { font-size:var(--fs-h1); line-height:1.12; letter-spacing:var(--tracking-title) }
h2 { font-size:var(--fs-h2); line-height:1.25; letter-spacing:var(--tracking-title) }
h3 { font-size:var(--fs-h3); line-height:1.4 }
p { margin-block:0 1em }
strong { font-weight:var(--fw-strong) }
code,kbd,pre { font-family:var(--font-mono) }
code { overflow-wrap:anywhere; font-size:.9em }
pre {
  max-width:100%; min-width:0; overflow-x:auto; padding:20px;
  border:1px solid var(--line); border-radius:var(--r-card);
  background:var(--panel-2); color:var(--text); font-size:var(--fs-small);
}
pre code { overflow-wrap:normal; word-break:normal; white-space:pre; font-size:inherit }
hr { border:0; border-top:1px solid var(--line); margin-block:32px }
:where(.grid,.card-grid,.plat-grid,.feature-window,.confwin__body) > * { min-width:0 }
.wrap { width:100%; max-width:calc(var(--read-width) + var(--gutter) * 2); margin-inline:auto; padding-inline:var(--gutter) }
.section { margin-top:var(--section-space); margin-bottom:var(--section-space) }
.section__intro { max-width:48em; margin-bottom:32px }
.section__intro h2 { margin-top:0 }
.section__intro p,.muted { color:var(--muted) }
.band { background:var(--panel-2); color:var(--text); padding-top:64px; padding-bottom:64px }
.nowrap { white-space:nowrap }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.prose { min-width:0; max-width:76ch }
.prose :where(h2,h3) { margin-top:2em; margin-bottom:.7em }
.prose p { line-height:1.85 }
.prose a,.text-link { color:var(--accent); text-decoration:underline; text-decoration-color:var(--accent-ring); text-underline-offset:4px }
.prose a:hover,.text-link:hover { color:var(--accent-dark) }
.prose li + li { margin-top:.6em }
.prose :where(ul,ol) { padding-inline-start:1.5em }
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:44px; padding:10px 20px; border:1px solid var(--clear);
  border-radius:var(--r-btn); font-size:var(--fs-body); font-weight:var(--fw-medium);
  letter-spacing:var(--tracking-small); line-height:1.4; text-align:center;
  max-width:100%; white-space:normal;
  transition:background-color var(--time-fast) var(--ease),border-color var(--time-fast) var(--ease),transform var(--time-fast) var(--ease);
}
.btn svg { width:16px; height:16px }
.btn--solid { background:var(--text); color:var(--on-dark); box-shadow:var(--shadow-near) }
.btn--solid:hover,.btn--solid.is-hover { background:var(--text-hover); color:var(--on-dark) }
.btn--line { background:var(--panel); color:var(--text); border-color:var(--line-strong) }
.btn--line:hover,.btn--line.is-hover { border-color:var(--muted) }
.btn:active,.btn.is-active { transform:translateY(1px) }
.btn:disabled,.btn[aria-disabled="true"] { cursor:not-allowed; background:var(--panel-2); color:var(--muted); border-color:var(--line) }
.btn.is-focus { outline:2px solid var(--accent); outline-offset:4px }
.card,.panel {
  min-width:0; border:1px solid var(--line); border-radius:var(--r-card);
  background:var(--panel); color:var(--text); padding:24px; box-shadow:var(--shadow-near);
}
.panel--raised { box-shadow:var(--shadow-soft) }
.card h3,.panel h3 { margin-top:0 }
.card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px }
.card p:last-child,.panel p:last-child { margin-bottom:0 }
.topbar { position:relative; z-index:40; border-bottom:1px solid var(--line); background:var(--bg); color:var(--text) }
.topbar__inner {
  position:relative; width:100%; max-width:min(100%,calc(var(--header-width) + var(--gutter) * 2));
  padding-inline:var(--gutter); margin-inline:auto; height:var(--header-height);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand { display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:var(--fw-medium); font-size:15.5px; letter-spacing:-.01em; white-space:nowrap; flex-shrink:0 }
.brand__mark { width:28px; height:28px; border-radius:var(--r-shot); flex-shrink:0; display:block }
.brand__mark--placeholder { background:var(--panel); color:var(--text); border:1px solid var(--line-strong); box-shadow:var(--shadow-near) }
.navwrap { display:flex; align-items:stretch; min-width:0; height:100%; margin-left:auto }
.tabs { display:flex; align-items:center; list-style:none; margin:0; padding:0; gap:4px; height:100% }
.tabs li { height:100%; flex-shrink:0 }
.tabs a {
  position:relative; display:flex; align-items:center; height:100%; padding:0 12px;
  font-size:14px; color:var(--muted); white-space:nowrap;
  transition:color var(--time-fast) var(--ease);
}
.tabs a:hover,.tabs a[aria-current="page"] { color:var(--text) }
.tabs a::after {
  content:""; position:absolute; left:12px; right:12px; bottom:-1px; height:2px;
  border-radius:var(--r-line); background:var(--text); transform:scaleX(0);
  transition:transform .25s var(--ease);
}
.tabs a[aria-current="page"]::after { transform:scaleX(1) }
.header-tools { display:flex; align-items:center; gap:8px; height:100%; flex-shrink:0 }
.language { position:relative }
.lang {
  display:flex; align-items:center; gap:4px; min-height:28px; padding:0 0 0 18px;
  border:0; border-left:1px solid var(--line); background:var(--clear); color:var(--muted);
  font-size:13.5px; white-space:nowrap;
}
.lang__short { display:none }
.lang__chevron { font-size:10px }
.language-menu {
  position:absolute; top:calc(100% + 16px); right:0; width:180px; margin:0; padding:6px;
  list-style:none; background:var(--panel); color:var(--text); border:1px solid var(--line);
  border-radius:var(--r-float); box-shadow:var(--shadow-soft); z-index:44;
}
.language-menu a { display:flex; align-items:center; min-height:44px; padding:8px 12px; border-radius:var(--r-sec) }
.language-menu a:hover,.language-menu a[aria-current="true"] { background:var(--panel-2); color:var(--text) }
.menu-toggle { display:none; align-items:center; justify-content:center; min-width:44px; min-height:44px; border:1px solid var(--line); border-radius:var(--r-btn); background:var(--panel); color:var(--text) }
.menu-toggle svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6 }
.mobile-drawer { display:none }
.nav-veil { position:fixed; inset:var(--header-height) 0 0; z-index:39; background:var(--veil); color:var(--text); border:0 }
.site-footer { border-top:1px solid var(--line); padding-top:52px; padding-bottom:28px; background:var(--bg); color:var(--text) }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1.3fr; gap:48px }
.footer-grid > * { min-width:0 }
.footer-about p { max-width:29em; color:var(--muted); margin-top:16px }
.footer-heading { font-size:var(--fs-small); font-weight:var(--fw-medium); margin:0 0 16px }
.footer-links { list-style:none; margin:0; padding:0; display:grid; gap:8px }
.footer-links a { display:inline-block; padding-block:3px; color:var(--muted) }
.footer-links a:hover { color:var(--accent) }
.footer-languages { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:36px }
.footer-languages a { min-height:44px; display:flex; align-items:center; font-size:var(--fs-small); color:var(--muted) }
.footer-languages a[aria-current="true"] { color:var(--text); text-decoration:underline; text-underline-offset:5px }
.footer-bottom { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); color:var(--muted); font-size:var(--fs-small) }
.reveal { opacity:1; transform:none }
html.reveal-ready .reveal:not(.shown) { opacity:0; transform:translateY(18px) }
.reveal { transition:opacity var(--time-reveal) var(--ease),transform var(--time-reveal) var(--ease) }
.reveal.shown { opacity:1; transform:none }
@media (max-width:1100px) {
  .topbar:not(.topbar--preview) .navwrap { display:none }
  .header-tools { margin-left:auto }
  .menu-toggle { display:flex }
  .mobile-drawer {
    position:absolute; inset:var(--header-height) 0 auto; padding:16px var(--gutter) 24px;
    max-height:calc(100dvh - var(--header-height)); overflow-y:auto; overscroll-behavior:contain;
    background:var(--bg); color:var(--text); border-bottom:1px solid var(--line);
    box-shadow:var(--shadow-soft); z-index:43;
  }
  .mobile-drawer:not([hidden]) { display:block }
  .mobile-drawer ul { list-style:none; padding:0; margin:0 }
  .mobile-drawer a { display:flex; width:100%; align-items:center; min-height:46px; padding:10px 12px; border-radius:var(--r-sec); color:var(--muted) }
  .mobile-drawer a:hover,.mobile-drawer a[aria-current] { background:var(--panel-2); color:var(--text) }
  .drawer-languages { margin-top:16px !important; padding-top:16px !important; border-top:1px solid var(--line) }
}
@media (max-width:900px) {
  .footer-grid { grid-template-columns:1fr 1fr; gap:32px }
  .footer-about { grid-column:1/-1 }
  .topbar--preview .tabs { overflow-x:auto; scrollbar-width:none }
  .topbar--preview .navwrap { min-width:0 }
}
@media (max-width:768px) {
  h1 { font-size:clamp(24px,6.4vw,30px) }
}
@media (max-width:640px) {
  .topbar__inner { gap:8px }
  .brand { font-size:13px; gap:7px }
  .brand__mark { width:26px; height:26px }
  .lang { padding-left:8px; border-left:0 }
  .lang__full { display:none }
  .lang__short { display:inline }
  .header-tools { margin-left:auto }
  .card-grid { grid-template-columns:minmax(0,1fr) }
  .card,.panel { padding:20px }
  .tilt,.confwin { transform:none !important }
  .footer-grid { grid-template-columns:minmax(0,1fr); gap:28px }
  .footer-about { grid-column:auto }
  .topbar--preview .topbar__inner { height:auto; flex-wrap:wrap; padding-top:12px; gap:0 }
  .topbar--preview .navwrap { width:100%; height:46px; margin-top:6px; order:3 }
  .topbar--preview .header-tools { margin-left:auto }
  .topbar--preview .tabs a { padding-inline:10px }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  *,*::before,*::after { transition:none !important; animation:none !important }
  html.reveal-ready .reveal:not(.shown) { opacity:1; transform:none }
}