yanchaomars's picture
Upload 147 files
86020e3 verified
Raw History Blame Contribute Delete
4.76 kB
/* =============================================================================
base.css · reset、字体、排版基础
============================================================================= */
/* ── 字体 ────────────────────────────────────────────────────────────────────
自托管,不走 CDN:Google Fonts 在中国大陆被墙,jsdelivr 也不稳。
unicode-range 必须写 —— 保证中英混排时英文一定落在 Instrument Sans 上,
不会被中文字体里的拉丁字形接管(中英混排最常见的翻车点)。 */
@font-face {
font-family: "Instrument Sans";
font-style: normal;
font-weight: 400 700; /* 可变字重,一个 30KB 文件覆盖全部 */
font-display: swap;
src: url("../fonts/instrument-sans-latin-wght-normal.woff2") format("woff2-variations");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193,
U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Instrument Serif";
font-style: italic;
font-weight: 400;
font-display: swap;
src: url("../fonts/instrument-serif-latin-400-italic.woff2") format("woff2");
unicode-range: U+0000-00FF, U+2000-206F;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
/* hidden 属性必须能压过组件自己的 display。
UA 样式表里的 [hidden]{display:none} 特异性只有 0-1-0,
任何 .field{display:flex} 都会把它盖掉 —— 元素会"逻辑上隐藏、视觉上还在"。 */
[hidden] { display: none !important; }
html {
-webkit-text-size-adjust: 100%;
scroll-behavior: smooth;
}
html, body { height: 100%; }
body {
font-family: var(--font-sans);
background: var(--field);
color: var(--ink);
font-size: var(--fs-body);
line-height: var(--lh-normal);
letter-spacing: var(--tr-body);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
overflow: hidden; /* 应用外壳自己管滚动 */
}
img, svg, video, canvas { display: block; max-width: 100%; }
img { background: var(--field-sunk); } /* 加载中不留白洞 */
button, input, textarea, select {
font: inherit;
color: inherit;
letter-spacing: inherit;
}
button { background: none; border: 0; cursor: pointer; }
button:disabled { cursor: not-allowed; }
a { color: inherit; text-decoration: none; }
textarea { resize: none; }
/* 键盘焦点:墨色实线,任何底色上都清楚。鼠标点击不出现。 */
:focus-visible {
outline: 2px solid var(--ink);
outline-offset: 2px;
border-radius: var(--r-sm);
}
::selection { background: var(--bronze-wash); }
.sr-only {
position: absolute; width: 1px; height: 1px;
padding: 0; margin: -1px; overflow: hidden;
clip-path: inset(50%); white-space: nowrap; border: 0;
}
/* 时间码、时长、计数一律用等宽数字,不用等宽字体 ——
等宽字体会让播放器带上"终端工具"的味道,和 Apple 观感相反。 */
.tnum { font-variant-numeric: tabular-nums; }
/* 细滚动条,不抢视觉 */
* { scrollbar-width: thin; scrollbar-color: var(--rule-strong) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
background: var(--rule-strong);
border: 3px solid transparent;
border-radius: 99px;
background-clip: content-box;
}
*::-webkit-scrollbar-thumb:hover { background: var(--ink-4); background-clip: content-box; }
/* ── 通用排版件 ──────────────────────────────────────────────────────────── */
.eyebrow {
font-size: var(--fs-eyebrow);
font-weight: var(--fw-semi);
letter-spacing: var(--tr-eyebrow);
text-transform: uppercase;
color: var(--bronze);
display: inline-flex;
align-items: center;
gap: 9px;
font-family: var(--font-mono);
}
.eyebrow::before {
content: "";
width: 18px; height: 1.5px;
background: var(--bronze);
flex: none;
}
.page-title {
font-size: var(--fs-h1);
font-weight: var(--fw-semi);
letter-spacing: var(--tr-h1);
line-height: var(--lh-snug);
}
.page-lead {
font-size: var(--fs-lead);
color: var(--ink-2);
margin-top: 10px;
max-width: 62ch;
line-height: 1.6;
}
.icon { width: 18px; height: 18px; flex: none; }
.icon-sm { width: 15px; height: 15px; flex: none; }
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
}