/* =============================================================================
   Matrimonio · foglio di stile unico (mobile first, nessun framework)

   Temi: html[data-theme="..."] (impostato da /theme.js)
     country   Country chic (predefinito): lino, carta kraft, salvia e rosa antico
     boho      Rustico boho: terracotta, sabbia, ocra, pampas, archi
     provenza  Provenza: lavanda e ulivo su pietra chiara, quadretti vichy
     eucalipto Eucalipto: salvia su bianco, linee sottili, minimale
     vigna     Vigna al tramonto: vinaccia e oro antico su avorio

   Token principali (ridefiniti da ogni tema):
     colori   --bg --bg-alt --surface --surface-2 --text --muted --heading --link
              --primary --primary-hover --on-primary --primary-soft
              --accent --accent-strong --accent-soft --border --border-strong
              --stitch --orn --focus --success/--error/--info/--warning (+ -bg)
     font     --font-body --font-label --font-names --font-title --font-mono
     forme    --radius-sm --radius --radius-lg --radius-btn --shadow --shadow-lg
              --card-stitch (bordo "cucito" interno delle card) --btn-stitch
     texture  --tex-bg --tex-alt --tex-surface (gradienti / rumore SVG inline)
     ornamenti --orn-spray (angoli dell'hero) --orn-sprig (rametto orizzontale):
              SVG in data URI usati come mask-image, quindi prendono il colore --orn.

   Icone: .lightbox-close/-prev/-next e .icon-btn mostrano il loro testo
   (es. ×, ‹, ›) + aria-label; .media-badge e .media-placeholder disegnano
   l'icona da soli.

   Sezioni: 1 font · 2 token e temi · 3 base · 4 layout · 5 header e footer ·
            6 componenti · 7 home · 8 ritocchi per tema · 9 movimento ridotto
   ============================================================================= */

/* 1. FONT ------------------------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Great+Vibes&family=Josefin+Sans:wght@400;600&family=Parisienne&family=Pinyon+Script&display=swap');

/* 2. TOKEN E TEMI ---------------------------------------------------------- */
:root {
  color-scheme: only light; /* "only": niente scurimento forzato (Samsung Internet, Chrome) che rende invisibile il menu */

  --font-body: 'Cormorant Garamond', Garamond, 'Times New Roman', serif;
  --font-label: 'Josefin Sans', 'Segoe UI', system-ui, sans-serif;
  --font-names: 'Great Vibes', 'Segoe Script', cursive;
  --font-title: var(--font-names);
  --font-amp: var(--font-names);
  --font-mono: ui-monospace, 'Cascadia Mono', Consolas, Menlo, monospace;

  --names-size: clamp(3.5rem, 12vw, 6.75rem);
  --names-weight: 400;
  --names-transform: none;
  --names-spacing: 0;
  --title-size: clamp(2.6rem, 8vw, 3.5rem);
  --title-weight: 400;
  --title-transform: none;
  --title-spacing: 0;
  --brand-size: 1.9rem;
  --footer-names-size: clamp(2.4rem, 8vw, 3.2rem);

  --gutter: clamp(16px, 4vw, 24px);
  --header-h: 64px;
  --space-section: clamp(3.5rem, 9vw, 6.5rem);
  --radius-sm: 6px;
  --radius: 12px;
  --radius-lg: 18px;
  --radius-btn: 6px;
  --shadow: 0 1px 2px rgb(70 52 40 / .07), 0 8px 22px -12px rgb(70 52 40 / .28);
  --shadow-lg: 0 26px 60px -24px rgb(50 36 26 / .45);
  --card-stitch: 1.5px dashed var(--stitch);
  --btn-stitch: 1px dashed rgb(255 255 255 / .5);

  /* country (predefinito) */
  --bg: #f6f0e4;
  --bg-alt: #eee4d2;
  --surface: #ecdfc8;
  --surface-2: #fdf9f2;
  --input-bg: #fffdf8;
  --text: #46342a;
  --muted: #69544a;
  --heading: #3f4c2d;
  --link: #46552e;
  --primary: #5c6c41;
  --primary-hover: #4a5833;
  --on-primary: #fdf9f2;
  --primary-soft: #e4e7d4;
  --accent: #b2716a;
  --accent-strong: #864740;
  --accent-soft: #f1ddd5;
  --border: #dccbae;
  --border-strong: #8c7354;
  --input-border: var(--border-strong);
  --stitch: #ae9268;
  --orn: #8d9b6d;
  --focus: #8c3f33;
  --names-color: var(--heading);
  --amp-color: #a6645c;
  --seal: #ae6a60;
  --seal-ink: #fdf3ea;
  --hero-glow: rgb(255 251 243 / .85);
  --footer-bg: #ebdfca;
  --footer-text: var(--text);
  --footer-heading: var(--heading);
  --footer-accent: var(--accent-strong);
  --toast-bg: #3a2d24;

  --success: #3e6a2e;
  --success-bg: #e1ebd4;
  --error: #a3352a;
  --error-bg: #f8e1db;
  --info: #3b5b75;
  --info-bg: #dfe8ef;
  --warning: #7c5a0c;
  --warning-bg: #f6e8c6;

  --noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .38 0 0 0 0 .28 0 0 0 0 .18 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
  --kraft: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='k'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .55' numOctaves='2' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .33 0 0 0 0 .2 0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23k)'/%3E%3C/svg%3E");
  --linen: repeating-linear-gradient(0deg, rgb(110 85 55 / .035) 0 1px, transparent 1px 3px), repeating-linear-gradient(90deg, rgb(110 85 55 / .03) 0 1px, transparent 1px 4px);
  --tex-bg: var(--noise), var(--linen);
  --tex-alt: var(--noise), var(--linen);
  --tex-surface: var(--kraft), var(--noise);

  --orn-spray: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M-4 36C70 42 170 94 262 182M18.9 39.2C30.2 41 42.4 31.8 47.4 23.1C35.7 22.3 21.2 28.3 18.9 39.2M18.9 39.2Q29.9 32.1 39 27.1M41 44.4C38.3 54.7 48.1 66.1 58.5 70.3C58.1 60.7 51.5 47.6 41 44.4M41 44.4Q47.4 55.1 53.1 63.4M64.1 51.8C74.1 55.3 86.4 48.7 92.1 41.4C81.6 38.9 67.7 42.2 64.1 51.8M64.1 51.8Q75 47 84 43.8M88 61.4C84 70.5 91.5 81.9 100.5 87.1C101.4 78.3 97.2 65.6 88 61.4M88 61.4Q92.3 71.9 96.5 80.1M112.5 73.1C121.2 77.6 133.1 73 139 66.9C129.7 63.3 116.8 64.6 112.5 73.1M112.5 73.1Q122.9 70 131.4 68.2M137.6 86.9C132.8 94.6 138.4 105.7 146.1 111.2C148.1 103.3 145.7 91.5 137.6 86.9M137.6 86.9Q140.4 96.8 143.2 104.5M163 102.6C170.3 107.7 181.4 104.7 187.2 99.7C179.3 95.4 167.5 95.2 163 102.6M163 102.6Q172.6 100.9 180.3 100M188.6 120.4C183.4 126.9 187.5 137.2 194 142.8C196.6 135.9 195.6 125.2 188.6 120.4M188.6 120.4Q190.2 129.4 192 136.6M214.2 140C220.3 145.4 230.3 143.6 235.9 139.5C229.2 134.8 218.9 133.6 214.2 140M214.2 140Q222.8 139.3 229.8 139.2M239.8 161.6C234.4 166.9 237.2 176.2 242.7 181.7C245.7 175.9 245.8 166.4 239.8 161.6M239.8 161.6Q240.5 169.6 241.5 176.1M262 182C261.8 189.4 269.6 194.9 276.5 195.8C275.3 189 269.4 181.5 262 182M262 182Q267.8 187.5 272.4 192M34 -4C46 70 58 150 104 244M37.6 18.4L41.4 19.7M41.4 19.7A11.5 9.9 18.7 1 0 63.2 27A11.5 9.9 18.7 1 0 41.4 19.7L51.8 23.2M42 44.5L38.9 46.9M38.9 46.9A10.9 9.4 142 1 0 21.7 60.4A10.9 9.4 142 1 0 38.9 46.9L30.7 53.3M47 71.2L50.9 72.3M50.9 72.3A10.4 8.9 16.8 1 0 70.7 78.3A10.4 8.9 16.8 1 0 50.9 72.3L60.3 75.2M52.9 98.5L49.9 101.2M49.9 101.2A9.8 8.4 139 1 0 35.1 114A9.8 8.4 139 1 0 49.9 101.2L42.9 107.3M59.9 126.7L63.8 127.5M63.8 127.5A9.2 7.9 12.8 1 0 81.8 131.6A9.2 7.9 12.8 1 0 63.8 127.5L72.4 129.5M68.5 155.6L65.7 158.5M65.7 158.5A8.6 7.4 134.3 1 0 53.6 170.8A8.6 7.4 134.3 1 0 65.7 158.5L59.9 164.3M78.8 185.4L82.7 185.9M82.7 185.9A8.1 6.9 7.5 1 0 98.7 188.1A8.1 6.9 7.5 1 0 82.7 185.9L90.3 186.9M91.2 216.2L88.7 219.3M88.7 219.3A7.5 6.5 128.6 1 0 79.3 231.1A7.5 6.5 128.6 1 0 88.7 219.3L84.2 224.9M104 244L105.8 247.6M105.8 247.6A6 5.2 63.9 1 0 111 258.4A6 5.2 63.9 1 0 105.8 247.6L108.3 252.7M6 8C70 16 140 30 188 66M188.2 72a7.8 7.8 0 1 0 15.6 0a7.8 7.8 0 1 0 -15.6 0M206 74.1C209.6 80.7 219.2 80.7 225.6 77.1C220.9 72.3 212 69.5 206 74.1M203.2 79.2C202.7 86.8 209.9 92.7 216.5 94C216 86.6 210.7 78.7 203.2 79.2M198.2 82C193.8 88 197.7 96.7 203.7 101C206.1 94.8 204.9 85.5 198.2 82M192.5 81.6C185.4 84.2 183 93.3 184.5 99.7C191 96.2 196.1 88.2 192.5 81.6M187.9 78.2C180.5 76.6 174.3 83.8 172.8 91C179.4 90.7 187.4 85.7 187.9 78.2M185.8 72.8C180.5 67.4 171.2 69 166 73.1C171.9 77.5 181.3 78.8 185.8 72.8M187 67.2C185.3 59.9 176.2 57.2 169 58.8C172.2 64.7 179.9 69.9 187 67.2M191.1 63.1C193.7 55.9 188.5 48.2 182.5 45.2C181 52.4 183.8 61.5 191.1 63.1M196.7 61.8C202.6 57.3 201.3 47.8 196.8 42C192.7 47.3 191.2 56.5 196.7 61.8M202.1 63.8C209.7 63.3 214.5 55.3 214.8 48.6C207.6 50.2 200.5 56.5 202.1 63.8M205.5 68.4C212.2 71.9 220.2 66.8 223.6 60.3C217.1 58.8 208.1 61.2 205.5 68.4M103 26.5C110.5 29.9 119.9 25.4 124.2 19.9C116.2 17.2 105.6 18.9 103 26.5M103 26.5Q111.2 23.3 118 21.3M8 14C40 80 80 140 120 176M119.1 180a4.9 4.9 0 1 0 9.9 0a4.9 4.9 0 1 0 -9.9 0M129.6 183.2C130.5 187.9 136.3 189.8 140.8 188.8C139 185.1 134.1 181.6 129.6 183.2M126.2 186.1C123.8 190.3 126.4 195.6 129.8 198.1C131.5 193.8 130.6 187.8 126.2 186.1M121.8 186.1C117.4 187.8 116.5 193.8 118.2 198.1C121.6 195.6 124.2 190.3 121.8 186.1M118.4 183.2C113.9 181.6 109 185.1 107.2 188.8C111.7 189.8 117.5 187.9 118.4 183.2M117.6 178.9C115.2 174.8 109.1 175 105.2 177.4C108.2 180.4 113.9 181.9 117.6 178.9M119.8 175.1C120.6 170.3 116.4 166.1 112.4 165C112.3 169.6 115.1 174.9 119.8 175.1M124 173.5C127.6 170.4 126.3 164.5 123.2 161C120.9 164.5 120.3 170.4 124 173.5M128.2 175.1C133 175 136.3 170.1 136.8 165.9C132.2 166.6 127.4 170.4 128.2 175.1M130.4 178.9C134.1 181.8 139.7 179.6 142.6 176C138.7 174.3 132.8 174.7 130.4 178.9M66.7 114.5C61.2 118.1 62 126.8 65.9 132.6C69.4 128 71 119.8 66.7 114.5M66.7 114.5Q65.9 121.6 65.7 127.4M10 16C110 22 220 26 300 44M232.2 32.5Q239.3 36.2 235.7 40.8M235.7 40.8C241 42.9 242.3 48.1 244 54Q241.4 56.5 238.7 54.5Q236.3 57 233.6 54.7Q231.2 56.9 228.4 54.6C229.7 48.5 230.5 43.2 235.7 40.8M236 49.1L236.3 58.5M267.4 37.7Q274.3 41.6 270.5 46.1M270.5 46.1C275.8 48.2 277.1 53.4 278.8 59.3Q276.2 61.8 273.5 59.8Q271.1 62.3 268.4 60Q266 62.2 263.2 59.9C264.5 53.8 265.3 48.5 270.5 46.1M270.8 54.3L271.1 63.8M300 44Q306.7 48.3 302.7 52.6M302.7 52.6C308 54.7 309.2 59.9 310.9 65.8Q308.3 68.3 305.7 66.3Q303.2 68.8 300.6 66.5Q298.1 68.7 295.4 66.4C296.6 60.3 297.5 55 302.7 52.6M303 60.8L303.3 70.3M2 4C90 2 170 6 236 22M141.3 7.3C145.7 10.4 149.9 7.1 151.2 2.7C147 0.8 141.8 2 141.3 7.3M153 8.4C152.6 13.8 157.4 15.9 162 14.8C161.5 10.2 158 6.3 153 8.4M164.6 9.7C169 12.8 173.3 9.7 174.7 5.3C170.5 3.3 165.3 4.3 164.6 9.7M176 11.1C175.4 16.4 180.2 18.6 184.8 17.8C184.4 13.1 181 9.1 176 11.1M187.2 12.6C191.5 15.9 195.9 12.9 197.5 8.6C193.3 6.5 188.1 7.3 187.2 12.6M198.2 14.4C197.4 19.7 202.2 22.1 206.7 21.3C206.6 16.7 203.3 12.5 198.2 14.4M209 16.3C213.2 19.7 217.7 16.9 219.4 12.6C215.4 10.4 210.1 11 209 16.3M219.6 18.3C218.6 23.6 223.3 26.2 227.9 25.6C227.9 21 224.8 16.7 219.6 18.3M230 20.6C234 24.2 238.6 21.6 240.5 17.4C236.6 14.9 231.3 15.4 230 20.6M236 22C237.7 27.6 243.5 27.7 247.7 24.8C245.3 20.4 240.1 17.8 236 22M12 20C70 70 120 108 150 128M152.8 132a3.2 3.2 0 1 0 6.4 0a3.2 3.2 0 1 0 -6.4 0M159.8 132.7C161.6 139.8 167.5 139.2 171.8 134.8C169.3 129.2 163.9 126.6 159.8 132.7M156.5 135.8C150.3 139.7 152.8 145.2 158.2 147.8C162.7 143.8 163.6 137.9 156.5 135.8M152.5 133.7C146.9 129 142.5 133 141.6 139C146.9 142.1 152.8 141.1 152.5 133.7M153.3 129.2C156.1 122.4 150.9 119.4 144.9 120.5C143.6 126.4 146.4 131.7 153.3 129.2M157.8 128.6C165.2 129.1 166.4 123.2 163.5 117.9C157.5 118.5 153.3 122.8 157.8 128.6M14 24C30 120 40 170 54 204M54 204C49.1 210.1 53.2 216.5 59.5 219C62.7 213.1 61.7 205.5 54 204M42.2 168.3C41.4 173.6 46.1 176 50.6 175.3C50.5 170.7 47.3 166.5 42.2 168.3M224.4 60a1.6 1.6 0 1 0 3.2 0a1.6 1.6 0 1 0 -3.2 0M148.4 100a1.6 1.6 0 1 0 3.2 0a1.6 1.6 0 1 0 -3.2 0M88.4 200a1.6 1.6 0 1 0 3.2 0a1.6 1.6 0 1 0 -3.2 0M176.4 142a1.6 1.6 0 1 0 3.2 0a1.6 1.6 0 1 0 -3.2 0M244.4 120a1.6 1.6 0 1 0 3.2 0a1.6 1.6 0 1 0 -3.2 0M212.4 24a1.6 1.6 0 1 0 3.2 0a1.6 1.6 0 1 0 -3.2 0'/%3E%3C/svg%3E");
  --orn-sprig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' fill='none' stroke='black' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M76.6 20a3.4 3.4 0 1 0 6.8 0a3.4 3.4 0 1 0 -6.8 0M80 15.6C82.4 13.4 81.6 9.4 79.5 7C77.9 9.4 77.5 13.4 80 15.6M82.8 16.6C86.1 16.6 88.4 13.2 88.8 10.4C85.6 10.9 82.4 13.4 82.8 16.6M84.4 19.2C86.9 21.3 90.7 19.7 92.7 17.2C90.1 16.1 86 16.4 84.4 19.2M83.8 22.2C84.4 25.4 88.1 27.1 91 26.9C90 23.9 86.9 21.2 83.8 22.2M81.5 24.2C80 27 82.1 30.5 84.9 32C85.6 29.2 84.6 25.3 81.5 24.2M78.5 24.2C75.4 25.3 74.4 29.2 75.1 32C77.9 30.5 80 27 78.5 24.2M76.2 22.2C73.1 21.2 70 23.9 69 26.9C71.9 27.1 75.6 25.4 76.2 22.2M75.6 19.2C74 16.4 69.9 16.1 67.3 17.2C69.3 19.7 73.1 21.3 75.6 19.2M77.2 16.6C77.6 13.4 74.4 10.9 71.2 10.4C71.6 13.2 73.9 16.6 77.2 16.6M89 21C110 26 132 26 154 16M104.9 23.7C108.9 24.3 111.8 20.4 112.1 16.8C108.4 17 104.5 19.7 104.9 23.7M124.4 23.9C123.9 27.9 127.8 30.7 131.5 30.9C131.2 27.2 128.4 23.4 124.4 23.9M144.1 19.8C148 18.7 149 14.1 147.9 10.6C144.6 12.3 142.1 16.3 144.1 19.8M154 16C156.8 18 159.5 15.9 160.4 13.1C157.7 11.9 154.4 12.6 154 16M71 21C50 26 28 26 6 16M55.1 23.7C55.5 19.7 51.6 17 47.9 16.8C48.2 20.4 51.1 24.3 55.1 23.7M35.6 23.9C31.6 23.4 28.8 27.2 28.5 30.9C32.2 30.7 36.1 27.9 35.6 23.9M15.9 19.8C17.9 16.3 15.4 12.3 12.1 10.6C11 14.1 12 18.7 15.9 19.8M6 16C5.6 12.6 2.3 11.9 -0.4 13.1C0.5 15.9 3.2 18 6 16'/%3E%3C/svg%3E");

  --icon-play: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5.5v13l10.5-6.5z'/%3E%3C/svg%3E");
  --icon-photo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round' stroke-linecap='round'%3E%3Crect x='3' y='4.5' width='18' height='15' rx='2'/%3E%3Ccircle cx='9' cy='10' r='1.7'/%3E%3Cpath d='M3.5 17.5l5-4.5 3.5 3 3-2.5 5.5 4.5'/%3E%3C/svg%3E");
  --icon-upload: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15.5V4M7.5 8.5 12 4l4.5 4.5M4 14.5V18a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-3.5'/%3E%3C/svg%3E");
  --icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23857464' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5 20 20'/%3E%3C/svg%3E");
}

html[data-theme="boho"] {
  --font-names: 'Parisienne', 'Segoe Script', cursive;
  --font-title: var(--font-body);
  --title-size: clamp(1.6rem, 5vw, 2.25rem);
  --title-weight: 600;
  --title-transform: uppercase;
  --title-spacing: .16em;
  --names-size: clamp(3.2rem, 11vw, 6.25rem);
  --radius-sm: 10px;
  --radius: 20px;
  --radius-lg: 28px;
  --radius-btn: 999px;
  --card-stitch: 1px solid rgb(168 128 95 / .35);
  --btn-stitch: 0 solid transparent;

  --bg: #f7ede2;
  --bg-alt: #f0dfcc;
  --surface: #fcf6ef;
  --surface-2: #fffaf5;
  --input-bg: #fffcf8;
  --text: #4a2b1f;
  --muted: #73503f;
  --heading: #8a3a1f;
  --link: #93401f;
  --primary: #a64a28;
  --primary-hover: #8a3c1f;
  --on-primary: #fffaf5;
  --primary-soft: #f6e0d2;
  --accent: #b9852a;
  --accent-strong: #805810;
  --accent-soft: #f5e4c3;
  --border: #ead6c1;
  --border-strong: #987052;
  --stitch: #cfa983;
  --orn: #c0906a;
  --focus: #2f5d62;
  --names-color: var(--heading);
  --amp-color: #9a6b1b;
  --seal: #a64a28;
  --seal-ink: #fff3e6;
  --hero-glow: rgb(245 228 195 / .7);
  --footer-bg: #4a2b1f;
  --footer-text: #f7ede2;
  --footer-heading: #f0c99a;
  --footer-accent: #e8b56a;
  --toast-bg: #4a2b1f;

  --tex-bg: var(--noise);
  --tex-alt: var(--noise);
  --tex-surface: none;
  --orn-spray: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320' fill='none' stroke='black' stroke-width='1.15' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 10C80 28 170 66 276 148M74.9 32.2Q77.7 38.7 81.6 42.3M74.9 32.2Q82.7 31 89.4 33M78.9 33.8Q84.9 43.2 92.6 48.3M78.9 33.8Q87.6 30.4 94.9 30.7M83 35.3Q89.4 45.7 97.7 51.3M83 35.3Q94.3 31.6 103.8 32.7M87.1 36.9Q95.1 47.2 105.3 52.2M87.1 36.9Q97.4 33.3 106 34M91.2 38.6Q99.8 48.1 110.6 52.4M91.2 38.6Q104 35.5 114.8 37.7M95.3 40.3Q101.8 54.7 110.9 63M95.3 40.3Q105.2 37.8 113.6 39.3M99.4 42Q106.8 56.7 116.9 65M99.4 42Q113.3 38.2 124.8 40.1M103.6 43.8Q109.8 59.8 119 69.3M103.6 43.8Q116.1 41.7 126.5 44.8M107.7 45.6Q117 59.3 129.1 66.4M107.7 45.6Q119.2 44 128.6 47M111.9 47.4Q119.8 58.9 130.1 64.9M111.9 47.4Q129.5 43.2 144 46.1M116.1 49.3Q122.3 65.5 131.4 75.2M116.1 49.3Q127.5 48 136.8 51.3M120.4 51.3Q128 65.2 138.5 73M120.4 51.3Q134.7 50.2 146.5 54.9M124.6 53.3Q136.1 67.5 151 74.5M124.6 53.3Q138.9 51.4 150.6 55.3M128.9 55.3Q134.6 72.2 143.5 82.5M128.9 55.3Q144.5 54.5 157.2 60M133.1 57.4Q141.3 70.1 152.4 77M133.1 57.4Q148 55.2 160 58.8M137.4 59.5Q144.2 72.9 153.7 80.6M137.4 59.5Q154.4 58.5 168 64.1M141.8 61.7Q151.1 79.3 164.2 89.3M141.8 61.7Q161.1 57.5 176.7 60.7M146.1 63.9Q153.9 79.9 165.3 89.1M146.1 63.9Q162.6 60.1 175.8 62.6M150.5 66.2Q160.1 84 173.8 94.1M150.5 66.2Q168.5 65.3 182.9 71.5M154.8 68.5Q163.2 83.6 175.1 92.1M154.8 68.5Q169.9 67.1 181.9 71.3M159.2 70.9Q164.9 89.8 174.6 101.5M159.2 70.9Q172.4 67.4 182.9 68.9M163.7 73.3Q169.5 84.8 178.1 91.5M163.7 73.3Q176.8 73.9 187.2 79.6M168.1 75.8Q178.5 93.2 193.3 102.8M168.1 75.8Q185.2 76.2 198.7 83.2M172.6 78.3Q178.6 93.3 188 102.3M172.6 78.3Q185.8 74.5 196.2 75.7M177 80.9Q182.2 100.2 191.5 112.3M177 80.9Q196.3 75.6 211.5 77.6M181.5 83.5Q190 99.2 202.4 108.1M181.5 83.5Q193.2 83.5 202.4 88M186.1 86.2Q192.7 95.9 202.1 101.1M186.1 86.2Q202.4 86.5 215 92.8M190.6 88.9Q197.3 104.9 207.9 114.6M190.6 88.9Q207.1 89.3 219.9 95.8M195.2 91.7Q203.5 107.3 215.9 116.3M195.2 91.7Q209.3 88.4 220.2 90.2M199.7 94.6Q204.2 105.5 211.3 112.2M199.7 94.6Q210.7 92 219.2 93.3M204.3 97.5Q207.6 112.9 214.4 122.8M204.3 97.5Q215.1 95 223.5 96.5M209 100.4Q211.2 112.2 216 119.9M209 100.4Q223.3 98.6 234.4 101.8M213.6 103.5Q218.8 113.6 226.7 119.6M213.6 103.5Q224.9 102.6 233.6 105.7M218.3 106.5Q220.7 116.2 225.5 122.4M218.3 106.5Q232.4 104.7 243.3 107.8M223 109.7Q228.9 119.7 237.8 125.4M223 109.7Q232.8 107.6 240.2 109M227.7 112.8Q230.2 121.9 234.9 127.8M227.7 112.8Q240.8 114.9 250.6 121.8M232.4 116.1Q235 129.1 240.6 137.5M232.4 116.1Q246.1 113.2 256.4 115.2M237.2 119.4Q241.1 130 247.9 136.5M237.2 119.4Q246 118.4 252.6 120.5M241.9 122.7Q245.8 132.9 252.4 139.3M241.9 122.7Q249.8 122.9 255.7 125.9M246.7 126.2Q249.6 135.7 255 141.8M246.7 126.2Q254.4 125.7 260.2 127.9M251.6 129.7Q254.5 137.1 259.5 141.8M251.6 129.7Q259.6 129.9 265.6 132.9M256.4 133.2Q258.3 137.9 261.5 140.9M256.4 133.2Q264.2 131.7 270 132.8M261.3 136.8Q262.1 142 264.2 145.5M261.3 136.8Q266.9 137.5 271.1 140.3M266.2 140.5Q267.6 143.5 269.8 145.3M266.2 140.5Q269.3 140.5 271.7 141.5M271.1 144.2Q271.5 147.9 272.8 150.4M271.1 144.2Q274.1 144.7 276.3 146.2M276 148Q277.2 150.7 279.2 152.4M276 148Q279.4 148.1 282 149.3M10 0C48 80 92 168 146 268M45.9 74.3Q44.4 83 46.2 90.1M45.9 74.3Q54.2 79.2 58.8 86M48.1 78.6Q48.3 88.9 52.6 97.2M48.1 78.6Q55.7 82.5 60.1 87.9M50.3 83Q48 91.6 49 98.5M50.3 83Q57.7 88 61.7 94.7M52.4 87.4Q50.7 99.1 53.6 108.6M52.4 87.4Q60.6 90.6 65.5 95.4M54.6 91.8Q50.1 105.1 50.7 115.7M54.6 91.8Q67.8 97.5 75.5 105.9M56.8 96.3Q57.2 110.8 63.3 122.5M56.8 96.3Q69.5 102.2 76.9 110.8M59.1 100.7Q54.4 114.7 55.2 125.9M59.1 100.7Q66.7 106.3 70.7 113.6M61.3 105.2Q61.2 115.3 65.1 123.4M61.3 105.2Q69.1 111.5 73 119.7M63.5 109.7Q58.5 123.8 59.1 135.1M63.5 109.7Q72.7 116.2 77.4 125M65.8 114.2Q63 126 64.7 135.5M65.8 114.2Q76.6 120 82.7 128.1M68.1 118.7Q65.7 136.6 70.2 151.1M68.1 118.7Q83.1 124.5 92.2 133.3M70.4 123.2Q68.5 137.1 72.1 148.2M70.4 123.2Q79.7 129.4 84.8 137.8M72.7 127.8Q66.5 144.8 67 158.4M72.7 127.8Q84.8 131.6 92.3 137.9M75 132.4Q74.8 147.3 80.5 159.2M75 132.4Q86.9 137.8 93.9 145.8M77.3 137Q77.4 149.4 82.4 159.3M77.3 137Q90 142.5 97.4 150.7M79.6 141.6Q77.2 157.4 80.9 170.1M79.6 141.6Q94.8 152.8 102.5 167.9M82 146.2Q80.8 160.9 85.2 172.7M82 146.2Q90.8 153.1 95.2 162.3M84.4 150.8Q84.5 165.4 90.3 176.9M84.4 150.8Q97.7 155 105.9 161.8M86.8 155.5Q82 173.2 84.1 187.4M86.8 155.5Q101.5 160.5 110.5 168.5M89.2 160.2Q83.8 179.3 85.8 194.5M89.2 160.2Q104.6 167.4 113.6 177.9M91.6 164.9Q89.9 179 93.7 190.3M91.6 164.9Q105.5 171.9 113.4 181.9M94 169.6Q90.1 185.3 92.3 198M94 169.6Q109.5 176.3 118.6 186.4M96.5 174.3Q91.2 191 92.4 204.4M96.5 174.3Q114.4 179.3 125.4 187.8M98.9 179.1Q96.8 193.4 100.2 204.9M98.9 179.1Q117.4 184.3 128.8 193.2M101.4 183.9Q101.6 197 107 207.5M101.4 183.9Q114.6 188.1 122.8 195M103.9 188.7Q100 204.4 102.1 217M103.9 188.7Q121 194.8 131.3 204.5M106.4 193.5Q105.9 205.1 109.9 214.4M106.4 193.5Q119.2 202.5 125.8 214.8M108.9 198.3Q104.5 214.6 106.3 227.6M108.9 198.3Q122.7 203.7 130.9 212M111.5 203.1Q109.8 216.3 113.2 226.9M111.5 203.1Q125.8 209.7 134.1 219.4M114 208Q113.2 222.7 118.1 234.5M114 208Q126.2 214.4 133.2 223.5M116.6 212.9Q116.4 224 120.4 232.8M116.6 212.9Q127 219.5 132.7 228.5M119.2 217.8Q115.4 231.4 116.8 242.2M119.2 217.8Q129 221.8 134.9 227.8M121.8 222.7Q121.9 235.1 126.9 245M121.8 222.7Q131.4 225.6 137.3 230.3M124.4 227.7Q124.5 234.9 127.3 240.6M124.4 227.7Q131.7 233.1 135.4 240.5M127.1 232.7Q124 242.6 124.8 250.5M127.1 232.7Q133.4 236.7 136.8 242.2M129.7 237.6Q127.5 247.7 129 255.8M129.7 237.6Q135.2 241.4 138.1 246.6M132.4 242.7Q132.8 250.1 136.1 256M132.4 242.7Q140.2 246.1 144.8 251.2M135.1 247.7Q135.1 254.5 137.8 259.8M135.1 247.7Q140.4 249.7 143.7 252.9M137.8 252.7Q136.8 258.7 138.2 263.5M137.8 252.7Q142.7 254.5 145.7 257.2M140.5 257.8Q139.7 261.4 140.2 264.3M140.5 257.8Q143.3 259.7 144.7 262.4M143.2 262.9Q142.8 265.2 143.3 267M143.2 262.9Q145.6 263.9 147 265.5M146 268Q145.9 270.5 146.9 272.6M146 268Q149 269.2 150.7 271.1M4 4C70 50 130 104 206 214M81.7 66.1Q84 73.7 88.7 78.8M81.7 66.1Q89.5 68.5 94.9 73.5M85.3 69.4Q87.1 77.8 91.6 83.5M85.3 69.4Q94.4 70 100.9 73.4M88.8 72.8Q92 81.9 98.1 87.9M88.8 72.8Q99.2 74.2 106.5 78.8M92.3 76.2Q94.5 86.8 99.9 94.1M92.3 76.2Q103.7 76.5 111.7 80.2M95.9 79.7Q95.9 91.1 99.3 99.2M95.9 79.7Q107 82.7 114.5 89.4M99.5 83.2Q102.7 94.1 109.5 101.4M99.5 83.2Q108.2 83 114.4 85.4M103 86.8Q107.2 99.2 115.5 107.5M103 86.8Q111.2 88.9 116.7 93.7M106.6 90.5Q106.5 104.8 110.7 115.1M106.6 90.5Q120 94 129.1 101.7M110.2 94.2Q113.2 103.3 119.3 109.4M110.2 94.2Q121.7 96 129.7 101.2M113.8 98Q115.7 107.5 120.7 114.2M113.8 98Q125 101.4 132.5 108.3M117.4 101.9Q120.2 110.6 125.8 116.6M117.4 101.9Q127.2 103.2 133.9 107.5M121.1 105.8Q120.9 118.4 124.7 127.5M121.1 105.8Q134.8 108.5 144.2 115.2M124.7 109.8Q126.8 123.5 133.2 133.2M124.7 109.8Q138.6 110.1 148.2 114.3M128.4 113.9Q127.1 128.9 130.5 139.7M128.4 113.9Q142.4 116.3 151.9 122.8M132.1 118.1Q135.2 132.1 143.1 141.9M132.1 118.1Q142.1 119.4 148.9 123.5M135.8 122.3Q137.2 135.9 143.2 145.6M135.8 122.3Q148.2 125.8 156.4 132.9M139.5 126.6Q142.2 138.5 149.1 146.9M139.5 126.6Q148.2 130.4 153.7 136.8M143.2 131Q144.7 142.4 149.9 150.5M143.2 131Q153.7 133 160.8 137.9M146.9 135.5Q149.2 144.8 154.8 151.4M146.9 135.5Q156.3 136.6 162.6 140.2M150.7 140.1Q154 153.5 162 163M150.7 140.1Q163.5 144.4 171.8 152.5M154.5 144.8Q153.2 156.2 155.7 164.6M154.5 144.8Q166.1 150.5 173.3 159.8M158.3 149.5Q160.5 163.2 167.5 173.1M158.3 149.5Q169.9 153 177.4 159.8M162.1 154.3Q163.5 162.3 167.6 168.1M162.1 154.3Q174.5 156.5 182.8 161.9M166 159.3Q165 168.5 167 175.4M166 159.3Q177.2 163.4 184.3 170.7M169.9 164.3Q170.9 173.7 175.1 180.7M169.9 164.3Q178.7 165.5 184.5 168.9M173.8 169.4Q173.2 180.5 176.4 188.8M173.8 169.4Q183.2 170.8 189.4 174.6M177.7 174.6Q176.6 184.7 178.9 192.3M177.7 174.6Q187.7 175.8 194.3 179.4M181.7 179.9Q182.4 188.3 186.1 194.5M181.7 179.9Q189.6 183 194.5 188.3M185.7 185.4Q186.7 193.2 190.6 199M185.7 185.4Q193.6 187.3 198.8 191.4M189.7 190.9Q189.7 197.7 192.1 202.8M189.7 190.9Q196.5 192.1 201 195.1M193.7 196.5Q194 200 195.7 202.7M193.7 196.5Q197.1 198.4 199 201.3M197.8 202.2Q197.3 205.8 198 208.4M197.8 202.2Q201.4 202.9 203.8 204.5M201.9 208.1Q201.4 211 202 213.2M201.9 208.1Q203.8 208.7 205.1 209.8M206 214Q206 216.4 206.9 218.1M206 214Q208.5 214.6 210 215.8M0 0C54.4 19.5 158.3 49.5 220.4 66.8C160.1 42.2 56.8 9.8 0 0M0 0C13.9 50.8 53.3 141.5 81.7 193.7C60.4 138.9 23.3 47.4 0 0M0 6C60 18 130 22 220 12'/%3E%3C/svg%3E");
  --orn-sprig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' fill='none' stroke='black' stroke-width='1.05' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M60 30H100M74 30A6 6 0 0 1 86 30M69.5 30A10.5 10.5 0 0 1 90.5 30M65 30A15 15 0 0 1 95 30M102 28C118 26 134 22 156 14M114.1 26.1Q116.1 26.9 117.9 26.8M114.1 26.1Q115.7 24.7 117.4 24.2M116.6 25.6Q119.2 27.2 121.5 27.5M116.6 25.6Q118.3 24 120.3 23.4M119.1 25.1Q122.1 26.5 124.8 26.5M119.1 25.1Q121.5 22.1 124.4 20.8M121.6 24.5Q124.4 25.9 127 25.9M121.6 24.5Q123.8 21.6 126.4 20.3M124.1 23.9Q127.8 24.8 131 24.2M124.1 23.9Q126.4 21.9 129.1 21.2M126.8 23.3Q130 24.7 132.8 24.8M126.8 23.3Q129.5 19.5 132.7 17.6M129.4 22.6Q132.9 23.7 136 23.2M129.4 22.6Q132 20.1 135.1 19.2M132.1 21.8Q135.1 22.4 137.8 21.6M132.1 21.8Q134.6 18.9 137.6 17.6M134.8 21Q137.7 22.2 140.1 22.1M134.8 21Q137.1 18.2 139.8 16.8M137.7 20.2Q140.3 21.5 142.6 21.7M137.7 20.2Q139.7 17.8 142.2 16.7M140.5 19.3Q143.1 19.8 145.4 19.3M140.5 19.3Q142.7 17 145.3 16M143.5 18.3Q146.5 19.4 149 19.2M143.5 18.3Q145.2 15.3 147.3 13.7M146.5 17.3Q148.8 18.5 150.8 18.6M146.5 17.3Q148.4 15.4 150.6 14.6M149.6 16.3Q151.5 17.1 153.2 17.1M149.6 16.3Q150.8 14.3 152.5 13.3M152.7 15.2Q154.1 15.5 155.2 15.2M152.7 15.2Q153.7 14.2 154.9 13.8M156 14Q156.6 14.1 157.1 14M156 14Q156.4 13.2 156.9 12.7M58 28C42 26 26 22 4 14M45.9 26.1Q44.3 24.3 42.5 23.5M45.9 26.1Q44.2 26.9 42.7 27M43.4 25.6Q41.2 23.7 38.6 23M43.4 25.6Q40.7 27.1 38.1 27.4M40.9 25.1Q39.2 22.2 37.1 20.7M40.9 25.1Q38.3 25.7 35.9 25.1M38.4 24.5Q35.9 21.6 33 20.2M38.4 24.5Q35.1 26.2 32.2 26.4M35.9 23.9Q32.8 21.4 29.4 20.6M35.9 23.9Q32.3 26.2 29.2 26.8M33.3 23.3Q30.6 19.5 27.4 17.6M33.3 23.3Q29.5 24.3 26.2 23.7M30.6 22.6Q28.1 19.2 25 17.6M30.6 22.6Q27 23.2 23.8 22.3M27.9 21.8Q25.2 17.9 22 16M27.9 21.8Q23.3 23.1 19.3 22.5M25.2 21Q23.1 17.1 20.5 14.9M25.2 21Q21.5 22.5 18.3 22.5M22.3 20.2Q20.3 18 17.9 17M22.3 20.2Q19 21.2 16.1 20.9M19.5 19.3Q18 17.2 16.2 16.1M19.5 19.3Q15.9 21 12.9 21.2M16.5 18.3Q15 16.6 13.2 15.7M16.5 18.3Q13.5 19.2 10.9 18.8M13.5 17.3Q12.1 15.6 10.3 14.8M13.5 17.3Q11.6 17.8 10 17.5M10.4 16.3Q9.4 14.7 8.2 13.8M10.4 16.3Q8.6 16.9 7 16.7M7.3 15.2Q6.7 14.2 5.9 13.7M7.3 15.2Q6 15.8 4.9 15.9M4 14Q3.7 13.3 3.2 12.9M4 14Q3.1 14.3 2.4 14.3'/%3E%3C/svg%3E");
}

html[data-theme="provenza"] {
  --names-color: var(--heading);
  --radius-sm: 4px;
  --radius: 6px;
  --radius-lg: 10px;
  --radius-btn: 4px;
  --card-stitch: 1px solid #e9e4f0;
  --btn-stitch: 0 solid transparent;
  --shadow: 0 1px 2px rgb(57 50 74 / .06), 0 10px 24px -14px rgb(57 50 74 / .3);

  --bg: #f7f5f1;
  --bg-alt: #f1eef5;
  --surface: #fffefc;
  --surface-2: #ffffff;
  --input-bg: #ffffff;
  --text: #39324a;
  --muted: #5c556b;
  --heading: #54437a;
  --link: #584686;
  --primary: #65538f;
  --primary-hover: #514274;
  --on-primary: #ffffff;
  --primary-soft: #ece7f4;
  --accent: #858b52;
  --accent-strong: #5a6032;
  --accent-soft: #e8ead6;
  --border: #e2dde8;
  --border-strong: #82779a;
  --stitch: #bdb1d6;
  --orn: #8d7cbc;
  --focus: #4f5a1f;
  --amp-color: #6f7540;
  --seal: #6b5996;
  --seal-ink: #f6f1ff;
  --hero-glow: rgb(255 255 255 / .9);
  --footer-bg: #ece8f1;
  --toast-bg: #352f42;

  --gingham: repeating-linear-gradient(0deg, rgb(101 83 143 / .06) 0 14px, transparent 14px 28px), repeating-linear-gradient(90deg, rgb(101 83 143 / .06) 0 14px, transparent 14px 28px);
  --tex-bg: var(--noise);
  --tex-alt: var(--gingham);
  --tex-surface: none;
  --orn-spray: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 24C90 52 170 100 272 166M134.9 80C136.8 83 140.2 82.1 142.1 79.8C140 77.6 136.6 76.9 134.9 80M134.9 80C133.1 83 135.4 85.6 138.3 86.4C139.4 83.5 138.4 80.2 134.9 80M149.7 90.6C151.5 93.5 154.8 92.7 156.7 90.4C154.7 88.3 151.3 87.6 149.7 90.6M149.7 90.6C147.8 93.5 150 96.1 152.9 96.8C154 94.1 153.1 90.8 149.7 90.6M161.4 95.7C163.2 98.5 166.4 97.7 168.2 95.5C166.3 93.4 163 92.7 161.4 95.7M161.4 95.7C159.6 98.5 161.7 101 164.5 101.8C165.6 99.1 164.7 95.9 161.4 95.7M170.3 102.9C172 105.7 175.1 104.9 176.9 102.8C175 100.7 171.9 100.1 170.3 102.9M170.3 102.9C168.5 105.6 170.5 108.1 173.3 108.9C174.3 106.2 173.5 103.1 170.3 102.9M180.1 107C181.8 109.8 184.8 109 186.6 107C184.8 104.9 181.7 104.3 180.1 107M180.1 107C178.4 109.7 180.4 112.2 183 112.9C184.1 110.3 183.3 107.3 180.1 107M187.9 113.6C189.5 116.3 192.5 115.6 194.3 113.6C192.5 111.6 189.5 111 187.9 113.6M187.9 113.6C186.3 116.3 188.2 118.6 190.8 119.3C191.8 116.9 191 113.9 187.9 113.6M197 117.5C198.6 120.1 201.5 119.4 203.2 117.5C201.5 115.5 198.6 114.9 197 117.5M197 117.5C195.4 120 197.3 122.4 199.8 123C200.8 120.6 200.1 117.7 197 117.5M204.3 123.8C205.8 126.3 208.7 125.7 210.4 123.8C208.7 121.9 205.8 121.3 204.3 123.8M204.3 123.8C202.7 126.2 204.5 128.5 207 129.2C207.9 126.8 207.3 124 204.3 123.8M213 127.5C214.4 130 217.2 129.4 218.8 127.5C217.2 125.7 214.5 125.1 213 127.5M213 127.5C211.4 129.9 213.2 132.1 215.5 132.8C216.5 130.5 215.8 127.8 213 127.5M220 133.5C221.4 135.9 224.1 135.3 225.7 133.6C224.1 131.8 221.4 131.2 220 133.5M220 133.5C218.5 135.9 220.2 138 222.5 138.6C223.4 136.4 222.8 133.8 220 133.5M228.3 137.2C229.7 139.5 232.3 139 233.8 137.3C232.3 135.5 229.7 134.9 228.3 137.2M228.3 137.2C226.8 139.5 228.5 141.5 230.7 142.2C231.6 140 231 137.5 228.3 137.2M235.1 143.1C236.5 145.3 239 144.8 240.5 143.1C239 141.5 236.5 140.9 235.1 143.1M235.1 143.1C233.7 145.3 235.3 147.3 237.4 147.9C238.3 145.8 237.7 143.3 235.1 143.1M243.3 146.8C244.5 149 246.9 148.4 248.4 146.8C247 145.2 244.6 144.6 243.3 146.8M243.3 146.8C241.9 148.9 243.4 150.8 245.5 151.4C246.3 149.4 245.8 147 243.3 146.8M250 152.5C251.2 154.6 253.5 154.1 254.9 152.6C253.6 151 251.2 150.4 250 152.5M250 152.5C248.6 154.5 250.1 156.4 252.1 157C252.9 155.1 252.4 152.7 250 152.5M257.9 156.2C259.1 158.2 261.3 157.8 262.7 156.3C261.4 154.7 259.1 154.2 257.9 156.2M257.9 156.2C256.6 158.2 258 160 259.9 160.6C260.7 158.7 260.2 156.4 257.9 156.2M264.5 161.8C265.6 163.8 267.8 163.3 269.1 161.9C267.9 160.4 265.7 159.9 264.5 161.8M264.5 161.8C263.2 163.7 264.6 165.5 266.5 166C267.2 164.2 266.8 162 264.5 161.8M272.3 165.6C273.4 167.4 275.5 167 276.8 165.6C275.5 164.2 273.4 163.7 272.3 165.6M272.3 165.6C271.1 167.4 272.4 169.1 274.2 169.6C274.9 167.9 274.5 165.8 272.3 165.6M272 166C271.9 168.5 274.2 169.3 276.2 168.7C275.9 166.6 274.2 164.9 272 166M24 24C60 90 100 170 148 268M82.3 133.6C82.2 137.1 85.5 138.2 88.4 137.3C87.9 134.4 85.4 132 82.3 133.6M82.3 133.6C79.1 135.1 79.5 138.6 81.6 140.8C84.1 139 85.1 135.7 82.3 133.6M88.9 150.5C88.9 154 92.1 155 94.9 154.2C94.4 151.3 91.9 148.9 88.9 150.5M88.9 150.5C85.8 152 86.2 155.4 88.2 157.5C90.6 155.8 91.7 152.5 88.9 150.5M96 161C96 164.4 99.1 165.4 101.9 164.6C101.4 161.8 99 159.5 96 161M96 161C93 162.5 93.4 165.7 95.4 167.8C97.7 166.1 98.7 163 96 161M99.6 171.8C99.6 175 102.6 176.1 105.3 175.3C104.8 172.5 102.5 170.3 99.6 171.8M99.6 171.8C96.7 173.2 97.1 176.3 99 178.4C101.2 176.7 102.2 173.7 99.6 171.8M105.7 180.4C105.6 183.6 108.6 184.6 111.2 183.8C110.7 181.1 108.5 178.9 105.7 180.4M105.7 180.4C102.8 181.8 103.2 184.9 105 186.9C107.2 185.3 108.2 182.3 105.7 180.4M108.7 190C108.7 193.1 111.5 194 114.1 193.3C113.6 190.7 111.4 188.6 108.7 190M108.7 190C105.9 191.3 106.3 194.3 108.1 196.2C110.2 194.7 111.2 191.8 108.7 190M114.3 197.9C114.2 200.9 117 201.8 119.5 201.1C119 198.6 116.9 196.5 114.3 197.9M114.3 197.9C111.6 199.2 111.9 202.1 113.7 204C115.8 202.4 116.7 199.7 114.3 197.9M117.1 206.8C117.1 209.7 119.8 210.7 122.2 209.9C121.7 207.5 119.7 205.5 117.1 206.8M117.1 206.8C114.5 208.1 114.8 210.9 116.5 212.7C118.5 211.3 119.4 208.6 117.1 206.8M122.4 214.3C122.3 217.1 124.9 218 127.3 217.3C126.8 215 124.9 213 122.4 214.3M122.4 214.3C119.8 215.5 120.2 218.3 121.8 220C123.8 218.6 124.6 216 122.4 214.3M125.1 222.9C125 225.6 127.6 226.5 129.8 225.8C129.4 223.5 127.5 221.6 125.1 222.9M125.1 222.9C122.6 224 122.9 226.7 124.5 228.4C126.4 227 127.3 224.5 125.1 222.9M130.1 230.1C130.1 232.7 132.5 233.6 134.7 232.9C134.3 230.7 132.4 228.9 130.1 230.1M130.1 230.1C127.7 231.2 128 233.8 129.6 235.4C131.4 234.1 132.2 231.7 130.1 230.1M132.8 238.3C132.7 240.9 135.1 241.7 137.2 241.1C136.8 238.9 135 237.2 132.8 238.3M132.8 238.3C130.5 239.4 130.7 241.9 132.2 243.5C134 242.2 134.8 239.9 132.8 238.3M137.6 245.4C137.5 247.8 139.8 248.6 141.8 248C141.5 246 139.8 244.3 137.6 245.4M137.6 245.4C135.4 246.4 135.6 248.8 137.1 250.4C138.8 249.2 139.6 246.9 137.6 245.4M140.2 253.4C140.2 255.8 142.4 256.6 144.3 256C144 254 142.3 252.3 140.2 253.4M140.2 253.4C138.1 254.4 138.3 256.7 139.7 258.2C141.4 257 142.1 254.8 140.2 253.4M144.9 260.4C144.8 262.6 147 263.4 148.8 262.8C148.5 260.9 146.9 259.3 144.9 260.4M144.9 260.4C142.8 261.3 143.1 263.6 144.4 265C146 263.9 146.7 261.7 144.9 260.4M147.5 268.2C147.5 270.4 149.5 271.1 151.3 270.6C151 268.7 149.5 267.2 147.5 268.2M147.5 268.2C145.5 269.2 145.8 271.3 147.1 272.7C148.6 271.6 149.3 269.5 147.5 268.2M148 268C146.7 270.1 148.2 272 150.2 272.5C151 270.6 150.5 268.2 148 268M24 24C100 62 170 122 228 220M133.3 98.9C134.5 102.1 137.8 102 140.2 100.2C138.7 97.7 135.6 96.3 133.3 98.9M133.3 98.9C130.9 101.3 132.5 104.3 135.1 105.6C136.8 103.2 136.6 99.8 133.3 98.9M144.9 112.4C145.9 115.6 149.2 115.7 151.6 114C150.2 111.5 147.2 110 144.9 112.4M144.9 112.4C142.5 114.7 143.9 117.7 146.4 119.1C148.1 116.8 148.1 113.5 144.9 112.4M154.6 120.1C155.5 123.3 158.7 123.4 161.1 121.8C159.8 119.3 156.9 117.9 154.6 120.1M154.6 120.1C152.2 122.3 153.5 125.3 155.9 126.7C157.6 124.4 157.7 121.2 154.6 120.1M160.9 129.3C161.7 132.3 164.8 132.5 167.1 131C165.9 128.6 163.2 127.1 160.9 129.3M160.9 129.3C158.5 131.3 159.7 134.2 162 135.7C163.7 133.5 163.9 130.4 160.9 129.3M168.8 135.8C169.5 138.9 172.5 139.1 174.8 137.7C173.7 135.3 171.1 133.8 168.8 135.8M168.8 135.8C166.4 137.8 167.5 140.7 169.8 142.1C171.5 140 171.6 137 168.8 135.8M173.9 144.2C174.6 147.1 177.5 147.4 179.8 146.1C178.7 143.7 176.2 142.2 173.9 144.2M173.9 144.2C171.5 146.1 172.6 148.8 174.7 150.3C176.4 148.3 176.7 145.3 173.9 144.2M180.9 150.4C181.5 153.3 184.4 153.6 186.6 152.4C185.6 150.1 183.2 148.6 180.9 150.4M180.9 150.4C178.6 152.2 179.6 155 181.6 156.4C183.3 154.5 183.6 151.6 180.9 150.4M185.4 158.4C185.9 161.2 188.7 161.6 190.9 160.4C190 158.1 187.6 156.6 185.4 158.4M185.4 158.4C183.1 160.1 184 162.8 186 164.2C187.7 162.4 188 159.6 185.4 158.4M191.8 164.5C192.3 167.3 195 167.7 197.1 166.6C196.3 164.3 194 162.8 191.8 164.5M191.8 164.5C189.6 166.2 190.4 168.8 192.3 170.2C194 168.5 194.3 165.8 191.8 164.5M195.9 172.3C196.3 174.9 198.9 175.4 201 174.3C200.2 172.2 198 170.7 195.9 172.3M195.9 172.3C193.7 173.8 194.5 176.4 196.3 177.8C197.9 176.1 198.3 173.5 195.9 172.3M201.9 178.4C202.3 181 204.8 181.5 206.8 180.5C206.1 178.4 204 176.9 201.9 178.4M201.9 178.4C199.7 179.9 200.4 182.4 202.2 183.8C203.8 182.2 204.2 179.6 201.9 178.4M205.6 186C206 188.5 208.4 189 210.4 188.1C209.7 186 207.7 184.5 205.6 186M205.6 186C203.5 187.4 204.2 189.8 205.9 191.2C207.4 189.7 207.9 187.2 205.6 186M211.3 192.2C211.6 194.6 213.9 195.1 215.8 194.3C215.2 192.3 213.3 190.8 211.3 192.2M211.3 192.2C209.2 193.5 209.8 195.8 211.4 197.2C213 195.8 213.4 193.4 211.3 192.2M214.8 199.7C215 202.1 217.3 202.6 219.2 201.8C218.6 199.8 216.7 198.4 214.8 199.7M214.8 199.7C212.8 200.9 213.3 203.2 214.8 204.5C216.4 203.2 216.8 200.9 214.8 199.7M220.1 206C220.3 208.2 222.5 208.7 224.3 208C223.8 206.1 222 204.7 220.1 206M220.1 206C218.1 207.1 218.6 209.3 220.1 210.6C221.6 209.3 222.1 207.1 220.1 206M223.4 213.4C223.6 215.6 225.7 216.1 227.4 215.4C226.9 213.6 225.3 212.2 223.4 213.4M223.4 213.4C221.5 214.5 221.9 216.6 223.4 217.9C224.8 216.7 225.3 214.5 223.4 213.4M228.4 219.7C228.6 221.9 230.6 222.4 232.3 221.7C231.9 220 230.2 218.6 228.4 219.7M228.4 219.7C226.6 220.8 227 222.8 228.3 224.1C229.7 222.9 230.2 220.9 228.4 219.7M228 220C226.9 222.1 228.5 223.8 230.5 224.2C231.1 222.2 230.4 220 228 220M24 24C120 36 200 50 288 64M172 44.5C174.5 46.4 177 44.6 177.9 42C175.4 40.9 172.4 41.4 172 44.5M172 44.5C171.4 47.6 174.1 49.1 176.8 48.7C176.8 46 175 43.5 172 44.5M189.7 48.9C192.1 50.7 194.5 48.9 195.4 46.5C193 45.3 190.1 45.9 189.7 48.9M189.7 48.9C189.1 51.9 191.7 53.3 194.3 53C194.3 50.3 192.5 47.9 189.7 48.9M202.1 49.4C204.4 51.1 206.8 49.5 207.6 47.1C205.3 46 202.5 46.5 202.1 49.4M202.1 49.4C201.5 52.3 204.1 53.7 206.6 53.3C206.6 50.8 204.9 48.5 202.1 49.4M212.5 52.5C214.8 54.2 217.1 52.6 217.9 50.3C215.7 49.2 212.9 49.7 212.5 52.5M212.5 52.5C212 55.3 214.5 56.6 216.9 56.3C216.9 53.9 215.2 51.6 212.5 52.5M222.6 52.8C224.8 54.4 227 52.8 227.7 50.6C225.6 49.6 222.9 50.1 222.6 52.8M222.6 52.8C222.1 55.4 224.4 56.7 226.8 56.4C226.8 54.1 225.2 51.9 222.6 52.8M231.6 55.6C233.7 57.1 235.8 55.6 236.6 53.5C234.5 52.5 232 53 231.6 55.6M231.6 55.6C231.1 58.1 233.4 59.4 235.6 59.1C235.6 56.8 234.1 54.7 231.6 55.6M240.6 55.7C242.6 57.2 244.7 55.8 245.4 53.7C243.4 52.8 240.9 53.2 240.6 55.7M240.6 55.7C240.1 58.2 242.3 59.4 244.5 59.2C244.5 57 243 55 240.6 55.7M248.9 58.3C250.8 59.8 252.8 58.4 253.5 56.4C251.6 55.5 249.2 55.9 248.9 58.3M248.9 58.3C248.4 60.7 250.5 61.9 252.6 61.6C252.6 59.5 251.2 57.6 248.9 58.3M257.2 58.5C259.1 59.9 261 58.5 261.6 56.6C259.8 55.8 257.6 56.2 257.2 58.5M257.2 58.5C256.8 60.8 258.8 61.9 260.8 61.6C260.8 59.6 259.5 57.8 257.2 58.5M265 60.9C266.8 62.2 268.6 60.9 269.2 59.1C267.5 58.3 265.3 58.7 265 60.9M265 60.9C264.6 63.1 266.6 64.1 268.5 63.9C268.5 62 267.2 60.2 265 60.9M273 61.1C274.7 62.3 276.4 61.1 277 59.4C275.3 58.6 273.3 58.9 273 61.1M273 61.1C272.6 63.2 274.4 64.2 276.3 63.9C276.3 62.1 275 60.4 273 61.1M280.4 63.3C282.1 64.5 283.7 63.3 284.3 61.7C282.7 60.9 280.7 61.3 280.4 63.3M280.4 63.3C280.1 65.3 281.8 66.3 283.6 66C283.6 64.3 282.4 62.7 280.4 63.3M288.1 63.5C289.6 64.7 291.2 63.6 291.7 62C290.2 61.3 288.3 61.6 288.1 63.5M288.1 63.5C287.7 65.4 289.4 66.3 291.1 66.1C291.1 64.5 289.9 62.9 288.1 63.5M288 64C288.8 66 291 65.9 292.4 64.7C291.4 63.1 289.4 62.3 288 64M24 24C38.1 37.6 68.7 56 87.9 65.3C72.1 50.1 42.6 29.8 24 24M24 24C29.6 41.1 49.4 67.6 64.1 81.5C55.1 64 37.3 36.3 24 24M24 24C36.7 43.2 68 71.7 88.7 86.5C73.2 66.3 43.7 36 24 24M24 24Q49.9 49 70.6 69M24 24C6 0 -8 18 14 28C2 46 18 58 24 24M24 24C50 6 60 22 34 30C46 48 30 54 24 24M24 24Q14 54 4 76M24 24Q44 50 40 84M20.6 24a3.4 3.4 0 1 0 6.8 0a3.4 3.4 0 1 0 -6.8 0'/%3E%3C/svg%3E");
  --orn-sprig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' fill='none' stroke='black' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M80 26C102 24 126 20 154 12M113.2 21C115.1 21.6 116.2 20 116.2 18.4C114.5 18.2 112.8 19.1 113.2 21M113.2 21C113.5 23 115.4 23.3 116.9 22.5C116.3 20.9 114.8 19.9 113.2 21M120.2 20.7C122 21.2 123.1 19.7 123 18C121.4 17.9 119.8 18.8 120.2 20.7M120.2 20.7C120.5 22.5 122.4 22.8 123.8 22C123.2 20.5 121.7 19.5 120.2 20.7M124.8 18.8C126.5 19.3 127.5 17.8 127.5 16.3C125.9 16.1 124.4 17.1 124.8 18.8M124.8 18.8C125.1 20.6 126.9 20.8 128.3 20.1C127.7 18.6 126.2 17.7 124.8 18.8M129.2 18.7C130.9 19.2 131.8 17.8 131.7 16.3C130.2 16.2 128.8 17.1 129.2 18.7M129.2 18.7C129.5 20.4 131.2 20.7 132.5 19.9C132 18.5 130.5 17.6 129.2 18.7M133 17C134.6 17.4 135.4 16.1 135.4 14.6C133.9 14.6 132.6 15.4 133 17M133 17C133.3 18.7 134.9 18.8 136.2 18.1C135.6 16.8 134.2 16 133 17M136.9 16.9C138.4 17.3 139.3 16 139.2 14.6C137.8 14.5 136.5 15.4 136.9 16.9M136.9 16.9C137.2 18.5 138.8 18.6 140 17.9C139.4 16.7 138.1 15.9 136.9 16.9M140.3 15.3C141.8 15.6 142.6 14.4 142.5 13.1C141.2 13 139.9 13.8 140.3 15.3M140.3 15.3C140.7 16.8 142.1 16.9 143.3 16.2C142.7 15 141.5 14.3 140.3 15.3M144 15.1C145.4 15.4 146.1 14.2 146 13C144.8 12.9 143.6 13.7 144 15.1M144 15.1C144.3 16.5 145.8 16.6 146.8 16C146.3 14.8 145.1 14.1 144 15.1M147.3 13.5C148.6 13.8 149.3 12.7 149.2 11.5C148 11.5 146.9 12.2 147.3 13.5M147.3 13.5C147.6 14.8 148.9 14.9 149.9 14.3C149.4 13.3 148.3 12.6 147.3 13.5M150.8 13.2C152 13.5 152.7 12.4 152.6 11.3C151.5 11.3 150.4 12 150.8 13.2M150.8 13.2C151.1 14.5 152.4 14.6 153.3 14C152.8 13 151.7 12.4 150.8 13.2M153.9 11.7C155.1 12 155.7 10.9 155.6 9.9C154.5 9.9 153.6 10.6 153.9 11.7M153.9 11.7C154.2 12.9 155.4 13 156.3 12.4C155.9 11.5 154.8 10.9 153.9 11.7M154 12C155 12.9 156.2 12.3 156.7 11.2C155.7 10.6 154.3 10.7 154 12M80 26C58 24 34 20 6 12M46.6 22C45.1 20.8 43.5 21.9 42.9 23.5C44.4 24.2 46.3 23.9 46.6 22M46.6 22C47 20.1 45.3 19.1 43.7 19.3C43.7 21 44.8 22.6 46.6 22M40 19.8C38.5 18.6 36.9 19.6 36.4 21.1C37.8 21.9 39.6 21.6 40 19.8M40 19.8C40.4 17.9 38.8 17 37.2 17.1C37.1 18.8 38.2 20.3 40 19.8M35 19.7C33.6 18.5 32.1 19.5 31.6 21C32.9 21.7 34.7 21.5 35 19.7M35 19.7C35.4 17.9 33.9 17 32.4 17.1C32.3 18.7 33.3 20.2 35 19.7M31 17.9C29.6 16.8 28.2 17.7 27.6 19.1C28.9 19.8 30.6 19.6 31 17.9M31 17.9C31.4 16.2 29.9 15.3 28.5 15.4C28.4 16.9 29.3 18.4 31 17.9M26.9 17.8C25.6 16.8 24.2 17.6 23.6 18.9C24.9 19.6 26.5 19.5 26.9 17.8M26.9 17.8C27.3 16.2 25.9 15.3 24.5 15.4C24.4 16.9 25.2 18.2 26.9 17.8M23.3 16.2C22.1 15.1 20.7 15.9 20.2 17.2C21.4 17.9 22.9 17.7 23.3 16.2M23.3 16.2C23.7 14.6 22.4 13.8 21 13.9C20.9 15.2 21.7 16.5 23.3 16.2M19.5 16C18.4 15 17.1 15.8 16.6 17C17.7 17.6 19.2 17.5 19.5 16M19.5 16C19.9 14.6 18.7 13.7 17.4 13.8C17.2 15.1 18 16.4 19.5 16M16.2 14.4C15.1 13.5 13.9 14.2 13.4 15.3C14.4 15.9 15.8 15.8 16.2 14.4M16.2 14.4C16.6 13 15.4 12.2 14.1 12.3C14 13.5 14.8 14.7 16.2 14.4M12.6 14.2C11.6 13.3 10.4 13.9 9.9 15C10.9 15.6 12.2 15.5 12.6 14.2M12.6 14.2C13 12.9 11.8 12.1 10.7 12.1C10.6 13.3 11.2 14.5 12.6 14.2M9.4 12.6C8.4 11.8 7.3 12.4 6.9 13.4C7.8 14 9.1 13.9 9.4 12.6M9.4 12.6C9.8 11.4 8.7 10.7 7.6 10.7C7.5 11.8 8.1 12.9 9.4 12.6M5.9 12.3C5 11.5 4 12 3.5 13C4.4 13.5 5.6 13.5 5.9 12.3M5.9 12.3C6.3 11.1 5.3 10.4 4.3 10.4C4.1 11.5 4.7 12.5 5.9 12.3M6 12C5.7 10.7 4.3 10.6 3.3 11.2C3.8 12.3 5 12.9 6 12M80 26C70 14 62 22 74 28M80 26C90 14 98 22 86 28M80 26L74 37M80 26L86 37M78.2 26a1.8 1.8 0 1 0 3.6 0a1.8 1.8 0 1 0 -3.6 0'/%3E%3C/svg%3E");
}

html[data-theme="eucalipto"] {
  --font-names: var(--font-body);
  --font-title: var(--font-body);
  --font-amp: var(--font-body);
  --names-size: clamp(1.85rem, 8.5vw, 4.6rem);
  --names-weight: 500;
  --names-transform: uppercase;
  --names-spacing: .12em;
  --title-size: clamp(1.5rem, 4.5vw, 1.95rem);
  --title-weight: 500;
  --title-transform: uppercase;
  --title-spacing: .22em;
  --brand-size: 1.15rem;
  --footer-names-size: clamp(1.4rem, 4.5vw, 1.9rem);
  --space-section: clamp(4.5rem, 11vw, 8rem);
  --radius-sm: 2px;
  --radius: 2px;
  --radius-lg: 4px;
  --radius-btn: 0;
  --shadow: none;
  --shadow-lg: 0 24px 60px -28px rgb(30 45 36 / .35);
  --card-stitch: 0 solid transparent;
  --btn-stitch: 0 solid transparent;

  --bg: #fbfcfa;
  --bg-alt: #f2f6f1;
  --surface: #ffffff;
  --surface-2: #ffffff;
  --input-bg: #ffffff;
  --text: #2c3830;
  --muted: #55655a;
  --heading: #33503f;
  --link: #3d6150;
  --primary: #44665a;
  --primary-hover: #34514a;
  --on-primary: #ffffff;
  --primary-soft: #e6efe9;
  --accent: #8aa896;
  --accent-strong: #496a58;
  --accent-soft: #e8f0ea;
  --border: #dfe7e0;
  --border-strong: #778c7f;
  --stitch: #c7d5ca;
  --orn: #86a391;
  --focus: #9a4b2a;
  --names-color: var(--text);
  --amp-color: #5e7e6b;
  --seal: #5e7e6b;
  --seal-ink: #f4f8f5;
  --hero-glow: rgb(255 255 255 / .95);
  --footer-bg: #f2f6f1;
  --toast-bg: #26332b;

  --tex-bg: none;
  --tex-alt: none;
  --tex-surface: none;
  --orn-spray: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320' fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 24C90 30 190 100 280 210M21.8 26.7L23.3 24.1M23.3 24.1A15.3 13.1 -60 1 0 38.5 -2.4A15.3 13.1 -60 1 0 23.3 24.1L30.5 11.5M21.8 26.7L22.3 29.6M22.3 29.6A14.5 12.5 80 1 0 27.4 58.2A14.5 12.5 80 1 0 22.3 29.6L24.7 43.2M51.5 34L53 31.4M53 31.4A14.3 12.3 -60.6 1 0 67.1 6.4A14.3 12.3 -60.6 1 0 53 31.4L59.7 19.5M51.5 34L51.3 37M51.3 37A13.6 11.7 95.4 1 0 48.7 64A13.6 11.7 95.4 1 0 51.3 37L50.1 49.8M81.7 45.4L83.8 43.2M83.8 43.2A13.3 11.5 -46.1 1 0 102.3 24A13.3 11.5 -46.1 1 0 83.8 43.2L92.6 34.1M81.7 45.4L81.5 48.4M81.5 48.4A12.7 10.9 93.9 1 0 79.8 73.7A12.7 10.9 93.9 1 0 81.5 48.4L80.7 60.4M112.2 60.8L114.2 58.5M114.2 58.5A12.4 10.6 -48.5 1 0 130.6 40A12.4 10.6 -48.5 1 0 114.2 58.5L122 49.7M112.2 60.8L111.3 63.6M111.3 63.6A11.8 10.1 107.5 1 0 104.3 86.1A11.8 10.1 107.5 1 0 111.3 63.6L108 74.3M142.8 79.9L145.3 78.2M145.3 78.2A11.4 9.8 -35.6 1 0 163.8 64.9A11.4 9.8 -35.6 1 0 145.3 78.2L154.1 71.9M142.8 79.9L142.1 82.8M142.1 82.8A10.8 9.3 104.4 1 0 136.7 103.8A10.8 9.3 104.4 1 0 142.1 82.8L139.5 92.8M173.5 102.7L175.8 100.8M175.8 100.8A10.4 9 -39.3 1 0 191.9 87.5A10.4 9 -39.3 1 0 175.8 100.8L183.5 94.5M173.5 102.7L172.1 105.4M172.1 105.4A9.9 8.5 116.7 1 0 163.2 123.1A9.9 8.5 116.7 1 0 172.1 105.4L167.9 113.8M203.9 128.8L206.6 127.4M206.6 127.4A9.5 8.1 -27.5 1 0 223.4 118.7A9.5 8.1 -27.5 1 0 206.6 127.4L214.5 123.3M203.9 128.8L202.7 131.6M202.7 131.6A9 7.7 112.5 1 0 195.9 148.2A9 7.7 112.5 1 0 202.7 131.6L199.5 139.5M234 158.2L236.6 156.6M236.6 156.6A8.5 7.3 -32 1 0 251 147.6A8.5 7.3 -32 1 0 236.6 156.6L243.4 152.3M234 158.2L232.4 160.7M232.4 160.7A8.1 7 124 1 0 223.3 174.1A8.1 7 124 1 0 232.4 160.7L228.1 167.1M263.7 190.6L266.5 189.6M266.5 189.6A7.5 6.5 -20.9 1 0 280.6 184.2A7.5 6.5 -20.9 1 0 266.5 189.6L273.2 187M263.7 190.6L262.2 193.3M262.2 193.3A7.2 6.2 119.1 1 0 255.3 205.8A7.2 6.2 119.1 1 0 262.2 193.3L258.9 199.2M280 210L281.3 211.5M281.3 211.5A6 5.2 50.7 1 0 288.9 220.8A6 5.2 50.7 1 0 281.3 211.5L284.9 216M20 0C36 80 70 160 130 250M25.3 24L28.3 24.4M28.3 24.4A12.3 10.6 8.2 1 0 52.7 27.9A12.3 10.6 8.2 1 0 28.3 24.4L39.9 26.1M25.3 24L22.9 25.8M22.9 25.8A11.7 10 144.2 1 0 4 39.4A11.7 10 144.2 1 0 22.9 25.8L13.9 32.3M34.5 56.9L37.5 56.8M37.5 56.8A11.3 9.8 -3.2 1 0 60.1 55.5A11.3 9.8 -3.2 1 0 37.5 56.8L48.2 56.2M34.5 56.9L31.9 58.5M31.9 58.5A10.8 9.3 148.8 1 0 13.5 69.7A10.8 9.3 148.8 1 0 31.9 58.5L23.2 63.8M45.9 90.1L48.9 90.2M48.9 90.2A10.4 8.9 1.4 1 0 69.6 90.7A10.4 8.9 1.4 1 0 48.9 90.2L58.7 90.4M45.9 90.1L43.7 92.2M43.7 92.2A9.9 8.5 137.4 1 0 29.1 105.5A9.9 8.5 137.4 1 0 43.7 92.2L36.8 98.5M59.6 123.7L62.5 123.2M62.5 123.2A9.4 8.1 -9.8 1 0 81.1 120A9.4 8.1 -9.8 1 0 62.5 123.2L71.4 121.7M59.6 123.7L57.2 125.6M57.2 125.6A9 7.7 142.2 1 0 43.1 136.5A9 7.7 142.2 1 0 57.2 125.6L50.5 130.8M75.8 157.9L78.8 157.7M78.8 157.7A8.5 7.3 -4.9 1 0 95.7 156.2A8.5 7.3 -4.9 1 0 78.8 157.7L86.8 157M75.8 157.9L73.8 160.2M73.8 160.2A8 6.9 131.1 1 0 63.2 172.3A8 6.9 131.1 1 0 73.8 160.2L68.8 165.9M94.6 192.8L97.5 192M97.5 192A7.5 6.5 -15.7 1 0 111.9 187.9A7.5 6.5 -15.7 1 0 97.5 192L104.3 190.1M94.6 192.8L92.4 194.9M92.4 194.9A7.1 6.1 136.3 1 0 82.1 204.7A7.1 6.1 136.3 1 0 92.4 194.9L87.5 199.6M116.1 228.6L119 228.1M119 228.1A6.6 5.6 -10.3 1 0 132 225.7A6.6 5.6 -10.3 1 0 119 228.1L125.2 226.9M116.1 228.6L114.3 231M114.3 231A6.2 5.4 125.7 1 0 107.1 241.1A6.2 5.4 125.7 1 0 114.3 231L110.9 235.8M130 250L131.1 251.7M131.1 251.7A5 4.3 56.3 1 0 136.7 260A5 4.3 56.3 1 0 131.1 251.7L133.7 255.6M8 8C70 60 120 110 152 152M98.4 91L105.4 90.5M105.4 90.2a3 3 0 1 0 6 0a3 3 0 1 0 -6 0M108.7 101.7L107.9 108.6M104.6 111.6a3 3 0 1 0 6 0a3 3 0 1 0 -6 0M118.5 112.2L125.5 111.9M125.5 111.8a3 3 0 1 0 6 0a3 3 0 1 0 -6 0M127.7 122.5L126.7 129.4M123.2 132.4a3 3 0 1 0 6 0a3 3 0 1 0 -6 0M136.4 132.6L143.4 132.6M143.4 132.6a3 3 0 1 0 6 0a3 3 0 1 0 -6 0M144.5 142.4L143.1 149.3M139.6 152.2a3 3 0 1 0 6 0a3 3 0 1 0 -6 0M152 152L159 152.3M159 152.5a3 3 0 1 0 6 0a3 3 0 1 0 -6 0'/%3E%3C/svg%3E");
  --orn-sprig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' fill='none' stroke='black' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 22H142M77.8 22a2.2 2.2 0 1 0 4.4 0a2.2 2.2 0 1 0 -4.4 0M93 22L94.1 19.8M94.1 19.8A6.3 5.4 -64 1 0 99.6 8.5A6.3 5.4 -64 1 0 94.1 19.8L96.7 14.4M93 22L94.1 24.2M94.1 24.2A6.3 5.4 64 1 0 99.6 35.5A6.3 5.4 64 1 0 94.1 24.2L96.7 29.6M116.2 22L117.3 19.8M117.3 19.8A5.2 4.4 -64 1 0 121.8 10.5A5.2 4.4 -64 1 0 117.3 19.8L119.5 15.3M116.2 22L117.3 24.2M117.3 24.2A5.2 4.4 64 1 0 121.8 33.5A5.2 4.4 64 1 0 117.3 24.2L119.5 28.7M137.2 22L138.3 19.8M138.3 19.8A4.1 3.5 -64 1 0 141.9 12.5A4.1 3.5 -64 1 0 138.3 19.8L140 16.3M137.2 22L138.3 24.2M138.3 24.2A4.1 3.5 64 1 0 141.9 31.5A4.1 3.5 64 1 0 138.3 24.2L140 27.7M67 22L65.9 19.8M65.9 19.8A6.3 5.4 244 1 0 60.4 8.5A6.3 5.4 244 1 0 65.9 19.8L63.3 14.4M67 22L65.9 24.2M65.9 24.2A6.3 5.4 116 1 0 60.4 35.5A6.3 5.4 116 1 0 65.9 24.2L63.3 29.6M43.8 22L42.7 19.8M42.7 19.8A5.2 4.4 244 1 0 38.2 10.5A5.2 4.4 244 1 0 42.7 19.8L40.5 15.3M43.8 22L42.7 24.2M42.7 24.2A5.2 4.4 116 1 0 38.2 33.5A5.2 4.4 116 1 0 42.7 24.2L40.5 28.7M22.8 22L21.7 19.8M21.7 19.8A4.1 3.5 244 1 0 18.1 12.5A4.1 3.5 244 1 0 21.7 19.8L20 16.3M22.8 22L21.7 24.2M21.7 24.2A4.1 3.5 116 1 0 18.1 31.5A4.1 3.5 116 1 0 21.7 24.2L20 27.7'/%3E%3C/svg%3E");
}

html[data-theme="vigna"] {
  --font-names: 'Pinyon Script', 'Segoe Script', cursive;
  --font-amp: 'Great Vibes', 'Segoe Script', cursive; /* la & di Pinyon è troppo esile */
  --names-size: clamp(3.1rem, 11vw, 6.1rem);
  --title-size: clamp(2.3rem, 7vw, 3.2rem);
  --radius-sm: 3px;
  --radius: 4px;
  --radius-lg: 6px;
  --radius-btn: 2px;
  --card-stitch: 1px solid rgb(176 141 74 / .55);
  --btn-stitch: 1px solid rgb(230 200 140 / .55);

  --bg: #fbf6ec;
  --bg-alt: #f5e9d9;
  --surface: #fffbf4;
  --surface-2: #fffdf9;
  --input-bg: #fffefb;
  --text: #3c2127;
  --muted: #694a4f;
  --heading: #6b1d2e;
  --link: #7a2236;
  --primary: #6e2235;
  --primary-hover: #561a29;
  --on-primary: #fff8ec;
  --primary-soft: #f4e2e1;
  --accent: #b08d4a;
  --accent-strong: #7b5c21;
  --accent-soft: #f3e6c9;
  --border: #ead9c2;
  --border-strong: #94784f;
  --stitch: #c9a866;
  --orn: #a7864a;
  --focus: #2d6176;
  --names-color: var(--heading);
  --amp-color: #8a6a2a;
  --seal: #6e2235;
  --seal-ink: #f3dfae;
  --hero-glow: rgb(255 246 228 / .9);
  --footer-bg: #4a1a25;
  --footer-text: #f5e9d6;
  --footer-heading: #e6c88c;
  --footer-accent: #e6c88c;
  --toast-bg: #3c1a22;

  --tex-bg: var(--noise);
  --tex-alt: var(--noise), radial-gradient(120% 80% at 50% 120%, rgb(225 170 120 / .18), transparent 70%);
  --tex-surface: none;
  --orn-spray: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M-6 40C80 30 170 70 250 146M24 -6C30 80 60 150 90 230M140.8 106.6L141.2 105L141.6 103.2L142.2 101.3L142.6 98L143 93.5L144 89.7L145.4 86.5L147 80.8L149.2 76.9L151.7 75.4L154.5 72.4L157.6 70.2L160.3 71L162.8 72.6L165.8 72.3L168 74.6L169.1 78.9L171.3 80.4L172.9 82.7L173.4 86.5L174.3 89.3L176.1 90.6L177 92.9L177.3 95.7L180.1 95.9L182.4 96.8L183.8 98.5L186.7 99.3L190.5 99.7L193 101.2L194.6 103.2L199.2 104.1L201.9 106.1L202.2 109L204.6 111.4L206.5 114L205.6 117.2L204.2 120.2L204.8 123L203 125.9L199.1 128.3L198.2 130.8L196.4 133L192.9 134.7L190.5 136.4L189.8 138.5L187.9 140.1L185.3 141.2L186 144L185.9 146.4L184.7 148.3L184.9 151.2L185.7 155L185 157.8L183.6 160L184.1 164.6L183 167.8L180.4 169L178.9 172L176.9 174.7L173.7 174.8L170.3 174.3L167.9 175.9L164.6 175L161.1 172L158.4 171.9L155.8 170.9L153.1 168.1L150.7 166.4L148.5 166.3L146.4 165L144.5 162.9L142.1 164.4L139.8 165.1L137.6 164.5L134.9 165.6L131.5 167.5L128.7 167.7L126.1 167.1L121.9 169L118.5 168.9L116.6 166.8L113.2 166.3L110.1 165.3L109 162.2L108.4 158.9L106.2 157L106 153.7L107.8 149.4L107 146.8L107.2 144L109 140.6L109.9 137.8L109.3 135.7L109.9 133.3L111.3 130.8L109.1 129L107.8 127L107.7 124.7L105.8 122.5L103 119.9L102 117.2L101.9 114.7L99 111.3L98.3 108.2L100.2 105.9L100.3 102.9L101.1 100.2L104.7 98.9L108.8 98.2L111.4 97L115.9 97.4L121.5 99.2L125 99.8L128.7 101.1L132.6 103.3L135.6 104.9L137.4 105.4L139.2 106.1L140.8 106.6ZM142.1 109.2Q157.9 138.8 171 163.6M142.1 109.2Q140.8 138.1 118.9 156.2M142.1 109.2Q166.8 124.2 194.1 116.2M142.1 109.2Q133.2 122.7 109.7 104.4M142.1 109.2Q158.3 109.4 156.2 79.6M124.3 60.8Q140 70 136.9 99.3M84.1 174.8L85 174.3L86 173.7L87.1 173.3L88.7 172.1L90.9 170.4L93 169.4L95.1 168.7L98.3 167.1L100.9 166.5L102.6 167L105.1 167.1L107.4 167.5L108.1 169.1L108.4 170.9L109.7 172.1L109.6 174L108.1 176.3L108.3 177.9L107.9 179.6L106.4 181.3L105.5 182.9L105.6 184.2L105 185.6L103.9 186.8L104.9 188.2L105.5 189.6L105.2 190.9L106.1 192.5L107.4 194.4L107.8 196.1L107.5 197.7L108.9 200.1L109.1 202.1L108 203.5L107.9 205.5L107.5 207.5L105.7 208.3L103.7 208.9L102.7 210.4L100.7 210.7L98 209.9L96.5 210.5L94.8 210.6L92.6 209.7L90.9 209.3L89.6 209.8L88.1 209.6L86.6 208.9L85.6 210.4L84.5 211.3L83.1 211.5L81.9 212.8L80.5 214.7L79 215.5L77.4 215.8L75.5 217.9L73.6 218.7L72 218L70.1 218.5L68.1 218.7L66.7 217.3L65.6 215.6L63.9 215.1L62.9 213.3L62.8 210.5L61.8 209.3L61.2 207.7L61.3 205.3L61.2 203.5L60.3 202.5L60 201L60.2 199.3L58.6 198.9L57.3 198.1L56.7 196.9L55.1 196.1L52.9 195.3L51.6 194.1L50.9 192.7L48.3 191.6L47 190.1L47.1 188.3L46 186.6L45.2 184.8L46.1 183L47.4 181.4L47.3 179.6L48.8 178.2L51.4 177.3L52.2 175.9L53.6 174.8L55.9 174.2L57.5 173.5L58.2 172.4L59.5 171.7L61.2 171.3L61.1 169.6L61.5 168.1L62.5 167.2L62.8 165.4L62.8 163.1L63.5 161.6L64.7 160.5L65 157.8L66.1 156.3L67.9 156.2L69.3 155L70.9 154.3L72.9 155.4L74.9 156.9L76.5 157.6L78.2 159.8L79.6 163L80.7 164.9L81.7 167.1L82.3 169.8L82.8 171.7L83.3 172.8L83.7 173.9L84.1 174.8ZM83.5 176.4Q76.5 195.6 70.7 211.6M83.5 176.4Q69.9 187.6 52.8 185.1M83.5 176.4Q86.7 193.7 101.4 202.7M83.5 176.4Q73.8 177.9 72.5 159.9M83.5 176.4Q90 183.8 102.5 170.8M57.1 141.7L85.8 170M223.4 48.9L223.1 48.2L222.6 47.4L222.3 46.6L221.4 45.4L220.1 43.7L219.3 42.1L218.8 40.5L217.5 38L217.1 36L217.5 34.7L217.5 32.8L217.9 31.1L219.1 30.5L220.4 30.3L221.4 29.3L222.9 29.4L224.6 30.5L225.8 30.4L227.1 30.7L228.4 31.8L229.6 32.5L230.6 32.4L231.7 32.9L232.6 33.8L233.7 33L234.7 32.5L235.8 32.7L237 32.1L238.4 31L239.7 30.8L240.9 30.9L242.8 29.9L244.3 29.7L245.4 30.6L246.9 30.7L248.4 31L249.1 32.4L249.5 33.9L250.6 34.6L250.9 36.2L250.3 38.2L250.7 39.4L250.8 40.7L250.1 42.4L249.8 43.7L250.2 44.6L250.1 45.8L249.5 47L250.6 47.7L251.4 48.6L251.5 49.6L252.5 50.6L253.9 51.6L254.6 52.8L254.8 54L256.4 55.4L257 56.9L256.5 58.1L256.9 59.6L257 61.1L255.9 62.2L254.7 63L254.3 64.3L252.9 65L250.7 65.1L249.8 65.9L248.6 66.4L246.8 66.3L245.4 66.4L244.6 67.1L243.5 67.3L242.2 67.1L241.8 68.4L241.2 69.4L240.3 69.8L239.7 71L239.1 72.7L238.2 73.7L237.1 74.3L236.3 76.2L235.1 77.3L233.8 77.1L232.5 78L231.1 78.6L229.7 77.9L228.5 77L227.1 77L226 75.9L225.3 73.9L224.3 73.2L223.4 72.2L223 70.5L222.5 69.2L221.6 68.7L221 67.7L220.8 66.4L219.5 66.4L218.3 66.1L217.6 65.4L216.3 65.2L214.5 65.2L213.3 64.6L212.5 63.7L210.5 63.5L209.3 62.6L209.2 61.2L208.3 60.2L207.7 59L208.6 57.4L209.8 55.9L210.3 54.7L212 53.4L214.4 52.3L215.9 51.4L217.5 50.7L219.6 50.3L221.1 49.9L221.9 49.5L222.7 49.2L223.4 48.9ZM224.7 49.3Q239.3 54.7 251.5 59.1M224.7 49.3Q233.2 59.7 231.3 72.8M224.7 49.3Q237.9 46.9 244.8 35.6M224.7 49.3Q225.8 56.8 212 57.7M224.7 49.3Q230.3 44.4 220.4 34.8M205.9 108.5Q214 80 219.8 47.6M250 146L250.9 150.3M258.8 154.7a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M245.1 157.6a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M231.3 160.5a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M268.2 164.9a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M254.4 167.8a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M240.7 170.8a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M226.9 173.7a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M263.8 178.1a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M250 181a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M236.3 184a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M266.3 189.8a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M252.5 192.8a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M238.8 195.7a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M261.9 203a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M248.2 205.9a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M257.5 216.2a7.4 7.4 0 1 0 14.8 0a7.4 7.4 0 1 0 -14.8 0M77.3 45.3L80.2 43.8L82.8 41.9L85 39.7L86.7 37.2L87.8 34.4L88.3 31.6L88 28.8L87.1 26.3L85.6 24.2L83.5 22.7L81.2 22L78.8 22L76.7 22.9L75.1 24.5L74.3 26.4L74.4 28.5L75.3 30.2L76.8 31.3L78.5 31.6L80.2 31L81.2 29.8L81.5 28.3L80.9 26.9L79.8 26.2L78.5 26.1L77.5 26.8M41.2 91.2L38.4 91.3L35.6 91.1L33 90.5L30.7 89.4L28.6 88L26.9 86.2L25.7 84.1L25.1 81.9L25 79.7L25.6 77.6L26.8 75.8L28.4 74.5L30.2 73.9L32.1 73.9L33.8 74.6L35 75.8L35.6 77.4L35.5 79L34.8 80.3L33.6 81.2L32.2 81.3L31 80.8L30.2 79.9L30.1 78.7L30.5 77.7L31.4 77.1M90 230L90.5 232.3L90.7 234.6L90.4 236.8L89.7 238.8L88.7 240.7L87.2 242.1L85.5 243.1L83.7 243.6L81.8 243.5L80.1 242.9L78.8 241.7L78 240.2L77.8 238.6L78.3 237.1L79.3 236L80.7 235.4L82.1 235.5L83.2 236.3L83.8 237.4L83.7 238.6L83.1 239.6L82.1 240L81 239.8L80.4 239.1L80.3 238.1L80.7 237.4'/%3E%3C/svg%3E");
  --orn-sprig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 40' fill='none' stroke='black' stroke-width='1.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M80 5L80 6.7M82.6 9.6a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M77.1 9.6a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M71.6 9.6a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M85.4 14.3a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M79.9 14.3a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M74.3 14.3a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M68.8 14.3a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M82.6 19a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M77.1 19a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M71.6 19a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M79.9 23.7a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M74.3 23.7a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M77.1 28.4a2.9 2.9 0 1 0 5.8 0a2.9 2.9 0 1 0 -5.8 0M93.8 12L93.1 11.7L91.5 11.2L89.7 10.2L88.7 8.9L88.6 7.6L89.3 6.5L90.6 6L92 5.8L93.1 5.6L93.6 4.6L94.2 3.4L95.1 2.2L96.3 1.7L97.7 1.7L98.9 2.2L99.8 3.4L100.4 4.6L100.9 5.6L102 5.8L103.4 6L104.8 6.5L105.7 7.5L106.1 8.7L105.9 10.1L105.1 11.3L104.1 12.3L103.3 13.1L103.5 14.2L103.7 15.5L103.7 17L103 18.2L102 18.9L100.7 19.2L99.2 18.8L98 18.1L97 17.7L96 18.1L94.8 18.8L93.4 19.1L92.2 18.7L91.5 17.6L91.5 15.9L92.4 14.1L93.4 12.7L93.8 12ZM94.3 11.9Q99.7 10.1 104.2 8.7M94.3 11.9Q99.1 13 101.5 17.1M94.3 11.9Q97.5 8.2 97 3.4M86 6C110 2 126 20 140 20M140 20L141.1 19.9L142.2 19.6L143.1 19.1L144 18.5L144.7 17.7L145.1 16.9L145.4 16L145.4 15L145.1 14.2L144.6 13.4L144 12.9L143.2 12.7L142.4 12.7L141.7 13L141.2 13.6L141 14.2L141.1 14.9L141.5 15.4L142 15.7L142.6 15.7L143.1 15.5L143.3 15L143.3 14.5L143 14.1L142.6 14L142.2 14.1M66.2 12L66.6 12.7L67.6 14.1L68.5 15.9L68.5 17.6L67.8 18.7L66.6 19.1L65.2 18.8L64 18.1L63 17.7L62 18.1L60.8 18.8L59.3 19.2L58 18.9L57 18.2L56.3 17L56.3 15.5L56.5 14.2L56.7 13.1L55.9 12.3L54.9 11.3L54.1 10.1L53.9 8.7L54.3 7.5L55.2 6.5L56.6 6L58 5.8L59.1 5.6L59.6 4.6L60.2 3.4L61.1 2.2L62.3 1.7L63.7 1.7L64.9 2.2L65.8 3.4L66.4 4.6L66.9 5.6L68 5.8L69.4 6L70.7 6.5L71.4 7.6L71.3 8.9L70.3 10.2L68.5 11.2L66.9 11.7L66.2 12ZM65.7 11.9Q60.3 10.1 55.8 8.7M65.7 11.9Q62.5 8.2 63 3.4M65.7 11.9Q60.9 13 58.5 17.1M74 6C50 2 34 20 20 20M20 20L18.9 19.9L17.8 19.6L16.9 19.1L16 18.5L15.3 17.7L14.9 16.9L14.6 16L14.6 15L14.9 14.2L15.4 13.4L16 12.9L16.8 12.7L17.6 12.7L18.3 13L18.8 13.6L19 14.2L18.9 14.9L18.5 15.4L18 15.7L17.4 15.7L16.9 15.5L16.7 15L16.7 14.5L17 14.1L17.4 14L17.8 14.1'/%3E%3C/svg%3E");
}

/* 3. BASE ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: calc(var(--header-h) + 1rem);
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  padding-top: var(--header-h); /* l'header è fixed: niente salto quando viene inserito via JS */
  background-color: var(--bg);
  background-image: var(--tex-bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1.1875rem;
  font-weight: 500;
  line-height: 1.6;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}

main { flex: 1 0 auto; }
main:focus { outline: none; }

h1, h2, h3, h4 {
  margin: 0 0 .5em;
  font-family: var(--font-body);
  font-weight: 600;
  line-height: 1.15;
  color: var(--heading);
  text-wrap: balance;
}
h1 { font-size: clamp(2.2rem, 6vw, 3rem); }
h2 { font-size: clamp(1.8rem, 4.5vw, 2.4rem); }
h3 { font-size: 1.4rem; }
h4 { font-size: 1.15rem; }

p { margin: 0 0 1em; }
p, li, dd { text-wrap: pretty; }
strong, b { font-weight: 700; }
small { font-size: .9em; }
img, video { max-width: 100%; height: auto; }
hr { height: 1px; margin: 2rem 0; border: 0; background: var(--border); }
ul, ol { padding-left: 1.3em; }

a {
  color: var(--link);
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
  text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
}
a:hover { color: var(--heading); text-decoration-color: currentColor; }

button, input, select, textarea { font: inherit; color: inherit; }
button { -webkit-tap-highlight-color: transparent; }
/* niente zoom da doppio tocco su iOS quando si tocca due volte di fila (es. + e − degli stepper) */
button, .btn, .choice { touch-action: manipulation; }

:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
::selection { background: var(--accent-soft); color: var(--text); }

[hidden], .hidden { display: none !important; }

.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: .75rem;
  left: .75rem;
  z-index: 200;
  padding: .75rem 1.25rem;
  border-radius: var(--radius-sm);
  background: var(--primary);
  color: var(--on-primary);
  font-family: var(--font-label);
  font-size: .85rem;
  font-weight: 600;
  text-decoration: none;
  translate: 0 -200%;
}
.skip-link:focus { translate: 0 0; color: var(--on-primary); }

/* 4. LAYOUT ---------------------------------------------------------------- */
.container, .container-narrow {
  width: 100%;
  max-width: calc(1100px + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.container-narrow { max-width: calc(640px + 2 * var(--gutter)); }

.section { padding-block: var(--space-section); }
.section-alt {
  background-color: var(--bg-alt);
  background-image: var(--tex-alt);
  border-block: 1px solid var(--border);
}

.section-title {
  margin: 0 0 1rem;
  font-family: var(--font-title);
  font-size: var(--title-size);
  font-weight: var(--title-weight);
  text-transform: var(--title-transform);
  letter-spacing: var(--title-spacing);
  line-height: 1.1;
  color: var(--heading);
  text-align: center;
}
.section-title::after {
  content: '';
  display: block;
  width: 128px;
  height: 32px;
  margin: .55rem auto 0;
  background: var(--orn);
  -webkit-mask: var(--orn-sprig) center / contain no-repeat;
  mask: var(--orn-sprig) center / contain no-repeat;
}
.section-intro {
  max-width: 36rem;
  margin: 0 auto 2.5rem;
  color: var(--muted);
  font-size: 1.25rem;
  font-style: italic;
  text-align: center;
}
.lead { font-size: 1.3rem; line-height: 1.5; }

.ornament {
  position: relative;
  height: 34px;
  max-width: 340px;
  margin-inline: auto;
  color: var(--orn);
}
.ornament::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 120px;
  translate: -50% 0;
  background: currentColor;
  -webkit-mask: var(--orn-sprig) center / contain no-repeat;
  mask: var(--orn-sprig) center / contain no-repeat;
}
.ornament::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, currentColor 16%, currentColor 30%, transparent 32%, transparent 68%, currentColor 70%, currentColor 84%, transparent);
  opacity: .7;
}

.card {
  position: relative;
  min-width: 0;
  padding: clamp(1.4rem, 4vw, 2rem);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background-color: var(--surface);
  background-image: var(--tex-surface);
  box-shadow: var(--shadow);
}
.card::before {
  content: '';
  position: absolute;
  inset: 7px;
  border: var(--card-stitch);
  border-radius: max(0px, calc(var(--radius) - 5px));
  pointer-events: none;
}
.card > :last-child { margin-bottom: 0; }
.card-title { margin: 0 0 .6rem; font-size: 1.5rem; }

.grid-2, .grid-3 {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1rem, 3vw, 1.75rem);
}
@media (min-width: 720px) {
  .grid-2, .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1000px) {
  .grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.stack > * { margin-block: 0; }
.stack > * + * { margin-top: var(--stack-gap, 1rem); }
.row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.center { text-align: center; }
.center > .row, .row.center { justify-content: center; }
.muted { color: var(--muted); }
.small { font-size: .95rem; }

/* 5. HEADER E FOOTER ------------------------------------------------------- */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  -webkit-backdrop-filter: saturate(1.2) blur(10px);
  backdrop-filter: saturate(1.2) blur(10px);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  height: var(--header-h);
}
.brand {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-family: var(--font-names);
  font-size: var(--brand-size);
  text-transform: var(--names-transform);
  letter-spacing: var(--names-spacing);
  line-height: 1;
  color: var(--heading);
  text-decoration: none;
  white-space: nowrap;
  padding: .4rem 0;
}
.brand:hover { color: var(--primary); }
/* telefono in orizzontale: l'header fisso coprirebbe un terzo dello schermo (di più con la tastiera aperta) */
@media (max-height: 500px) and (orientation: landscape) {
  html { scroll-padding-top: 1rem; }
  .site-header { position: absolute; }
}

.nav-toggle {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-right: -10px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--text);
  cursor: pointer;
}
.nav-toggle-bar, .nav-toggle-bar::before, .nav-toggle-bar::after {
  display: block;
  width: 22px;
  height: 1.5px;
  border-radius: 2px;
  background: currentColor;
  transition: transform .25s ease, background-color .2s;
}
.nav-toggle-bar { position: relative; }
.nav-toggle-bar::before, .nav-toggle-bar::after { content: ''; position: absolute; left: 0; }
.nav-toggle-bar::before { top: -7px; }
.nav-toggle-bar::after { top: 7px; }
.nav-open .nav-toggle-bar { background: transparent; }
.nav-open .nav-toggle-bar::before { transform: translateY(7px) rotate(45deg); }
.nav-open .nav-toggle-bar::after { transform: translateY(-7px) rotate(-45deg); }

.site-nav {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  max-height: calc(100dvh - var(--header-h));
  overflow-y: auto;
  padding: .5rem 0 1.25rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface-2);
  box-shadow: var(--shadow-lg);
}
.nav-open .site-nav { display: block; }
.site-nav a, .site-nav .nav-logout {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 48px;
  padding: 0 var(--gutter);
  border: 0;
  background: none;
  color: var(--text);
  font-family: var(--font-label);
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: color .3s, background-color .3s, box-shadow .3s;
}
.site-nav a:hover, .site-nav .nav-logout:hover { color: var(--primary); background: var(--primary-soft); }
.site-nav a.is-active { color: var(--heading); box-shadow: inset 3px 0 0 var(--accent); }
.nav-indicator { display: none; }
.site-nav :focus-visible { outline-offset: -3px; }
.site-nav .nav-login {
  justify-content: center;
  width: auto;
  margin: .75rem var(--gutter) 0;
  border: 1.5px solid var(--primary);
  border-radius: var(--radius-btn);
  color: var(--link);
}

@media (min-width: 960px) {
  .nav-toggle { display: none; }
  .site-nav {
    display: flex;
    align-items: center;
    gap: .15rem;
    position: relative;
    top: auto; /* annulla il top: 100% del menu mobile, che con relative spostava la barra sotto l'header */
    max-height: none;
    overflow: visible;
    padding: 0;
    border: 0;
    background: none;
    box-shadow: none;
  }
  .nav-open .site-nav { display: flex; } /* menu mobile lasciato aperto e finestra allargata */
  .site-nav a, .site-nav .nav-logout {
    width: auto;
    min-height: 44px;
    padding: 0 .7rem;
    font-size: .74rem;
  }
  .site-nav a:hover, .site-nav .nav-logout:hover { background: none; }
  .site-nav a.is-active { box-shadow: none; }
  /* linea che scorre sotto la voce attiva (posizionata da app.js) */
  .nav-indicator {
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 2px;
    border-radius: 2px;
    background: var(--accent);
    pointer-events: none;
  }
  .nav-indicator.ready { transition: transform .45s cubic-bezier(.65, 0, .35, 1), width .45s cubic-bezier(.65, 0, .35, 1), opacity .3s; }
  .site-nav .nav-login { margin: 0 0 0 .6rem; padding: 0 1.1rem; min-height: 40px; }
  .site-nav .nav-login:hover { background: var(--primary-soft); }
}

.site-footer {
  margin-top: auto;
  padding: 3rem 0 calc(2.75rem + env(safe-area-inset-bottom));
  border-top: 1px solid var(--border);
  background-color: var(--footer-bg);
  background-image: var(--tex-alt);
  color: var(--footer-text);
  text-align: center;
}
.site-footer .ornament { margin-bottom: 1rem; }
.footer-names {
  margin: 0 0 .35rem;
  font-family: var(--font-names);
  font-size: var(--footer-names-size);
  text-transform: var(--names-transform);
  letter-spacing: var(--names-spacing);
  line-height: 1.15;
  color: var(--footer-heading);
}
.footer-date {
  margin: 0 0 .5rem;
  font-family: var(--font-label);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.footer-hashtag { margin: 0; font-style: italic; font-size: 1.15rem; color: var(--footer-accent); }

/* 6. COMPONENTI ------------------------------------------------------------ */

/* Pulsanti */
.btn {
  --btn-bg: transparent;
  --btn-fg: var(--link);
  --btn-bd: transparent;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6em;
  min-height: 48px;
  padding: .7rem 1.6rem;
  border: 1.5px solid var(--btn-bd);
  border-radius: var(--radius-btn);
  background: var(--btn-bg);
  color: var(--btn-fg);
  font-family: var(--font-label);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s, transform .15s;
}
.btn:hover { color: var(--btn-fg); }
.btn:active { transform: translateY(1px); }
.btn-primary {
  --btn-bg: var(--primary);
  --btn-fg: var(--on-primary);
  --btn-bd: var(--primary);
  box-shadow: 0 8px 18px -10px var(--primary);
}
.btn-primary:hover { --btn-bg: var(--primary-hover); --btn-bd: var(--primary-hover); }
.btn-primary::after, .btn-danger::after {
  content: '';
  position: absolute;
  inset: 3px;
  border: var(--btn-stitch);
  border-radius: inherit;
  pointer-events: none;
}
.btn-secondary {
  --btn-bg: color-mix(in srgb, var(--surface-2) 75%, transparent);
  --btn-bd: var(--primary);
}
/* solo con un vero puntatore: sui telefoni l'hover resta "incollato" dopo il tocco */
@media (hover: hover) {
  .btn-secondary:hover, .btn-ghost:hover { --btn-bg: var(--primary-soft); }
}
.btn-ghost { padding-inline: 1rem; }
.btn-danger { --btn-bg: var(--error); --btn-fg: #fff; --btn-bd: var(--error); }
.btn-danger:hover { filter: brightness(.9); }
.btn-sm { min-height: 44px; padding: .45rem 1rem; font-size: .72rem; letter-spacing: .1em; }
.btn-block { display: flex; width: 100%; }
@media (max-width: 400px) {
  .btn { padding-inline: 1.1rem; letter-spacing: .1em; }
}
.btn[disabled], .btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; box-shadow: none; transform: none; }
.btn[aria-busy="true"] { cursor: progress; pointer-events: none; }
.btn[aria-busy="true"]::before {
  content: '';
  flex: none;
  width: 1.1em;
  height: 1.1em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: spin .75s linear infinite;
}
/* mouse/trackpad: in back office i pulsanti piccoli possono essere più compatti */
@media (pointer: fine) {
  .btn-sm { min-height: 36px; }
}

.link-btn {
  display: inline;
  padding: 0;
  border: 0;
  background: none;
  color: var(--link);
  font: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
  text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
  cursor: pointer;
}
.link-btn:hover { color: var(--heading); text-decoration-color: currentColor; }

.icon-btn {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 50%;
  background: transparent;
  color: var(--text);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
}
.icon-btn:hover { background: var(--primary-soft); color: var(--heading); }
.icon-btn svg { width: 1.25rem; height: 1.25rem; }

/* Form */
/* minmax(0, 1fr): una parola lunga (es. un'email) non allarga il modulo oltre il contenitore */
.form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.15rem; }
/* align-content: start: in una .field-row i campi hanno la stessa altezza, ma le righe interne non devono allungarsi */
.field { display: grid; gap: .4rem; min-width: 0; align-content: start; }
.field > label, legend {
  font-family: var(--font-label);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text);
}
fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
legend { padding: 0; margin-bottom: .65rem; }

input:not([type="checkbox"], [type="radio"], [type="file"], [type="range"], [type="color"]), select, textarea {
  width: 100%;
  min-height: 48px;
  padding: .55rem .85rem;
  border: 1.5px solid var(--input-border);
  border-radius: var(--radius-sm);
  background-color: var(--input-bg);
  color: var(--text);
  font-size: 1.15rem;
  line-height: 1.3;
  transition: border-color .15s, box-shadow .15s;
}
input:focus-visible, select:focus-visible, textarea:focus-visible { border-color: var(--primary); }
textarea { min-height: 7.5rem; resize: vertical; }
input[type="search"] { -webkit-appearance: none; appearance: none; }
select {
  appearance: none;
  padding-right: 2.6rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position: calc(100% - 1.2rem) 55%, calc(100% - .85rem) 55%;
  background-size: .38rem .38rem;
  background-repeat: no-repeat;
}
/* Lista aperta: Firefox e Safari la disegnano da sé ma rispettano i colori delle opzioni;
   dove esiste appearance: base-select (Chrome/Edge) la lista prende lo stile completo del sito. */
option { background-color: var(--input-bg); color: var(--text); }
@supports (appearance: base-select) {
  @media (pointer: fine) { /* sui telefoni resta il selettore nativo, più comodo */
    select, ::picker(select) { appearance: base-select; }
    select { display: flex; align-items: center; padding-right: .85rem; background-image: none; }
    select::picker-icon { color: var(--muted); transition: rotate .2s; }
    select:open::picker-icon { rotate: 180deg; }
    ::picker(select) {
      margin-block: .3rem;
      padding: .3rem;
      border: 1.5px solid var(--input-border);
      border-radius: var(--radius-sm);
      background: var(--input-bg);
      box-shadow: var(--shadow-lg);
    }
    option { gap: .5rem; padding: .55rem .75rem; border-radius: calc(var(--radius-sm) - 2px); }
    option:hover, option:focus-visible { background: var(--primary-soft); color: var(--heading); outline: none; }
    option:checked { font-weight: 600; }
    option::checkmark { color: var(--primary); }
  }
}
::placeholder { color: var(--muted); opacity: 1; }
input[type="checkbox"], input[type="radio"] {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  vertical-align: -.2em;
  accent-color: var(--primary);
}
input[type="file"] { max-width: 100%; font-family: var(--font-label); font-size: .85rem; }
.hint { margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.4; }

.field-row { display: grid; gap: 1.15rem; }
@media (min-width: 560px) {
  .field-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: .35rem; }
@media (max-width: 479px) {
  .form-actions > .btn { flex: 1 1 100%; }
}

/* errori visibili solo dopo il primo invio (la pagina aggiunge .was-validated) */
form.was-validated :is(input, select, textarea):invalid,
[aria-invalid="true"] {
  border-color: var(--error);
  box-shadow: 0 0 0 1px var(--error);
}

/* Scelte a card (radio / checkbox) */
.choices { display: grid; gap: .75rem; }
@media (min-width: 560px) {
  .choices { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
}
.choice { position: relative; display: block; cursor: pointer; }
.choice > input {
  position: absolute;
  top: 1.2rem;
  left: 1.1rem;
  opacity: 0;
}
.choice-body {
  position: relative;
  display: grid;
  gap: .2rem;
  height: 100%;
  align-content: start; /* le card affiancate hanno la stessa altezza: le righe non si allungano */
  min-height: 64px;
  padding: 1rem 1.1rem 1rem 3.4rem;
  border: 1.5px solid var(--border-strong);
  border-radius: var(--radius);
  background: var(--input-bg);
  transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.choice-body::before {
  content: '';
  position: absolute;
  top: 1.15rem;
  left: 1.1rem;
  width: 1.4rem;
  height: 1.4rem;
  border: 2px solid var(--input-border);
  border-radius: 50%;
  background: var(--input-bg) center / 80% no-repeat;
  transition: background-color .15s, border-color .15s, box-shadow .15s;
}
.choice > input[type="checkbox"] + .choice-body::before { border-radius: 5px; }
.choice-body strong, .choice-body b { font-size: 1.2rem; line-height: 1.25; color: var(--heading); }
.choice-body small, .choice-body span { color: var(--muted); }
@media (hover: hover) { .choice:hover .choice-body { border-color: var(--primary); } }
.choice > input:checked + .choice-body {
  border-color: var(--primary);
  background: var(--primary-soft);
  box-shadow: inset 0 0 0 1px var(--primary);
}
.choice > input[type="radio"]:checked + .choice-body::before {
  border-color: var(--primary);
  background-color: var(--primary);
  box-shadow: inset 0 0 0 4px var(--input-bg);
}
.choice > input[type="checkbox"]:checked + .choice-body::before {
  border-color: var(--primary);
  background-color: var(--primary);
  background-image: var(--icon-check);
}
.choice > input:focus-visible + .choice-body { outline: 3px solid var(--focus); outline-offset: 2px; }
.choice > input:disabled + .choice-body { opacity: .55; cursor: not-allowed; }
form.was-validated .choice > input:invalid + .choice-body { border-color: var(--error); }

/* Stepper numerico */
.stepper {
  display: inline-flex;
  align-items: stretch;
  justify-self: start;
  max-width: 100%;
  border: 1.5px solid var(--input-border);
  border-radius: var(--radius-sm);
  background: var(--input-bg);
  overflow: hidden;
}
.stepper button {
  display: grid;
  place-items: center;
  flex: none;
  width: 48px;
  min-height: 52px;
  padding: 0;
  border: 0;
  background: var(--primary-soft);
  color: var(--link);
  font-family: var(--font-label);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color .15s;
}
@media (hover: hover) { .stepper button:hover { background: color-mix(in srgb, var(--primary-soft) 75%, var(--primary)); } }
.stepper button:disabled { color: var(--muted); background: var(--bg-alt); opacity: .6; cursor: not-allowed; }
/* l'input si stringe se lo spazio è poco, i pulsanti restano da 44px+ */
.stepper input {
  flex: 0 1 4.5rem;
  width: 4.5rem;
  min-width: 2.75rem;
  min-height: 52px;
  border: 0;
  border-inline: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  font-size: 1.5rem;
  font-weight: 600;
  text-align: center;
  font-variant-numeric: lining-nums tabular-nums;
  appearance: textfield;
  -moz-appearance: textfield;
}
.stepper input::-webkit-outer-spin-button, .stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
/* l'errore va sul contorno dello stepper: quello dell'input è coperto dai bordi interni e da overflow: hidden */
.stepper:has(input[aria-invalid="true"]) { border-color: var(--error); box-shadow: 0 0 0 1px var(--error); }
.stepper :focus-visible { outline-offset: -3px; }

/* Avvisi, badge, toast, spinner */
.alert {
  padding: .8rem 1rem;
  border: 1px solid var(--info);
  border-left-width: 4px;
  border-radius: var(--radius-sm);
  background: var(--info-bg);
  color: var(--text);
  font-size: 1.08rem;
  line-height: 1.45;
}
.alert:empty { display: none; }
.alert > :first-child { margin-top: 0; }
.alert > :last-child { margin-bottom: 0; }
.alert-error { border-color: var(--error); background: var(--error-bg); }
.alert-success { border-color: var(--success); background: var(--success-bg); }
.alert-info { border-color: var(--info); background: var(--info-bg); }

.badge {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  padding: .25em .7em .2em;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--bg-alt);
  color: var(--text);
  font-family: var(--font-label);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.4;
  text-transform: uppercase;
  white-space: nowrap;
  vertical-align: middle;
}
.badge::before { content: ''; width: .5em; height: .5em; border-radius: 50%; background: currentColor; }
.badge-yes { color: var(--success); background: var(--success-bg); }
.badge-no { color: var(--error); background: var(--error-bg); }
.badge-pending { color: var(--warning); background: var(--warning-bg); }
.badge-unregistered { color: var(--muted); background: transparent; border: 1px dashed var(--border-strong); }
.badge-unregistered::before { background: transparent; box-shadow: inset 0 0 0 1.5px currentColor; }
.badge-neutral { color: var(--text); background: var(--bg-alt); }
.badge-neutral::before { display: none; }

.toasts {
  position: fixed;
  left: 50%;
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 300;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  width: min(28rem, calc(100% - 2rem));
  translate: -50% 0;
  pointer-events: none;
}
.toast {
  padding: .85rem 1.1rem;
  border-left: 4px solid var(--toast-accent, #b9c7d4);
  border-radius: var(--radius-sm);
  background: var(--toast-bg);
  color: #fbf6ee;
  box-shadow: var(--shadow-lg);
  font-size: 1.08rem;
  line-height: 1.4;
  animation: toast-in .35s ease-out;
}
.toast-success { --toast-accent: #a9c98f; }
.toast-error { --toast-accent: #f0a090; }
.toast-info { --toast-accent: #b9c7d4; }

.spinner {
  display: inline-block;
  width: 1.4em;
  height: 1.4em;
  border: 2.5px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  vertical-align: -.25em;
  color: var(--primary);
  animation: spin .8s linear infinite;
}
[aria-busy="true"]:not(.btn) { cursor: progress; }
[aria-busy="true"]:not(.btn):empty::before {
  content: '';
  display: block;
  grid-column: 1 / -1;
  width: 2.25rem;
  height: 2.25rem;
  margin: 2.5rem auto;
  border: 2.5px solid var(--primary);
  border-right-color: transparent;
  border-radius: 50%;
  animation: spin .8s linear infinite;
}

.empty-state {
  display: grid;
  justify-items: center;
  gap: .6rem;
  padding: 3rem 1.25rem;
  border: 1.5px dashed var(--border-strong);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface-2) 60%, transparent);
  color: var(--muted);
  text-align: center;
}
.empty-state::before {
  content: '';
  width: 128px;
  height: 32px;
  margin-bottom: .25rem;
  background: var(--orn);
  -webkit-mask: var(--orn-sprig) center / contain no-repeat;
  mask: var(--orn-sprig) center / contain no-repeat;
}
.empty-state :is(h2, h3, p) { margin: 0; }
.empty-state p { max-width: 32rem; }
.empty-state .btn { margin-top: .6rem; }

.code {
  display: inline-block;
  padding: .12em .6em;
  border: 1px dashed var(--stitch);
  border-radius: var(--radius-sm);
  background: var(--accent-soft);
  color: var(--text);
  font-family: var(--font-mono);
  font-size: .85em;
  font-weight: 600;
  letter-spacing: .14em;
  white-space: nowrap;
}

/* Schede */
.tabs {
  display: flex;
  gap: .25rem;
  margin-bottom: 1.25rem;
  overflow-x: auto;
  border-bottom: 1px solid var(--border);
  scrollbar-width: none;
}
.tabs::-webkit-scrollbar { display: none; }
.tab {
  flex: none;
  min-height: 46px;
  margin-bottom: -1px;
  padding: .5rem 1.1rem;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  color: var(--muted);
  font-family: var(--font-label);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
}
/* telefoni: le schede si stringono e vanno a capo, così stanno tutte nella riga invece di scorrere nascoste */
@media (max-width: 599px) {
  .tabs { gap: 0; }
  .tab {
    flex: 1 1 auto;
    padding-inline: clamp(.25rem, 1.5vw, .6rem);
    font-size: .72rem;
    letter-spacing: .05em;
    line-height: 1.25;
    white-space: normal;
    text-wrap: balance;
  }
}
.tab:hover { color: var(--text); }
.tab[aria-selected="true"] { color: var(--heading); border-bottom-color: var(--accent); }
.tab:focus-visible { outline-offset: -3px; }
.tab-panel { min-width: 0; }
.tab-panel:focus-visible { outline-offset: 6px; }

/* Filtri */
.toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  min-height: 44px;
  padding: .3rem .95rem;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  background: var(--input-bg);
  color: var(--text);
  font-family: var(--font-label);
  font-size: .74rem;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .15s, border-color .15s, color .15s;
}
.chip:hover { border-color: var(--primary); }
@media (pointer: fine) { .chip { min-height: 38px; } }
.chip[aria-pressed="true"] { border-color: var(--primary); background: var(--primary); color: var(--on-primary); }
.chip-count {
  min-width: 1.7em;
  padding: .15em .45em .1em;
  border-radius: 999px;
  background: var(--bg-alt);
  color: var(--text);
  font-size: .95em;
  letter-spacing: 0;
  text-align: center;
}
.chip[aria-pressed="true"] .chip-count { background: rgb(255 255 255 / .2); color: inherit; }
input.search {
  flex: 1 1 14rem;
  width: auto;
  min-width: 0;
  max-width: 28rem;
  padding-left: 2.6rem;
  background-image: var(--icon-search);
  background-repeat: no-repeat;
  background-position: .85rem 50%;
  background-size: 1.15rem;
}
input.search::-webkit-search-cancel-button { cursor: pointer; }

/* Tabelle */
.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
}
.table { width: 100%; border-collapse: collapse; font-size: 1.05rem; line-height: 1.35; }
.table th, .table td {
  padding: .55rem .8rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: middle;
}
.table th {
  background: var(--bg-alt);
  color: var(--muted);
  font-family: var(--font-label);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
}
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr:hover { background: color-mix(in srgb, var(--primary-soft) 45%, transparent); }
.table tr.is-muted td { color: var(--muted); }
.table tr.is-muted { background: color-mix(in srgb, var(--bg-alt) 55%, transparent); }
.table td.actions { text-align: right; white-space: nowrap; }
.table td.actions > * + * { margin-left: .35rem; }
.table :is(th, td).num { text-align: right; font-variant-numeric: lining-nums tabular-nums; }

/* Fino a 1100px la tabella inviti non entra: diventa a schede (va con admin.html, min-width: 1101px) */
@media (max-width: 1100px) {
  .table-wrap:has(> .table-cards) { overflow: visible; border: 0; border-radius: 0; background: none; }
  .table-cards thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .table-cards, .table-cards tbody, .table-cards tr, .table-cards td { display: block; }
  .table-cards tr {
    margin-bottom: .75rem;
    padding: .8rem 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--surface-2);
    box-shadow: var(--shadow);
  }
  .table-cards tbody tr:hover { background: var(--surface-2); }
  .table-cards tr.is-muted { background: var(--bg-alt); }
  .table-cards td {
    display: grid;
    grid-template-columns: minmax(6.5rem, 34%) minmax(0, 1fr);
    justify-items: start;
    align-items: baseline;
    gap: .75rem;
    padding: .3rem 0;
    border: 0;
    text-align: left;
    overflow-wrap: anywhere;
  }
  .table-cards td::before {
    content: attr(data-label);
    color: var(--muted);
    font-family: var(--font-label);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .table-cards td:not([data-label]), .table-cards td[data-label=""] { display: block; }
  .table-cards td:not([data-label])::before, .table-cards td[data-label=""]::before { content: none; }
  .table-cards td.num { text-align: left; }
  .table-cards td.actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .45rem;
    padding-top: .7rem;
    border-top: 1px dashed var(--border);
    white-space: normal;
  }
  .table-cards td.actions::before { content: none; }
  .table-cards td.actions > * + * { margin-left: 0; }
  /* schede più corte: niente righe con il solo "–", pulsanti sulla stessa riga quando ci stanno */
  .table-cards td.is-empty { display: none; }
  .table-cards td.actions > .btn { flex: 1 1 auto; padding-inline: .5rem; letter-spacing: .06em; }
  .table-cards .badge { max-width: 100%; white-space: normal; }
}

/* Statistiche */
.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.5rem), 1fr));
  gap: .75rem;
}
.stat {
  padding: .9rem 1rem .8rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
  box-shadow: var(--shadow);
}
.stat-value {
  display: block;
  color: var(--heading);
  font-size: 2.3rem;
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: lining-nums tabular-nums;
}
.stat-label {
  display: block;
  margin-top: .4rem;
  color: var(--text);
  font-family: var(--font-label);
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.stat-sub { display: block; margin-top: .15rem; color: var(--muted); font-size: .98rem; line-height: 1.3; }
@media (max-width: 479px) {
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .stat { padding: .6rem .75rem; }
  .stat-value { font-size: 1.8rem; }
}

/* Finestra modale */
dialog.modal {
  width: min(560px, calc(100% - 1.5rem));
  max-height: calc(100dvh - 1.5rem);
  padding: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--surface-2);
  color: var(--text);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
dialog.modal[open] { display: flex; flex-direction: column; animation: pop-in .25s ease-out; }
dialog.modal > form { display: contents; }
dialog::backdrop { background: rgb(35 26 20 / .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .9rem .75rem .75rem 1.5rem;
  border-bottom: 1px solid var(--border);
}
.modal-header h2 { margin: 0; font-size: 1.6rem; }
.modal-body { flex: 1 1 auto; min-height: 0; padding: 1.25rem 1.5rem; overflow-y: auto; overscroll-behavior: contain; }
.modal-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .6rem;
  padding: .9rem 1.5rem calc(.9rem + env(safe-area-inset-bottom));
  border-top: 1px solid var(--border);
  background: var(--bg-alt);
}
@media (max-width: 479px) {
  .modal-header { padding-left: 1.1rem; }
  .modal-body { padding-inline: 1.1rem; }
  .modal-actions { padding-inline: 1.1rem; }
  .modal-actions > .btn { flex: 1 1 auto; }
  .modal-header h2 { font-size: 1.35rem; }
}
/* Schermi bassi (telefono in orizzontale) o strettissimi: scorre tutta la finestra,
   invece di un corpo schiacciato fra intestazione e pulsanti */
@media (max-height: 500px), (max-width: 359px) {
  dialog.modal[open] { display: block; overflow-y: auto; overscroll-behavior: contain; }
  .modal-body { overflow: visible; }
}
@media (max-height: 500px) {
  dialog.modal { width: min(760px, calc(100% - 1.5rem)); } /* più larga: i pulsanti stanno su una riga */
  .modal-actions { position: sticky; bottom: 0; }
}
html:has(dialog[open]) { overflow: hidden; }

/* Caricamento file */
.uploader {
  display: grid;
  gap: 1rem;
  padding: clamp(1rem, 4vw, 1.75rem);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background-color: var(--surface);
  background-image: var(--tex-surface);
  box-shadow: var(--shadow);
}
.dropzone {
  position: relative;
  display: grid;
  justify-items: center;
  gap: .75rem;
  padding: 2rem 1.25rem;
  border: 2px dashed var(--stitch);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface-2) 88%, transparent);
  text-align: center;
  transition: border-color .2s, background-color .2s, transform .2s;
}
.dropzone::before {
  content: '';
  width: 48px;
  height: 48px;
  background: var(--primary);
  -webkit-mask: var(--icon-upload) center / contain no-repeat;
  mask: var(--icon-upload) center / contain no-repeat;
}
.dropzone.dragover { border-style: solid; border-color: var(--primary); background: var(--primary-soft); transform: scale(1.01); }
.dropzone input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip-path: inset(50%); }
.dropzone:has(input[type="file"]:focus-visible) { outline: 3px solid var(--focus); outline-offset: 3px; }
.dropzone p { margin: 0; }
.dropzone label { cursor: pointer; }
.dropzone .row { justify-content: center; }

.upload-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; font-size: 1.05rem; }
.upload-list { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.upload-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .3rem .75rem;
  padding: .7rem .9rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
}
.upload-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.upload-meta { color: var(--muted); font-size: .95rem; white-space: nowrap; font-variant-numeric: lining-nums tabular-nums; }
.upload-progress {
  grid-column: 1 / -1;
  width: 100%;
  height: 8px;
  border: 0;
  border-radius: 999px;
  background: var(--bg-alt);
  overflow: hidden;
  appearance: none;
}
.upload-progress::-webkit-progress-bar { background: var(--bg-alt); border-radius: 999px; }
.upload-progress::-webkit-progress-value { background: var(--primary); border-radius: 999px; transition: width .3s; }
.upload-progress::-moz-progress-bar { background: var(--primary); border-radius: 999px; }
.upload-status { grid-column: 1 / -1; color: var(--muted); font-size: .98rem; line-height: 1.35; }
.upload-item.is-done { border-color: color-mix(in srgb, var(--success) 40%, var(--border)); }
.upload-item.is-done .upload-status { color: var(--success); }
.upload-item.is-done .upload-progress::-webkit-progress-value { background: var(--success); }
.upload-item.is-done .upload-progress::-moz-progress-bar { background: var(--success); }
.upload-item.is-error { border-color: var(--error); background: var(--error-bg); }
.upload-item.is-error .upload-status { color: var(--error); }

/* Galleria */
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; }
@media (min-width: 600px) { .gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; } }
@media (min-width: 900px) { .gallery-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; } }
@media (min-width: 1200px) { .gallery-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.gallery-grid > .empty-state { grid-column: 1 / -1; }
.media-tile {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: var(--bg-alt);
  overflow: hidden;
  cursor: zoom-in;
}
.media-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease, opacity .3s;
}
.media-tile:hover img { transform: scale(1.04); }
.media-tile:focus-visible { z-index: 1; outline-offset: -3px; }
.media-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .3rem;
  background: linear-gradient(145deg, var(--primary-soft), var(--accent-soft));
  color: var(--text);
  font-family: var(--font-label);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.media-placeholder::before {
  content: '';
  width: 30%;
  aspect-ratio: 1;
  background: currentColor;
  opacity: .75;
  -webkit-mask: var(--icon-photo) center / contain no-repeat;
  mask: var(--icon-photo) center / contain no-repeat;
}
.media-badge {
  position: absolute;
  right: 6px;
  bottom: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .3em;
  min-width: 26px;
  height: 26px;
  padding: 0 .45rem;
  border-radius: 999px;
  background: rgb(20 15 11 / .66);
  color: #fff;
  font-family: var(--font-label);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .04em;
  pointer-events: none;
}
.media-badge::before {
  content: '';
  width: 10px;
  height: 10px;
  background: currentColor;
  -webkit-mask: var(--icon-play) center / contain no-repeat;
  mask: var(--icon-play) center / contain no-repeat;
}

/* Lightbox (sempre scura, per far risaltare foto e video) */
dialog.lightbox {
  --focus: #f1d7a0;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: #14100d;
  color: #f3ece2;
  overflow: hidden;
}
/* griglia: le frecce (assolute, grid-row: 1) si centrano sull'area della foto, non su tutta la finestra,
   così non coprono i controlli in basso del video */
dialog.lightbox[open] { display: grid; grid-template: minmax(0, 1fr) auto / minmax(0, 1fr); }
dialog.lightbox::backdrop { background: #14100d; }
.lightbox-stage {
  position: relative;
  grid-area: 1 / 1;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(3.75rem, env(safe-area-inset-top)) .5rem .5rem;
}
.lightbox-stage :is(img, video) {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.lightbox-close, .lightbox-prev, .lightbox-next {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid rgb(255 255 255 / .25);
  border-radius: 50%;
  background: rgb(20 16 13 / .6);
  color: #f3ece2;
  font-size: 1.7rem;
  line-height: 1;
  cursor: pointer;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.lightbox-close { top: max(.6rem, env(safe-area-inset-top)); right: .6rem; }
.lightbox-close, .lightbox-prev, .lightbox-next { grid-area: 1 / 1 / 2 / 2; } /* linee finali esplicite: per gli elementi assoluti "auto" vorrebbe dire il bordo della finestra */
.lightbox-prev, .lightbox-next { top: calc(50% + 1.6rem); translate: 0 -50%; } /* + metà del margine in alto della foto */
.lightbox-prev { left: .5rem; }
.lightbox-next { right: .5rem; }
:is(.lightbox-close, .lightbox-prev, .lightbox-next):hover { background: rgb(255 255 255 / .16); }
:is(.lightbox-prev, .lightbox-next)[disabled] { opacity: .25; cursor: default; }
.lightbox-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .5rem 1rem;
  padding: .7rem 1rem max(.7rem, env(safe-area-inset-bottom));
  border-top: 1px solid rgb(255 255 255 / .1);
  background: rgb(0 0 0 / .45);
  font-size: 1.02rem;
  line-height: 1.35;
}
.lightbox-bar .row { gap: .5rem; }
.lightbox-bar { grid-row: 2; }
/* telefono in orizzontale: più spazio alla foto (la X può stare sopra l'angolo dell'immagine) */
@media (max-height: 500px) {
  .lightbox-stage { padding-top: .5rem; }
  .lightbox-prev, .lightbox-next { top: 50%; }
  .lightbox-bar { flex-wrap: nowrap; padding-block: .35rem max(.35rem, env(safe-area-inset-bottom)); }
  .lightbox-bar .row { flex: none; }
}
.lightbox .muted { color: #cdbfae; }
.lightbox a { color: #f1d7a0; }
.lightbox :is(.btn-secondary, .btn-ghost) { --btn-fg: #f3ece2; --btn-bg: transparent; --btn-bd: rgb(255 255 255 / .4); }
.lightbox .btn-ghost { --btn-bd: transparent; }
.lightbox :is(.btn-secondary, .btn-ghost):hover { --btn-bg: rgb(255 255 255 / .12); }

/* Box di aiuto */
.help-box {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-2);
}
.help-box > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  min-height: 48px;
  padding: .6rem 1rem;
  color: var(--heading);
  font-family: var(--font-label);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  list-style: none;
  cursor: pointer;
}
.help-box > :not(summary) { margin-inline: 1rem; }
.help-box[open] { padding-bottom: .5rem; }
.help-box ul, .help-box ol { padding-left: 1.2rem; }
.help-box li + li { margin-top: .35rem; }
:is(.help-box, .faq details) > summary::-webkit-details-marker { display: none; }
:is(.help-box, .faq details) > summary::after {
  content: '';
  flex: none;
  width: .55rem;
  height: .55rem;
  margin: 0 .3rem .25rem 0;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform .2s ease;
}
:is(.help-box, .faq details)[open] > summary::after { margin-bottom: -.25rem; transform: rotate(-135deg); }

/* 7. HOME ------------------------------------------------------------------ */
.hero {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1fr); /* la colonna non si allarga oltre lo schermo per il contenuto */
  place-items: center;
  min-height: calc(100vh - var(--header-h));
  min-height: calc(100svh - var(--header-h));
  padding: clamp(3rem, 9vw, 5.5rem) 0 clamp(4rem, 10vw, 6rem);
  overflow: hidden;
  text-align: center;
  background: radial-gradient(60% 55% at 50% 48%, var(--hero-glow), transparent 75%);
}
.hero::before, .hero::after {
  content: '';
  position: absolute;
  z-index: -1;
  width: clamp(150px, 40vw, 430px);
  aspect-ratio: 1;
  background: var(--orn);
  opacity: .6;
  pointer-events: none;
  -webkit-mask: var(--orn-spray) top left / contain no-repeat;
  mask: var(--orn-spray) top left / contain no-repeat;
}
.hero::before { top: -10px; left: -10px; }
.hero::after { right: -10px; bottom: -10px; rotate: 180deg; }
@media (min-width: 760px) { .hero::before, .hero::after { opacity: .8; } }
.hero-inner {
  position: relative;
  width: min(100% - 2 * var(--gutter), 58rem);
  margin-inline: auto;
  padding: 1rem 0;
}
.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: .9em;
  margin: 0 0 .75rem;
  color: var(--muted);
  font-family: var(--font-label);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
}
.hero-kicker::before, .hero-kicker::after { content: ''; width: 2rem; height: 1px; background: currentColor; opacity: .6; }
.hero-names {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 0 .3em;
  color: var(--names-color);
  font-family: var(--font-names);
  font-size: var(--names-size);
  font-weight: var(--names-weight);
  letter-spacing: var(--names-spacing);
  line-height: 1.05;
  text-transform: var(--names-transform);
  overflow-wrap: anywhere;
}
.hero-amp {
  margin-block: .02em;
  color: var(--amp-color);
  font-family: var(--font-amp);
  font-size: .55em;
  line-height: 1;
  text-transform: none;
}
.hero-second { display: contents; } /* sui telefoni "&" e il secondo nome stanno su righe separate */
@media (min-width: 760px) {
  .hero-names { flex-flow: row wrap; justify-content: center; align-items: baseline; gap: 0 .22em; }
  .hero-second { display: block; white-space: nowrap; } /* se i nomi vanno a capo, la & resta con il secondo */
  .hero-amp { font-size: .7em; }
}
.hero-date {
  margin: 0 0 .3rem;
  font-family: var(--font-label);
  font-size: clamp(.85rem, 2.6vw, 1rem);
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.hero-place { margin: 0 0 2rem; color: var(--muted); font-size: 1.3rem; font-style: italic; }

.countdown {
  display: flex;
  justify-content: center;
  gap: clamp(.3rem, 2vw, 1.1rem);
  margin: 0 auto 2.25rem;
}
.countdown-item {
  position: relative;
  display: grid;
  justify-items: center;
  flex: 0 1 clamp(4.5rem, 14vw, 5.5rem); /* sui telefoni stretti si restringono invece di allargare l'hero */
  min-width: 0;
  padding: .8rem .25rem .6rem;
  border: 1px solid var(--stitch);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--surface-2) 70%, transparent);
}
.countdown-item::before {
  content: '';
  position: absolute;
  inset: 4px;
  border: var(--card-stitch);
  border-radius: max(0px, calc(var(--radius) - 3px));
  opacity: .8;
}
.countdown-item strong {
  color: var(--heading);
  font-size: clamp(1.9rem, 7vw, 2.6rem);
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: lining-nums tabular-nums;
}
.countdown-item span {
  margin-top: .4rem;
  color: var(--muted);
  font-family: var(--font-label);
  font-size: clamp(.6rem, 2.6vw, .68rem);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.countdown-done { margin: 0; color: var(--accent-strong); font-family: var(--font-names); font-size: clamp(2.2rem, 8vw, 3.2rem); line-height: 1.2; }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; max-width: 38rem; margin-inline: auto; }
.hero-actions .btn { flex: 1 1 auto; }
.hero-scroll {
  position: absolute;
  left: 50%;
  bottom: .75rem;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  translate: -50% 0;
  color: var(--muted);
}
.hero-scroll::before {
  content: '';
  width: 12px;
  height: 12px;
  margin-top: -6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
}

/* Programma */
.timeline { position: relative; max-width: 40rem; margin: 0 auto 3rem; padding: 0; list-style: none; }
.timeline::before {
  content: '';
  position: absolute;
  top: .9rem;
  bottom: .9rem;
  left: 5.5rem;
  border-left: 1.5px dashed var(--stitch);
}
.timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: 2.5rem;
  padding-block: .8rem;
}
.timeline-item::before {
  content: '';
  position: absolute;
  top: 1.5rem;
  left: calc(5.5rem - 5px);
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 4px var(--bg), 0 0 0 5px var(--accent);
}
.timeline-time {
  margin: 0;
  padding-top: .55rem;
  color: var(--link);
  font-family: var(--font-label);
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-align: right;
  font-variant-numeric: lining-nums tabular-nums;
}
.timeline-body h3 { margin: 0 0 .15rem; font-size: 1.5rem; }
.timeline-body p { margin: 0; color: var(--muted); }

.venue { text-align: center; }
.venue-icon, .info-icon {
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  margin: 0 auto .9rem;
  border: 1.5px dashed var(--stitch);
  border-radius: 50%;
  color: var(--primary);
  background: color-mix(in srgb, var(--surface-2) 70%, transparent);
}
.venue-icon svg, .info-icon svg { width: 30px; height: 30px; }
.venue .card-title { margin-bottom: .2rem; }
.venue-time { margin: 0 0 .5rem; color: var(--accent-strong); font-family: var(--font-label); font-size: .95rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.venue-name { margin: 0; font-size: 1.35rem; font-weight: 600; }
.venue .muted { margin-bottom: 1.25rem; }

/* Info utili */
.info-card { text-align: center; }
.info-card .card-title { font-size: 1.45rem; }
.gift-details { display: grid; gap: .6rem; margin: 0 0 1rem; }
.gift-details dt { color: var(--muted); font-family: var(--font-label); font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.gift-details dd { margin: 0; }
.iban {
  padding: .55rem .7rem;
  border: 1px dashed var(--stitch);
  border-radius: var(--radius-sm);
  background: var(--surface-2);
  font-family: var(--font-mono);
  font-size: .92rem;
  letter-spacing: .03em;
  overflow-wrap: anywhere;
  user-select: all;
}
.contacts { display: grid; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.contacts li { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 .6rem; }
.contacts a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; font-variant-numeric: lining-nums; }

/* Conferma presenza: biglietto con sigillo di ceralacca */
.invite-card { margin-top: 2.5rem; padding-top: 3.5rem; text-align: center; }
.seal {
  position: absolute;
  top: 0;
  left: 50%;
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  translate: -50% -50%;
  border-radius: 47% 53% 50% 50% / 52% 48% 52% 48%;
  background: var(--seal); /* fallback senza color-mix (iOS 15) */
  box-shadow: 0 4px 10px -2px rgb(0 0 0 / .3);
  background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--seal) 65%, #fff), var(--seal) 55%, color-mix(in srgb, var(--seal) 75%, #000));
  box-shadow: 0 4px 10px -2px rgb(0 0 0 / .3), inset 0 0 0 5px color-mix(in srgb, var(--seal) 85%, #000);
  color: var(--seal-ink);
  font-family: var(--font-names);
  font-size: 1.35rem;
  line-height: 1;
  text-transform: var(--names-transform);
  white-space: nowrap;
}
.seal::after { content: ''; position: absolute; inset: 9px; border: 1px solid rgb(255 255 255 / .35); border-radius: 50%; }
.invite-card .row { justify-content: center; margin-top: 1.5rem; }

/* Foto e video: polaroid decorative */
.photo-band { display: grid; gap: 2.5rem; align-items: center; }
.photo-copy { text-align: center; }
.photo-copy .btn { margin-top: .5rem; }
.ticks { display: grid; gap: .4rem; max-width: 30rem; margin: 0 auto 1.5rem; padding: 0; list-style: none; text-align: left; }
.ticks li { position: relative; padding-left: 1.9rem; }
.ticks li::before {
  content: '';
  position: absolute;
  top: .45em;
  left: .2rem;
  width: .55rem;
  height: .95rem;
  border-right: 2px solid var(--primary);
  border-bottom: 2px solid var(--primary);
  transform: rotate(40deg);
}
.polaroids { position: relative; width: 100%; max-width: 360px; height: 260px; margin-inline: auto; }
.polaroids span {
  --x: 0px;
  --y: 0px;
  --r: 0deg;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 148px;
  height: 176px;
  padding: 10px 10px 38px;
  background: #fffdf8;
  box-shadow: 0 2px 4px rgb(0 0 0 / .08), 0 18px 30px -16px rgb(60 40 25 / .5);
  transform: translate(-50%, -50%) translate(var(--x), var(--y)) rotate(var(--r));
}
.polaroids span::before { content: ''; display: block; height: 100%; }
.polaroids span::after {
  content: '';
  position: absolute;
  top: -9px;
  left: 50%;
  width: 62px;
  height: 20px;
  translate: -50% 0;
  rotate: -5deg;
  background: var(--accent-soft); /* fallback senza color-mix (iOS 15), come sotto */
  background: color-mix(in srgb, var(--accent-soft) 75%, transparent);
  box-shadow: 0 1px 2px rgb(0 0 0 / .08);
}
.polaroids span:nth-child(1) { --x: -64px; --y: 10px; --r: -9deg; }
.polaroids span:nth-child(2) { --x: 64px; --y: 4px; --r: 7deg; }
.polaroids span:nth-child(3) { --x: 0px; --y: -8px; --r: -1.5deg; z-index: 1; }
.polaroids span:nth-child(1)::before {
  background: linear-gradient(var(--primary-soft), var(--accent-soft));
  background:
    radial-gradient(circle at 72% 30%, var(--accent-soft) 0 12%, transparent 13%),
    radial-gradient(120% 55% at 20% 100%, var(--primary) 0 55%, transparent 56%),
    radial-gradient(130% 60% at 90% 100%, color-mix(in srgb, var(--primary) 55%, #fff) 0 60%, transparent 61%),
    linear-gradient(var(--primary-soft), var(--accent-soft));
}
.polaroids span:nth-child(2)::before {
  background: linear-gradient(170deg, var(--primary), var(--heading));
  background:
    radial-gradient(circle, #ffe9b8 0 2px, transparent 3px) 0 0 / 18px 14px,
    linear-gradient(170deg, color-mix(in srgb, var(--primary) 85%, #000), var(--heading));
}
.polaroids span:nth-child(3)::before {
  content: '&';
  display: grid;
  place-items: center;
  background: linear-gradient(160deg, var(--accent-soft), var(--primary-soft));
  color: var(--amp-color);
  font-family: var(--font-names);
  font-size: 4.5rem;
  line-height: 1;
}
@media (min-width: 860px) {
  .photo-band { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 4rem; }
  .photo-copy { text-align: left; }
  .photo-copy .section-title { text-align: left; }
  .photo-copy .section-title::after { margin-left: 0; }
  .ticks { margin-left: 0; }
}

/* Domande frequenti */
.faq { border-top: 1px solid var(--border); }
.faq details { border-bottom: 1px solid var(--border); }
.faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 56px;
  padding: .8rem 0;
  color: var(--heading);
  font-size: 1.28rem;
  font-weight: 600;
  line-height: 1.3;
  list-style: none;
  cursor: pointer;
}
.faq summary:hover { color: var(--primary); }
.faq details > div { padding: 0 0 1.1rem; }
.faq details > div > :last-child { margin-bottom: 0; }

/* Comparsa morbida (classe aggiunta via JS solo senza riduzione del movimento) */
.reveal-on .reveal { opacity: 0; transform: translateY(18px); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }
.reveal-on .reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .hero::before, .hero::after { animation: bloom 1.8s ease-out backwards; }
  .hero-kicker, .hero-date, .hero-place, .countdown, .hero-actions { animation: rise .9s cubic-bezier(.2, .7, .2, 1) backwards; }
  .hero-kicker { animation-delay: .1s; }
  .hero-names { animation: write 1.7s .25s ease-out backwards; }
  .hero-date { animation-delay: .75s; }
  .hero-place { animation-delay: .85s; }
  .countdown { animation-delay: 1s; }
  .hero-actions { animation-delay: 1.15s; }
  .hero-scroll { animation: nudge 2.4s 2s ease-in-out infinite; }
}

@keyframes spin { to { rotate: 360deg; } }
@keyframes toast-in { from { opacity: 0; translate: 0 10px; } }
@keyframes pop-in { from { opacity: 0; scale: .97; } }
@keyframes rise { from { opacity: 0; translate: 0 14px; } }
@keyframes bloom { from { opacity: 0; scale: .92; } }
@keyframes write { from { clip-path: inset(-30% 100% -30% -10%); } to { clip-path: inset(-30% -10% -30% -10%); } }
@keyframes nudge { 0%, 100% { translate: -50% 0; } 50% { translate: -50% 6px; } }

/* 8. RITOCCHI PER TEMA ----------------------------------------------------- */

/* boho: archi */
html[data-theme="boho"] .card::before { border-radius: inherit; }
html[data-theme="boho"] .hero-inner {
  width: min(100% - 2 * var(--gutter), 46rem);
  padding: clamp(4.5rem, 16vw, 7rem) clamp(1rem, 5vw, 3.5rem) 2.75rem;
  border: 1px solid var(--border-strong);
  border-radius: 999px 999px var(--radius-lg) var(--radius-lg);
  background: var(--surface); /* fallback senza color-mix (iOS 15) */
  background: color-mix(in srgb, var(--surface) 82%, transparent);
  box-shadow: var(--shadow), inset 0 0 0 8px var(--surface), inset 0 0 0 9px var(--border);
  box-shadow: var(--shadow), inset 0 0 0 8px color-mix(in srgb, var(--surface) 82%, transparent), inset 0 0 0 9px var(--border);
}
html[data-theme="boho"] .countdown-item { border-radius: 999px 999px 8px 8px; padding-top: 1.1rem; }
html[data-theme="boho"] .countdown-item::before { border-radius: inherit; }
html[data-theme="boho"] .info-card,
html[data-theme="boho"] .venue { border-radius: 999px 999px var(--radius) var(--radius); padding-top: 3rem; }
html[data-theme="boho"] .section-title::after { width: 150px; }

/* provenza: vichy e lavanda */
html[data-theme="provenza"] .site-header { border-bottom: 0; box-shadow: 0 1px 0 var(--border); }
html[data-theme="provenza"] .site-header::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -5px;
  height: 5px;
  background: var(--gingham), var(--bg-alt);
  opacity: .9;
}
html[data-theme="provenza"] .hero { border-bottom: 10px solid transparent; border-image: repeating-linear-gradient(90deg, rgb(101 83 143 / .22) 0 10px, rgb(101 83 143 / .08) 10px 20px) 10; }
html[data-theme="provenza"] .card { border-top: 3px solid var(--stitch); }

/* eucalipto: minimale, linee sottili */
html[data-theme="eucalipto"] .hero-amp { font-style: italic; font-weight: 400; }
html[data-theme="eucalipto"] .hero-inner { padding: 3rem 1rem; border: 1px solid var(--border-strong); outline: 1px solid var(--border); outline-offset: 7px; }
html[data-theme="eucalipto"] .hero { background: none; }
html[data-theme="eucalipto"] .hero::before, html[data-theme="eucalipto"] .hero::after { opacity: .65; }
html[data-theme="eucalipto"] .countdown-item { border-color: var(--border); background: none; }
html[data-theme="eucalipto"] .countdown-item strong { font-weight: 500; }
html[data-theme="eucalipto"] .countdown-done { font-family: var(--font-body); font-style: italic; }
html[data-theme="eucalipto"] .btn { letter-spacing: .18em; }
html[data-theme="eucalipto"] .btn-primary { box-shadow: none; }
html[data-theme="eucalipto"] .card { border-color: var(--border); }
html[data-theme="eucalipto"] .polaroids span:nth-child(3)::before { font-family: var(--font-body); font-style: italic; }

/* vigna: tramonto, cornici dorate */
html[data-theme="vigna"] .hero {
  background:
    radial-gradient(70% 45% at 50% 100%, rgb(230 170 120 / .28), transparent 75%),
    radial-gradient(60% 55% at 50% 45%, var(--hero-glow), transparent 75%),
    linear-gradient(180deg, transparent 40%, rgb(240 205 180 / .35));
}
html[data-theme="vigna"] .hero-inner { padding: 3rem 1rem; border: 1px solid var(--accent); outline: 1px solid color-mix(in srgb, var(--accent) 55%, transparent); outline-offset: 6px; }
html[data-theme="vigna"] .site-footer { border-top: 0; background-image: none; }
html[data-theme="vigna"] .site-footer .ornament { color: var(--footer-heading); }
html[data-theme="vigna"] .site-footer a { color: var(--footer-heading); }
html[data-theme="vigna"] .section-title::after { width: 140px; }
html[data-theme="boho"] .site-footer { border-top: 0; background-image: none; }
html[data-theme="boho"] .site-footer .ornament { color: var(--footer-heading); }

/* hero sui telefoni (dopo i ritocchi per tema, che altrimenti avrebbero la precedenza) */
@media (max-width: 480px) {
  .hero { padding-top: 1.5rem; }
  html[data-theme="boho"] .hero-inner { padding-top: 3.25rem; } /* l'arco resta, il pulsante Conferma sale nella prima schermata */
}
/* telefono in orizzontale: l'hero sta in circa una schermata (nomi su una riga, meno aria) */
@media (max-height: 500px) and (orientation: landscape) {
  .hero { min-height: 0; padding-block: .75rem 3rem; }
  .hero-names { flex-flow: row wrap; justify-content: center; align-items: baseline; gap: 0 .22em; font-size: clamp(2.2rem, 12vh, 3.4rem); }
  .hero-second { display: block; white-space: nowrap; }
  .hero-amp { font-size: .7em; }
  .hero-kicker { margin-bottom: .25rem; }
  .hero-place { margin-bottom: .75rem; }
  .countdown { margin-bottom: 1.25rem; }
  .countdown-item { flex-basis: 4.5rem; padding-block: .5rem .4rem; }
  .countdown-item strong { font-size: 2rem; }
  html:is([data-theme="boho"], [data-theme="eucalipto"], [data-theme="vigna"]) .hero-inner { padding-block: 1.75rem 1.5rem; }
}

/* 9. MOVIMENTO RIDOTTO ----------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  /* gli spinner restano: indicano un'attesa, non sono decorativi */
  .spinner, .btn[aria-busy="true"]::before, [aria-busy="true"]:empty::before {
    animation-duration: 1.4s !important;
    animation-iteration-count: infinite !important;
  }
}
