/* Fusion Bookstore — theme tokens adapted from products/velowiki/web/theme.css.
   Same fonts, same color palette (--teal as the rust-red accent), same
   line-height conventions. Self-contained: no third-party CSS framework. */

@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/bricolage-500-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:500;font-display:swap;src:url("assets/fonts/bricolage-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA-02DC,U+0304,U+0308,U+0329,U+1D00-1D78F,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/bricolage-700-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/bricolage-700-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA-02DC,U+0304,U+0308,U+0329,U+1D00-1D78F,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:800;font-display:swap;src:url("assets/fonts/bricolage-800-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:800;font-display:swap;src:url("assets/fonts/bricolage-800-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA-02DC,U+0304,U+0308,U+0329,U+1D00-1D78F,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

:root {
  color-scheme: light;
  --bg: #f5f4f0;
  --panel: #ffffff;
  --panel-strong: #ffffff;
  --text: #17211e;
  --muted: #66716d;
  --soft: #7c8582;
  --line: #ddd9d2;
  --teal: #9f3029;
  --teal-soft: #f6e9e5;
  --orange: #9b6a14;
  --amber: #8a5d12;
  --green: #26704b;
  --ink: #17211e;
  --shadow: 0 12px 32px rgba(31, 27, 23, 0.1);
  font-family: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Microsoft YaHei UI", sans-serif;
  letter-spacing: 0;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  background: var(--bg);
  color: var(--text);
}

a { color: inherit; text-decoration: none; }

img, svg, iframe, canvas { display: block; }

button, select, input, textarea {
  font: inherit;
  color: inherit;
}

button { min-height: 36px; cursor: pointer; }

button:focus-visible,
a:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  transform: translateY(-120%);
  background: var(--text);
  color: #fff;
  padding: 0.75rem 1rem;
  font-weight: 700;
}
.skip-link:focus { transform: translateY(0); }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* 深色主题：bookstore-reader.js 通过 document.documentElement[data-theme] 切换，
   同一套 token 变量换肤，全站生效。 */
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #15181c;
  --panel: #1d2228;
  --panel-strong: #232932;
  --text: #d6dde3;
  --muted: #93a0ac;
  --soft: #7d8a96;
  --line: #343c46;
  --teal: #d9806f;
  --teal-soft: #3a2a26;
  --orange: #d9a85f;
  --amber: #c99a52;
  --green: #7fbf9e;
  --ink: #e8edf1;
  --shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
}
