/* YUEIN FOREST AUDIO — 全站基础样式 */

@font-face { font-family: "YN Inter"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/yn-inter-400.woff") format("woff"); }
@font-face { font-family: "YN Inter"; font-weight: 500; font-style: normal; font-display: swap; src: url("../fonts/yn-inter-500.woff") format("woff"); }
/*@@FONT-RANGES@@*/
@font-face { font-family: "YN Serif"; font-weight: 300; font-style: normal; font-display: swap; src: url("../fonts/yn-serif-300-a.woff") format("woff"); unicode-range: U+20-7E,U+B7,U+2014,U+B7,U+2014,U+2018-2019,U+201C-201D,U+2026,U+3001-3002,U+300A-300D,U+4E0D-4E0E,U+4E2D,U+4E3B,U+4E45,U+4E50,U+4E8E,U+4E92,U+4EA7,U+4ECE,U+4EEA,U+4EEC,U+4EF6,U+4F1A,U+4F4E,U+4F53,U+4F8B,U+505C,U+5143,U+5165,U+516C,U+5173,U+518C,U+51B3,U+51FA-51FB,U+5217,U+524D,U+529F,U+52A8,U+5320,U+533A,U+5355,U+53D7,U+53ED,U+53F0,U+53F7-53F8,U+540C,U+540E,U+5427,U+542C,U+542F,U+54A8,U+54C1,U+54CD,U+552E,U+5546,U+5587,U+5728,U+573A,U+578B,U+58F0,U+5907,U+590D,U+591A,U+5927,U+5957,U+597D,U+5BB4,U+5BB9,U+5BBE,U+5C55,U+5DF2,U+5F00,U+5F0F,U+5F52,U+5F80,U+5FC3,U+6001,U+6027,U+6052,U+6062,U+606F,U+60A6,U+60E0,U+611F,U+6211,U+6269,U+6280,U+6301,U+64AD,U+652F,U+653E,U+6548,U+65B9,U+6613,U+666E-666F,U+6682,U+66F4,U+6709,U+672F,U+6797,U+679C,U+67F1,U+6807,U+680F,U+6848,U+684C,U+68EE,U+6B63,U+6CE8,U+6D41,U+6E90,U+6F14,U+70B9,U+70ED,U+7136,U+7231,U+73B0,U+751F,U+7528,U+767B,U+76D1,U+76EE,U+793A,U+793C,U+79D1,U+7BB1,U+7CBE,U+7CFB,U+7EBF,U+7EDF,U+8046,U+81EA,U+81F4,U+8212,U+821E,U+8981,U+89E3,U+89E6,U+8BA9,U+8BB0,U+8BE2,U+8C6B,U+8F6F,U+8F74,U+8F7B,U+9001-9002,U+914D,U+9152,U+95ED,U+9635,U+9650,U+9707,U+9762,U+97F3,U+9875,U+9891,U+9996,U+9A71,U+9A8C,U+FF01,U+FF08-FF09,U+FF0C,U+FF1A-FF1B,U+FF1F; }
@font-face { font-family: "YN Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/yn-sans-400-a.woff") format("woff"); unicode-range: U+B7,U+2014,U+2018-2019,U+201C-201D,U+2026,U+3001-3002,U+300A-300D,U+4E0D-4E0E,U+4E2D,U+4E3B,U+4E45,U+4E50,U+4E8E,U+4E92,U+4EA7,U+4ECE,U+4EEA,U+4EEC,U+4EF6,U+4F1A,U+4F4E,U+4F53,U+4F8B,U+505C,U+5143,U+5165,U+516C,U+5173,U+518C,U+51B3,U+51FA-51FB,U+5217,U+524D,U+529F,U+52A8,U+5320,U+533A,U+5355,U+53D7,U+53ED,U+53F0,U+53F7-53F8,U+540C,U+540E,U+5427,U+542C,U+542F,U+54A8,U+54C1,U+54CD,U+552E,U+5546,U+5587,U+5728,U+573A,U+578B,U+58F0,U+5907,U+590D,U+591A,U+5927,U+5957,U+597D,U+5BB4,U+5BB9,U+5BBE,U+5C55,U+5DF2,U+5F00,U+5F0F,U+5F52,U+5F80,U+5FC3,U+6001,U+6027,U+6052,U+6062,U+606F,U+60A6,U+60E0,U+611F,U+6211,U+6269,U+6280,U+6301,U+64AD,U+652F,U+653E,U+6548,U+65B9,U+6613,U+666E-666F,U+6682,U+66F4,U+6709,U+672F,U+6797,U+679C,U+67F1,U+6807,U+680F,U+6848,U+684C,U+68EE,U+6B63,U+6CE8,U+6D41,U+6E90,U+6F14,U+70B9,U+70ED,U+7136,U+7231,U+73B0,U+751F,U+7528,U+767B,U+76D1,U+76EE,U+793A,U+793C,U+79D1,U+7BB1,U+7CBE,U+7CFB,U+7EBF,U+7EDF,U+8046,U+81EA,U+81F4,U+8212,U+821E,U+8981,U+89E3,U+89E6,U+8BA9,U+8BB0,U+8BE2,U+8C6B,U+8F6F,U+8F74,U+8F7B,U+9001-9002,U+914D,U+9152,U+95ED,U+9635,U+9650,U+9707,U+9762,U+97F3,U+9875,U+9891,U+9996,U+9A71,U+9A8C,U+FF01,U+FF08-FF09,U+FF0C,U+FF1A-FF1B,U+FF1F; }
@font-face { font-family: "YN Serif"; font-weight: 300; font-style: normal; font-display: swap; src: url("../fonts/yn-serif-300-b.woff") format("woff"); unicode-range: U+4E00,U+4E03,U+4E09-4E0B,U+4E13,U+4E1A,U+4E24,U+4E2A,U+4E3A,U+4E48,U+4E4B,U+4E5F,U+4E70,U+4E86,U+4E8B-4E8C,U+4EA4,U+4EBA,U+4EC0,U+4ED6,U+4EE5,U+4EF7,U+4EFB,U+4F17-4F18,U+4F20,U+4F4D,U+4F5C,U+4F60,U+4F7F,U+4F9B,U+4F9D,U+4FBF,U+4FDD,U+4FE1,U+503C,U+505A,U+5148,U+514D,U+5168,U+5174,U+5176-5177,U+51B5,U+51C6,U+51D1,U+5206-5207,U+5212,U+521B,U+522B,U+5230,U+5236,U+529B,U+52A0-52A1,U+5300,U+5316,U+5347,U+5361,U+5373,U+5385,U+53C2,U+53CA,U+53CC,U+53D1,U+53D6,U+53E3,U+53E6,U+53EF,U+5408,U+5411,U+5448,U+544A,U+547C,U+5668,U+56DE,U+56F4,U+56FE,U+5730,U+5747,U+57FA,U+5802,U+5883,U+5904,U+5916,U+591C,U+5982,U+5A5A,U+5B50,U+5B57-5B58,U+5B66,U+5B83,U+5B89,U+5B8C,U+5B98,U+5B9A,U+5B9C,U+5B9E,U+5BA4,U+5BB6,U+5BBD,U+5BF8-5BF9,U+5BFC,U+5C06,U+5C0F,U+5C3A,U+5C3D,U+5C40,U+5C5E,U+5DE1,U+5DE5,U+5DF1,U+5E03,U+5E0C,U+5E38,U+5E73-5E74,U+5E76,U+5E7F,U+5E8F,U+5E94-5E95,U+5EA7,U+5EF6,U+5EFA,U+5F55,U+5F62,U+5F97,U+5FAE,U+5FEB,U+5FF5,U+601D,U+60C5,U+610F,U+6210,U+6216,U+6237,U+6240,U+624B,U+6253,U+626B,U+627E-627F,U+628A,U+62E9,U+6309,U+6362,U+636E,U+638C,U+63A5,U+63A7,U+63CF-63D0,U+63E1,U+642D,U+6559,U+6570,U+6574,U+6599,U+65B0,U+65CF,U+65D7,U+65E2,U+65E5,U+65F6,U+660E,U+662F,U+6670,U+670D,U+671B,U+671F,U+672C,U+673A,U+6761,U+6784,U+67B6,U+67E5,U+6837,U+6839,U+695A,U+6982,U+6B21-6B22,U+6B3E,U+6B4C,U+6B62,U+6B64-6B65,U+6BCF,U+6BD4,U+6C14,U+6C1B,U+6C42,U+6C9F,U+6CA1,U+6CBF,U+6CE2,U+6D01,U+6D3B,U+6D3D,U+6DFB,U+6E05,U+6E20,U+6E38,U+7075,U+70C8,U+7167,U+7247-7248,U+72EC,U+7387,U+73AF,U+7406,U+7531,U+7535,U+754C,U+7684,U+76D6,U+76DB,U+76F4,U+76F8,U+770B,U+771F,U+7801,U+7840,U+786C,U+786E,U+78E8,U+79BB,U+79CD,U+79E9,U+79F0,U+7A0B,U+7A7A,U+7A97,U+7ACB,U+7AEF,U+7B80,U+7B97,U+7BA1,U+7C7B,U+7D27,U+7EA7,U+7EC4,U+7EC6,U+7ED3,U+7EED,U+7EF4,U+7F51,U+7F6E,U+7F72,U+800C,U+8054,U+80FD,U+811A,U+822A,U+8230,U+827A,U+8282,U+82F1,U+8303,U+83DC,U+878D,U+884C,U+8868,U+88C5,U+8986,U+89C2,U+89C4,U+89C6,U+8A00,U+8BA1,U+8BAE,U+8BBE-8BBF,U+8BC6,U+8BC9,U+8BDD,U+8BE5,U+8BED,U+8BF4,U+8BF7,U+8C08,U+8D28,U+8D2D,U+8D39,U+8D44,U+8D70,U+8D77,U+8DA3,U+8DDD,U+8DDF,U+8DEF,U+8F68,U+8F6C,U+8F9E,U+8FBE,U+8FC7,U+8FCE,U+8FD0-8FD1,U+8FD4,U+8FDB-8FDC,U+8FDE,U+8FF0,U+9009,U+9012,U+9014,U+901A,U+901F-9020,U+9047,U+9053,U+9065,U+90E8,U+90FD,U+91C7,U+91CD,U+91CF,U+9501,U+952E,U+957F,U+95E8,U+95EE,U+95F4,U+9644-9645,U+96C6,U+9700,U+9759,U+9760,U+9879,U+9884,U+9898,U+98CE,U+9AD8,U+9E1F,U+9E23; }
@font-face { font-family: "YN Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/yn-sans-400-b.woff") format("woff"); unicode-range: U+4E00,U+4E03,U+4E09-4E0B,U+4E13,U+4E1A,U+4E24,U+4E2A,U+4E3A,U+4E48,U+4E4B,U+4E5F,U+4E70,U+4E86,U+4E8B-4E8C,U+4EA4,U+4EBA,U+4EC0,U+4ED6,U+4EE5,U+4EF7,U+4EFB,U+4F17-4F18,U+4F20,U+4F4D,U+4F5C,U+4F60,U+4F7F,U+4F9B,U+4F9D,U+4FBF,U+4FDD,U+4FE1,U+503C,U+505A,U+5148,U+514D,U+5168,U+5174,U+5176-5177,U+51B5,U+51C6,U+51D1,U+5206-5207,U+5212,U+521B,U+522B,U+5230,U+5236,U+529B,U+52A0-52A1,U+5300,U+5316,U+5347,U+5361,U+5373,U+5385,U+53C2,U+53CA,U+53CC,U+53D1,U+53D6,U+53E3,U+53E6,U+53EF,U+5408,U+5411,U+5448,U+544A,U+547C,U+5668,U+56DE,U+56F4,U+56FE,U+5730,U+5747,U+57FA,U+5802,U+5883,U+5904,U+5916,U+591C,U+5982,U+5A5A,U+5B50,U+5B57-5B58,U+5B66,U+5B83,U+5B89,U+5B8C,U+5B98,U+5B9A,U+5B9C,U+5B9E,U+5BA4,U+5BB6,U+5BBD,U+5BF8-5BF9,U+5BFC,U+5C06,U+5C0F,U+5C3A,U+5C3D,U+5C40,U+5C5E,U+5DE1,U+5DE5,U+5DF1,U+5E03,U+5E0C,U+5E38,U+5E73-5E74,U+5E76,U+5E7F,U+5E8F,U+5E94-5E95,U+5EA7,U+5EF6,U+5EFA,U+5F55,U+5F62,U+5F97,U+5FAE,U+5FEB,U+5FF5,U+601D,U+60C5,U+610F,U+6210,U+6216,U+6237,U+6240,U+624B,U+6253,U+626B,U+627E-627F,U+628A,U+62E9,U+6309,U+6362,U+636E,U+638C,U+63A5,U+63A7,U+63CF-63D0,U+63E1,U+642D,U+6559,U+6570,U+6574,U+6599,U+65B0,U+65CF,U+65D7,U+65E2,U+65E5,U+65F6,U+660E,U+662F,U+6670,U+670D,U+671B,U+671F,U+672C,U+673A,U+6761,U+6784,U+67B6,U+67E5,U+6837,U+6839,U+695A,U+6982,U+6B21-6B22,U+6B3E,U+6B4C,U+6B62,U+6B64-6B65,U+6BCF,U+6BD4,U+6C14,U+6C1B,U+6C42,U+6C9F,U+6CA1,U+6CBF,U+6CE2,U+6D01,U+6D3B,U+6D3D,U+6DFB,U+6E05,U+6E20,U+6E38,U+7075,U+70C8,U+7167,U+7247-7248,U+72EC,U+7387,U+73AF,U+7406,U+7531,U+7535,U+754C,U+7684,U+76D6,U+76DB,U+76F4,U+76F8,U+770B,U+771F,U+7801,U+7840,U+786C,U+786E,U+78E8,U+79BB,U+79CD,U+79E9,U+79F0,U+7A0B,U+7A7A,U+7A97,U+7ACB,U+7AEF,U+7B80,U+7B97,U+7BA1,U+7C7B,U+7D27,U+7EA7,U+7EC4,U+7EC6,U+7ED3,U+7EED,U+7EF4,U+7F51,U+7F6E,U+7F72,U+800C,U+8054,U+80FD,U+811A,U+822A,U+8230,U+827A,U+8282,U+82F1,U+8303,U+83DC,U+878D,U+884C,U+8868,U+88C5,U+8986,U+89C2,U+89C4,U+89C6,U+8A00,U+8BA1,U+8BAE,U+8BBE-8BBF,U+8BC6,U+8BC9,U+8BDD,U+8BE5,U+8BED,U+8BF4,U+8BF7,U+8C08,U+8D28,U+8D2D,U+8D39,U+8D44,U+8D70,U+8D77,U+8DA3,U+8DDD,U+8DDF,U+8DEF,U+8F68,U+8F6C,U+8F9E,U+8FBE,U+8FC7,U+8FCE,U+8FD0-8FD1,U+8FD4,U+8FDB-8FDC,U+8FDE,U+8FF0,U+9009,U+9012,U+9014,U+901A,U+901F-9020,U+9047,U+9053,U+9065,U+90E8,U+90FD,U+91C7,U+91CD,U+91CF,U+9501,U+952E,U+957F,U+95E8,U+95EE,U+95F4,U+9644-9645,U+96C6,U+9700,U+9759,U+9760,U+9879,U+9884,U+9898,U+98CE,U+9AD8,U+9E1F,U+9E23; }
/*@@END@@*/

:root {
  --bg: #070708;
  --bg-2: #0c0d0e;
  --fg: 239 235 228;
  --gold: 222 190 118;
  --red: 214 44 40;
  --tint: 236 222 196;
  --gx: clamp(20px, 3.6vw, 60px);
  --nav-h: 84px;
  --ease: cubic-bezier(.16, .84, .24, 1);
  --ease-io: cubic-bezier(.66, 0, .34, 1);
  --serif: "YN Serif", "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;
  --sans: "YN Inter", "YN Sans", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { background: var(--bg); -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg);
  color: rgb(var(--fg));
  font: 400 14px/1.7 var(--sans);
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
p, h1, h2, h3, h4, ol, ul, figure, dl, dd { margin: 0; }
ol, ul { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }
::selection { background: rgb(var(--gold) / .35); color: #fff; }
:focus { outline: none; }
:focus-visible { outline: 1px solid rgb(var(--gold) / .9); outline-offset: 4px; border-radius: 2px; }
.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; }
.serif { font-family: var(--serif); font-weight: 300; }

/* 胶片颗粒 */
.grain {
  position: fixed; inset: -6%; z-index: 60; pointer-events: none; opacity: .055;
  background: url("../img/noise.png") repeat; background-size: 112px 112px;
  will-change: transform;
}
.grain.is-live { animation: grain 1.2s steps(6) infinite; }
@keyframes grain {
  0% { transform: translate3d(0, 0, 0); } 17% { transform: translate3d(-2%, 1.5%, 0); } 34% { transform: translate3d(1.5%, -2.5%, 0); }
  51% { transform: translate3d(-2.5%, -.5%, 0); } 68% { transform: translate3d(2%, 2%, 0); } 85% { transform: translate3d(-.5%, 2.5%, 0); } 100% { transform: translate3d(0, 0, 0); }
}

/* 品牌标识：注册商标原形，不改变比例 */
.lockup { display: inline-flex; align-items: center; gap: 16px; flex: none; }
.lockup-logo { height: 58px; width: auto; aspect-ratio: 915 / 814; transition: filter .6s var(--ease); }
.lockup:hover .lockup-logo { filter: brightness(1.12) drop-shadow(0 0 14px rgb(var(--gold) / .25)); }
.lockup-name { display: grid; gap: 5px; padding-left: 16px; border-left: 1px solid rgb(var(--gold) / .32); line-height: 1; white-space: nowrap; }
.lockup-name .zh { font: 300 15px/1 var(--serif); letter-spacing: .34em; margin-right: -.34em; color: rgb(var(--fg) / .94); }
.lockup-name .en { font: 500 8.5px/1 var(--sans); letter-spacing: .36em; color: rgb(var(--gold) / .72); }

/* 竖排组合标识（标志 + 中文） */
.brandmark { display: inline-grid; justify-items: center; gap: 18px; }
.brandmark img { width: 100%; height: auto; aspect-ratio: 915 / 814; }
.brandmark-cn { display: flex; align-items: center; gap: 14px; width: 100%; font: 300 1em/1 var(--serif); letter-spacing: .42em; color: rgb(var(--gold)); white-space: nowrap; }
.brandmark-cn::before, .brandmark-cn::after { content: ""; flex: 1; height: 1px; background: rgb(var(--gold) / .7); }
.brandmark-cn span { margin-right: -.42em; }

/* ---------- 导航 ---------- */
.nav {
  position: fixed; inset: 0 0 auto; z-index: 50; height: var(--nav-h);
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 0 var(--gx);
  transition: background-color .5s var(--ease), border-color .5s, height .5s var(--ease);
  border-bottom: 1px solid transparent;
}
.nav.is-scrolled { background: rgb(7 7 8 / .8); -webkit-backdrop-filter: blur(16px) saturate(1.2); backdrop-filter: blur(16px) saturate(1.2); border-bottom-color: rgb(var(--fg) / .08); height: 70px; }
.nav.is-scrolled .lockup-logo { height: 46px; }
.lockup-logo { transition: height .5s var(--ease), filter .6s var(--ease); }
.nav-links { display: flex; align-items: center; gap: clamp(18px, 2.6vw, 44px); }
.nav-link { position: relative; display: grid; justify-items: center; gap: 3px; padding: 8px 2px; color: rgb(var(--fg) / .66); transition: color .35s; }
.nav-link .zh { font-size: 13.5px; letter-spacing: .24em; margin-right: -.24em; }
.nav-link .en { font: 500 8.5px/1 var(--sans); letter-spacing: .28em; margin-right: -.28em; color: rgb(var(--fg) / .32); transition: color .35s; }
.nav-link::after { content: ""; position: absolute; left: 50%; bottom: -4px; width: 4px; height: 4px; border-radius: 50%; background: rgb(var(--gold)); transform: translateX(-50%) scale(0); transition: transform .45s var(--ease); }
.nav-link:hover { color: rgb(var(--fg)); }
.nav-link[aria-current="page"] { color: rgb(var(--fg)); }
.nav-link[aria-current="page"] .en { color: rgb(var(--gold) / .8); }
.nav-link[aria-current="page"]::after, .nav-link:hover::after { transform: translateX(-50%) scale(1); }
.nav-burger { display: none; width: 42px; height: 42px; border: 1px solid rgb(var(--fg) / .18); border-radius: 50%; place-items: center; }
.nav-burger { position: relative; }
.nav-burger span { position: absolute; left: 50%; top: 50%; width: 16px; height: 1px; margin: 0 0 0 -8px; background: currentColor; transition: transform .45s var(--ease); }
.nav-burger span:first-child { transform: translateY(-3px); }
.nav-burger span:last-child { transform: translateY(3px); }
.nav-open .nav-burger span:first-child { transform: rotate(45deg); }
.nav-open .nav-burger span:last-child { transform: rotate(-45deg); }

.menu {
  position: fixed; inset: 0; z-index: 45; display: grid; align-content: center; gap: 6px;
  padding: calc(var(--nav-h) + 20px) var(--gx) 40px;
  background: rgb(7 7 8 / .96); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
  opacity: 0; visibility: hidden; transition: opacity .45s var(--ease), visibility 0s .45s;
}
.nav-open .menu { opacity: 1; visibility: visible; transition: opacity .45s var(--ease); }
.menu a { display: flex; align-items: baseline; gap: 16px; padding: 14px 0; border-bottom: 1px solid rgb(var(--fg) / .08); transform: translateY(16px); opacity: 0; transition: transform .6s var(--ease), opacity .6s var(--ease); }
.nav-open .menu a { transform: none; opacity: 1; }
.nav-open .menu a:nth-child(2) { transition-delay: .05s; } .nav-open .menu a:nth-child(3) { transition-delay: .1s; } .nav-open .menu a:nth-child(4) { transition-delay: .15s; } .nav-open .menu a:nth-child(5) { transition-delay: .2s; }
.menu .no { font: 500 10px var(--sans); letter-spacing: .16em; color: rgb(var(--gold)); }
.menu .zh { font: 300 30px/1.2 var(--serif); letter-spacing: .16em; }
.menu .en { margin-left: auto; font: 500 9px var(--sans); letter-spacing: .28em; color: rgb(var(--fg) / .4); }

/* ---------- 通用排版 ---------- */
.page { position: relative; min-height: 100vh; }
.wrap { padding-left: var(--gx); padding-right: var(--gx); }
.eyebrow { display: inline-flex; align-items: center; gap: 12px; font: 500 10.5px/1.4 var(--sans); letter-spacing: .32em; color: rgb(var(--gold)); }
.eyebrow::before { content: ""; width: 28px; height: 1px; background: rgb(var(--gold) / .7); }
.eyebrow .zh { font-family: var(--sans); letter-spacing: .3em; color: rgb(var(--fg) / .62); }
.display { font: 300 clamp(34px, 4.3vw, 68px)/1.2 var(--serif); letter-spacing: .06em; }
.lede { max-width: 34em; font-size: 15px; line-height: 1.9; letter-spacing: .08em; color: rgb(var(--fg) / .64); }
.rule { height: 1px; background: rgb(var(--fg) / .1); }

.btn {
  display: inline-flex; align-items: center; gap: 12px; height: 46px; padding: 0 22px;
  border: 1px solid rgb(var(--gold) / .55); border-radius: 999px;
  font-size: 13px; letter-spacing: .2em; color: rgb(var(--fg));
  transition: background-color .4s var(--ease), border-color .4s, color .4s;
}
.btn svg { width: 14px; height: 14px; transition: transform .45s var(--ease); }
.btn:hover { background: rgb(var(--gold) / .12); border-color: rgb(var(--gold)); }
.btn:hover svg { transform: translate(3px, -3px); }
.btn--solid { background: rgb(var(--gold)); border-color: rgb(var(--gold)); color: #111; }
.btn--solid:hover { background: rgb(240 212 150); color: #111; }
.ico { fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }

/* 滚动出现 */
.js [data-reveal] { opacity: 0; transform: translate3d(0, 22px, 0); transition: opacity 1.1s var(--ease), transform 1.2s var(--ease); transition-delay: var(--d, 0s); }
.js [data-reveal].is-in { opacity: 1; transform: none; }

/* ---------- 页脚 ---------- */
.site-foot { position: relative; z-index: 2; padding: 64px var(--gx) max(28px, env(safe-area-inset-bottom)); border-top: 1px solid rgb(var(--fg) / .08); }
.foot-grid { display: grid; grid-template-columns: auto 1fr auto; gap: 40px; align-items: end; }
.foot-brand { width: 132px; font-size: 12px; }
.foot-links { display: flex; flex-wrap: wrap; gap: 10px 34px; justify-content: center; }
.foot-links a { font-size: 13px; letter-spacing: .2em; color: rgb(var(--fg) / .62); transition: color .3s; }
.foot-links a:hover { color: rgb(var(--fg)); }
.foot-meta { display: grid; gap: 6px; justify-items: end; font: 400 11px/1.6 var(--sans); letter-spacing: .14em; color: rgb(var(--fg) / .38); text-align: right; }
.foot-meta a:hover { color: rgb(var(--fg) / .8); }
.foot-motto { font: 500 10px var(--sans); letter-spacing: .5em; color: rgb(var(--gold) / .55); }

@media (max-width: 960px) {
  :root { --nav-h: 68px; }
  .nav-links { display: none; }
  .nav-burger { display: grid; }
  .lockup-logo, .nav.is-scrolled .lockup-logo { height: 42px; }
  .nav.is-scrolled { height: 60px; }
  .lockup { gap: 12px; }
  .lockup-name { padding-left: 12px; gap: 4px; }
  .lockup-name .zh { font-size: 13px; letter-spacing: .26em; margin-right: -.26em; }
  .lockup-name .en { font-size: 7.5px; letter-spacing: .3em; }
  .foot-grid { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 28px; }
  .foot-meta { justify-items: center; text-align: center; }
}
@media (max-width: 380px) {
  .lockup-name .en { display: none; }
}
