/* Duemello design system v3: four audience themes (Everyone, Couples, Friends, Family),
   each with day and night palettes. Event seasons layer accents on top (see season.css).
   The repeated attribute selectors deliberately outrank the older event palettes so the
   audience a person chose stays recognisable all year. */

:root,
html[data-audience="everyone"][data-audience]{
  --dm-page:#f1f5ef;--dm-surface:#ffffff;--dm-raised:#ffffff;--dm-soft:#e2ece3;--dm-soft-2:#d3e3d6;
  --dm-ink:#15302a;--dm-muted:#4c6157;--dm-line:#d2ddd3;--dm-line-strong:#15302a;
  --dm-primary:#1f5546;--dm-on-primary:#ffffff;--dm-accent:#f3bc4e;--dm-on-accent:#2a2208;
  --dm-pop:#f4a99a;--dm-pop-2:#b9d7f0;--dm-glow:#ffe3a3;
  --dm-display:"Young Serif",Georgia,"Times New Roman",serif;--dm-display-weight:400;--dm-display-tracking:-.012em;--dm-display-case:none;
  --dm-body:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;
  --dm-radius-xl:34px;--dm-radius-lg:26px;--dm-radius-md:18px;--dm-radius-sm:12px;--dm-radius-pill:999px;
  --dm-border:1px;--dm-card-border:1px solid var(--dm-line);
  --dm-shadow:0 1px 0 rgba(21,48,42,.04),0 18px 34px -24px rgba(21,48,42,.38);
  --dm-shadow-lift:0 2px 0 rgba(21,48,42,.05),0 26px 46px -26px rgba(21,48,42,.45);
  --dm-pattern:none;
  --scene-sky-top:#cfe6dc;--scene-sky-bottom:#f7f0dc;--scene-orb:#f6c75b;--scene-ground:#9cc2a4;--scene-ground-2:#7fae8b;
  --scene-house-a:#fdf8ef;--scene-house-b:#fdf8ef;--scene-roof-a:#1f5546;--scene-roof-b:#c66f5a;--scene-window:#ffe7a8;--scene-frame:#15302a;
  --scene-person-a:#1f5546;--scene-person-b:#c66f5a;--scene-line:#15302a;--scene-bead-1:#f3bc4e;--scene-bead-2:#f4a99a;--scene-bead-3:#ffffff;
  --dm-moment-ink:#fff7ef;
  color-scheme:light;
}
html[data-audience="couples"][data-audience]{
  --dm-page:#fbf0f1;--dm-surface:#fffafa;--dm-raised:#fffafa;--dm-soft:#f6dfe4;--dm-soft-2:#efcdd6;
  --dm-ink:#3b1427;--dm-muted:#77505f;--dm-line:#ebd0d7;--dm-line-strong:#3b1427;
  --dm-primary:#8c2350;--dm-on-primary:#fff5f8;--dm-accent:#d9a75a;--dm-on-accent:#2e1e06;
  --dm-pop:#f28ca6;--dm-pop-2:#f6c9a7;--dm-glow:#ffd9b0;
  --dm-display:"Instrument Serif",Georgia,"Times New Roman",serif;--dm-display-weight:400;--dm-display-tracking:-.004em;
  --dm-radius-xl:40px;--dm-radius-lg:30px;--dm-radius-md:22px;--dm-radius-sm:14px;
  --dm-shadow:0 1px 0 rgba(59,20,39,.04),0 20px 40px -26px rgba(140,35,80,.45);
  --dm-shadow-lift:0 2px 0 rgba(59,20,39,.05),0 30px 52px -28px rgba(140,35,80,.55);
  --scene-sky-top:#f9cfd8;--scene-sky-bottom:#fde9dc;--scene-orb:#fff1d8;--scene-ground:#e9b3c1;--scene-ground-2:#d995a8;
  --scene-house-a:#fff8f6;--scene-house-b:#fff8f6;--scene-roof-a:#8c2350;--scene-roof-b:#b6476f;--scene-window:#ffe2b8;--scene-frame:#3b1427;
  --scene-person-a:#8c2350;--scene-person-b:#d9a75a;--scene-line:#3b1427;--scene-bead-1:#f28ca6;--scene-bead-2:#d9a75a;--scene-bead-3:#fffafa;
}
html[data-audience="friends"][data-audience]{
  --dm-page:#f8f7ff;--dm-surface:#ffffff;--dm-raised:#ffffff;--dm-soft:#ebeaff;--dm-soft-2:#dddbff;
  --dm-ink:#1d1a3a;--dm-muted:#535077;--dm-line:#dcd9f2;--dm-line-strong:#1d1a3a;
  --dm-primary:#4f4ce6;--dm-on-primary:#ffffff;--dm-accent:#ffd43b;--dm-on-accent:#1d1a3a;
  --dm-pop:#ff77a9;--dm-pop-2:#3fd6a0;--dm-glow:#fff1a8;
  --dm-display:"Shantell Sans",Inter,"Segoe UI",system-ui,sans-serif;--dm-display-weight:780;--dm-display-tracking:-.02em;
  --dm-radius-xl:26px;--dm-radius-lg:20px;--dm-radius-md:14px;--dm-radius-sm:10px;
  --dm-border:2px;--dm-card-border:2px solid var(--dm-line-strong);
  --dm-shadow:4px 4px 0 var(--dm-line-strong);
  --dm-shadow-lift:6px 6px 0 var(--dm-line-strong);
  --dm-pattern:radial-gradient(circle at 1px 1px,rgba(29,26,58,.13) 1.2px,transparent 1.4px) 0 0/22px 22px;
  --scene-sky-top:#c9c8ff;--scene-sky-bottom:#fff4c4;--scene-orb:#ffd43b;--scene-ground:#8fe3c3;--scene-ground-2:#5fd1a8;
  --scene-house-a:#ffffff;--scene-house-b:#ffffff;--scene-roof-a:#4f4ce6;--scene-roof-b:#ff77a9;--scene-window:#fff3b0;--scene-frame:#1d1a3a;
  --scene-person-a:#4f4ce6;--scene-person-b:#ff77a9;--scene-line:#1d1a3a;--scene-bead-1:#ffd43b;--scene-bead-2:#ff77a9;--scene-bead-3:#3fd6a0;
}
html[data-audience="family"][data-audience]{
  --dm-page:#ecf5fb;--dm-surface:#ffffff;--dm-raised:#ffffff;--dm-soft:#dcefe3;--dm-soft-2:#cfe7f6;
  --dm-ink:#17324a;--dm-muted:#4b6880;--dm-line:#cfe0ec;--dm-line-strong:#17324a;
  --dm-primary:#2770b5;--dm-on-primary:#ffffff;--dm-accent:#ffc145;--dm-on-accent:#3a2a00;
  --dm-pop:#f26b5b;--dm-pop-2:#5cb867;--dm-glow:#ffe6a3;
  --dm-display:"Fredoka",Inter,"Segoe UI",system-ui,sans-serif;--dm-display-weight:600;--dm-display-tracking:-.01em;
  --dm-radius-xl:38px;--dm-radius-lg:30px;--dm-radius-md:22px;--dm-radius-sm:16px;
  --dm-shadow:0 1px 0 rgba(23,50,74,.04),0 8px 0 -2px rgba(39,112,181,.10),0 18px 32px -24px rgba(23,50,74,.35);
  --dm-shadow-lift:0 1px 0 rgba(23,50,74,.05),0 10px 0 -2px rgba(39,112,181,.14),0 26px 40px -26px rgba(23,50,74,.42);
  --dm-pattern:repeating-linear-gradient(90deg,rgba(242,107,91,.09) 0 14px,transparent 14px 28px),repeating-linear-gradient(0deg,rgba(242,107,91,.09) 0 14px,transparent 14px 28px);
  --scene-sky-top:#a9d8f5;--scene-sky-bottom:#e8f6ff;--scene-orb:#ffc145;--scene-ground:#9ad69a;--scene-ground-2:#6fbd73;
  --scene-house-a:#fffdf6;--scene-house-b:#fffdf6;--scene-roof-a:#f26b5b;--scene-roof-b:#2770b5;--scene-window:#fff0b8;--scene-frame:#17324a;
  --scene-person-a:#2770b5;--scene-person-b:#f26b5b;--scene-line:#17324a;--scene-bead-1:#ffc145;--scene-bead-2:#f26b5b;--scene-bead-3:#5cb867;
}

/* Night palettes follow the existing automatic day/night runtime. */
html[data-mode="dark"][data-audience][data-audience],
html[data-mode="dark"][data-audience="everyone"][data-audience]{
  --dm-page:#0d1814;--dm-surface:#14231d;--dm-raised:#182a23;--dm-soft:#1d3129;--dm-soft-2:#264035;
  --dm-ink:#ecf3ee;--dm-muted:#a6b9af;--dm-line:#2a4137;--dm-line-strong:#cfe3d7;
  --dm-primary:#9ed3b9;--dm-on-primary:#0c1d16;--dm-accent:#f3c460;--dm-on-accent:#231a05;
  --dm-pop:#f0a898;--dm-pop-2:#8fb9dc;--dm-glow:#f3c460;
  --dm-shadow:0 1px 0 rgba(0,0,0,.25),0 22px 40px -26px rgba(0,0,0,.7);
  --dm-shadow-lift:0 1px 0 rgba(0,0,0,.3),0 30px 50px -28px rgba(0,0,0,.8);
  --scene-sky-top:#0f2a31;--scene-sky-bottom:#24423b;--scene-orb:#f4ecd0;--scene-ground:#1f3b30;--scene-ground-2:#183026;
  --scene-house-a:#2a4339;--scene-house-b:#2a4339;--scene-roof-a:#0f241d;--scene-roof-b:#6f3c33;--scene-window:#f9d67a;--scene-frame:#0b1612;
  --scene-person-a:#1b3a30;--scene-person-b:#5b2f28;--scene-line:#e9d9a8;--scene-bead-1:#f3c460;--scene-bead-2:#f0a898;--scene-bead-3:#fff4cf;
  color-scheme:dark;
}
html[data-mode="dark"][data-audience="couples"][data-audience]{
  --dm-page:#170c12;--dm-surface:#22121b;--dm-raised:#2a1621;--dm-soft:#331c28;--dm-soft-2:#43253a;
  --dm-ink:#fbe9ef;--dm-muted:#cfa5b5;--dm-line:#4a2b3b;--dm-line-strong:#f7d4df;
  --dm-primary:#f4a3bd;--dm-on-primary:#2a0d1b;--dm-accent:#e6c17e;--dm-on-accent:#2a1c05;
  --dm-pop:#f28ca6;--dm-pop-2:#f6c9a7;--dm-glow:#ffcf8a;
  --scene-sky-top:#2a0f24;--scene-sky-bottom:#5a2340;--scene-orb:#fde9d6;--scene-ground:#3c1830;--scene-ground-2:#2e1125;
  --scene-house-a:#4a2238;--scene-house-b:#4a2238;--scene-roof-a:#26101c;--scene-roof-b:#7a2d50;--scene-window:#ffc982;--scene-frame:#1a0912;
  --scene-person-a:#3a1529;--scene-person-b:#6c3a1f;--scene-line:#f6d6b0;--scene-bead-1:#ff9ab4;--scene-bead-2:#e6c17e;--scene-bead-3:#fff0f4;
}
html[data-mode="dark"][data-audience="friends"][data-audience]{
  --dm-page:#12112a;--dm-surface:#1b1a39;--dm-raised:#201f44;--dm-soft:#26244e;--dm-soft-2:#302e61;
  --dm-ink:#f5f3ff;--dm-muted:#b3afd9;--dm-line:#36345f;--dm-line-strong:#c8c5ff;
  --dm-primary:#a3a1ff;--dm-on-primary:#14122d;--dm-accent:#ffd94f;--dm-on-accent:#1d1a3a;
  --dm-pop:#ff8db8;--dm-pop-2:#5ee3b2;--dm-glow:#ffd94f;
  --dm-shadow:4px 4px 0 #050414;--dm-shadow-lift:6px 6px 0 #050414;
  --dm-pattern:radial-gradient(circle at 1px 1px,rgba(245,243,255,.10) 1.2px,transparent 1.4px) 0 0/22px 22px;
  --scene-sky-top:#1a1850;--scene-sky-bottom:#3d2c6b;--scene-orb:#fff1c2;--scene-ground:#1f5e57;--scene-ground-2:#174a45;
  --scene-house-a:#2b2a5a;--scene-house-b:#2b2a5a;--scene-roof-a:#7b78ff;--scene-roof-b:#ff77a9;--scene-window:#ffe066;--scene-frame:#09081c;
  --scene-person-a:#28266b;--scene-person-b:#6b2547;--scene-line:#fff1c2;--scene-bead-1:#ffd94f;--scene-bead-2:#ff8db8;--scene-bead-3:#5ee3b2;
}
html[data-mode="dark"][data-audience="family"][data-audience]{
  --dm-page:#0c1925;--dm-surface:#122435;--dm-raised:#152a3e;--dm-soft:#1b3247;--dm-soft-2:#22405a;
  --dm-ink:#eaf4fb;--dm-muted:#a2bed2;--dm-line:#244059;--dm-line-strong:#cfe5f5;
  --dm-primary:#8dc9f7;--dm-on-primary:#0d2134;--dm-accent:#ffcb5c;--dm-on-accent:#2b1f00;
  --dm-pop:#ff8a7a;--dm-pop-2:#7fd08a;--dm-glow:#ffcb5c;
  --dm-pattern:repeating-linear-gradient(90deg,rgba(255,138,122,.07) 0 14px,transparent 14px 28px),repeating-linear-gradient(0deg,rgba(255,138,122,.07) 0 14px,transparent 14px 28px);
  --scene-sky-top:#0b2240;--scene-sky-bottom:#21476b;--scene-orb:#fff3d1;--scene-ground:#1d4a3a;--scene-ground-2:#163a2e;
  --scene-house-a:#23415e;--scene-house-b:#23415e;--scene-roof-a:#a8433a;--scene-roof-b:#1d5a92;--scene-window:#ffd46e;--scene-frame:#081521;
  --scene-person-a:#173b5e;--scene-person-b:#6e2a24;--scene-line:#ffe6a3;--scene-bead-1:#ffcb5c;--scene-bead-2:#ff8a7a;--scene-bead-3:#7fd08a;
}

/* The older components read these names. Map them to the active audience palette. */
html[data-audience][data-audience][data-audience]{
  --theme-main:var(--dm-primary);--theme-dark:var(--dm-ink);--theme-page:var(--dm-page);--theme-paper:var(--dm-surface);
  --theme-accent:var(--dm-accent);--theme-soft:var(--dm-soft);--theme-text:var(--dm-ink);--theme-muted:var(--dm-muted);
  --line:var(--dm-line);--forest:var(--dm-primary);--ink:var(--dm-ink);--page:var(--dm-page);--muted:var(--dm-muted);--honey:var(--dm-accent);
  --hero-surface:var(--dm-soft);--hero-text:var(--dm-ink);--hero-secondary:var(--dm-muted);--hero-button:var(--dm-primary);--hero-button-text:var(--dm-on-primary);
  --button-text:var(--dm-on-primary);--brand-mark-bg:var(--dm-primary);--brand-mark-heart:var(--dm-accent);
  --experience-serif:var(--dm-display);--website-radius:var(--dm-radius-md);--radius:var(--dm-radius-lg);
}
/* ---------- Base ---------- */
html[data-audience]{background:var(--dm-page);color:var(--dm-ink);-webkit-text-size-adjust:100%;text-size-adjust:100%}
html[data-audience] body{background:var(--dm-page);color:var(--dm-ink);font-family:var(--dm-body);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .45s ease,color .45s ease}
html[data-audience] :focus-visible{outline:3px solid var(--dm-accent);outline-offset:2px;border-radius:6px}
html[data-audience] ::selection{background:var(--dm-accent);color:var(--dm-on-accent)}
/* Zero-specificity defaults so components (like the proposal moment) can set their own type. */
.dm-display,:where(html[data-audience] .dm-app) :where(h1,h2){font-family:var(--dm-display);font-weight:var(--dm-display-weight);letter-spacing:var(--dm-display-tracking)}
:where(html[data-audience="couples"] .dm-app) :where(h1,h2),html[data-audience="couples"] .dm-display{font-weight:400;line-height:1.02}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* ---------- Buttons and controls ---------- */
.dm-btn{--btn-bg:var(--dm-surface);--btn-ink:var(--dm-ink);--btn-border:var(--dm-line);display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:46px;padding:.7em 1.15em;border-radius:var(--dm-radius-pill);border:var(--dm-border) solid var(--btn-border);background:var(--btn-bg);color:var(--btn-ink);font:600 .95rem/1.1 var(--dm-body);letter-spacing:-.005em;text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform .16s ease,box-shadow .16s ease,background-color .2s ease,filter .2s ease;-webkit-tap-highlight-color:transparent}
.dm-btn svg{width:18px;height:18px;flex:none}
.dm-btn:hover{filter:brightness(1.03)}
.dm-btn:active{transform:translateY(1px) scale(.99)}
.dm-btn.primary{--btn-bg:var(--dm-primary);--btn-ink:var(--dm-on-primary);--btn-border:var(--dm-primary)}
.dm-btn.accent{--btn-bg:var(--dm-accent);--btn-ink:var(--dm-on-accent);--btn-border:var(--dm-accent)}
.dm-btn.ghost{--btn-bg:transparent;--btn-border:transparent;padding-inline:.6em}
.dm-btn.small{min-height:38px;padding:.5em .95em;font-size:.875rem}
.dm-btn[disabled]{opacity:.55;cursor:not-allowed}
html[data-audience="friends"] .dm-btn{box-shadow:3px 3px 0 var(--dm-line-strong);--btn-border:var(--dm-line-strong)}
html[data-audience="friends"] .dm-btn:active{box-shadow:1px 1px 0 var(--dm-line-strong);transform:translate(2px,2px)}
html[data-audience="friends"] .dm-btn.ghost{box-shadow:none;--btn-border:transparent}
html[data-audience="family"] .dm-btn.primary{box-shadow:0 4px 0 color-mix(in srgb,var(--dm-primary) 62%,#000)}
html[data-audience="family"] .dm-btn.accent{box-shadow:0 4px 0 color-mix(in srgb,var(--dm-accent) 60%,#7a4b00)}
html[data-audience="family"] .dm-btn.primary:active,html[data-audience="family"] .dm-btn.accent:active{transform:translateY(3px);box-shadow:0 1px 0 color-mix(in srgb,var(--dm-primary) 62%,#000)}

.dm-chip{display:inline-flex;align-items:center;gap:.4em;min-height:36px;padding:.4em .85em;border-radius:var(--dm-radius-pill);border:var(--dm-border) solid var(--dm-line);background:var(--dm-surface);color:var(--dm-ink);font:600 .85rem/1 var(--dm-body);cursor:pointer;white-space:nowrap}
.dm-chip[aria-pressed="true"],.dm-chip.active{background:var(--dm-ink);border-color:var(--dm-ink);color:var(--dm-page)}
.dm-chip svg{width:16px;height:16px}

.dm-label{display:block;font:600 .8125rem/1.3 var(--dm-body);color:var(--dm-muted);letter-spacing:.005em;margin:0 0 .35rem}
.dm-card{background:var(--dm-raised);border:var(--dm-card-border);border-radius:var(--dm-radius-lg);box-shadow:var(--dm-shadow)}

/* ---------- Motion and accessibility floors ---------- */
@media (prefers-reduced-motion:reduce){
  html[data-audience],html[data-audience] *,html[data-audience] *::before,html[data-audience] *::after{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}
}
@media (forced-colors:active){.dm-btn,.dm-chip{border:1px solid ButtonText}}
