/*
 * fonts.css — Self-hosted font definitions for LIFE DESIGN PARTNER
 *
 * Strategy (offline-first with CDN fallback):
 *   1. If woff2 files exist in assets/fonts/, they are served locally (offline-capable).
 *   2. If the woff2 files are absent (e.g. fresh clone before CI downloads them),
 *      the @import below pulls from Google Fonts CDN as a fallback.
 *
 * CI download command (run once to populate the local files):
 *   npx google-font-to-local \
 *     "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap" \
 *     --out assets/fonts/
 *
 * Material Icons icon font:
 *   Download woff2 from https://github.com/google/material-design-icons/releases
 *   and place as assets/fonts/MaterialIcons-Regular.woff2
 */

/* ------------------------------------------------------------------ */
/* CDN fallback — browsers skip this @import when local files are      */
/* already loaded via the src: url() descriptors below.                */
/* When local woff2 files do not exist, this import takes effect.      */
/* ------------------------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

/* ------------------------------------------------------------------ */
/* Self-hosted definitions                                             */
/* src order: local file first, CDN unicode-range fallback second.     */
/* ------------------------------------------------------------------ */

/* Noto Sans JP — 400 */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Noto Sans JP'),
       url('./NotoSansJP-Regular.woff2') format('woff2');
  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,
    U+3000-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

/* Noto Sans JP — 500 */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: local('Noto Sans JP Medium'),
       url('./NotoSansJP-Medium.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+3000-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

/* Noto Sans JP — 700 */
@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: local('Noto Sans JP Bold'),
       url('./NotoSansJP-Bold.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+3000-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

/* Noto Serif JP — 400 */
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Noto Serif JP'),
       url('./NotoSerifJP-Regular.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+3000-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

/* Noto Serif JP — 500 */
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: local('Noto Serif JP Medium'),
       url('./NotoSerifJP-Medium.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+3000-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

/* Noto Serif JP — 700 */
@font-face {
  font-family: 'Noto Serif JP';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: local('Noto Serif JP Bold'),
       url('./NotoSerifJP-Bold.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+3000-9FFF, U+F900-FAFF, U+FF00-FFEF;
}

/* Material Icons */
@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: local('Material Icons'),
       url('./MaterialIcons-Regular.woff2') format('woff2');
}

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}
