/* Wedding Invitation Font Faces */

@font-face {
  font-family: "Pattaya";
  src: url("/fonts/Pattaya-Regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Roboto (self-hosted, variable) - replaces Helvetica Neue for invitation body copy.
   Variable woff2 per subset, so one @font-face covers all weights. */
@font-face {
  font-family: "Roboto";
  src: url("/fonts/Roboto-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Roboto";
  src: url("/fonts/Roboto-latin-ext.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  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: "Roboto";
  src: url("/fonts/Roboto-vietnamese.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* Pinyon Script (self-hosted, OFL) - replaces UNI Chu truyen thong, a 2008
   Vietnamese face that stated NO licence at all, on the couple names of Long
   Phung and Vuon Xuan. Same English Roundhand model: high stroke contrast,
   airy fit, looped swash capitals, and it sets a full Vietnamese name only
   5% narrower. Subsets ordered latin, latin-ext, vietnamese: check-fonts.ts
   preloads the FIRST face listed. */
@font-face {
  font-family: "Pinyon Script";
  src: url("/fonts/PinyonScript-latin.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Pinyon Script";
  src: url("/fonts/PinyonScript-latin-ext.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  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: "Pinyon Script";
  src: url("/fonts/PinyonScript-vietnamese.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* Ms Madi - the "&" that UNI Chu truyen thong used to draw on 25 templates.
   Its ampersand is the narrow, tall, looped form those cards were designed
   around; at the 35px they actually render, no other OFL face comes close.
   Ms Madi carries no Reserved Font Name, so unlike CD Brush Ampersand this
   subset keeps its own name and its attribution.
   ONE glyph, U+0026. The unicode-range keeps every other character on the
   next family in the stack, so setting text in this family silently renders
   in the fallback rather than in this face. */
@font-face {
  font-family: "Ms Madi";
  src: url("/fonts/MsMadiAmpersand-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0026;
}

@font-face {
  font-family: "The Nautigal";
  src: url("/fonts/TheNautigal-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "The Nautigal";
  src: url("/fonts/TheNautigal-Bold.ttf") format("truetype");
  font-weight: bold;
  font-style: normal;
  font-display: swap;
}

/* Carattere: the couple-name script on Bạch Sứ V2 (Figma "Carattere Regular").
   Full Vietnamese coverage, checked against the diacritic set. */
@font-face {
  font-family: "Carattere";
  src: url("/fonts/Carattere-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Whisper: the hairline hero ampersand on Bạch Sứ V2 (Figma "Whisper Regular"). */
@font-face {
  font-family: "Whisper";
  src: url("/fonts/Whisper-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Style Script: both ampersands on Bạch Sứ - Nâu (Figma "Style Script Regular",
   node 14201:34 hero and 14201:56 couple names). Latin only, which is all the
   "&" glyph needs. */
@font-face {
  font-family: "Style Script";
  src: url("/fonts/StyleScript-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* CSS Custom Properties for Wedding Themes */
:root {
  --font-primary: "Pattaya", cursive;
  /* Roboto, not Helvetica Neue: the self-hosted "HelveticaNeue" family was
     Linotype's and is gone. "Helvetica Neue"/Arial stay as SYSTEM fallbacks,
     which is a name reference, not redistribution. */
  --font-secondary: "Roboto", "Helvetica Neue", Arial, sans-serif;
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-2xl: 1.5rem;
  --font-size-3xl: 1.875rem;
  --font-size-4xl: 2.25rem;
  --font-size-5xl: 3rem;
}

/* Utility classes for fonts */
.font-pattaya {
  font-family: var(--font-primary);
}

/* Renamed from .font-helvetica: it resolves to Roboto now, and a class called
   font-helvetica would invite someone to "fix" it by re-adding the font. */
.font-body-sans {
  font-family: var(--font-secondary);
}

/* Renamed from .font-uni-chu: it resolves to Pinyon Script now, and a class
   named after the removed unlicensed face would invite someone to "fix" it by
   re-adding that font. */
.font-pinyon {
  font-family: "Pinyon Script", "Great Vibes", cursive;
}

/* The "&" between couple names, and nothing else. Ms Madi is unicode-range'd
   to U+0026 alone, so any other character silently renders in the fallback -
   never set a word in this class. It exists because the ampersand sits INSIDE
   a .font-pinyon wrapper on Long Phung / Vuon Xuan and would otherwise inherit
   the name face, whose ampersand is a different glyph entirely. */
.font-ampersand {
  font-family: "Ms Madi", cursive;
}

.font-nautigal {
  font-family: "The Nautigal", cursive;
}

.font-eb-garamond {
  font-family: "EB Garamond", serif;
}

/* Chibi Template Fonts */
@font-face {
  font-family: "Babylonica";
  src: url("/fonts/Babylonica-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Uchen";
  src: url("/fonts/Uchen-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

.font-babylonica {
  font-family: "Babylonica", cursive;
}

.font-uchen {
  font-family: "Uchen", serif;
}

.font-cormorant {
  font-family: "Cormorant Garamond", "Times New Roman", serif;
}

.font-alex-brush {
  font-family: "Alex Brush", "The Nautigal", cursive;
}

.font-playfair {
  font-family: "Playfair Display", serif;
}

@font-face {
  font-family: "Lora";
  src: url("/fonts/Lora-Regular.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Noto Serif";
  src: url("/fonts/NotoSerif-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Crimson Pro";
  src: url("/fonts/CrimsonPro-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Lexend";
  src: url("/fonts/Lexend-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Hoạ Tình — Patrick Hand (handwritten body + couple names, danh xung Co dau / Chu re).
   Single-weight handwriting face; the weight RANGE lets the template's 300/700
   requests reuse the one file without faux-bold synthesis. */
@font-face {
  font-family: "Patrick Hand";
  src: url("/fonts/PatrickHand-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Patrick Hand";
  src: url("/fonts/PatrickHand-latin-ext.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  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: "Patrick Hand";
  src: url("/fonts/PatrickHand-vietnamese.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* Hoạ Tình — Baloo Bhaijaan (announcement text) */
@font-face {
  font-family: "Baloo Bhaijaan";
  src: url("/fonts/BalooBhaijaan-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Viaoda Libre (hero couple names across templates, e.g. Chateau Blue) */
@font-face {
  font-family: "Viaoda Libre";
  src: url("/fonts/ViaodaLibre-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Chateau Blue — Alex Brush (script ampersand) */
@font-face {
  font-family: "Alex Brush";
  src: url("/fonts/AlexBrush-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Chateau Blue — Cormorant Garamond (welcome heading, variable weight 300-700) */
@font-face {
  font-family: "Cormorant Garamond";
  src: url("/fonts/CormorantGaramond-Variable.ttf") format("truetype-variations");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}


/* Playfair Display (couple names + section titles across templates, Porcelain Blue SAVE THE DATE eyebrow; variable weight 400-900) */
@font-face {
  font-family: "Playfair Display";
  src: url("/fonts/PlayfairDisplay-Variable.ttf") format("truetype-variations");
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}

/* Sunflower — Vujahday Script (the hero "and" between the couple names) */
@font-face {
  font-family: "Vujahday Script";
  src: url("/fonts/VujahdayScript-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Lien Hoa Pink — EB Garamond (section titles + body serif, variable weight 400-800) */
@font-face {
  font-family: "EB Garamond";
  src: url("/fonts/EBGaramond-Variable.ttf") format("truetype-variations");
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
}

/* Lien Hoa Pink — Beau Rivage (script couple names + ampersand) */
@font-face {
  font-family: "Beau Rivage";
  src: url("/fonts/BeauRivage-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Lien Hoa Pink — Ubuntu (sans labels, family names, big date numbers) */
@font-face {
  font-family: "Ubuntu";
  src: url("/fonts/Ubuntu-Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Ubuntu";
  src: url("/fonts/Ubuntu-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Ubuntu";
  src: url("/fonts/Ubuntu-Medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* Royal Purple — Great Vibes (script couple names + ampersand) */
@font-face {
  font-family: "Great Vibes";
  src: url("/fonts/GreatVibes-Regular.ttf") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* Oswald (self-hosted, variable) - replaces SVN-HC Built Titling on Nhat Binh
   section headings. Variable woff2 per subset, so one face covers 200-700. */
@font-face {
  font-family: "Oswald";
  src: url("/fonts/Oswald-latin.woff2") format("woff2");
  font-weight: 200 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Oswald";
  src: url("/fonts/Oswald-latin-ext.woff2") format("woff2");
  font-weight: 200 700;
  font-style: normal;
  font-display: swap;
  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: "Oswald";
  src: url("/fonts/Oswald-vietnamese.woff2") format("woff2");
  font-weight: 200 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* Plus Jakarta Sans (self-hosted, variable) - replaces SVN-HC Elixir Sans on
   Hoa Tinh section headings. Variable woff2 per subset, covers 200-800. */
@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/fonts/PlusJakartaSans-latin.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/fonts/PlusJakartaSans-latin-ext.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  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: "Plus Jakarta Sans";
  src: url("/fonts/PlusJakartaSans-vietnamese.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* Birthstone (self-hosted) - replaces SVN-HC Haydon Brush on Co Ba couple
   names, the ampersand and the accent line. Subsets ordered latin,
   latin-ext, vietnamese: check-fonts.ts preloads the FIRST face listed. */
@font-face {
  font-family: "Birthstone";
  src: url("/fonts/Birthstone-latin.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Birthstone";
  src: url("/fonts/Birthstone-latin-ext.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  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: "Birthstone";
  src: url("/fonts/Birthstone-vietnamese.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* CD Brush Ampersand - the "&" between the couple names on Nhat Binh.
   Ampersand-only subset of Carosello (Unio | Creative Solutions, OFL 1.1),
   renamed because OFL section 3 forbids a Modified Version from carrying the
   Reserved Font Name. Licence ships beside it as OFL-CDBrushAmpersand.txt.
   ONE glyph, U+0026. The unicode-range keeps every other character on the
   next family in the stack, so setting text in this family silently renders
   in the fallback rather than in this face. */
@font-face {
  font-family: "CD Brush Ampersand";
  src: url("/fonts/CDBrushAmpersand-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0026;
}

/* Bungee (self-hosted) - replaces BOTH SVN-HC Pacifico and SVN-HC Marvin
   Visions, on Nhat Binh (couple names, hero headline, hero label, envelope)
   and Co Ba (section titles, hero, envelope). Subsets ordered latin,
   latin-ext, vietnamese: check-fonts.ts preloads the FIRST face listed. */
@font-face {
  font-family: "Bungee";
  src: url("/fonts/Bungee-latin.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Bungee";
  src: url("/fonts/Bungee-latin-ext.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  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: "Bungee";
  src: url("/fonts/Bungee-vietnamese.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
