:root {
  --c-bg:#ffffff;
  --c-panel:#f7f7fa;
  --c-panel-2:#eef0f6;
  --c-border:#e4e6ee;
  --c-accent:#5d5fef;
  --c-accent-dark:#3f3fc4;
  --c-sky:#4f9fe6;
  --c-text:#1d2330;
  --c-muted:#5f6678;
  --c-faint:#9aa0b0;
  --c-success:#1f9d6b;
  --c-success-ink:#16734f;
  --c-warn:#c98a12;
  --c-warn-ink:#805600;
  --c-error:#d6453d;
  --c-error-ink:#ae3029;
  --c-on-accent:#ffffff;
  --mask-ink:#000000;
  --c-clear:transparent;
  --grad-accent:linear-gradient(90deg,var(--c-accent) 0%,var(--c-sky) 100%);
  --grad-grating:linear-gradient(165deg,var(--c-accent) 12%,var(--c-sky) 88%);
  --grad-gloss:linear-gradient(145deg,var(--c-sky),var(--c-accent) 58%,var(--c-accent-dark));
  --font-display:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans","Apple SD Gothic Neo","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans","Hiragino Kaku Gothic ProN","Apple SD Gothic Neo","Malgun Gothic","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --r-card:24px;
  --r-pop:18px;
  --r-item:12px;
  --r-tag:7px;
  --r-chip:6px;
  --r-mark:9px;
  --r-shot:10px;
  --r-pill:999px;
  --shadow-hair:0 1px 2px rgba(29,35,48,.05);
  --shadow-card:0 1px 2px rgba(29,35,48,.04),0 12px 28px -14px rgba(29,35,48,.16),0 26px 52px -30px rgba(63,63,196,.22);
  --shadow-card-lift:0 2px 4px rgba(29,35,48,.05),0 20px 40px -18px rgba(29,35,48,.24),0 40px 80px -36px rgba(63,63,196,.40);
  --shadow-btn:inset 0 1px 0 rgba(255,255,255,.22),0 2px 4px rgba(63,63,196,.18),0 14px 28px -10px rgba(93,95,239,.55);
  --shadow-btn-hover:inset 0 1px 0 rgba(255,255,255,.22),0 2px 4px rgba(63,63,196,.22),0 18px 34px -12px rgba(93,95,239,.62);
  --shadow-pop:0 2px 6px rgba(29,35,48,.05),0 24px 48px -20px rgba(29,35,48,.22);
  --shadow-board:0 12px 0 -2px var(--c-panel-2),0 24px 0 -4px var(--c-border),0 44px 52px -20px rgba(63,63,196,.22);
  --shadow-gloss:inset 0 2px 2px rgba(255,255,255,.65),inset 0 -3px 6px rgba(63,63,196,.4),0 10px 18px -8px rgba(63,63,196,.45);
  --shadow-icon-inset:inset 0 1px 2px rgba(255,255,255,.75);
  --ease:cubic-bezier(.2,.7,.2,1);
  --time-fast:.18s;
  --time-reveal:.65s;
  --wrap:1200px;
  --reading:800px;
  --head-wrap:1280px;
  --gutter:40px;
  --nav-h:72px;
  --hero-h:780px;
  --section-space:128px;
  --size-body:16px;
  --size-small:13.5px;
  --weight-body:400;
  --weight-medium:500;
  --weight-strong:600;
  --weight-heading:700;
  --tracking-heading:-.035em;
  --tracking-cjk:-.02em;
}

*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:24px; }
body {
  margin:0; background:var(--c-bg); color:var(--c-text);
  font-family:var(--font-body); font-size:var(--size-body); line-height:1.6;
  font-weight:var(--weight-body); -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility;
}
html.nav-open { overflow:hidden; }
[hidden] { display:none !important; }
img,svg { max-width:100%; }
img { height:auto; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; }
a { color:inherit; text-underline-offset:.2em; }
:focus-visible { outline:2px solid var(--c-accent); outline-offset:3px; border-radius:var(--r-chip); }
::selection { background:var(--c-accent-dark); color:var(--c-on-accent); }
h1,h2,h3,h4 { font-family:var(--font-display); font-weight:var(--weight-heading); line-height:1.22; letter-spacing:var(--tracking-heading); text-wrap:balance; overflow-wrap:break-word; }
:lang(zh-CN) h1,:lang(zh-CN) h2,:lang(zh-CN) h3,:lang(zh-TW) h1,:lang(zh-TW) h2,:lang(zh-TW) h3,:lang(ja) h1,:lang(ja) h2,:lang(ja) h3,:lang(ko) h1,:lang(ko) h2,:lang(ko) h3 { letter-spacing:var(--tracking-cjk); }
h1 { font-size:clamp(34px,3.4vw,48px); }
h2 { font-size:clamp(26px,3vw,36px); }
h3 { font-size:22px; }
p { margin-top:0; }
strong { font-weight:var(--weight-strong); }
code,kbd,samp,pre { font-family:var(--font-mono); }
code { font-size:.875em; overflow-wrap:anywhere; }
pre {
  max-width:100%; min-width:0; overflow-x:auto;
  padding:24px; border:1px solid var(--c-border); border-radius:var(--r-item);
  background:var(--c-panel); color:var(--c-text); line-height:1.8;
  -webkit-overflow-scrolling:touch;
}
pre code { white-space:pre; overflow-wrap:normal; word-break:normal; }
hr { border:0; border-top:1px solid var(--c-border); margin-block:32px; }
section,article,aside,nav,main,div,figure { min-width:0; }
svg { flex-shrink:0; }
.wrap { width:100%; max-width:calc(var(--wrap) + var(--gutter) * 2); margin-inline:auto; padding-inline:var(--gutter); }
.reading { max-width:calc(var(--reading) + var(--gutter) * 2); }
.section { padding-top:var(--section-space); padding-bottom:var(--section-space); }
.section-panel { background:var(--c-panel); color:var(--c-text); }
.section-white { background:var(--c-bg); color:var(--c-text); }
.section-heading { margin:12px 0 18px; }
.section-intro { color:var(--c-muted); max-width:40em; font-size:17px; line-height:1.75; }
.eyebrow { font-size:15px; font-weight:var(--weight-heading); color:var(--c-accent-dark); }
.t-grad,.next-kicker {
  background:var(--grad-accent); color:var(--c-accent-dark);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:var(--c-clear);
}
.keep { white-space:nowrap; }
.muted { color:var(--c-muted); }
.small { font-size:var(--size-small); }
.mono { font-family:var(--font-mono); }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
.skip-link { position:absolute; z-index:100; top:8px; left:var(--gutter); clip-path:inset(50%); width:1px; height:1px; overflow:hidden; white-space:nowrap; padding:0; background:var(--c-bg); color:var(--c-accent-dark); border-radius:var(--r-item); }
.skip-link:focus { clip-path:none; width:auto; height:auto; padding:12px 18px; }
.stack > * + * { margin-top:24px; }
.grid-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.card,.panel { padding:32px; border:1px solid var(--c-border); border-radius:var(--r-card); background:var(--c-bg); color:var(--c-text); box-shadow:var(--shadow-card); }
.card h3,.panel h3 { margin-top:0; }
.card p:last-child,.panel p:last-child { margin-bottom:0; }
.card-link { display:block; text-decoration:none; transition:transform var(--time-fast) var(--ease),box-shadow var(--time-fast) var(--ease); }
.card-link:hover { transform:translateY(-3px); box-shadow:var(--shadow-card-lift); }
.prose { line-height:1.85; }
.prose h2 { margin-top:64px; scroll-margin-top:24px; }
.prose h3 { margin-top:36px; }
.prose p,.prose li { overflow-wrap:break-word; }
.prose a:not(.btn-primary):not(.btn-secondary):not(.app-store) { color:var(--c-accent-dark); }
.prose li + li { margin-top:10px; }
.prose > :first-child { margin-top:0; }

.btn-primary,.btn-secondary,.app-store {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:52px; padding:12px 26px 12px 22px; max-width:100%;
  border:1px solid var(--c-clear); border-radius:var(--r-pill);
  font:var(--weight-strong) 16px/1.4 var(--font-body); letter-spacing:-.01em;
  text-decoration:none; text-align:center;
  transition:background-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease);
}
.btn-primary,.app-store { background:var(--c-accent); color:var(--c-on-accent); box-shadow:var(--shadow-btn); }
.btn-primary:hover,.app-store:hover,.btn-primary.is-hover { background:var(--c-accent-dark); color:var(--c-on-accent); box-shadow:var(--shadow-btn-hover); transform:translateY(-1px); }
.btn-primary:active,.app-store:active { transform:translateY(0); box-shadow:var(--shadow-hair); }
.btn-primary svg,.btn-secondary svg { width:18px; height:18px; }
.btn-secondary { background:var(--c-bg); color:var(--c-accent-dark); border-color:var(--c-border); }
.btn-secondary:hover { background:var(--c-panel); color:var(--c-accent-dark); }
.btn-primary:disabled,.btn-secondary:disabled { background:var(--c-panel-2); color:var(--c-muted); box-shadow:none; transform:none; border-color:var(--c-border); }
.btn-text { display:inline-flex; align-items:center; gap:6px; padding:8px 2px; font:var(--weight-medium) 16px/1.4 var(--font-body); color:var(--c-text); text-decoration:none; }
.btn-text svg { width:14px; height:14px; color:var(--c-faint); transition:transform var(--time-fast) var(--ease); }
.btn-text:hover { color:var(--c-accent-dark); }
.btn-text:hover svg { transform:translateX(3px); }

.site-head,#site-header { position:relative; z-index:30; background:var(--c-bg); color:var(--c-text); }
.head-row { position:relative; width:100%; max-width:min(100%,calc(var(--head-wrap) + var(--gutter) * 2)); height:var(--nav-h); margin-inline:auto; padding-inline:var(--gutter); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:11px; flex-shrink:0; text-decoration:none; color:var(--c-text); }
.brand-mark { display:block; flex:none; width:32px; height:32px; border-radius:var(--r-mark); box-shadow:var(--shadow-hair); }
.brand-placeholder { border:1.5px solid var(--c-clear); background:linear-gradient(var(--c-bg),var(--c-bg)) padding-box,var(--grad-accent) border-box; color:var(--c-text); position:relative; }
.brand-placeholder::after { content:""; position:absolute; inset:7px; border-radius:var(--r-chip); background:var(--c-panel-2); color:var(--c-text); }
.brand-name { font-family:var(--font-display); font-size:17px; font-weight:var(--weight-heading); letter-spacing:-.02em; white-space:nowrap; }
.brand-name span { color:var(--c-muted); font-weight:var(--weight-medium); }
.desktop-nav { display:flex; align-items:center; min-width:0; margin-left:auto; gap:4px; }
.nav-list { display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:0; }
.nav-link,.more-btn {
  display:inline-flex; align-items:center; gap:6px; min-height:38px; padding:8px 14px;
  border-radius:var(--r-pill); font:var(--weight-medium) 15px/1.4 var(--font-body);
  color:var(--c-text); text-decoration:none; background:var(--c-clear); border:0; white-space:nowrap;
}
.nav-link:hover,.more-btn:hover { background:var(--c-panel); color:var(--c-text); }
.nav-link[aria-current="page"],.menu-item[aria-current="page"],.drawer a[aria-current="page"] { color:var(--c-accent-dark); font-weight:var(--weight-strong); }
.more,.language { position:relative; }
.more-btn svg { width:12px; height:12px; color:var(--c-faint); }
.more-menu,.language-menu {
  position:absolute; top:calc(100% + 10px); right:0; width:292px; padding:10px;
  background:var(--c-bg); color:var(--c-text); border:1px solid var(--c-border); border-radius:var(--r-pop); box-shadow:var(--shadow-pop);
}
.more-menu:not([hidden]),.language-menu:not([hidden]) { animation:menu-enter var(--time-fast) var(--ease); }
.menu-group + .menu-group { margin-top:6px; padding-top:6px; border-top:1px solid var(--c-border); }
.menu-label { margin:6px 10px 4px; font-size:12px; font-weight:var(--weight-strong); letter-spacing:.04em; color:var(--c-muted); }
.menu-list { list-style:none; margin:0; padding:0; }
.menu-item { display:block; width:100%; min-height:44px; padding:9px 10px; border-radius:var(--r-item); text-decoration:none; }
.menu-item:hover { background:var(--c-panel); color:var(--c-text); }
.menu-title { display:block; font-size:14.5px; font-weight:var(--weight-strong); line-height:1.35; }
.menu-desc { display:block; font-size:12.5px; color:var(--c-muted); line-height:1.45; margin-top:2px; }
.header-tools { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.lang { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:38px; padding:8px 14px 8px 12px; border:1px solid var(--c-border); border-radius:var(--r-pill); background:var(--c-bg); color:var(--c-text); font:var(--weight-medium) 14px/1.4 var(--font-body); white-space:nowrap; }
.lang:hover { border-color:var(--c-accent); }
.lang svg { width:15px; height:15px; color:var(--c-muted); }
.lang-caret { font-size:10px; color:var(--c-muted); }
.lang-short { display:none; }
.language-menu { width:190px; }
.language-menu a { display:block; min-height:44px; padding:10px 12px; border-radius:var(--r-item); text-decoration:none; }
.language-menu a:hover { background:var(--c-panel); color:var(--c-accent-dark); }
.language-menu a[aria-current] { color:var(--c-accent-dark); font-weight:var(--weight-strong); }
.hamburger { display:none; min-width:44px; min-height:44px; padding:10px; align-items:center; justify-content:center; border:1px solid var(--c-border); border-radius:var(--r-item); background:var(--c-bg); color:var(--c-text); }
.hamburger svg { width:22px; height:22px; }
.drawer { display:none; }
.nav-veil { position:fixed; inset:var(--nav-h) 0 0; z-index:20; background:var(--c-panel-2); color:var(--c-text); opacity:.8; border:0; }
.preview-more > summary { list-style:none; cursor:pointer; }
.preview-more > summary::-webkit-details-marker { display:none; }

.hero { position:relative; overflow-x:clip; background:var(--c-bg); color:var(--c-text); }
.hero-grid { display:grid; grid-template-columns:minmax(0,54fr) minmax(0,46fr); grid-template-areas:"copy visual" "plat visual"; column-gap:24px; align-content:center; height:var(--hero-h); padding-top:24px; padding-bottom:56px; }
.hero-copy { grid-area:copy; align-self:end; }
.hero-plat { grid-area:plat; align-self:start; }
.kicker { display:inline-flex; align-items:center; gap:10px; padding:5px 14px 5px 5px; max-width:100%; border:1px solid var(--c-border); border-radius:var(--r-pill); background:var(--c-bg); color:var(--c-muted); box-shadow:var(--shadow-hair); font-size:13.5px; text-decoration:none; }
.kicker-chip { flex-shrink:0; padding:3px 10px; border-radius:var(--r-pill); background:var(--c-panel-2); color:var(--c-accent-dark); font-size:12.5px; font-weight:var(--weight-strong); line-height:1.4; }
.kicker svg { width:12px; height:12px; color:var(--c-faint); }
.hero-title { margin:28px 0 0; font-size:clamp(34px,3.4vw,48px); line-height:1.16; }
.hero-title > span { display:block; }
.hero-title .t-grad { width:fit-content; padding-bottom:.06em; }
.lead { margin:22px 0 0; max-width:33em; font-size:17px; line-height:1.75; color:var(--c-muted); }
.lead strong { color:var(--c-text); }
.cta-row,.get-actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px 26px; margin-top:34px; }
.get-note { margin:18px 0 0; font-size:13.5px; color:var(--c-muted); }
.get-note .ver { display:inline-block; margin:0 2px; padding:1px 7px; border-radius:var(--r-chip); background:var(--c-panel); color:var(--c-text); border:1px solid var(--c-border); font-family:var(--font-mono); font-size:12.5px; }
.platforms { display:flex; align-items:flex-end; gap:26px; max-width:540px; margin-top:44px; padding-top:22px; border-top:1px solid var(--c-border); }
.pf-group { margin:0; }
.pf-cap { display:inline-flex; align-items:center; gap:6px; margin:0 0 12px; padding:3px 10px; border:1px solid var(--c-border); border-radius:var(--r-pill); background:var(--c-panel); color:var(--c-muted); font-size:12px; line-height:1.5; }
.pf-cap b { color:var(--c-accent-dark); font-weight:var(--weight-strong); }
.pf-list { display:flex; align-items:center; gap:18px; list-style:none; margin:0; padding:0; }
.pf { display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:var(--weight-medium); color:var(--c-text); text-decoration:none; white-space:nowrap; }
.pf:hover { color:var(--c-accent-dark); }
.pf svg { width:16px; height:16px; flex:none; color:var(--c-muted); }
.pf-divider { flex:none; align-self:stretch; width:1px; margin-bottom:2px; background:var(--c-border); color:var(--c-text); }
.hero-visual { grid-area:visual; align-self:center; position:relative; height:600px; display:flex; align-items:center; justify-content:center; }
.grating { position:absolute; top:-48px; bottom:-48px; left:-14%; right:-40%; pointer-events:none; -webkit-mask-image:radial-gradient(ellipse 40% 50% at 42% 50%,var(--mask-ink) 0%,var(--mask-ink) 22%,var(--c-clear) 100%); mask-image:radial-gradient(ellipse 40% 50% at 42% 50%,var(--mask-ink) 0%,var(--mask-ink) 22%,var(--c-clear) 100%); }
.grating-ink { position:absolute; inset:0; background:var(--grad-grating); color:var(--c-text); opacity:.62; -webkit-mask-image:repeating-linear-gradient(90deg,var(--mask-ink) 0 2px,var(--c-clear) 2px 6px); mask-image:repeating-linear-gradient(90deg,var(--mask-ink) 0 2px,var(--c-clear) 2px 6px); animation:grating-breathe 8s ease-in-out infinite; }
.rule-queue { position:relative; z-index:1; list-style:none; margin:0 76px 0 0; padding:0; width:404px; flex-shrink:0; display:flex; flex-direction:column; gap:14px; }
.rq { --x:0px; --o:1; --i:0; animation:queue-drift 12s ease-in-out infinite; animation-delay:calc(var(--i) * -.7s); }
.rq:nth-child(1) { --x:76px; --o:.14; --i:0; }
.rq:nth-child(2) { --x:44px; --o:.42; --i:1; }
.rq:nth-child(3) { --x:16px; --o:.78; --i:2; }
.rq:nth-child(4) { --x:0px; --o:1; --i:3; position:relative; z-index:2; }
.rq:nth-child(5) { --x:16px; --o:.78; --i:4; }
.rq:nth-child(6) { --x:44px; --o:.42; --i:5; }
.rq:nth-child(7) { --x:76px; --o:.14; --i:6; }
.rule-card { display:flex; align-items:center; justify-content:space-between; gap:16px; height:60px; padding:0 14px 0 22px; background:var(--c-bg); color:var(--c-text); border:1px solid var(--c-border); border-radius:var(--r-card); box-shadow:var(--shadow-card); transform:translateX(var(--x)); opacity:var(--o); }
.rq:nth-child(4) .rule-card { transform:translateX(0) scale(1.045); box-shadow:var(--shadow-card-lift); }
.rule-code { font-family:var(--font-mono); font-size:13.5px; line-height:1; color:var(--c-muted); white-space:nowrap; letter-spacing:0; }
.rule-code .rk { color:var(--c-text); font-weight:var(--weight-medium); }
.rule-code .rs { color:var(--c-muted); }
.rq:nth-child(4) .rule-code { color:var(--c-text); }
.rq:nth-child(4) .rule-code .rk { font-weight:var(--weight-strong); }
.pol { --pc:var(--c-accent); flex:none; padding:4px 9px; border-radius:var(--r-tag); border:1px solid color-mix(in srgb,var(--pc) 42%,var(--c-clear)); background:color-mix(in srgb,var(--pc) 7%,var(--c-bg)); color:var(--c-accent-dark); font-family:var(--font-mono); font-size:11px; font-weight:var(--weight-strong); line-height:1.3; letter-spacing:.06em; }
.pol-direct { --pc:var(--c-success); color:var(--c-success-ink); }
.pol-reject { --pc:var(--c-error); color:var(--c-error-ink); }

.site-foot { background:var(--c-panel); color:var(--c-text); border-top:1px solid var(--c-border); padding-top:72px; padding-bottom:32px; }
.footer-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1.25fr); gap:56px; }
.footer-intro { margin:22px 0 0; color:var(--c-muted); max-width:30em; font-size:14px; }
.footer-title { font-size:14px; margin:0 0 18px; }
.footer-links { display:flex; flex-wrap:wrap; gap:10px 20px; list-style:none; padding:0; margin:0; }
.footer-links a { display:inline-block; padding-block:4px; text-decoration:none; font-size:14px; color:var(--c-muted); }
.footer-links a:hover { color:var(--c-accent-dark); text-decoration:underline; }
.footer-langs { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:48px; }
.footer-langs a { font-size:14px; color:var(--c-muted); padding-block:8px; }
.footer-langs a[aria-current] { color:var(--c-accent-dark); }
.footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px 28px; margin-top:28px; padding-top:24px; border-top:1px solid var(--c-border); font-size:13px; color:var(--c-muted); }
.footer-bottom p { margin:0; }
.footer-legal { display:flex; flex-wrap:wrap; gap:20px; }

.reveal { opacity:1; transform:none; }
.reveal-ready .reveal:not(.shown) { opacity:0; transform:translateY(18px); }
.reveal-ready .reveal { transition:opacity var(--time-reveal) var(--ease),transform var(--time-reveal) var(--ease); }
.reveal.shown { opacity:1; transform:none; }
.decorated-section,.feature-section { overflow-x:clip; }
@keyframes menu-enter { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
@keyframes grating-breathe { 0%,100% { opacity:.5; } 50% { opacity:.78; } }
@keyframes queue-drift { 0%,100% { transform:translateY(-6px); } 50% { transform:translateY(6px); } }

@media (max-width:1100px) {
  .head-row { gap:16px; }
  .nav-link,.more-btn { padding-inline:10px; }
  .rule-queue { width:372px; margin-right:60px; }
  .rq:nth-child(1),.rq:nth-child(7) { --x:60px; }
  .rq:nth-child(2),.rq:nth-child(6) { --x:36px; }
  .rule-code { font-size:12.5px; }
}
@media (max-width:1000px) {
  .desktop-nav { display:none; }
  .header-tools { margin-left:auto; }
  .hamburger { display:inline-flex; }
  .drawer:not([hidden]) { display:block; }
  .drawer { position:absolute; top:100%; inset-inline:0; z-index:32; max-height:calc(100dvh - var(--nav-h)); overflow-y:auto; overscroll-behavior:contain; padding:16px var(--gutter) 24px; background:var(--c-bg); color:var(--c-text); border-top:1px solid var(--c-border); border-bottom:1px solid var(--c-border); box-shadow:var(--shadow-pop); }
  .drawer ul { list-style:none; margin:0; padding:0; }
  .drawer a { display:flex; align-items:center; width:100%; min-height:48px; padding:12px 16px; border-radius:var(--r-item); text-decoration:none; }
  .drawer a:hover { background:var(--c-panel); color:var(--c-accent-dark); }
  .drawer-languages { margin-top:16px; padding-top:16px; border-top:1px solid var(--c-border); }
  .preview-desktop { display:flex; }
}
@media (max-width:960px) {
  :root { --gutter:24px; }
  .hero-grid { grid-template-columns:minmax(0,1fr); grid-template-areas:"copy" "visual" "plat"; height:auto; padding-top:28px; padding-bottom:72px; }
  .hero-title { font-size:clamp(26px,7vw,30px); }
  .hero-visual { height:auto; padding-top:40px; padding-bottom:12px; }
  .grating { top:0; bottom:-12px; left:-8%; right:-8%; -webkit-mask-image:radial-gradient(ellipse 50% 52% at 50% 52%,var(--mask-ink) 0%,var(--mask-ink) 20%,var(--c-clear) 100%); mask-image:radial-gradient(ellipse 50% 52% at 50% 52%,var(--mask-ink) 0%,var(--mask-ink) 20%,var(--c-clear) 100%); }
  .rule-queue { width:min(100%,360px); margin:0 auto; gap:12px; }
  .rq:nth-child(-n+2),.rq:nth-child(n+6) { display:none; }
  .rq:nth-child(3),.rq:nth-child(5) { --x:0px; --o:.72; }
  .rule-card { height:54px; padding-inline:18px 12px; }
  .rq:nth-child(4) .rule-card { transform:scale(1.03); }
  .platforms { flex-wrap:wrap; gap:16px 26px; margin-top:28px; }
  .pf-divider { display:none; }
  .pf-list { flex-wrap:wrap; gap:12px 16px; }
  .footer-grid { gap:32px; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .footer-brand { grid-column:1/-1; }
}
@media (max-width:768px) {
  h1 { font-size:clamp(24px,5vw,30px); }
  .preview-desktop .nav-flat { display:none; }
}
@media (max-width:640px) {
  :root { --gutter:20px; }
  .grid-two,.footer-grid { grid-template-columns:minmax(0,1fr); }
  .card,.panel { padding:24px; }
  .brand-name span { display:none; }
  .lang { padding-inline:10px; gap:6px; }
  .lang-full { display:none; }
  .lang-short { display:inline; }
  .header-tools { margin-left:auto; }
  .head-row { gap:10px; }
  .lead { font-size:16px; }
  .get-actions,.cta-row { gap:12px 20px; }
  .btn-primary { min-height:50px; padding-inline:18px 22px; }
  .hero-title > span { overflow-wrap:normal; }
  .rule-code { font-size:clamp(9.5px,3vw,12.5px); }
  .rule-card { gap:8px; padding-inline:12px 10px; }
  .pol { padding:4px 6px; font-size:10px; }
  .tilt,.content-tilt,.isometric-board { transform:none !important; }
  .footer-grid { gap:36px; }
  .footer-bottom { align-items:flex-start; flex-direction:column; }
  .preview-desktop .more-menu { width:min(292px,calc(100vw - var(--gutter) * 2)); right:-50px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .grating-ink { opacity:.64; }
  .reveal-ready .reveal:not(.shown) { opacity:1; transform:none; }
}