@font-face {
  font-family:"Salon Handwritten"; font-style:normal; font-weight:400; font-display:swap;
  src:url("assets/fonts/文楷手写.woff2") format("woff2");
}
:root {
  color-scheme: light;
  
  --bg:#f7f3ed; --surface:#fffdf9; --surface-soft:#efe7dc; --ink:#3e332d; --muted:#726559; --line:#e2d9ce;
  --accent:#775c49; --accent-ink:#fff; --accent-soft:#e9dfd3; --photo-ink:#fff;
  --overlay:rgba(37,29,23,.70); --shadow-color:rgba(61,43,29,.08);
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px; --s10:40px; --s12:48px; --s16:64px;
  --text-xs:12px; --text-sm:14px; --text-base:16px; --text-lg:20px; --text-xl:24px; --text-display:clamp(32px,4vw,52px);
  --brand-lockup-width:720px; --hero-min-height:280px; --hero-stack-width:480px;
  
  --body-font:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --display-font:"Salon Handwritten","Kaiti SC","KaiTi","STKaiti",serif;
  --content:1440px; --gutter:clamp(16px,3.5vw,56px); --target:48px;
  --radius-sm:12px; --radius-card:20px; --radius-panel:28px; --radius-pill:999px;
  --motion-fast:150ms; --motion-standard:260ms; --ease:cubic-bezier(.22,.68,0,1);
  --shadow:0 16px 48px var(--shadow-color);
}
:root[data-theme="dark"] {
  color-scheme:dark;  --bg:#201d1a; --surface:#2b2622; --surface-soft:#38312b; --ink:#f5ebdf;
  --muted:#c7b8a9; --line:#594c40; --accent:#dac3aa; --accent-ink:#30251d; --accent-soft:#4d3d30;
  --overlay:rgba(15,11,8,.82); --shadow-color:rgba(0,0,0,.20);
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--body-font); font-size:var(--text-base); line-height:1.6; -webkit-tap-highlight-color:transparent; }
button,input,select { font:inherit; }
button { cursor:pointer; color:inherit; }
button:disabled { cursor:default; opacity:.45; }
button,a,input,select { touch-action:manipulation; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
button { transition:transform var(--motion-fast) var(--ease),opacity var(--motion-fast) var(--ease); }
button:active:not(:disabled) { transform:scale(.97); }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin:0; }
svg { display:block; width:20px; height:20px; stroke-width:1.5; flex-shrink:0; }
[hidden] { display:none!important; }
.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; }
::view-transition-old(root),::view-transition-new(root) { animation-duration:var(--motion-standard); animation-timing-function:var(--ease); }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
