/* ============================================================
   H&M Immo — feuille de style consolidée
   Promoteur immobilier durable
   1. Design system (tokens, @font-face, composants hm-*)
   2. Styles de composants extraits du rendu (classes .hN)
   ============================================================ */
@font-face { font-family: Archivo; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 800; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 800; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 800; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 900; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 900; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 900; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-4.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-5.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-6.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-7.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-8.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-9.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-10.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-11.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-12.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-13.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-14.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-15.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-16.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-17.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-18.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root { --ink: #14130F; --ink-soft: #25231E; --paper: #FAF9F5; --paper-pure: #FFFFFF; --stone-50: #F4F2EC; --stone-100: #EAE7DE; --stone-200: #DBD6CA; --stone-300: #C5BFB1; --stone-400: #A39C8C; --stone-500: #7F7869; --stone-600: #5E584C; --stone-700: #423D34; --stone-800: #2B2823; --stone-900: #1A1814; --forest: #2E4A36; --forest-deep: #233A2A; --forest-bright: #3C6347; --forest-wash: #E7EDE6; --signal-positive: #2E4A36; --signal-warning: #9A6B1E; --signal-danger: #8A3324; --signal-info: #3A5060; --surface-page: var(--paper); --surface-card: var(--paper-pure); --surface-sunken: var(--stone-50); --surface-raised: var(--stone-100); --surface-inverse: var(--ink); --surface-accent: var(--forest); --surface-accent-wash: var(--forest-wash); --text-primary: var(--ink); --text-secondary: var(--stone-600); --text-muted: var(--stone-500); --text-faint: var(--stone-400); --text-inverse: var(--paper); --text-on-accent: var(--paper); --text-accent: var(--forest); --border-strong: var(--ink); --border-default: var(--stone-300); --border-subtle: var(--stone-200); --border-faint: var(--stone-100); --border-inverse: rgba(250, 249, 245, 0.20); --focus-ring: var(--forest-bright); --overlay-scrim: rgba(20, 19, 15, 0.58); }
:root { --font-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif; --font-sans: 'Archivo', 'Helvetica Neue', Arial, sans-serif; --font-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', monospace; --weight-regular: 400; --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700; --weight-extra: 800; --weight-black: 900; --text-display-2xl: 112px; --text-display-xl: 84px; --text-display-lg: 64px; --text-display-md: 48px; --text-display-sm: 36px; --text-heading: 28px; --text-subheading: 22px; --text-body-lg: 19px; --text-body: 16px; --text-body-sm: 14px; --text-caption: 13px; --text-eyebrow: 12px; --leading-tight: 0.96; --leading-snug: 1.08; --leading-heading: 1.16; --leading-body: 1.6; --leading-relaxed: 1.75; --tracking-display: -0.03em; --tracking-tight: -0.015em; --tracking-normal: 0em; --tracking-wide: 0.04em; --tracking-eyebrow: 0.18em; }
:root { --space-0: 0; --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 24px; --space-6: 32px; --space-7: 48px; --space-8: 64px; --space-9: 96px; --space-10: 128px; --space-11: 192px; --radius-none: 0px; --radius-sm: 2px; --radius-md: 4px; --radius-lg: 8px; --radius-pill: 999px; --border-hairline: 1px; --border-thick: 2px; --shadow-none: none; --shadow-xs: 0 1px 2px rgba(20, 19, 15, 0.06); --shadow-sm: 0 2px 8px rgba(20, 19, 15, 0.07); --shadow-md: 0 8px 24px rgba(20, 19, 15, 0.09); --shadow-lg: 0 20px 48px rgba(20, 19, 15, 0.13); --shadow-focus: 0 0 0 3px rgba(60, 99, 71, 0.40); --container-max: 1280px; --container-narrow: 760px; --gutter: 24px; --gutter-lg: 48px; --ease-out: cubic-bezier(0.22, 1, 0.36, 1); --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1); --dur-fast: 120ms; --dur-base: 220ms; --dur-slow: 420ms; }
*, ::before, ::after { box-sizing: border-box; }
html { text-size-adjust: 100%; }
body { margin: 0px; font-family: var(--font-sans); font-size: var(--text-body); line-height: var(--leading-body); font-weight: var(--weight-regular); color: var(--text-primary); background: var(--surface-page); -webkit-font-smoothing: antialiased; text-rendering: optimizelegibility; }
::selection { background: var(--ink); color: var(--paper); }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
h1, h2, h3, h4, h5, h6, p { margin: 0px; }
.hm-display { font-family: var(--font-display); font-weight: var(--weight-black); line-height: var(--leading-tight); letter-spacing: var(--tracking-display); text-wrap: balance; }
.hm-heading { font-family: var(--font-display); font-weight: var(--weight-bold); line-height: var(--leading-heading); letter-spacing: var(--tracking-tight); text-wrap: balance; }
.hm-eyebrow { font-family: var(--font-mono); font-size: var(--text-eyebrow); font-weight: var(--weight-medium); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-secondary); }
.hm-figure { font-family: var(--font-mono); font-variant-numeric: tabular-nums; letter-spacing: var(--tracking-tight); }
.hm-container { width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: var(--gutter-lg); }
@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
html { scroll-behavior: smooth; }
body { background: var(--surface-page); }
@media (max-width: 900px) {
  .hm-two-col { grid-template-columns: 1fr !important; gap: var(--space-7) !important; }
  .hm-three-col { grid-template-columns: 1fr !important; }
  .hm-split { grid-template-columns: 1fr !important; }
  .hm-gallery { grid-template-columns: repeat(2, 1fr) !important; grid-auto-rows: 200px !important; }
  .hm-gallery-tile { grid-area: span 1 / span 1 !important; }
}
@media (max-width: 760px) {
  .hm-nav a { display: none; }
}
@font-face { font-family: Archivo; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 800; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 800; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 800; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 900; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 900; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 900; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-4.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-5.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-6.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-7.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-8.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-9.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-10.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-11.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-12.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-13.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-14.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-15.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-16.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-17.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-18.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
.legal-header { height: 72px; display: flex; align-items: center; border-bottom: 1px solid var(--border-subtle); position: sticky; top: 0px; z-index: 10; background: rgba(250, 249, 245, 0.92); backdrop-filter: blur(10px); }
.legal-header .inner { max-width: var(--container-max); margin: 0px auto; width: 100%; padding: 0 var(--gutter-lg); display: flex; align-items: center; justify-content: space-between; }
.legal-header img { height: 28px; width: auto; }
.back { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-secondary); display: inline-flex; align-items: center; gap: 8px; }
.back:hover { color: var(--ink); }
main { max-width: var(--container-narrow); margin: 0px auto; padding: var(--space-9) var(--gutter-lg) var(--space-10); }
.eyebrow { font-family: var(--font-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-secondary); }
h1 { font-family: var(--font-display); font-weight: 900; letter-spacing: -0.03em; font-size: clamp(38px, 6vw, 64px); line-height: 1; margin: 18px 0px 0px; }
.updated { font-family: var(--font-mono); font-size: 12px; color: var(--text-muted); margin-top: 18px; }
section.block { margin-top: var(--space-7); }
h2 { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.015em; font-size: 22px; padding-bottom: 12px; border-bottom: 1px solid var(--border-subtle); margin-bottom: 16px; }
p { font-size: var(--text-body); line-height: 1.75; color: var(--text-secondary); margin-bottom: 12px; max-width: 68ch; }
p strong { color: var(--text-primary); font-weight: 600; }
.note { background: var(--surface-sunken); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: 16px 18px; font-size: var(--text-body-sm); color: var(--text-muted); margin-top: var(--space-6); }
footer { border-top: 1px solid var(--border-subtle); }
footer .inner { max-width: var(--container-max); margin: 0px auto; padding: var(--space-6) var(--gutter-lg); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
footer span, footer a { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--text-muted); }
footer a:hover { color: var(--ink); }
@font-face { font-family: Archivo; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 400; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 500; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 600; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 700; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 800; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 800; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 800; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 900; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-1.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: Archivo; font-style: normal; font-weight: 900; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-2.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: Archivo; font-style: normal; font-weight: 900; font-stretch: 100%; font-display: swap; src: url("/assets/fonts/hm-font-3.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-4.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-5.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-6.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-7.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/hm-font-8.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-9.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-10.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-11.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-12.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/assets/fonts/hm-font-13.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-14.woff2") format("woff2"); unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-15.woff2") format("woff2"); unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-16.woff2") format("woff2"); unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-17.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, 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: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/assets/fonts/hm-font-18.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
ul { margin: 0px 0px 12px; padding-left: 0px; list-style: none; max-width: 68ch; }
li { position: relative; padding-left: 22px; font-size: var(--text-body); line-height: 1.7; color: var(--text-secondary); margin-bottom: 8px; }
li::before { content: ""; position: absolute; left: 0px; top: 11px; width: 7px; height: 7px; background: var(--forest); border-radius: 1px; }

/* ---- styles de composants (dé-inlinés) ---- */
.h1 { position: fixed; top: 0px; left: 0px; right: 0px; z-index: 50; transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); background: transparent; backdrop-filter: none; border-bottom: 1px solid transparent; }
.h2 { max-width: var(--container-max); margin: 0px auto; height: 72px; padding: 0 var(--gutter-lg); display: flex; align-items: center; justify-content: space-between; }
.h3 { display: flex; align-items: center; }
.h4 { height: 30px; width: auto; }
.h5 { display: flex; align-items: center; gap: 36px; }
.h6 { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 500; color: rgba(250, 249, 245, 0.85); transition: color var(--dur-fast) var(--ease-out); }
.h7 { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--font-sans); font-weight: var(--weight-semibold); font-size: var(--text-body-sm); line-height: 1; letter-spacing: -0.01em; padding: 8px 16px; border-radius: var(--radius-md); cursor: pointer; opacity: 1; transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); text-decoration: none; white-space: nowrap; background: transparent; color: var(--paper); border-color: rgba(250, 249, 245, 0.5); border-top-style: ; border-top-width: ; border-right-style: ; border-right-width: ; border-bottom-style: ; border-bottom-width: ; border-left-style: ; border-left-width: ; border-image-source: ; border-image-slice: ; border-image-width: ; border-image-outset: ; border-image-repeat: ; }
.h8 { position: relative; min-height: 100vh; display: flex; align-items: flex-end; overflow: hidden; }
.h9 { position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; }
.h10 { position: absolute; inset: 0px; background: linear-gradient(to top, rgba(20, 19, 15, 0.78) 0%, rgba(20, 19, 15, 0.22) 48%, rgba(20, 19, 15, 0.42) 100%); }
.h11 { position: relative; max-width: var(--container-max); margin: 0px auto; width: 100%; padding: 0 var(--gutter-lg) 84px; color: var(--paper); }
.h12 { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: var(--text-eyebrow); font-weight: var(--weight-medium); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--stone-400); }
.h13 { width: 18px; height: 1px; background: currentcolor; opacity: 0.7; }
.h14 { font-size: clamp(48px, 7vw, 96px); margin: 24px 0px 0px; max-width: 16ch; color: var(--paper); }
.h15 { margin-top: 26px; font-size: var(--text-body-lg); line-height: 1.55; color: rgba(250, 249, 245, 0.86); max-width: 52ch; }
.h16 { display: flex; gap: 14px; margin-top: 40px; flex-wrap: wrap; }
.h17 { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--font-sans); font-weight: var(--weight-semibold); font-size: var(--text-body-lg); line-height: 1; letter-spacing: -0.01em; padding: 17px 32px; border-radius: var(--radius-md); cursor: pointer; opacity: 1; transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); text-decoration: none; white-space: nowrap; background: var(--forest); color: var(--text-on-accent); border: 1px solid var(--forest); }
.h18 { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--font-sans); font-weight: var(--weight-semibold); font-size: var(--text-body-lg); line-height: 1; letter-spacing: -0.01em; padding: 17px 32px; border-radius: var(--radius-md); cursor: pointer; opacity: 1; transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); text-decoration: none; white-space: nowrap; background: transparent; color: var(--paper); border-color: rgba(250, 249, 245, 0.5); border-top-style: ; border-top-width: ; border-right-style: ; border-right-width: ; border-bottom-style: ; border-bottom-width: ; border-left-style: ; border-left-width: ; border-image-source: ; border-image-slice: ; border-image-width: ; border-image-outset: ; border-image-repeat: ; }
.h19 { background: var(--surface-page); padding: var(--space-10) 0; }
.h20 { max-width: var(--container-max); margin: 0px auto; padding: 0 var(--gutter-lg); }
.h21 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-9); align-items: start; }
.h22 { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: var(--text-eyebrow); font-weight: var(--weight-medium); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-secondary); }
.h23 { font-size: clamp(30px, 4vw, 46px); margin-top: 20px; max-width: 15ch; }
.h24 { padding-top: 8px; }
.h25 { font-size: var(--text-body-lg); line-height: 1.7; color: var(--text-secondary); }
.h26 { color: var(--text-primary); font-weight: 600; }
.h27 { font-size: var(--text-body); line-height: 1.7; color: var(--text-muted); margin-top: 20px; }
.h28 { background: var(--surface-sunken); padding: var(--space-10) 0; }
.h29 { font-size: clamp(28px, 3.4vw, 40px); margin-top: 18px; margin-bottom: var(--space-8); max-width: 20ch; }
.h30 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
.h31 { border-top: 2px solid var(--ink); padding-top: 22px; }
.h32 { font-size: 13px; color: var(--forest); font-weight: 600; letter-spacing: 0.1em; }
.h33 { font-size: 26px; margin-top: 14px; }
.h34 { font-size: var(--text-body); line-height: 1.65; color: var(--text-secondary); margin-top: 12px; }
.h35 { max-width: 40ch; margin-bottom: var(--space-7); }
.h36 { font-size: clamp(28px, 3.4vw, 40px); margin-top: 18px; }
.h37 { display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: 220px; gap: var(--space-3); }
.h38 { margin: 0px; position: relative; overflow: hidden; border-radius: var(--radius-md); grid-area: span 2 / span 2; }
.h39 { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--dur-slow) var(--ease-out); }
.h40 { margin: 0px; position: relative; overflow: hidden; border-radius: var(--radius-md); grid-column: span 4; }
.h41 { margin: 0px; position: relative; overflow: hidden; border-radius: var(--radius-md); grid-column: span 2; }
.h42 { background: var(--ink); color: var(--paper); }
.h43 { display: grid; grid-template-columns: 1fr 1fr; min-height: 560px; }
.h44 { position: relative; overflow: hidden; min-height: 320px; }
.h45 { padding: var(--space-9) var(--space-8); display: flex; flex-direction: column; justify-content: center; }
.h46 { font-size: clamp(28px, 3.4vw, 42px); margin-top: 20px; max-width: 16ch; color: var(--paper); }
.h47 { font-size: var(--text-body-lg); line-height: 1.65; color: var(--stone-300); margin-top: 20px; max-width: 46ch; }
.h48 { list-style: none; padding: 0px; margin: 32px 0px 0px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.h49 { display: flex; align-items: center; gap: 12px; font-size: var(--text-body); color: var(--paper); }
.h50 { width: 7px; height: 7px; background: var(--forest-bright); border-radius: 1px; flex: 0 0 auto; }
.h51 { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: var(--space-9); align-items: start; }
.h52 { font-size: clamp(28px, 3.4vw, 42px); margin-top: 18px; max-width: 14ch; }
.h53 { margin-top: var(--space-7); display: flex; flex-direction: column; gap: 22px; }
.h54 { margin-bottom: 6px; }
.h55 { font-size: var(--text-body-lg); color: var(--text-primary); letter-spacing: 0px; line-height: 1.4; }
.h56 { background: var(--surface-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: var(--space-7); }
.h57 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.h58 { display: flex; flex-direction: column; gap: 8px; }
.h59 { font-family: var(--font-mono); font-size: 11px; font-weight: var(--weight-medium); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-secondary); }
.h60 { color: var(--forest); }
.h61 { width: 100%; font-family: var(--font-sans); font-size: var(--text-body); color: var(--text-primary); background: var(--surface-card); border-width: 1px; border-style: solid; border-color: var(--border-default); border-image: initial; border-radius: var(--radius-md); padding: 12px 14px; outline: none; box-shadow: none; transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); box-sizing: border-box; }
.h62 { display: flex; flex-direction: column; gap: 8px; grid-column: 1 / -1; }
.h63 { width: 100%; font-family: var(--font-sans); font-size: var(--text-body); color: var(--text-primary); background: var(--surface-card); border-width: 1px; border-style: solid; border-color: var(--border-default); border-image: initial; border-radius: var(--radius-md); padding: 12px 14px; outline: none; box-shadow: none; transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out); resize: vertical; box-sizing: border-box; }
.h64 { margin-top: 24px; }
.h65 { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--font-sans); font-weight: var(--weight-semibold); font-size: var(--text-body-lg); line-height: 1; letter-spacing: -0.01em; padding: 17px 32px; border-radius: var(--radius-md); cursor: pointer; opacity: 1; transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); text-decoration: none; white-space: nowrap; background: var(--forest); color: var(--text-on-accent); border: 1px solid var(--forest); width: 100%; }
.h66 { background: var(--ink); color: var(--paper); padding: var(--space-8) 0 var(--space-6); }
.h67 { display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; flex-wrap: wrap; padding-bottom: var(--space-7); border-bottom: 1px solid var(--border-inverse); }
.h68 { height: 34px; width: auto; }
.h69 { display: flex; gap: 48px; flex-wrap: wrap; }
.h70 { color: var(--stone-400); margin-bottom: 12px; }
.h71 { font-size: var(--text-body-sm); color: var(--stone-300); }
.h72 { font-size: var(--text-body-sm); color: var(--stone-300); line-height: 1.9; letter-spacing: 0px; }
.h73 { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: 22px; align-items: center; }
.h74 { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--stone-500); }
.h75 { display: flex; gap: 20px; }
.h76 { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--stone-400); }
.h77 { display:flex;gap:20px; }


/* ============================================================
   3. Adaptatif (mobile / tablette) — ajouté après coup :
      l'export d'origine était conçu pour le desktop uniquement.
   ============================================================ */
@media (max-width: 760px) {
  :root {
    --gutter-lg: 20px;   /* gouttières réduites sur petit écran */
    --gutter: 16px;
    --space-11: 96px;    /* grands espacements verticaux resserrés */
    --space-10: 64px;
    --space-9: 56px;
    --space-8: 40px;
  }
  html, body { overflow-x: hidden; max-width: 100%; }
  img { max-width: 100%; }
  /* Titre héros : plancher de taille réduit + césure pour éviter le débordement */
  .h14 { font-size: clamp(30px, 8.5vw, 64px) !important; max-width: none !important; overflow-wrap: break-word; }
  .h11 { padding-bottom: var(--space-9) !important; }
  .hm-display, .hm-heading { overflow-wrap: break-word; }
  /* Sécurité : toute grille multi-colonnes encore présente passe en 1 colonne */
  .h21, .h30, .h37, .h43, .h48, .h51, .h57 { grid-template-columns: 1fr !important; }
}
@media (max-width: 520px) {
  .hm-gallery { grid-template-columns: 1fr !important; grid-auto-rows: 220px !important; }
}

/* ---- Menu mobile (burger) : l'export n'avait aucune navigation mobile ---- */
.hm-burger {
  display: none; -webkit-appearance: none; appearance: none;
  background: none; border: 0; padding: 0; cursor: pointer;
  width: 44px; height: 44px; align-items: center; justify-content: center;
  color: var(--paper); filter: drop-shadow(0 1px 2px rgba(0,0,0,0.35));
}
.hm-burger svg { width: 26px; height: 26px; }
.hm-burger .ic-close { display: none; }
.h1.nav-open .hm-burger .ic-open { display: none; }
.h1.nav-open .hm-burger .ic-close { display: flex; }

@media (max-width: 760px) {
  .hm-burger { display: inline-flex; }
  .h1.nav-open { background: var(--ink); border-bottom: 1px solid rgba(250, 249, 245, 0.12); }
  /* .hm-nav devient un panneau déroulant sombre */
  .h5.hm-nav {
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--ink);
    border-bottom: 1px solid rgba(250, 249, 245, 0.12);
    box-shadow: 0 30px 60px -40px rgba(0,0,0,0.6);
    padding: 4px 0 16px;
    max-height: 0; overflow: hidden; opacity: 0; pointer-events: none;
    transform: translateY(-8px);
    transition: opacity .28s ease, transform .28s ease, max-height .3s ease;
  }
  .h1.nav-open .h5.hm-nav { max-height: 82vh; overflow-y: auto; opacity: 1; pointer-events: auto; transform: none; }
  .hm-nav a.h6 { display: block !important; padding: 16px var(--gutter-lg); border-bottom: 1px solid rgba(250, 249, 245, 0.08); }
  .hm-nav .h7 { margin: 14px var(--gutter-lg) 4px; width: calc(100% - 2 * var(--gutter-lg)); }
}


/* ============================================================
   4. Correctif bureau — largeur de l'accueil
   ============================================================ */
body:not(.legal) main { max-width: none; margin: 0; padding: 0; }

/* ============================================================
   5. En-tête « scrollé » : sur fond clair, la nav blanche devient
   sombre (sinon invisible). Pas appliqué quand le menu mobile est ouvert.
   ============================================================ */
.h1.scrolled:not(.nav-open) {
  background: rgba(250, 249, 245, 0.86);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  backdrop-filter: blur(12px) saturate(140%);
  border-bottom: 1px solid var(--stone-200);
}
.h1.scrolled:not(.nav-open) .h6 { color: var(--ink); }
.h1.scrolled:not(.nav-open) .h7 { color: var(--ink); border-color: rgba(20, 19, 15, 0.28); }
.h1.scrolled:not(.nav-open) .h4 { filter: brightness(0); }
.h1.scrolled:not(.nav-open) .hm-burger { color: var(--ink); filter: none; }

/* ============================================================
   6. Corrections de contraste
   ============================================================ */
/* Eyebrow du héros ("H&M IMMO — PROMOTEUR IMMOBILIER") : éclairci
   pour être lisible sur l'image sombre (les eyebrows de section,
   sur fond clair, gardent leur teinte taupe). */
.h11 .h12 { color: rgba(250, 249, 245, 0.82); }
/* Pages légales : le logo blanc était invisible sur le fond clair -> noir */
.legal-header img { filter: brightness(0); }
