:root {
  --primary: #FF6B6B;
  --primary-dark: #E84545;
  --primary-light: #FFB3B3;
  --secondary: #FF9A3C;
  --accent: #FF4757;
  --mint: #3ddc97;
  --paper: #fafafa;
  --ink: #1a1a1a;
  --hair: #e3e3e3;
}

/* Swiss international typographic system */
html { -webkit-text-size-adjust: 100%; }
body { background: var(--paper); letter-spacing: -0.005em; }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--paper); }
::-webkit-scrollbar-thumb { background: #cfcfcf; }
::-webkit-scrollbar-thumb:hover { background: var(--mint); }

::selection { background: var(--mint); color: #0d0d0d; }

/* hairline helpers */
.hair { border-color: var(--hair); }

/* grid baseline accent underline */
.mint-rule {
  width: 40px; height: 3px;
  background: var(--mint);
  display: block;
}

/* uppercase label / overline style */
.overline {
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: 0.6875rem;
  font-weight: 600;
}

/* link hover micro-interaction */
.swiss-link { position: relative; }
.swiss-link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px;
  height: 1px; background: var(--mint);
  transform: scaleX(0); transform-origin: left;
  transition: transform .25s ease;
}
.swiss-link:hover::after { transform: scaleX(1); }

/* card hover - precise, no shadow drama */
.swiss-card { transition: border-color .2s ease, transform .2s ease; }
.swiss-card:hover { border-color: var(--ink); }

.thumb-frame { transition: opacity .3s ease; }
.swiss-card:hover .thumb-frame img { transform: scale(1.03); }
.thumb-frame img { transition: transform .5s ease; }

/* 移动端抽屉导航 */
.nav { transition: transform .3s ease; }
@media (max-width: 1023px) {
  .nav {
    position: fixed; top: 0; right: 0; bottom: 0;
    width: 78%; max-width: 300px;
    flex-direction: column;
    align-items: flex-start;
    background: #ffffff;
    padding: 5.5rem 2rem 2rem;
    transform: translateX(100%);
    z-index: 60; overflow-y: auto;
    border-left: 1px solid var(--hair);
  }
  .nav.active { transform: translateX(0); }
  .menu-overlay {
    position: fixed; inset: 0;
    background: rgba(250,250,250,.85);
    backdrop-filter: blur(2px);
    opacity: 0; visibility: hidden;
    transition: opacity .3s ease;
    z-index: 55;
  }
  .menu-overlay.active { opacity: 1; visibility: visible; }
  body.menu-open { overflow: hidden; }
}

/* FAQ 折叠 */
.faq-answer {
  max-height: 0; overflow: hidden; opacity: 0;
  transition: max-height .3s ease, opacity .3s ease;
}
.faq-icon { transition: transform .25s ease; }

/* 回到顶部 */
.back-to-top {
  opacity: 0; visibility: hidden;
  transition: opacity .25s ease;
}
.back-to-top.visible { opacity: 1; visibility: visible; }

@media print {
  header, footer, nav, .no-print { display: none !important; }
  body { background: #fff; color: #000; }
}
