/* ═══════════════════════════════════════════════════════════
   MICHEL BOURJAC — « Marée haute », signature visuelle
   Chargé APRÈS michel.css. Tout ce qui éloigne le site de la
   grammaire portfolio CARYON et lui donne sa voix propre :
   matière, écume, lumière crépusculaire, respiration colorée.

   Contrainte tenue : aucune couleur nouvelle. Toutes les
   teintes sont des mélanges des valeurs validées
   (#F4F1EC · #E9E4DA · #F4DFBE · #D98A2B · #1E4652 · #1E2A32),
   et chaque fond portant du texte est vérifié ≥ 7:1.

   PRINCIPE DES VAGUES — chaque tuile fait exactement 600px et
   superpose quatre à cinq sinusoïdes dont les fréquences sont des
   MULTIPLES ENTIERS de cette largeur (houle, clapot, friselis).
   Le tracé paraît donc irrégulier — aucune crête n'a la hauteur
   ni l'écart de la précédente — tout en restant rigoureusement
   périodique : y(0) = y(600) et les pentes coïncident. La
   répétition ne montre aucune couture, et une translation de
   −600px revient exactement sur elle-même.

   §1 teintes         §2 matière        §3 écume
   §4 lumière         §5 respiration    §6 composants
   §7 mouvement       §8 responsive
   ═══════════════════════════════════════════════════════════ */

/* ─── §1 · Teintes dérivées — contrastes vérifiés ─── */
:root {
  --wash-sand:  #F4ECE0;  /* ink 12.5 · soft 8.5 · quiet 8.0 */
  --wash-foam:  #EEECE7;  /* ink 12.4 · soft 8.5 · quiet 7.9 */
  --wash-tide:  #E9E8E4;  /* ink 12.0 · soft 8.1 · quiet 7.6 */
  --wash-dune:  #EDE2CF;  /* ink 11.4 · soft 7.8 · quiet 7.3 */

  --amber-deep: #BD8031;  /* ambre rompu de bleu — objets seulement */
  --amber-dusk: #A17637;

  --ease-tide: cubic-bezier(.37,.16,.2,1);

  /* Houle ambrée + contre-houle bleue déphasée — 5 et 4 harmoniques. */
  --wave-duo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='22' viewBox='0 0 600 22'%3E%3Cpath d='M0 5.6Q5 5.72 7.5 5.88Q10 6.05 12.5 6.32Q15 6.59 17.5 6.94Q20 7.29 22.5 7.7Q25 8.11 27.5 8.54Q30 8.98 32.5 9.41Q35 9.83 37.5 10.21Q40 10.59 42.5 10.89Q45 11.2 47.5 11.41Q50 11.63 52.5 11.75Q55 11.86 57.5 11.88Q60 11.9 62.5 11.84Q65 11.78 67.5 11.66Q70 11.54 72.5 11.39Q75 11.25 77.5 11.11Q80 10.96 82.5 10.84Q85 10.72 87.5 10.65Q90 10.58 92.5 10.56Q95 10.54 97.5 10.58Q100 10.62 102.5 10.7Q105 10.78 107.5 10.88Q110 10.99 112.5 11.11Q115 11.22 117.5 11.32Q120 11.42 122.5 11.5Q125 11.57 127.5 11.61Q130 11.64 132.5 11.63Q135 11.62 137.5 11.58Q140 11.54 142.5 11.47Q145 11.4 147.5 11.32Q150 11.25 152.5 11.18Q155 11.11 157.5 11.06Q160 11.01 162.5 10.99Q165 10.97 167.5 10.98Q170 10.98 172.5 11Q175 11.03 177.5 11.07Q180 11.11 182.5 11.14Q185 11.18 187.5 11.2Q190 11.22 192.5 11.21Q195 11.2 197.5 11.15Q200 11.1 202.5 11.01Q205 10.92 207.5 10.8Q210 10.68 212.5 10.54Q215 10.4 217.5 10.26Q220 10.12 222.5 9.99Q225 9.87 227.5 9.79Q230 9.7 232.5 9.65Q235 9.61 237.5 9.62Q240 9.63 242.5 9.69Q245 9.74 247.5 9.82Q250 9.91 252.5 10.02Q255 10.12 257.5 10.21Q260 10.31 262.5 10.38Q265 10.45 267.5 10.47Q270 10.49 272.5 10.46Q275 10.43 277.5 10.35Q280 10.27 282.5 10.14Q285 10.02 287.5 9.88Q290 9.73 292.5 9.6Q295 9.46 297.5 9.36Q300 9.26 302.5 9.22Q305 9.19 307.5 9.25Q310 9.3 312.5 9.45Q315 9.6 317.5 9.86Q320 10.12 322.5 10.47Q325 10.82 327.5 11.25Q330 11.68 332.5 12.15Q335 12.62 337.5 13.11Q340 13.59 342.5 14.05Q345 14.52 347.5 14.93Q350 15.35 352.5 15.69Q355 16.03 357.5 16.28Q360 16.53 362.5 16.69Q365 16.84 367.5 16.9Q370 16.96 372.5 16.93Q375 16.9 377.5 16.8Q380 16.69 382.5 16.52Q385 16.34 387.5 16.11Q390 15.87 392.5 15.59Q395 15.3 397.5 14.96Q400 14.63 402.5 14.25Q405 13.87 407.5 13.44Q410 13.01 412.5 12.54Q415 12.07 417.5 11.57Q420 11.06 422.5 10.54Q425 10.01 427.5 9.49Q430 8.97 432.5 8.48Q435 7.98 437.5 7.55Q440 7.13 442.5 6.79Q445 6.46 447.5 6.25Q450 6.05 452.5 6Q455 5.94 457.5 6.05Q460 6.17 462.5 6.45Q465 6.72 467.5 7.15Q470 7.58 472.5 8.13Q475 8.68 477.5 9.31Q480 9.95 482.5 10.62Q485 11.29 487.5 11.95Q490 12.61 492.5 13.21Q495 13.8 497.5 14.3Q500 14.8 502.5 15.16Q505 15.53 507.5 15.75Q510 15.97 512.5 16.05Q515 16.12 517.5 16.05Q520 15.99 522.5 15.8Q525 15.61 527.5 15.32Q530 15.04 532.5 14.68Q535 14.33 537.5 13.93Q540 13.53 542.5 13.11Q545 12.68 547.5 12.25Q550 11.81 552.5 11.38Q555 10.94 557.5 10.51Q560 10.08 562.5 9.66Q565 9.25 567.5 8.86Q570 8.46 572.5 8.09Q575 7.71 577.5 7.37Q580 7.03 582.5 6.74Q585 6.44 587.5 6.21Q590 5.99 592.5 5.85Q595 5.7 597.5 5.65L600 5.6' fill='none' stroke='%23BD8031' stroke-opacity='0.44' stroke-width='1.2' stroke-linecap='round'/%3E%3Cpath d='M0 9.9Q5 10.32 7.5 10.58Q10 10.84 12.5 11.12Q15 11.41 17.5 11.71Q20 12 22.5 12.29Q25 12.57 27.5 12.82Q30 13.08 32.5 13.29Q35 13.5 37.5 13.66Q40 13.83 42.5 13.94Q45 14.05 47.5 14.11Q50 14.17 52.5 14.19Q55 14.21 57.5 14.2Q60 14.18 62.5 14.14Q65 14.1 67.5 14.04Q70 13.98 72.5 13.91Q75 13.83 77.5 13.74Q80 13.65 82.5 13.55Q85 13.45 87.5 13.33Q90 13.21 92.5 13.08Q95 12.95 97.5 12.8Q100 12.66 102.5 12.5Q105 12.35 107.5 12.2Q110 12.04 112.5 11.9Q115 11.76 117.5 11.65Q120 11.54 122.5 11.47Q125 11.41 127.5 11.4Q130 11.39 132.5 11.46Q135 11.52 137.5 11.65Q140 11.79 142.5 11.99Q145 12.2 147.5 12.46Q150 12.73 152.5 13.04Q155 13.35 157.5 13.67Q160 13.99 162.5 14.3Q165 14.62 167.5 14.89Q170 15.17 172.5 15.38Q175 15.6 177.5 15.74Q180 15.88 182.5 15.93Q185 15.97 187.5 15.93Q190 15.88 192.5 15.75Q195 15.62 197.5 15.42Q200 15.22 202.5 14.97Q205 14.72 207.5 14.44Q210 14.16 212.5 13.88Q215 13.6 217.5 13.33Q220 13.06 222.5 12.82Q225 12.59 227.5 12.39Q230 12.2 232.5 12.05Q235 11.9 237.5 11.8Q240 11.7 242.5 11.64Q245 11.59 247.5 11.58Q250 11.57 252.5 11.59Q255 11.62 257.5 11.68Q260 11.75 262.5 11.84Q265 11.94 267.5 12.07Q270 12.2 272.5 12.36Q275 12.53 277.5 12.72Q280 12.92 282.5 13.14Q285 13.36 287.5 13.61Q290 13.85 292.5 14.1Q295 14.35 297.5 14.59Q300 14.84 302.5 15.05Q305 15.27 307.5 15.44Q310 15.61 312.5 15.71Q315 15.81 317.5 15.83Q320 15.85 322.5 15.77Q325 15.68 327.5 15.5Q330 15.32 332.5 15.04Q335 14.77 337.5 14.41Q340 14.06 342.5 13.64Q345 13.23 347.5 12.78Q350 12.33 352.5 11.88Q355 11.43 357.5 11.01Q360 10.59 362.5 10.22Q365 9.85 367.5 9.55Q370 9.26 372.5 9.05Q375 8.84 377.5 8.72Q380 8.6 382.5 8.56Q385 8.53 387.5 8.57Q390 8.62 392.5 8.73Q395 8.84 397.5 9Q400 9.15 402.5 9.34Q405 9.52 407.5 9.73Q410 9.94 412.5 10.16Q415 10.38 417.5 10.61Q420 10.83 422.5 11.06Q425 11.29 427.5 11.52Q430 11.76 432.5 12Q435 12.23 437.5 12.48Q440 12.72 442.5 12.96Q445 13.2 447.5 13.44Q450 13.68 452.5 13.9Q455 14.12 457.5 14.31Q460 14.5 462.5 14.65Q465 14.8 467.5 14.9Q470 15 472.5 15.04Q475 15.09 477.5 15.06Q480 15.04 482.5 14.95Q485 14.87 487.5 14.73Q490 14.6 492.5 14.42Q495 14.24 497.5 14.04Q500 13.84 502.5 13.63Q505 13.42 507.5 13.21Q510 13.01 512.5 12.82Q515 12.64 517.5 12.48Q520 12.32 522.5 12.19Q525 12.06 527.5 11.96Q530 11.85 532.5 11.76Q535 11.67 537.5 11.59Q540 11.5 542.5 11.41Q545 11.32 547.5 11.22Q550 11.12 552.5 10.99Q555 10.87 557.5 10.73Q560 10.59 562.5 10.43Q565 10.28 567.5 10.13Q570 9.98 572.5 9.85Q575 9.71 577.5 9.61Q580 9.51 582.5 9.46Q585 9.41 587.5 9.43Q590 9.44 592.5 9.52Q595 9.6 597.5 9.75L600 9.9' fill='none' stroke='%231E4652' stroke-opacity='0.16' stroke-width='1.0' stroke-linecap='round'/%3E%3C/svg%3E");

  --wave-amber: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='22' viewBox='0 0 600 22'%3E%3Cpath d='M0 5.6Q5 5.72 7.5 5.88Q10 6.05 12.5 6.32Q15 6.59 17.5 6.94Q20 7.29 22.5 7.7Q25 8.11 27.5 8.54Q30 8.98 32.5 9.41Q35 9.83 37.5 10.21Q40 10.59 42.5 10.89Q45 11.2 47.5 11.41Q50 11.63 52.5 11.75Q55 11.86 57.5 11.88Q60 11.9 62.5 11.84Q65 11.78 67.5 11.66Q70 11.54 72.5 11.39Q75 11.25 77.5 11.11Q80 10.96 82.5 10.84Q85 10.72 87.5 10.65Q90 10.58 92.5 10.56Q95 10.54 97.5 10.58Q100 10.62 102.5 10.7Q105 10.78 107.5 10.88Q110 10.99 112.5 11.11Q115 11.22 117.5 11.32Q120 11.42 122.5 11.5Q125 11.57 127.5 11.61Q130 11.64 132.5 11.63Q135 11.62 137.5 11.58Q140 11.54 142.5 11.47Q145 11.4 147.5 11.32Q150 11.25 152.5 11.18Q155 11.11 157.5 11.06Q160 11.01 162.5 10.99Q165 10.97 167.5 10.98Q170 10.98 172.5 11Q175 11.03 177.5 11.07Q180 11.11 182.5 11.14Q185 11.18 187.5 11.2Q190 11.22 192.5 11.21Q195 11.2 197.5 11.15Q200 11.1 202.5 11.01Q205 10.92 207.5 10.8Q210 10.68 212.5 10.54Q215 10.4 217.5 10.26Q220 10.12 222.5 9.99Q225 9.87 227.5 9.79Q230 9.7 232.5 9.65Q235 9.61 237.5 9.62Q240 9.63 242.5 9.69Q245 9.74 247.5 9.82Q250 9.91 252.5 10.02Q255 10.12 257.5 10.21Q260 10.31 262.5 10.38Q265 10.45 267.5 10.47Q270 10.49 272.5 10.46Q275 10.43 277.5 10.35Q280 10.27 282.5 10.14Q285 10.02 287.5 9.88Q290 9.73 292.5 9.6Q295 9.46 297.5 9.36Q300 9.26 302.5 9.22Q305 9.19 307.5 9.25Q310 9.3 312.5 9.45Q315 9.6 317.5 9.86Q320 10.12 322.5 10.47Q325 10.82 327.5 11.25Q330 11.68 332.5 12.15Q335 12.62 337.5 13.11Q340 13.59 342.5 14.05Q345 14.52 347.5 14.93Q350 15.35 352.5 15.69Q355 16.03 357.5 16.28Q360 16.53 362.5 16.69Q365 16.84 367.5 16.9Q370 16.96 372.5 16.93Q375 16.9 377.5 16.8Q380 16.69 382.5 16.52Q385 16.34 387.5 16.11Q390 15.87 392.5 15.59Q395 15.3 397.5 14.96Q400 14.63 402.5 14.25Q405 13.87 407.5 13.44Q410 13.01 412.5 12.54Q415 12.07 417.5 11.57Q420 11.06 422.5 10.54Q425 10.01 427.5 9.49Q430 8.97 432.5 8.48Q435 7.98 437.5 7.55Q440 7.13 442.5 6.79Q445 6.46 447.5 6.25Q450 6.05 452.5 6Q455 5.94 457.5 6.05Q460 6.17 462.5 6.45Q465 6.72 467.5 7.15Q470 7.58 472.5 8.13Q475 8.68 477.5 9.31Q480 9.95 482.5 10.62Q485 11.29 487.5 11.95Q490 12.61 492.5 13.21Q495 13.8 497.5 14.3Q500 14.8 502.5 15.16Q505 15.53 507.5 15.75Q510 15.97 512.5 16.05Q515 16.12 517.5 16.05Q520 15.99 522.5 15.8Q525 15.61 527.5 15.32Q530 15.04 532.5 14.68Q535 14.33 537.5 13.93Q540 13.53 542.5 13.11Q545 12.68 547.5 12.25Q550 11.81 552.5 11.38Q555 10.94 557.5 10.51Q560 10.08 562.5 9.66Q565 9.25 567.5 8.86Q570 8.46 572.5 8.09Q575 7.71 577.5 7.37Q580 7.03 582.5 6.74Q585 6.44 587.5 6.21Q590 5.99 592.5 5.85Q595 5.7 597.5 5.65L600 5.6' fill='none' stroke='%23BD8031' stroke-opacity='0.42' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E");

  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.055'/%3E%3C/svg%3E");

  /* Marqueur de liste : une vaguelette, pas une pastille d'alerte */
  --wave-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='7' viewBox='0 0 18 7'%3E%3Cpath d='M0 4.4Q2.5 2.2 4.5 3.1Q6.5 4 9 3.4Q11.5 2.8 13.5 4.1Q15.5 5.4 18 3.6' fill='none' stroke='%23BD8031' stroke-opacity='0.9' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* ─── §2 · Matière — le fond n'est plus uni ─────────────────
   Grain et nappe sont de VRAIS fonds, pas des calques posés
   par-dessus le contenu : rien ne s'intercale entre un texte
   et son fond, donc les ratios calculés restent valides. */

body {
  position: relative;
  background-color: var(--surface);
  background-image:
    var(--grain),
    radial-gradient(120% 80% at 85% -5%, rgba(217,138,43,0.12), transparent 58%),
    /* 0.06 et pas davantage : au-delà, --ink-quiet tombe sous 7:1 en bas de page */
    radial-gradient(90% 70% at 3% 102%, rgba(30,70,82,0.06), transparent 62%),
    linear-gradient(180deg, var(--wash-sand) 0%, var(--surface) 34%, var(--wash-foam) 100%);
  background-repeat: repeat, no-repeat, no-repeat, no-repeat;
  background-size: 200px 200px, auto, auto, auto;
  background-attachment: fixed;
}

.site-header.scrolled { background: rgba(246,242,235,0.86); }

/* ─── §3 · Écume — le filet droit devient une ligne d'eau ───
   Rupture principale avec la grammaire CARYON : les sections
   ne sont plus séparées par un trait mais par une ligne d'eau.
   Elle est posée dans sa propre bande d'air : jamais au contact
   d'un texte, au-dessus comme en dessous. */

.section--ruled {
  border-top: none;
  position: relative;
  margin-top: var(--l);          /* air AVANT la ligne */
  padding-top: calc(var(--xl) + 16px);  /* air APRÈS la ligne */
}
.section--ruled::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 22px;
  background-image: var(--wave-duo);
  background-repeat: repeat-x;
  background-size: 600px 22px;
}

/* Filet d'écume court, utilisable seul */
.foam-rule {
  height: 22px; width: 120px; margin: var(--s) 0;
  background-image: var(--wave-amber);
  background-repeat: repeat-x; background-size: 600px 22px;
}

/* Le pied hérite de la même ligne d'eau, avec le même dégagement */
.site-footer { border-top: none; position: relative; padding-top: var(--l); }
.site-footer::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 22px;
  background-image: var(--wave-duo);
  background-repeat: repeat-x; background-size: 600px 22px;
}

/* ─── §4 · Lumière crépusculaire ────────────────────────────
   Rayons rasants, soleil bas, horizon marin. Toutes ces couches
   sont aria-hidden et confinées sous le contenu. L'horizon est
   réservé au hero, qui a la hauteur pour l'accueillir : sur les
   pages intérieures il croiserait le chapô. */

.hero { padding-bottom: calc(var(--xxl) + 72px); }

/* Le ciel — conteneur des couches de lumière.
   Une lueur clipée par `overflow: hidden` laisse une arête franche là où
   la section s'arrête : c'était l'origine des coupures. Deux garde-fous ici.
   1) Ce conteneur se dissout vers le bas avant d'atteindre sa propre limite.
   2) Rayons et soleil sont des CARRÉS masqués par un cercle `closest-side`,
      donc transparents sur leurs quatre bords : leur boîte n'est jamais visible. */
.sky {
  position: absolute; inset: 0; z-index: -1;
  pointer-events: none; overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 46%, transparent 97%);
          mask-image: linear-gradient(180deg, #000 0%, #000 46%, transparent 97%);
}

.rays, .orb {
  position: absolute; left: 74%; top: 4%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.rays {
  width: min(1040px, 96vw); aspect-ratio: 1;
  background: repeating-conic-gradient(
    from 188deg at 50% 50%,
    rgba(217,138,43,0.10) 0deg 2.4deg,
    transparent 2.4deg 8.6deg
  );
  -webkit-mask-image: radial-gradient(circle closest-side, #000 4%, rgba(0,0,0,0.48) 32%, transparent 78%);
          mask-image: radial-gradient(circle closest-side, #000 4%, rgba(0,0,0,0.48) 32%, transparent 78%);
  filter: blur(2px);
}
.orb {
  width: min(720px, 78vw); aspect-ratio: 1; height: auto;
  background: radial-gradient(circle closest-side,
    rgba(217,138,43,0.26), rgba(217,138,43,0.07) 48%, transparent 74%);
  filter: blur(30px);
}

/* Horizon — la mer sous le hero, sa ligne d'écume à la toute fin */
.horizon {
  position: absolute; left: 0; right: 0; bottom: 0; height: 150px;
  pointer-events: none; z-index: -1;
  background: linear-gradient(180deg,
    transparent 0%,
    rgba(244,223,190,0.34) 46%,
    rgba(30,70,82,0.10) 100%);
}
.horizon::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 12px; height: 22px;
  background-image: var(--wave-duo);
  background-repeat: repeat-x; background-size: 600px 22px;
  animation: mb-tide 26s linear infinite;
}

/* Pages intérieures : lumière oui, horizon non — il croiserait le chapô. */
.page-head { position: relative; padding-bottom: var(--xxl); }
.page-head .orb { opacity: 0.7; }
.page-head .horizon { display: none; }
/* En-tête court : le ciel se dissout plus tôt pour finir avant la section suivante. */
.page-head .sky {
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 34%, transparent 92%);
          mask-image: linear-gradient(180deg, #000 0%, #000 34%, transparent 92%);
}
.page-head .rays, .page-head .orb { top: -6%; }

/* ─── §5 · Respiration — les sections ne sont plus toutes claires ─
   Les <section> sont déjà pleine largeur : un simple fond suffit,
   et le texte reste sur un aplat uni dont le ratio est vérifié. */

/* La teinte ne s'arrête pas net : elle monte et redescend sur 130px,
   comme une eau qui gagne puis se retire. Plus aucune arête horizontale
   entre l'en-tête de page et la première section, ni entre deux bandes. */
.band-wash {
  background-color: transparent;
  background-image:
    var(--grain),
    linear-gradient(180deg,
      transparent 0,
      var(--wash, var(--wash-sand)) 130px,
      var(--wash, var(--wash-sand)) calc(100% - 130px),
      transparent 100%);
  background-repeat: repeat, no-repeat;
  background-size: 200px 200px, 100% 100%;
}
.band-wash--sand { --wash: var(--wash-sand); }  /* quiet 8.0:1 */
.band-wash--tide { --wash: var(--wash-tide); }  /* quiet 7.6:1 */
.band-wash--dune { --wash: var(--wash-dune); }  /* quiet 7.3:1 */
.band-wash + .band-wash { margin-top: 0; padding-top: var(--sec); }

/* Bandeau citation — coucher de soleil sur l'eau.
   Texte ≥ 26px en --band-ink : 4.56:1 au point le plus sombre du dégradé. */
.band {
  position: relative; overflow: hidden;
  background: linear-gradient(122deg, #E3A559 0%, var(--band-bg) 46%, #C87F2A 100%);
  /* Retour Michel (V1) : bandeau jugé trop haut. Hauteur réduite d'environ 21%
     (152px → 120px de padding vertical). Largeur, gradient et typo inchangés. */
  padding: var(--xl) var(--xl) calc(var(--xl) + 24px);
}
.band::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 60px;
  pointer-events: none;
  background-repeat: repeat-x; background-size: 600px 60px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='72' viewBox='0 0 600 72'%3E%3Cpath d='M0 29.27Q5 29.65 7.5 29.98Q10 30.31 12.5 30.75Q15 31.2 17.5 31.72Q20 32.24 22.5 32.8Q25 33.37 27.5 33.95Q30 34.54 32.5 35.13Q35 35.72 37.5 36.31Q40 36.9 42.5 37.48Q45 38.06 47.5 38.62Q50 39.19 52.5 39.73Q55 40.27 57.5 40.78Q60 41.29 62.5 41.75Q65 42.2 67.5 42.58Q70 42.95 72.5 43.22Q75 43.48 77.5 43.61Q80 43.74 82.5 43.7Q85 43.67 87.5 43.47Q90 43.26 92.5 42.88Q95 42.51 97.5 41.98Q100 41.45 102.5 40.8Q105 40.16 107.5 39.44Q110 38.72 112.5 37.98Q115 37.25 117.5 36.56Q120 35.87 122.5 35.27Q125 34.68 127.5 34.23Q130 33.77 132.5 33.48Q135 33.2 137.5 33.09Q140 32.98 142.5 33.04Q145 33.1 147.5 33.3Q150 33.51 152.5 33.83Q155 34.14 157.5 34.52Q160 34.89 162.5 35.29Q165 35.69 167.5 36.08Q170 36.47 172.5 36.83Q175 37.18 177.5 37.49Q180 37.8 182.5 38.07Q185 38.34 187.5 38.59Q190 38.83 192.5 39.08Q195 39.32 197.5 39.59Q200 39.85 202.5 40.15Q205 40.45 207.5 40.8Q210 41.14 212.5 41.53Q215 41.93 217.5 42.36Q220 42.78 222.5 43.22Q225 43.65 227.5 44.05Q230 44.46 232.5 44.81Q235 45.16 237.5 45.41Q240 45.67 242.5 45.81Q245 45.96 247.5 45.98Q250 45.99 252.5 45.88Q255 45.77 257.5 45.55Q260 45.32 262.5 45Q265 44.69 267.5 44.31Q270 43.93 272.5 43.52Q275 43.1 277.5 42.67Q280 42.25 282.5 41.83Q285 41.41 287.5 41Q290 40.59 292.5 40.2Q295 39.81 297.5 39.42Q300 39.02 302.5 38.62Q305 38.22 307.5 37.79Q310 37.36 312.5 36.91Q315 36.45 317.5 35.96Q320 35.47 322.5 34.97Q325 34.47 327.5 33.98Q330 33.49 332.5 33.05Q335 32.61 337.5 32.25Q340 31.9 342.5 31.67Q345 31.45 347.5 31.39Q350 31.33 352.5 31.45Q355 31.58 357.5 31.89Q360 32.21 362.5 32.7Q365 33.18 367.5 33.81Q370 34.45 372.5 35.17Q375 35.9 377.5 36.66Q380 37.43 382.5 38.16Q385 38.9 387.5 39.55Q390 40.2 392.5 40.72Q395 41.24 397.5 41.59Q400 41.95 402.5 42.12Q405 42.3 407.5 42.3Q410 42.31 412.5 42.16Q415 42 417.5 41.73Q420 41.45 422.5 41.09Q425 40.74 427.5 40.34Q430 39.94 432.5 39.53Q435 39.12 437.5 38.73Q440 38.35 442.5 38Q445 37.66 447.5 37.35Q450 37.05 452.5 36.8Q455 36.54 457.5 36.33Q460 36.12 462.5 35.95Q465 35.77 467.5 35.64Q470 35.5 472.5 35.41Q475 35.31 477.5 35.27Q480 35.22 482.5 35.25Q485 35.27 487.5 35.37Q490 35.47 492.5 35.66Q495 35.86 497.5 36.16Q500 36.45 502.5 36.84Q505 37.23 507.5 37.69Q510 38.16 512.5 38.66Q515 39.17 517.5 39.68Q520 40.19 522.5 40.64Q525 41.1 527.5 41.45Q530 41.8 532.5 41.99Q535 42.19 537.5 42.19Q540 42.19 542.5 41.98Q545 41.77 547.5 41.35Q550 40.93 552.5 40.31Q555 39.7 557.5 38.94Q560 38.17 562.5 37.31Q565 36.46 567.5 35.59Q570 34.71 572.5 33.87Q575 33.03 577.5 32.3Q580 31.57 582.5 31Q585 30.42 587.5 30.03Q590 29.64 592.5 29.45Q595 29.26 597.5 29.27L600 29.27L600 72L0 72Z' fill='%231E2A32' fill-opacity='0.07'/%3E%3Cpath d='M0 47.14Q5 47.97 7.5 48.47Q10 48.97 12.5 49.52Q15 50.06 17.5 50.62Q20 51.17 22.5 51.7Q25 52.22 27.5 52.67Q30 53.13 32.5 53.48Q35 53.84 37.5 54.08Q40 54.32 42.5 54.43Q45 54.54 47.5 54.52Q50 54.51 52.5 54.39Q55 54.28 57.5 54.09Q60 53.9 62.5 53.66Q65 53.43 67.5 53.18Q70 52.93 72.5 52.7Q75 52.47 77.5 52.27Q80 52.08 82.5 51.94Q85 51.8 87.5 51.72Q90 51.64 92.5 51.61Q95 51.57 97.5 51.57Q100 51.57 102.5 51.59Q105 51.6 107.5 51.62Q110 51.65 112.5 51.66Q115 51.66 117.5 51.65Q120 51.64 122.5 51.61Q125 51.57 127.5 51.52Q130 51.46 132.5 51.39Q135 51.33 137.5 51.27Q140 51.21 142.5 51.16Q145 51.12 147.5 51.09Q150 51.07 152.5 51.08Q155 51.08 157.5 51.11Q160 51.13 162.5 51.17Q165 51.21 167.5 51.25Q170 51.3 172.5 51.33Q175 51.36 177.5 51.36Q180 51.36 182.5 51.32Q185 51.28 187.5 51.2Q190 51.11 192.5 50.99Q195 50.87 197.5 50.72Q200 50.56 202.5 50.39Q205 50.22 207.5 50.06Q210 49.9 212.5 49.77Q215 49.65 217.5 49.57Q220 49.49 222.5 49.48Q225 49.46 227.5 49.52Q230 49.57 232.5 49.68Q235 49.79 237.5 49.95Q240 50.12 242.5 50.3Q245 50.49 247.5 50.69Q250 50.88 252.5 51.05Q255 51.22 257.5 51.36Q260 51.49 262.5 51.57Q265 51.65 267.5 51.68Q270 51.71 272.5 51.69Q275 51.67 277.5 51.62Q280 51.57 282.5 51.52Q285 51.46 287.5 51.42Q290 51.39 292.5 51.4Q295 51.41 297.5 51.48Q300 51.56 302.5 51.72Q305 51.87 307.5 52.1Q310 52.33 312.5 52.62Q315 52.92 317.5 53.27Q320 53.62 322.5 53.99Q325 54.36 327.5 54.73Q330 55.09 332.5 55.42Q335 55.76 337.5 56.04Q340 56.32 342.5 56.52Q345 56.72 347.5 56.84Q350 56.97 352.5 57Q355 57.04 357.5 57Q360 56.95 362.5 56.84Q365 56.73 367.5 56.56Q370 56.4 372.5 56.19Q375 55.98 377.5 55.73Q380 55.49 382.5 55.22Q385 54.95 387.5 54.65Q390 54.35 392.5 54.03Q395 53.7 397.5 53.34Q400 52.99 402.5 52.62Q405 52.24 407.5 51.84Q410 51.44 412.5 51.03Q415 50.62 417.5 50.22Q420 49.82 422.5 49.46Q425 49.1 427.5 48.8Q430 48.51 432.5 48.31Q435 48.11 437.5 48.03Q440 47.96 442.5 48.03Q445 48.1 447.5 48.32Q450 48.54 452.5 48.91Q455 49.28 457.5 49.78Q460 50.29 462.5 50.89Q465 51.49 467.5 52.16Q470 52.82 472.5 53.49Q475 54.16 477.5 54.8Q480 55.43 482.5 55.98Q485 56.53 487.5 56.96Q490 57.39 492.5 57.67Q495 57.95 497.5 58.06Q500 58.18 502.5 58.14Q505 58.1 507.5 57.91Q510 57.72 512.5 57.41Q515 57.09 517.5 56.67Q520 56.26 522.5 55.77Q525 55.29 527.5 54.77Q530 54.24 532.5 53.7Q535 53.16 537.5 52.62Q540 52.08 542.5 51.55Q545 51.03 547.5 50.53Q550 50.03 552.5 49.56Q555 49.1 557.5 48.67Q560 48.24 562.5 47.87Q565 47.49 567.5 47.17Q570 46.85 572.5 46.61Q575 46.37 577.5 46.22Q580 46.07 582.5 46.02Q585 45.98 587.5 46.05Q590 46.12 592.5 46.31Q595 46.51 597.5 46.83L600 47.14L600 72L0 72Z' fill='%231E2A32' fill-opacity='0.05'/%3E%3C/svg%3E");
  animation: mb-tide 32s linear infinite reverse;
}
.band .quote { border-left-color: rgba(30,42,50,0.42); position: relative; }

/* ─── §6 · Personnalité des composants ─────────────────────── */

/* Le numéro de section n'a plus de pastille : la ligne d'eau
   porte déjà l'ambre juste au-dessus. */
.section-head .num { padding-left: 0; }
.section-head .num::before { content: none; }

/* Cartes — matière sableuse et crête d'écume en tête */
.card {
  background: linear-gradient(168deg, var(--wash-sand) 0%, var(--surface-deep) 100%);
  border-color: rgba(189,128,49,0.26);
  position: relative; overflow: hidden;
}
.card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--accent) 0%, rgba(217,138,43,0.15) 62%, transparent 100%);
}
.card .m-h3 { margin-top: 6px; }

/* Portrait — un soleil bas derrière le cadre */
figure { position: relative; }
.portrait-frame { position: relative; z-index: 1; border-color: rgba(189,128,49,0.30); }
figure:has(.portrait-frame)::before {
  content: ""; position: absolute; z-index: 0;
  inset: -8% -10% 22% -6%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(227,165,89,0.34), transparent 72%);
  filter: blur(28px);
}

/* Citation — le filet gauche devient une colonne d'eau */
.quote {
  border-left: 2px solid transparent;
  border-image: linear-gradient(180deg, var(--accent) 0%, rgba(30,70,82,0.45) 100%) 1;
}

/* Marqueurs de liste — une vaguelette, jamais une pastille pleine.
   Une pastille ronde et saturée se lit comme un voyant d'alerte ;
   la vaguelette dit la même chose sans alarmer. */
.status-pill .dot {
  width: 18px; height: 7px; border-radius: 0;
  background-color: transparent;
  background-image: var(--wave-mark);
  background-repeat: no-repeat; background-position: center;
  box-shadow: none; animation: none;
}
/* Retour Michel (V1) : les vaguelettes de liste semblaient « descendre ».
   Une rotation de −10° leur donne une dynamique ascendante, sans changer
   ni le tracé ni la couleur. Décoratif et aria-hidden : aucun impact a11y. */
.ruled-list li { position: relative; padding-left: 30px; }
.ruled-list li::before {
  content: ""; position: absolute; left: 0; top: 25px;
  width: 18px; height: 7px;
  background-image: var(--wave-mark);
  background-repeat: no-repeat; background-position: center;
  opacity: 0.75;
  transform: rotate(-10deg);
  transform-origin: 50% 50%;
}
.acc-body ul { list-style: none; padding-left: 0; }
.acc-body ul li { position: relative; padding-left: 30px; }
.acc-body ul li::before {
  content: ""; position: absolute; left: 0; top: 10px;
  width: 18px; height: 7px;
  background-image: var(--wave-mark);
  background-repeat: no-repeat; background-position: center;
  opacity: 0.7;
  transform: rotate(-10deg);
  transform-origin: 50% 50%;
}
.assurances { gap: var(--xl); }

/* Accordéons — l'ouverture éclaire la ligne */
.acc[open] > summary { color: var(--accent-strong); }
.acc[open] { background: linear-gradient(180deg, rgba(244,223,190,0.30), transparent 42%); }
.acc > summary { transition: color var(--dur-base) var(--ease-tide), opacity var(--dur-base) var(--ease-tide); }
.acc .sign { color: var(--amber-dusk); transition: transform var(--dur-base) var(--ease-tide); }
.acc[open] .sign { transform: rotate(180deg); }

/* Boutons — profondeur marine, dégradés bornés à des valeurs vérifiées */
.btn {
  background: linear-gradient(160deg, #24545F 0%, var(--cta-bg) 62%, #17383F 100%);
  box-shadow: 0 1px 0 rgba(255,255,255,0.10) inset;
}
.btn--on-dark {  /* ink : 9.80:1 au stop clair, 8.10:1 au stop foncé */
  background: linear-gradient(160deg, #F2CE96 0%, var(--accent-on-dark) 58%, #EBB86A 100%);
  box-shadow: none;
}

/* Panneau contact — la nuit tombe sur l'eau */
.dark-panel {
  background: linear-gradient(178deg, #1A3D48 0%, var(--contrast) 52%, #16333C 100%);
  padding-bottom: calc(var(--sec) + 24px);
}
.dark-panel .glow {
  inset: auto -10% -30% auto; width: 130%; height: 90%;
  background: radial-gradient(closest-side at 70% 100%, rgba(239,192,120,0.28), transparent 70%);
  filter: blur(50px);
}
.dark-panel::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 80px;
  pointer-events: none;
  background-repeat: repeat-x; background-size: 600px 80px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='80' viewBox='0 0 600 80'%3E%3Cpath d='M0 32.65Q5 33.05 7.5 33.41Q10 33.76 12.5 34.23Q15 34.71 17.5 35.27Q20 35.83 22.5 36.44Q25 37.04 27.5 37.66Q30 38.29 32.5 38.92Q35 39.56 37.5 40.19Q40 40.82 42.5 41.44Q45 42.06 47.5 42.67Q50 43.27 52.5 43.86Q55 44.44 57.5 44.98Q60 45.53 62.5 46.02Q65 46.5 67.5 46.9Q70 47.3 72.5 47.58Q75 47.87 77.5 48.01Q80 48.15 82.5 48.11Q85 48.08 87.5 47.86Q90 47.64 92.5 47.23Q95 46.83 97.5 46.27Q100 45.7 102.5 45.01Q105 44.31 107.5 43.54Q110 42.77 112.5 41.98Q115 41.2 117.5 40.45Q120 39.71 122.5 39.08Q125 38.44 127.5 37.95Q130 37.47 132.5 37.16Q135 36.85 137.5 36.73Q140 36.62 142.5 36.69Q145 36.75 147.5 36.97Q150 37.19 152.5 37.52Q155 37.86 157.5 38.27Q160 38.67 162.5 39.09Q165 39.52 167.5 39.94Q170 40.36 172.5 40.74Q175 41.12 177.5 41.45Q180 41.78 182.5 42.08Q185 42.37 187.5 42.63Q190 42.89 192.5 43.16Q195 43.42 197.5 43.7Q200 43.98 202.5 44.3Q205 44.62 207.5 44.99Q210 45.37 212.5 45.79Q215 46.21 217.5 46.66Q220 47.12 222.5 47.58Q225 48.05 227.5 48.48Q230 48.92 232.5 49.3Q235 49.67 237.5 49.95Q240 50.22 242.5 50.38Q245 50.53 247.5 50.55Q250 50.56 252.5 50.45Q255 50.33 257.5 50.09Q260 49.85 262.5 49.51Q265 49.17 267.5 48.76Q270 48.35 272.5 47.91Q275 47.46 277.5 47Q280 46.55 282.5 46.1Q285 45.65 287.5 45.22Q290 44.78 292.5 44.36Q295 43.93 297.5 43.51Q300 43.09 302.5 42.66Q305 42.23 307.5 41.77Q310 41.32 312.5 40.83Q315 40.34 317.5 39.81Q320 39.29 322.5 38.75Q325 38.22 327.5 37.7Q330 37.17 332.5 36.7Q335 36.22 337.5 35.84Q340 35.47 342.5 35.23Q345 34.99 347.5 34.92Q350 34.86 352.5 34.99Q355 35.12 357.5 35.45Q360 35.79 362.5 36.31Q365 36.84 367.5 37.52Q370 38.19 372.5 38.97Q375 39.75 377.5 40.57Q380 41.39 382.5 42.17Q385 42.96 387.5 43.66Q390 44.36 392.5 44.91Q395 45.47 397.5 45.86Q400 46.24 402.5 46.42Q405 46.61 407.5 46.61Q410 46.61 412.5 46.45Q415 46.29 417.5 46Q420 45.7 422.5 45.31Q425 44.93 427.5 44.5Q430 44.08 432.5 43.64Q435 43.2 437.5 42.79Q440 42.38 442.5 42.01Q445 41.63 447.5 41.3Q450 40.98 452.5 40.71Q455 40.44 457.5 40.21Q460 39.98 462.5 39.8Q465 39.61 467.5 39.47Q470 39.32 472.5 39.22Q475 39.12 477.5 39.08Q480 39.03 482.5 39.05Q485 39.07 487.5 39.18Q490 39.29 492.5 39.5Q495 39.71 497.5 40.03Q500 40.34 502.5 40.76Q505 41.17 507.5 41.67Q510 42.17 512.5 42.72Q515 43.26 517.5 43.8Q520 44.35 522.5 44.84Q525 45.32 527.5 45.7Q530 46.07 532.5 46.28Q535 46.49 537.5 46.49Q540 46.49 542.5 46.27Q545 46.04 547.5 45.59Q550 45.13 552.5 44.48Q555 43.82 557.5 43Q560 42.18 562.5 41.27Q565 40.35 567.5 39.41Q570 38.47 572.5 37.58Q575 36.68 577.5 35.89Q580 35.11 582.5 34.49Q585 33.87 587.5 33.45Q590 33.04 592.5 32.84Q595 32.63 597.5 32.64L600 32.65L600 80L0 80Z' fill='%23EFC078' fill-opacity='0.11'/%3E%3Cpath d='M0 52.88Q5 53.76 7.5 54.28Q10 54.81 12.5 55.39Q15 55.96 17.5 56.55Q20 57.13 22.5 57.68Q25 58.23 27.5 58.71Q30 59.19 32.5 59.56Q35 59.94 37.5 60.19Q40 60.44 42.5 60.55Q45 60.67 47.5 60.66Q50 60.65 52.5 60.52Q55 60.4 57.5 60.2Q60 60 62.5 59.75Q65 59.5 67.5 59.24Q70 58.98 72.5 58.73Q75 58.49 77.5 58.29Q80 58.09 82.5 57.94Q85 57.79 87.5 57.7Q90 57.62 92.5 57.58Q95 57.54 97.5 57.54Q100 57.54 102.5 57.56Q105 57.58 107.5 57.61Q110 57.63 112.5 57.64Q115 57.65 117.5 57.63Q120 57.62 122.5 57.58Q125 57.54 127.5 57.48Q130 57.43 132.5 57.36Q135 57.29 137.5 57.23Q140 57.17 142.5 57.12Q145 57.07 147.5 57.05Q150 57.02 152.5 57.03Q155 57.03 157.5 57.05Q160 57.08 162.5 57.12Q165 57.17 167.5 57.22Q170 57.26 172.5 57.29Q175 57.32 177.5 57.33Q180 57.33 182.5 57.28Q185 57.24 187.5 57.16Q190 57.07 192.5 56.94Q195 56.81 197.5 56.64Q200 56.48 202.5 56.3Q205 56.13 207.5 55.96Q210 55.79 212.5 55.66Q215 55.53 217.5 55.45Q220 55.36 222.5 55.34Q225 55.33 227.5 55.38Q230 55.44 232.5 55.56Q235 55.68 237.5 55.85Q240 56.02 242.5 56.22Q245 56.41 247.5 56.61Q250 56.82 252.5 57Q255 57.18 257.5 57.32Q260 57.46 262.5 57.55Q265 57.63 267.5 57.66Q270 57.69 272.5 57.67Q275 57.65 277.5 57.6Q280 57.55 282.5 57.49Q285 57.43 287.5 57.39Q290 57.36 292.5 57.37Q295 57.38 297.5 57.46Q300 57.54 302.5 57.7Q305 57.86 307.5 58.1Q310 58.34 312.5 58.66Q315 58.97 317.5 59.34Q320 59.7 322.5 60.09Q325 60.48 327.5 60.87Q330 61.26 332.5 61.61Q335 61.96 337.5 62.25Q340 62.55 342.5 62.76Q345 62.97 347.5 63.1Q350 63.23 352.5 63.27Q355 63.3 357.5 63.25Q360 63.21 362.5 63.09Q365 62.98 367.5 62.8Q370 62.63 372.5 62.41Q375 62.19 377.5 61.93Q380 61.67 382.5 61.39Q385 61.1 387.5 60.78Q390 60.47 392.5 60.13Q395 59.79 397.5 59.42Q400 59.05 402.5 58.65Q405 58.25 407.5 57.83Q410 57.41 412.5 56.98Q415 56.55 417.5 56.13Q420 55.71 422.5 55.33Q425 54.95 427.5 54.64Q430 54.33 432.5 54.12Q435 53.91 437.5 53.83Q440 53.75 442.5 53.82Q445 53.89 447.5 54.12Q450 54.36 452.5 54.75Q455 55.14 457.5 55.67Q460 56.2 462.5 56.84Q465 57.47 467.5 58.16Q470 58.86 472.5 59.57Q475 60.28 477.5 60.95Q480 61.61 482.5 62.19Q485 62.77 487.5 63.22Q490 63.67 492.5 63.97Q495 64.26 497.5 64.39Q500 64.51 502.5 64.47Q505 64.42 507.5 64.22Q510 64.02 512.5 63.69Q515 63.35 517.5 62.91Q520 62.48 522.5 61.97Q525 61.46 527.5 60.91Q530 60.36 532.5 59.79Q535 59.22 537.5 58.65Q540 58.08 542.5 57.53Q545 56.98 547.5 56.45Q550 55.93 552.5 55.44Q555 54.94 557.5 54.49Q560 54.04 562.5 53.64Q565 53.25 567.5 52.91Q570 52.58 572.5 52.33Q575 52.07 577.5 51.91Q580 51.75 582.5 51.7Q585 51.66 587.5 51.73Q590 51.81 592.5 52.02Q595 52.22 597.5 52.55L600 52.88L600 80L0 80Z' fill='%23EFC078' fill-opacity='0.07'/%3E%3C/svg%3E");
  animation: mb-tide 38s linear infinite;
}
.dark-panel > .inner { position: relative; z-index: 1; }

.steps .num { color: var(--amber-dusk); }

.field input, .field textarea {
  background: rgba(255,255,255,0.55);
  border-color: rgba(189,128,49,0.32);
}
.field input:hover, .field textarea:hover { border-color: var(--amber-deep); }

/* ─── §7 · Mouvement — lent, marin, et cyclique ──────────────
   Le déplacement vaut exactement une tuile (600px), donc l'état
   final est identique à l'état initial : la boucle est invisible.

   On anime `background-position` et NON `transform`. Un translate
   promeut le pseudo-élément en calque composité ; quand ce calque
   déborde de son parent et que celui-ci le rogne avec
   `overflow: hidden` + `border-radius`, le rognage se fait sur une
   grille de tuiles distincte du rendu — d'où les décrochages
   verticaux observés dans la vague du bandeau. Ici le calque reste
   à sa place et c'est le motif qui glisse : plus rien à rogner. */
@keyframes mb-tide {
  from { background-position: 0 0; }
  to   { background-position: -600px 0; }
}
@keyframes mb-sun {
  0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.85; }
  50%      { transform: translate(-1.6vmax, 1vmax) scale(1.04); opacity: 1; }
}
.orb { animation: mb-sun 26s var(--ease-tide) infinite; }

@media (prefers-reduced-motion: reduce) {
  .orb, .horizon::after, .band::after, .dark-panel::after { animation: none; }
  .acc .sign { transition: none; }
}

/* ─── §8 · Responsive ─── */
@media (max-width: 900px) {
  .rays { opacity: 0.55; }
  .rays, .orb { left: 78%; top: -2%; }
  .horizon { height: 120px; }
  .hero { padding-bottom: calc(var(--xl) + 76px); }
  /* le bandeau doit garder plus de hauteur que sa nappe de vagues (60px) */
  .band { padding: var(--l) var(--m) calc(var(--l) + 56px); }
  .assurances { gap: var(--m); }
  body { background-image:
    var(--grain),
    radial-gradient(120% 60% at 90% -6%, rgba(217,138,43,0.10), transparent 60%),
    linear-gradient(180deg, var(--wash-sand) 0%, var(--surface) 44%, var(--wash-foam) 100%);
    background-repeat: repeat, no-repeat, no-repeat;
    background-size: 200px 200px, auto, auto; }
}
