/* Document-level styles: only the host document (shell, public site) loads this file. Fonts must be declared in the
 * document because @font-face inside shadow roots is ignored by browsers; the family is inherited by micro-frontends. */
@font-face {
  font-family: "Vazirmatn";
  src: url("/assets/fonts/Vazirmatn-Variable.woff2") format("woff2-variations"), url("/assets/fonts/Vazirmatn-Variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--warm, #faf8f3); color: var(--ink, #202b27); font-family: "Vazirmatn", Tahoma, sans-serif; }
body.splash-visible { overflow: hidden; }

/* HaramYar design system — ported from the approved Figma prototype (Haramyar Super App Prototype).
 * Root class .hy carries theme (data-theme), direction (dir) and language (lang); it is used by the shell document
 * and by every micro-frontend inside its shadow root. Decorative photos are variables: replace them with
 * self-hosted, licensed files by overriding --hy-photo-* in one place. */
:root, :host, .hy-tokens {
  --hy-photo-hero: url("https://images.unsplash.com/photo-1724358318024-59681784f813?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=84&w=1080");
  --hy-photo-story-cover: url("https://images.unsplash.com/photo-1591139308596-9b663fa6d0a0?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=80&w=1080");
  --hy-photo-booking-shrine: url("https://images.unsplash.com/photo-1675274854445-6677aabef5f5?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=84&w=1080");
  --hy-photo-martyr-art: url("https://images.unsplash.com/photo-1710367446113-d1d3fb053256?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=82&w=700");
  --hy-photo-ceremony-art: url("https://images.unsplash.com/photo-1587617425953-9075d28b8c46?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=82&w=700");
  --hy-photo-arch-portrait: url("https://images.unsplash.com/photo-1763860324933-9300c3643191?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=82&w=700");
  --hy-photo-paper-art: url("https://images.unsplash.com/photo-1624862300786-fcdbd20ba0c3?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=82&w=700");
  --hy-photo-editorial-hero: url("https://images.unsplash.com/photo-1761474758165-13ea5bbbb8ac?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&q=82&w=1400");
}

:root, :host, .hy-tokens {
  --emerald: #064b3b;
  --emerald-dark: #07392f;
  --emerald-light: #e5f0eb;
  --gold: #c6a052;
  --gold-soft: #f1e8d4;
  --warm: #faf8f3;
  --white: #ffffff;
  --ink: #202b27;
  --muted: #69736f;
  --line: #e6e5df;
  --danger: #a3453e;
  --shadow: 0 16px 45px rgba(7, 57, 47, .09);
  --theme-background: #faf8f3;
  --theme-surface: #ffffff;
  --theme-text: #202b27;
  --theme-muted: #69736f;
  --theme-primary: #064b3b;
  --theme-primary-deep: #07392f;
  --theme-on-primary: #ffffff;
  --theme-accent: #c6a052;
  --theme-soft: #e5f0eb;
  --theme-line: #e6e5df;
  --theme-banner: linear-gradient(120deg, #07392f, #064b3b);
  --theme-decoration: #c6a052;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--warm); color: var(--ink); font-family: "Vazirmatn", sans-serif; }
body.splash-visible { overflow: hidden; }
.hy {
  --warm: var(--theme-background);
  --white: var(--theme-surface);
  --ink: var(--theme-text);
  --muted: var(--theme-muted);
  --emerald: var(--theme-primary);
  --emerald-dark: var(--theme-primary-deep);
  --gold: var(--theme-accent);
  --emerald-light: var(--theme-soft);
  --line: var(--theme-line);
  color: var(--theme-text);
  background: var(--theme-background);
  transition: background-color .35s ease, color .35s ease;
}
.hy[data-theme="celebration"] {
  --theme-background: #fffaf0;
  --theme-surface: #fffef9;
  --theme-text: #20352e;
  --theme-muted: #6c746c;
  --theme-primary: #07624b;
  --theme-primary-deep: #064536;
  --theme-accent: #d2a849;
  --theme-soft: #e8f3ea;
  --theme-line: #e7dfcf;
  --theme-banner: linear-gradient(120deg, #07513f 0%, #0a7053 58%, #b88c36 140%);
  --theme-decoration: #f0cb77;
}
.hy[data-theme="mourning"] {
  --theme-background: #0b0d0c;
  --theme-surface: #171a18;
  --theme-text: #f0ede7;
  --theme-muted: #aaa5a1;
  --theme-primary: #78191e;
  --theme-primary-deep: #080909;
  --theme-accent: #b73a40;
  --theme-soft: #271719;
  --theme-line: #393231;
  --theme-banner: linear-gradient(120deg, #070808 0%, #171111 56%, #581217 130%);
  --theme-decoration: #b73a40;
}
button, input { font: inherit; }
button { color: inherit; }
.hy { min-height: 100vh; }
.has-shell { padding-top: 72px; padding-bottom: 92px; }
.page, .module-body { width: min(1180px, calc(100% - 40px)); margin: auto; }
.compact-page { padding-top: 38px; }

.topbar { position: fixed; z-index: 40; top: 0; left: 0; right: 0; height: 72px; background: rgba(250,248,243,.92); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(7,57,47,.08); display: flex; align-items: center; justify-content: space-between; padding: 0 max(24px, calc((100vw - 1180px)/2)); }
.hy[data-theme="mourning"] .topbar { background: rgba(9,10,10,.94); border-bottom-color: rgba(183,58,64,.24); }
.hy[data-theme="celebration"] .topbar { background: rgba(255,250,240,.93); }
.brand { border: 0; background: none; display: flex; gap: 10px; align-items: center; text-align: start; cursor: pointer; padding: 0; }
.brand-mark { width: 46px; height: 46px; background: var(--emerald-dark); border: 1px solid rgba(198,160,82,.52); border-radius: 15px 15px 9px 9px; display: grid; place-items: center; overflow: hidden; box-shadow: 0 4px 14px rgba(7,57,47,.12); }
.brand-mark img { width: 100%; height: 100%; object-fit: cover; }
.brand b { display: block; font-size: 17px; color: var(--emerald-dark); }
.brand small { display: block; font-size: 9px; color: var(--muted); margin-top: -2px; }
.header-brand { height: 64px; border: 0; padding: 3px 0; background: transparent; display: flex; align-items: center; gap: 11px; color: var(--muted); cursor: pointer; }
.header-brand img { width: 48px; height: 59px; object-fit: contain; filter: drop-shadow(0 4px 8px rgba(7,57,47,.1)); }
.header-brand span { font-size: 10px; font-weight: 500; }
.hy[data-theme="mourning"] .header-brand span { color: #aaa5a1; }
.header-theme-switcher { display: flex; align-items: center; gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: 15px; background: color-mix(in srgb, var(--white) 72%, transparent); }
.header-theme-switcher button { min-height: 34px; padding: 0 10px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 10px; cursor: pointer; transition: color .2s ease, background .2s ease, box-shadow .2s ease; }
.header-theme-switcher button:hover { color: var(--emerald); background: var(--emerald-light); }
.header-theme-switcher button.active { color: white; background: var(--emerald); box-shadow: 0 5px 15px color-mix(in srgb, var(--emerald) 25%, transparent); font-weight: 700; }
.hy[data-theme="mourning"] .header-theme-switcher { background: #141716; border-color: #403536; }
.hy[data-theme="mourning"] .header-theme-switcher button.active { background: #78191e; color: white; }
.language-switcher { display: flex; align-items: center; gap: 2px; padding: 3px; border: 1px solid var(--line); border-radius: 13px; background: color-mix(in srgb, var(--white) 72%, transparent); direction: ltr; }
.language-switcher button { width: 30px; height: 30px; padding: 0; border: 0; border-radius: 9px; background: transparent; color: var(--muted); font-size: 10px; font-weight: 700; cursor: pointer; }
.language-switcher button.active { color: white; background: var(--emerald); }
.hy[data-theme="mourning"] .language-switcher { background: #141716; border-color: #403536; }
.hy[data-theme="mourning"] .language-switcher button.active { background: #78191e; }
.hy[dir="ltr"] .bottom-nav { direction: ltr; }
.hy[dir="ltr"] .service-card,
.hy[dir="ltr"] .story-card,
.hy[dir="ltr"] .featured-profile,
.hy[dir="ltr"] .request-card,
.hy[dir="ltr"] .table-row { text-align: end; }
.hy[dir="ltr"] .service-copy,
.hy[dir="ltr"] .story-card > div:last-child,
.hy[dir="ltr"] .featured-profile > div:last-child { align-items: flex-start; }
.header-actions { display: flex; align-items: center; gap: 8px; direction: ltr; }
.icon-btn, .avatar-btn { width: 42px; height: 42px; border: 1px solid var(--line); background: var(--white); border-radius: 50%; display: grid; place-items: center; cursor: pointer; }
.notify { position: relative; }.notify i { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); position: absolute; top: 7px; right: 7px; border: 1px solid white; }
.avatar-btn { background: var(--emerald); color: white; border: 0; font-weight: 700; }
.bottom-nav { position: fixed; z-index: 50; bottom: 18px; left: 50%; transform: translateX(-50%); width: min(560px, calc(100% - 24px)); height: 68px; padding: 7px; display: flex; background: rgba(255,255,255,.95); border: 1px solid rgba(7,57,47,.1); border-radius: 24px; box-shadow: 0 14px 50px rgba(7,57,47,.18); backdrop-filter: blur(20px); }
.bottom-nav button { flex: 1; border: 0; background: transparent; border-radius: 17px; color: #7d8682; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; font-size: 10px; cursor: pointer; transition: .25s; }
.bottom-nav button.active { background: var(--emerald-light); color: var(--emerald); font-weight: 700; }
.greeting { padding: 25px 0 16px; display: flex; flex-direction: column; }
.greeting span { font-weight: 700; }.greeting small { color: var(--muted); margin-top: 2px; }
.hero { min-height: 420px; background: var(--emerald-dark); border-radius: 34px; overflow: hidden; position: relative; display: grid; grid-template-columns: 1.1fr .9fr; color: white; box-shadow: var(--shadow); }
.hy[data-theme="celebration"] .hero { background: radial-gradient(circle at 20% 0, rgba(240,203,119,.24), transparent 32%), var(--theme-banner); }
.hy[data-theme="mourning"] .hero { background: radial-gradient(circle at 10% 10%, rgba(169,145,98,.12), transparent 28%), var(--theme-banner); }
.hy[data-theme="mourning"] .hero { border: 1px solid rgba(183,58,64,.22); box-shadow: 0 22px 60px rgba(0,0,0,.38); }
.hy[data-theme="mourning"] .hero-pattern { opacity: .18; filter: hue-rotate(300deg) saturate(1.8); }
.hero-pattern { position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(30deg, transparent 48%, var(--gold) 49%, var(--gold) 51%, transparent 52%), linear-gradient(-30deg, transparent 48%, var(--gold) 49%, var(--gold) 51%, transparent 52%); background-size: 80px 140px; }
.hero-content { padding: 58px; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.hero-brand-mark { width: 106px; height: 104px; object-fit: cover; background: var(--emerald-dark); border: 1px solid rgba(198,160,82,.55); border-radius: 30px 30px 14px 14px; margin-bottom: 13px; }
.eyebrow { display: flex; align-items: center; gap: 7px; color: #e6d5aa; font-size: 13px; }
.hero h1 { font-size: clamp(35px, 4vw, 55px); line-height: 1.45; margin: 18px 0 8px; letter-spacing: -.8px; }
.hero p { color: rgba(255,255,255,.7); margin: 0 0 28px; }
.hero-photo { margin: 28px 28px 28px 0; border-radius: 160px 160px 24px 24px; overflow: hidden; background: linear-gradient(180deg, transparent 30%, rgba(7,57,47,.78)), var(--hy-photo-hero) center 42%/cover; position: relative; }
.hero-photo:after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(198,160,82,.65); border-radius: 145px 145px 18px 18px; }
.hero-photo span { position: absolute; z-index: 1; bottom: 22px; left: 22px; font-size: 8px; opacity: .55; direction: ltr; }
.btn { border: 0; min-height: 48px; padding: 0 22px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-weight: 700; cursor: pointer; transition: .2s; }
.btn:hover { transform: translateY(-2px); }.btn-primary { background: var(--emerald); color: white; box-shadow: 0 8px 22px rgba(6,75,59,.2); }.btn-secondary { background: var(--white); color: var(--emerald); }.btn-ghost { background: transparent; color: var(--emerald); border: 1px solid rgba(6,75,59,.18); }.btn-danger { background: #f5e5e2; color: var(--danger); }
.section-title { display: flex; justify-content: space-between; align-items: center; margin: 36px 0 17px; }
.section-title h2 { margin: 0; font-size: 20px; }.section-title button { border: 0; background: none; color: var(--emerald); display: flex; align-items: center; font-size: 13px; cursor: pointer; }
.services-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.service-card { min-height: 230px; padding: 28px; border: 0; border-radius: 28px; text-align: start; position: relative; overflow: hidden; cursor: pointer; display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 24px; transition: .25s; }
.service-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }.martyr-card { background: #e7eee8; }.booking-card { background: #f3e9d7; }
.service-card:after { content: ""; width: 190px; height: 190px; border: 1px solid rgba(6,75,59,.12); position: absolute; left: -60px; top: -60px; transform: rotate(45deg); }
.service-art { width: 105px; height: 125px; border-radius: 60px 60px 18px 18px; display: grid; place-items: center; background: var(--emerald); color: var(--gold-soft); position: relative; z-index: 1; box-shadow: inset 0 0 0 8px rgba(255,255,255,.08); }
.booking-card .service-art { background: #9b7138; }
.service-copy { display: flex; flex-direction: column; align-items: flex-start; z-index: 1; }
.service-copy i { font-style: normal; font-size: 10px; color: var(--emerald); background: rgba(255,255,255,.65); border-radius: 10px; padding: 4px 8px; }.service-copy b { font-size: 23px; margin: 12px 0 6px; }.service-copy small { line-height: 1.8; color: var(--muted); }.service-copy em { font-size: 12px; color: var(--emerald); font-style: normal; font-weight: 700; display: flex; gap: 6px; align-items: center; margin-top: 17px; }
.stories-row { display: grid; grid-template-columns: 1.3fr .7fr; gap: 18px; }
.story-card { background: white; border: 1px solid var(--line); border-radius: 24px; padding: 14px; display: grid; grid-template-columns: 160px 1fr; text-align: start; gap: 20px; cursor: pointer; }
.story-card > div:last-child { padding: 12px 0; display: flex; flex-direction: column; align-items: flex-start; }.story-card small { color: var(--gold); }.story-card b { font-size: 18px; margin: 8px 0; }.story-card p { color: var(--muted); line-height: 1.7; font-size: 13px; margin: 0; }.story-card em { margin-top: auto; font-size: 11px; color: var(--muted); font-style: normal; }
.story-visual { min-height: 170px; border-radius: 70px 70px 16px 16px; background: var(--emerald); display: grid; place-items: center; color: white; position: relative; overflow: hidden; }.story-visual:after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(198,160,82,.5); border-radius: inherit; }.story-visual span { font-size: 9px; opacity: .7; }.paper-art { background: #e9e1d1; color: #906b35; }
.quick > div:last-child { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.quick button { border: 1px solid var(--line); background: white; min-height: 74px; border-radius: 18px; display: flex; align-items: center; gap: 12px; padding: 12px; cursor: pointer; }.quick button > span { width: 46px; height: 46px; border-radius: 14px; background: var(--emerald-light); color: var(--emerald); display: grid; place-items: center; }.quick button > b { flex: 1; text-align: start; }
.future-card { margin-top: 36px; padding: 26px; border: 1px dashed #b9b7ad; border-radius: 22px; display: flex; align-items: center; gap: 17px; }.future-card > span { width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; background: var(--gold-soft); color: #876a2f; }.future-card div { flex: 1; }.future-card p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }.future-card button { border: 0; background: none; }
footer { margin: 65px 0 10px; border-top: 1px solid var(--line); padding: 30px 0; display: flex; align-items: center; gap: 30px; color: var(--muted); }footer p { margin-inline-start: auto; font-size: 12px; }footer > small { direction: ltr; }
.page-heading span { color: var(--gold); font-weight: 700; }.page-heading h1 { font-size: clamp(28px, 4vw, 42px); margin: 7px 0; }.page-heading p { color: var(--muted); margin: 0; }.services-page { margin-top: 35px; }
.future-service { opacity: .65; border: 1px dashed #aaa; padding: 20px; border-radius: 20px; display: flex; align-items: center; gap: 15px; }.future-service > span { width: 55px; height: 55px; border-radius: 18px; display: grid; place-items: center; background: #eeece6; }.future-service div { flex: 1; display: flex; flex-direction: column; }.future-service i { font-style: normal; font-size: 11px; background: #eeeae1; padding: 7px 11px; border-radius: 10px; }
.install-card { background: var(--emerald); color: white; padding: 22px; border-radius: 24px; margin: 35px 0; display: flex; align-items: center; gap: 18px; }.install-card div { flex: 1; }.install-card p { color: rgba(255,255,255,.65); margin: 3px 0; font-size: 12px; }.app-icon { width: 58px; height: 58px; background: white; border-radius: 17px; display: grid; place-items: center; overflow: hidden; }.app-icon img { width: 100%; height: 100%; object-fit: cover; }

.module-page { min-height: 100vh; padding-top: 70px; background: var(--warm); }.module-bar { position: fixed; z-index: 40; top: 0; left: 0; right: 0; height: 70px; display: flex; align-items: center; justify-content: space-between; padding: 0 max(20px, calc((100vw - 900px)/2)); background: rgba(250,248,243,.93); border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); }.module-bar b { color: var(--emerald-dark); }.module-body { max-width: 900px; padding-top: 28px; padding-bottom: 60px; }
.editorial-hero { background: var(--emerald-dark); color: white; min-height: 430px; padding: 50px max(24px, calc((100vw - 900px)/2)); display: flex; justify-content: space-between; align-items: center; overflow: hidden; position: relative; }.editorial-hero:after { content: ""; position: absolute; inset: 0; opacity: .08; background: repeating-radial-gradient(circle at 15% 50%, transparent 0 25px, var(--gold) 26px 27px); }.editorial-hero > div:first-child { z-index: 1; }.editorial-hero h1 { font-size: clamp(38px, 6vw, 65px); line-height: 1.35; margin: 17px 0; }.editorial-hero p { color: rgba(255,255,255,.65); }.demo-label { background: rgba(198,160,82,.18); color: #e9d39e; padding: 6px 10px; border: 1px solid rgba(198,160,82,.35); border-radius: 20px; font-size: 10px; }.portrait-frame { width: 250px; height: 310px; border: 1px solid var(--gold); border-radius: 130px 130px 20px 20px; padding: 12px; z-index: 1; position: relative; }.portrait-placeholder { height: 100%; background: linear-gradient(145deg, #55776c, #173f34); border-radius: 115px 115px 12px 12px; display: grid; place-items: center; color: rgba(255,255,255,.65); }.portrait-frame small { position: absolute; bottom: 22px; right: 0; left: 0; text-align: center; color: rgba(255,255,255,.5); font-size: 9px; }
.search-field, .real-search { min-height: 58px; width: 100%; border: 1px solid var(--line); background: white; border-radius: 17px; display: flex; align-items: center; padding: 0 18px; gap: 12px; color: var(--muted); }.search-field { cursor: pointer; }.search-field span { flex: 1; text-align: start; }.search-field kbd { font-family: inherit; background: #f1f0eb; border-radius: 8px; padding: 5px 8px; font-size: 10px; }
.featured-profile { width: 100%; border: 1px solid var(--line); background: white; border-radius: 26px; padding: 18px; display: grid; grid-template-columns: 260px 1fr; gap: 30px; text-align: start; cursor: pointer; }.profile-art { min-height: 260px; border-radius: 120px 120px 18px 18px; background: #ded6c5; color: #806231; display: grid; place-items: center; }.featured-profile > div:last-child { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }.featured-profile small { color: var(--gold); }.featured-profile h2 { font-size: 28px; margin: 8px 0; }.featured-profile p { line-height: 2; color: var(--muted); }.featured-profile span { color: var(--emerald); display: flex; align-items: center; gap: 8px; font-weight: 700; }
.collection-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.collection-grid button { border: 0; border-radius: 20px; background: var(--emerald-light); padding: 25px; display: flex; flex-direction: column; align-items: flex-start; text-align: start; cursor: pointer; }.collection-grid button:last-child { background: var(--gold-soft); }.collection-grid span, .collection-grid small { font-size: 11px; color: var(--muted); }.collection-grid b { font-size: 18px; margin: 12px 0 4px; }
.real-search input { flex: 1; border: 0; outline: 0; background: transparent; min-width: 0; }.real-search button { border: 0; background: none; display: grid; place-items: center; }.filter-chips { display: flex; gap: 8px; overflow-x: auto; padding: 16px 0; scrollbar-width: none; }.filter-chips button { border: 1px solid var(--line); background: white; padding: 9px 15px; border-radius: 20px; white-space: nowrap; }.filter-chips button.selected { background: var(--emerald); color: white; border-color: var(--emerald); }.result-head { margin: 22px 0 12px; display: flex; align-items: flex-end; justify-content: space-between; }.result-head h1 { font-size: 24px; margin: 0; }.result-head small { color: var(--muted); }
.profile-list { display: flex; flex-direction: column; gap: 10px; }.profile-list > button { border: 1px solid var(--line); border-radius: 18px; background: white; padding: 12px; display: flex; align-items: center; gap: 16px; text-align: start; cursor: pointer; }.profile-list > button > div { flex: 1; }.profile-list b, .profile-list small { display: block; }.profile-list small { color: var(--gold); }.profile-list p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }.mini-portrait { width: 68px; height: 78px; border-radius: 35px 35px 10px 10px; background: #e5e0d5; color: #745e3e; display: grid; place-items: center; }.safety-note, .info-card { margin-top: 22px; background: var(--emerald-light); border-radius: 16px; padding: 17px; display: flex; align-items: flex-start; gap: 12px; color: var(--emerald); }.safety-note p, .info-card p { margin: 0; font-size: 12px; line-height: 1.8; }.safety-note b, .info-card b { display: block; }
.profile-cover { min-height: 430px; background: var(--emerald-dark); color: white; padding: 40px max(24px, calc((100vw - 780px)/2)); display: flex; align-items: center; gap: 40px; }.large-portrait { width: 220px; height: 290px; flex: none; border: 1px solid var(--gold); border-radius: 110px 110px 18px 18px; display: grid; place-items: center; color: rgba(255,255,255,.65); }.profile-cover h1 { font-size: 36px; margin: 10px 0; }.profile-cover p { color: rgba(255,255,255,.6); }.reading-page article { width: min(680px, calc(100% - 40px)); margin: 0 auto; padding: 42px 0 70px; font-size: 17px; line-height: 2.15; }.article-actions { display: flex; gap: 10px; margin-bottom: 30px; }.article-actions button { border: 1px solid var(--line); background: white; border-radius: 12px; padding: 8px 13px; display: flex; gap: 7px; align-items: center; }.reading-page .lead { font-size: 20px; color: #38433f; border-inline-start: 3px solid var(--gold); padding-inline-start: 18px; }.reading-page article h2 { margin-top: 35px; font-size: 23px; }.quote-safe, .source-box { background: #f1ece1; border-radius: 18px; padding: 22px; display: flex; gap: 15px; color: #69552f; }.quote-safe p { margin: 0; }.inline-story { width: 100%; border: 1px solid var(--line); background: white; border-radius: 18px; padding: 18px; display: grid; grid-template-columns: 1fr auto; text-align: start; }.inline-story span, .inline-story b, .inline-story small { display: block; }.inline-story span { color: var(--gold); font-size: 11px; }.inline-story b { font-size: 17px; }.sources { font-size: 13px; color: var(--muted); margin-bottom: 25px; }.sources p { border-bottom: 1px solid var(--line); }.story-cover { height: 410px; background: linear-gradient(rgba(7,57,47,.2),rgba(7,57,47,.8)), var(--hy-photo-story-cover) center/cover; display: grid; place-items: center; color: white; }.story-cover span { border: 1px solid rgba(255,255,255,.5); border-radius: 20px; padding: 7px 12px; font-size: 10px; }.story-detail article h1 { font-size: 42px; line-height: 1.5; margin: 8px 0; }.gold-text { color: #9b772f; }.divider { height: 30px; display: grid; place-items: center; }.divider span { width: 35px; height: 1px; background: var(--gold); }.source-box { display: block; font-size: 13px; margin: 30px 0; }

.booking-module { background: white; }.booking-hero { min-height: 590px; background: #e7eee8; display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; overflow: hidden; }.booking-shrine { min-height: 590px; background: linear-gradient(90deg, transparent 45%, #e7eee8 100%), linear-gradient(0deg, rgba(7,57,47,.42), transparent 45%), var(--hy-photo-booking-shrine) center/cover; position: relative; }.booking-shrine:after { content: ""; position: absolute; inset: 28px; border: 1px solid rgba(255,255,255,.55); border-radius: 160px 160px 20px 20px; }.booking-shrine span { position: absolute; z-index: 1; bottom: 38px; right: 45px; color: rgba(255,255,255,.75); font-size: 9px; }.booking-hero-copy { text-align: start; padding: 65px clamp(30px,6vw,95px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }.booking-hero-copy > img { width: 104px; height: 102px; object-fit: cover; background: var(--emerald-dark); border-radius: 28px 28px 12px 12px; margin-bottom: 10px; }.booking-hero-copy > span { color: #8b6b2e; font-size: 12px; }.booking-hero h1 { color: var(--emerald-dark); font-size: clamp(36px, 5vw, 50px); line-height: 1.45; margin: 10px 0; }.booking-hero p { color: var(--muted); max-width: 500px; }.booking-hero .btn { margin-top: 10px; min-width: 260px; }.steps { display: grid; grid-template-columns: repeat(4, 1fr); }.steps div { text-align: center; position: relative; }.steps span { width: 45px; height: 45px; background: var(--emerald-light); color: var(--emerald); display: inline-grid; place-items: center; border-radius: 50%; font-weight: 700; }.steps p { font-size: 12px; }.steps i { position: absolute; height: 1px; background: #b6d0c5; width: calc(100% - 50px); top: 22px; inset-inline-start: calc(50% + 25px); }
.wizard { background: white; }.progress, .form-wrap { max-width: 640px; width: calc(100% - 40px); margin: auto; }.progress { padding-top: 25px; }.progress span { font-size: 11px; color: var(--muted); }.progress > div { height: 5px; background: #e4e7e5; border-radius: 4px; margin-top: 9px; overflow: hidden; }.progress i { display: block; height: 100%; background: var(--gold); border-radius: 4px; transition: width .3s; }.form-wrap { padding: 38px 0 130px; }.form-title { display: flex; gap: 15px; align-items: center; margin-bottom: 30px; }.form-title > span { width: 52px; height: 52px; display: grid; place-items: center; background: var(--emerald-light); color: var(--emerald); border-radius: 16px; }.form-title h1 { font-size: 25px; margin: 0; }.form-title p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }.field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }.field > span { font-size: 13px; font-weight: 600; }.field input { border: 1px solid var(--line); border-radius: 14px; height: 54px; padding: 0 15px; outline: 0; background: #fdfcf9; }.field input:focus { border-color: var(--emerald); box-shadow: 0 0 0 3px rgba(6,75,59,.08); }.privacy { display: flex; gap: 8px; align-items: center; color: var(--muted); font-size: 11px; }.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.choice-row { display: flex; gap: 8px; }.choice-row button { flex: 1; border: 1px solid var(--line); background: white; border-radius: 12px; height: 48px; }.choice-row button.chosen { background: var(--emerald-light); color: var(--emerald); border-color: #94baaa; font-weight: 700; }.date-card { border: 1px solid var(--line); border-radius: 20px; padding: 18px; margin-bottom: 22px; }.calendar-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }.calendar-head button { border: 0; background: none; }.week, .days { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; gap: 5px; }.week { color: var(--muted); font-size: 11px; margin-bottom: 7px; }.days button { border: 0; background: none; aspect-ratio: 1; border-radius: 50%; }.days button.selected { background: var(--emerald); color: white; }.days button:disabled { color: #ccc; text-decoration: line-through; }.sticky-action { position: fixed; z-index: 20; bottom: 0; left: 0; right: 0; background: rgba(255,255,255,.95); border-top: 1px solid var(--line); padding: 14px max(20px, calc((100vw - 640px)/2)); backdrop-filter: blur(15px); display: flex; align-items: center; gap: 14px; }.sticky-action .btn { flex: 1; }.sticky-action small { color: var(--muted); font-size: 10px; }
.review { max-width: 640px; }.review-head { text-align: center; margin-bottom: 28px; }.review-head > span { width: 60px; height: 60px; display: inline-grid; place-items: center; border-radius: 50%; background: var(--emerald-light); color: var(--emerald); }.review-head h1 { margin: 12px 0 4px; }.review-head p { color: var(--muted); margin: 0; }.summary { background: white; border: 1px solid var(--line); border-radius: 18px; padding: 18px; margin-bottom: 12px; }.summary > div { display: flex; justify-content: space-between; }.summary h2 { margin: 0 0 12px; font-size: 16px; }.summary button { border: 0; background: none; color: var(--emerald); font-size: 11px; }.summary p { display: flex; justify-content: space-between; margin: 8px 0; font-size: 12px; }.summary p span { color: var(--muted); }.warning { background: var(--gold-soft); color: #715926; margin-bottom: 20px; }.review > .btn { width: 100%; }
.auth-content, .success-content { width: min(440px, calc(100% - 40px)); margin: auto; padding: 70px 0; text-align: center; }.lock-badge { width: 70px; height: 70px; display: inline-grid; place-items: center; background: var(--emerald-light); color: var(--emerald); border-radius: 50%; }.auth-content h1 { margin: 20px 0 8px; }.auth-content > p { color: var(--muted); line-height: 1.8; }.auth-content .field { text-align: start; margin-top: 35px; }.auth-content .btn { width: 100%; }.auth-content > small { display: block; color: var(--muted); margin-top: 18px; font-size: 10px; }.success-page { background: #f5f3ed; }.success-content { padding-top: 100px; }.success-rings { width: 110px; height: 110px; border: 1px solid #b8d1c7; border-radius: 50%; display: inline-grid; place-items: center; box-shadow: 0 0 0 12px #e4eee9; }.success-rings span { width: 70px; height: 70px; border-radius: 50%; background: var(--emerald); color: white; display: grid; place-items: center; }.success-content > i { display: block; color: var(--emerald); font-size: 11px; font-style: normal; margin-top: 30px; }.success-content h1 { margin: 8px 0 15px; }.status { display: inline-flex; padding: 5px 9px; border-radius: 9px; font-size: 10px; font-weight: 700; }.status.requested { color: #89661d; background: #f7edce; }.status.accepted { color: var(--emerald); background: var(--emerald-light); }.status.confirmed { color: white; background: var(--emerald); }.status.cancelled { color: var(--danger); background: #f4e2df; }.success-content > p { color: var(--muted); line-height: 1.9; font-size: 13px; }.tracking { background: white; border: 1px solid var(--line); border-radius: 17px; padding: 16px; display: grid; grid-template-columns: 1fr auto; text-align: start; margin: 25px 0; }.tracking small { color: var(--muted); }.tracking b { display: block; }.tracking button { grid-row: 1/3; grid-column: 2; border: 0; color: var(--emerald); background: none; }.success-content > .btn { width: 100%; margin-bottom: 8px; }
.request-card { width: 100%; border: 1px solid var(--line); background: white; border-radius: 20px; padding: 20px; display: flex; align-items: center; text-align: start; margin-top: 15px; }.request-card > div { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }.request-card small { color: var(--muted); }.request-card b { font-size: 17px; }.request-card p { display: flex; gap: 5px; align-items: center; color: var(--muted); margin: 0; font-size: 12px; }.activity-help { margin-top: 20px; display: flex; gap: 12px; background: var(--emerald-light); padding: 18px; border-radius: 18px; color: var(--emerald); }.activity-help p { color: var(--muted); margin: 4px 0 0; font-size: 11px; }
.request-detail { max-width: 650px; }.request-state { text-align: center; padding: 25px; }.request-state h1 { font-size: 25px; }.request-state p { color: var(--muted); }.request-state > small { display: block; color: var(--muted); margin-bottom: 7px; }.timeline { margin-bottom: 25px; }.timeline > div { display: flex; gap: 14px; min-height: 70px; position: relative; }.timeline i { width: 25px; height: 25px; border-radius: 50%; border: 2px solid #d4d8d6; display: grid; place-items: center; background: var(--warm); z-index: 1; }.timeline > div:after { content: ""; position: absolute; top: 25px; inset-inline-start: 12px; width: 1px; height: 45px; background: #d4d8d6; }.timeline > div:last-child:after { display: none; }.timeline .done i { background: var(--emerald); color: white; border-color: var(--emerald); }.timeline .current i { border-color: var(--gold); box-shadow: inset 0 0 0 5px var(--gold-soft); }.timeline p { margin: 0; display: flex; flex-direction: column; }.timeline small { color: var(--muted); }.request-detail > .btn { width: 100%; margin-bottom: 8px; }.prototype-switch { width: 100%; border: 1px dashed #aaa; background: none; border-radius: 12px; padding: 10px; color: var(--muted); margin-top: 10px; display: flex; gap: 7px; justify-content: center; }
.account-head { background: var(--emerald); color: white; border-radius: 25px; padding: 24px; display: flex; gap: 15px; align-items: center; }.account-head > span { width: 60px; height: 60px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.14); font-size: 22px; }.account-head > div { flex: 1; }.account-head h1 { margin: 0; font-size: 20px; }.account-head p { margin: 3px 0; color: rgba(255,255,255,.65); font-size: 11px; }.menu-list { margin-top: 18px; background: white; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; }.menu-list button { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: white; padding: 17px; display: flex; align-items: center; gap: 14px; text-align: start; }.menu-list button:last-child { border: 0; }.menu-list span { flex: 1; }.menu-list b, .menu-list small { display: block; }.menu-list small { color: var(--muted); }.role-card { width: 100%; background: var(--gold-soft); border: 0; border-radius: 18px; padding: 18px; display: flex; align-items: center; gap: 14px; text-align: start; }.role-card > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: white; color: #8d6b2a; }.role-card div { flex: 1; }.role-card b, .role-card small { display: block; }.role-card small { color: var(--muted); }.support-row { display: flex; justify-content: center; gap: 15px; margin: 35px 0; }.support-row button { border: 0; background: none; font-size: 11px; color: var(--muted); }

.provider-page { min-height: 100vh; background: #f5f6f3; display: grid; grid-template-columns: 250px 1fr; }.provider-page aside { background: var(--emerald-dark); color: white; padding: 28px 20px; display: flex; flex-direction: column; }.provider-page aside .brand b, .provider-page aside .brand small { color: white; }.provider-page aside nav { margin-top: 50px; display: flex; flex-direction: column; gap: 6px; }.provider-page aside nav button, .provider-page aside > button { border: 0; background: transparent; color: rgba(255,255,255,.65); padding: 12px; border-radius: 12px; display: flex; align-items: center; gap: 10px; text-align: start; }.provider-page aside nav button.active { color: white; background: rgba(255,255,255,.1); }.provider-page aside nav i { margin-inline-start: auto; font-style: normal; background: var(--gold); color: var(--emerald-dark); width: 21px; height: 21px; border-radius: 50%; text-align: center; }.provider-page aside > button { margin-top: auto; }.provider-page main { padding: 40px; max-width: 1200px; width: 100%; margin: auto; }.provider-head { display: flex; justify-content: space-between; }.provider-head small { color: #9a7532; }.provider-head h1 { margin: 5px 0 25px; }.metric-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }.metric-grid > div { background: white; border: 1px solid var(--line); border-radius: 18px; padding: 20px; display: grid; grid-template-columns: 1fr auto; }.metric-grid b { grid-row: 1/3; grid-column: 2; font-size: 32px; color: var(--emerald); }.metric-grid span { color: var(--muted); font-size: 11px; }.provider-panel { background: white; padding: 0 22px 10px; border-radius: 22px; margin-top: 20px; }.table-head, .table-row { display: grid; grid-template-columns: 1.2fr 1fr 1.4fr .8fr 25px; gap: 12px; align-items: center; text-align: start; }.table-head { color: var(--muted); font-size: 10px; padding: 10px 12px; }.table-row { width: 100%; border: 0; border-top: 1px solid var(--line); background: transparent; padding: 16px 12px; }.table-row span:first-child, .table-row span:nth-child(2) { display: flex; flex-direction: column; }.table-row small { color: var(--muted); }.available { color: var(--emerald); }.conflict { color: var(--danger); }

.occasion-banner {
  min-height: 98px;
  margin: 14px 0 20px;
  padding: 18px 24px;
  border-radius: 24px;
  color: var(--theme-on-primary);
  background: var(--theme-banner);
  border: 1px solid color-mix(in srgb, var(--theme-decoration) 42%, transparent);
  box-shadow: 0 14px 40px color-mix(in srgb, var(--theme-primary-deep) 18%, transparent);
  display: flex;
  align-items: center;
  gap: 16px;
  position: relative;
  overflow: hidden;
}
.occasion-banner:after { content: ""; position: absolute; inset: 0; opacity: .14; background: repeating-radial-gradient(circle at 90% 50%, transparent 0 18px, var(--theme-decoration) 19px 20px); }
.occasion-banner > * { position: relative; z-index: 1; }
.occasion-symbol { width: 52px; height: 52px; flex: none; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--theme-decoration) 65%, transparent); border-radius: 18px 18px 8px 8px; color: var(--theme-decoration); background: rgba(255,255,255,.06); }
.occasion-banner div { display: flex; flex-direction: column; }
.occasion-banner small { color: var(--theme-decoration); }
.occasion-banner b { font-size: 18px; margin-top: 2px; }
.occasion-banner p { margin: 2px 0 0; color: rgba(255,255,255,.7); font-size: 12px; }
.occasion-ornament { margin-inline-start: auto; color: var(--theme-decoration); font-size: 30px; }
.module-occasion { width: min(900px, calc(100% - 40px)); margin: 14px auto -2px; }

.theme-switcher { padding: 14px; background: var(--white); border: 1px solid var(--line); border-radius: 20px; display: flex; align-items: center; gap: 18px; box-shadow: var(--shadow); }
.switcher-label { display: flex; align-items: center; gap: 7px; font-weight: 700; white-space: nowrap; }
.theme-options { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; flex: 1; background: var(--theme-soft); padding: 4px; border-radius: 14px; }
.theme-options button { min-height: 40px; border: 0; background: transparent; border-radius: 10px; font-size: 12px; cursor: pointer; }
.theme-options button.active { color: var(--theme-on-primary); background: var(--theme-primary); box-shadow: 0 5px 15px color-mix(in srgb, var(--theme-primary) 22%, transparent); font-weight: 700; }
.theme-switcher.compact { width: 390px; padding: 9px; border-radius: 17px; }
.theme-switcher.compact .switcher-label span { font-size: 11px; }
.theme-switcher.compact .theme-options button { min-height: 34px; font-size: 10px; }

.admin-role { margin-top: 10px; background: var(--emerald-light); }
.admin-page { min-height: 100vh; display: grid; grid-template-columns: 270px 1fr; background: var(--warm); }
.admin-page aside { background: var(--emerald-dark); color: white; padding: 28px 20px; display: flex; flex-direction: column; }
.admin-page aside .brand b, .admin-page aside .brand small { color: white; }
.admin-page aside nav { margin-top: 50px; display: flex; flex-direction: column; gap: 7px; }
.admin-page aside nav button, .admin-page aside > button { border: 0; background: transparent; color: rgba(255,255,255,.66); padding: 13px; border-radius: 13px; display: flex; gap: 10px; align-items: center; text-align: start; }
.admin-page aside nav button.active { color: white; background: rgba(255,255,255,.1); }
.admin-page aside > button { margin-top: auto; }
.admin-page main { width: min(1100px, 100%); margin: auto; padding: 42px; }
.admin-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.admin-heading small { color: var(--gold); font-weight: 700; }
.admin-heading h1 { margin: 5px 0; font-size: 30px; }
.admin-heading p, .admin-section-head p { margin: 0; color: var(--muted); font-size: 12px; }
.theme-preview-card { margin: 18px 0 32px; min-height: 220px; padding: 30px; border-radius: 28px; color: white; background: var(--theme-banner); display: grid; grid-template-columns: 1fr 180px; align-items: center; overflow: hidden; position: relative; }
.theme-preview-card:after { content: ""; width: 320px; height: 320px; border: 1px solid color-mix(in srgb, var(--theme-decoration) 35%, transparent); border-radius: 50%; position: absolute; left: -90px; bottom: -170px; }
.theme-preview-card > * { position: relative; z-index: 1; }
.theme-preview-card h2 { font-size: 28px; margin: 14px 0 4px; }
.theme-preview-card p { color: rgba(255,255,255,.72); }
.theme-preview-card small { color: rgba(255,255,255,.6); }
.preview-icon { justify-self: end; width: 145px; height: 160px; border-radius: 44px 44px 24px 24px; background: #faf8f3; border: 1px solid var(--theme-decoration); display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--theme-primary-deep); box-shadow: 0 18px 40px rgba(0,0,0,.18); }
.preview-icon.mourning { background: #111715; color: #edeae3; }
.preview-icon.celebration { background: #fffaf0; }
.preview-icon img { width: 112px; height: 108px; object-fit: cover; border-radius: 25px; }
.preview-icon.mourning img { filter: saturate(.45) brightness(.8); }
.preview-icon span { font-size: 9px; margin-top: -8px; }
.status.active, .status.scheduled, .status.draft { display: inline-flex; }
.status.active { background: var(--emerald-light); color: var(--emerald); }
.status.scheduled { background: #f4ead3; color: #806023; }
.status.draft { background: #ececeb; color: #646d69; }
.admin-section-head { display: flex; align-items: center; justify-content: space-between; }
.admin-section-head h2 { margin: 0; }
.filter-button { border: 1px solid var(--line); background: var(--white); min-height: 42px; border-radius: 12px; padding: 0 14px; display: flex; align-items: center; gap: 7px; }
.occasion-list { display: flex; flex-direction: column; gap: 10px; margin-top: 15px; }
.occasion-list article { background: var(--white); border: 1px solid var(--line); border-radius: 20px; padding: 15px; display: grid; grid-template-columns: 72px 1fr auto; align-items: center; gap: 16px; }
.occasion-date { height: 70px; border-radius: 16px; background: var(--emerald-light); color: var(--emerald); display: grid; grid-template-columns: 1fr 1fr; place-items: center; }
.occasion-date svg { grid-column: 1/3; }
.occasion-date small { font-size: 8px; }
.occasion-list h3 { margin: 7px 0 1px; }
.occasion-list p { color: var(--muted); margin: 0; font-size: 11px; }
.occasion-actions { display: flex; gap: 7px; }
.occasion-actions button { width: 40px; height: 40px; border: 1px solid var(--line); background: var(--white); border-radius: 12px; display: grid; place-items: center; }
.scheduling-note { display: flex; gap: 13px; margin-top: 20px; padding: 18px; border-radius: 18px; color: var(--emerald); background: var(--emerald-light); }
.scheduling-note p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }

.hy[data-theme="mourning"] .booking-module,
.hy[data-theme="mourning"] .wizard,
.hy[data-theme="mourning"] .provider-page,
.hy[data-theme="mourning"] .success-page { background: var(--theme-background); }
.hy[data-theme="mourning"] .booking-hero { background: #121413; }
.hy[data-theme="mourning"] .booking-shrine { filter: saturate(.25) brightness(.48) contrast(1.12); }
.hy[data-theme="mourning"] .editorial-hero { filter: saturate(.38) brightness(.72); }
.hy[data-theme="mourning"] .editorial-hero,
.hy[data-theme="mourning"] .profile-cover { background-color: #090a0a; }
.hy[data-theme="mourning"] .martyr-card,
.hy[data-theme="mourning"] .booking-card { background: linear-gradient(145deg, #211617, #151817); }
.hy[data-theme="mourning"] .service-card { border: 1px solid rgba(183,58,64,.2); color: var(--theme-text); box-shadow: inset 0 0 0 1px rgba(255,255,255,.02); }
.hy[data-theme="mourning"] .service-copy i { color: #dfb8b9; background: rgba(120,25,30,.28); }
.hy[data-theme="mourning"] .service-copy em,
.hy[data-theme="mourning"] .section-title button,
.hy[data-theme="mourning"] .featured-profile span { color: #d65a60; }
.hy[data-theme="mourning"] .story-card,
.hy[data-theme="mourning"] .quick button,
.hy[data-theme="mourning"] .featured-profile,
.hy[data-theme="mourning"] .profile-list > button,
.hy[data-theme="mourning"] .request-card,
.hy[data-theme="mourning"] .summary,
.hy[data-theme="mourning"] .date-card,
.hy[data-theme="mourning"] .menu-list,
.hy[data-theme="mourning"] .menu-list button,
.hy[data-theme="mourning"] .provider-panel,
.hy[data-theme="mourning"] .metric-grid > div,
.hy[data-theme="mourning"] .search-field,
.hy[data-theme="mourning"] .real-search,
.hy[data-theme="mourning"] .search-sheet { background: var(--theme-surface); color: var(--theme-text); border-color: var(--theme-line); }
.hy[data-theme="mourning"] .bottom-nav { background: rgba(13,15,14,.96); border-color: rgba(183,58,64,.22); box-shadow: 0 18px 55px rgba(0,0,0,.45); }
.hy[data-theme="mourning"] .bottom-nav button { color: #8f8987; }
.hy[data-theme="mourning"] .bottom-nav button.active { color: #f3e7e5; background: #35191b; }
.hy[data-theme="mourning"] .module-bar { background: rgba(9,10,10,.95); border-color: var(--theme-line); }
.hy[data-theme="mourning"] .module-bar b { color: #f0ede7; }
.hy[data-theme="mourning"] .icon-btn { background: #171a18; color: #e8e1dc; border-color: #403536; }
.hy[data-theme="mourning"] .field input { background: #121413; color: var(--theme-text); border-color: var(--theme-line); }
.hy[data-theme="mourning"] .field input:focus { border-color: #b73a40; box-shadow: 0 0 0 3px rgba(183,58,64,.14); }
.hy[data-theme="mourning"] .choice-row button,
.hy[data-theme="mourning"] .filter-chips button { background: var(--theme-surface); color: var(--theme-text); border-color: var(--theme-line); }
.hy[data-theme="mourning"] .choice-row button.chosen,
.hy[data-theme="mourning"] .filter-chips button.selected,
.hy[data-theme="mourning"] .days button.selected { background: #78191e; color: white; border-color: #a42f35; }
.hy[data-theme="mourning"] .account-head,
.hy[data-theme="mourning"] .install-card { background: linear-gradient(125deg, #090a0a, #521317); }
.hy[data-theme="mourning"] .role-card { background: #241719; color: var(--theme-text); border: 1px solid rgba(183,58,64,.2); }
.hy[data-theme="mourning"] .info-card,
.hy[data-theme="mourning"] .safety-note,
.hy[data-theme="mourning"] .activity-help { background: #251719; color: #db676c; }
.hy[data-theme="mourning"] .occasion-banner { border-color: rgba(183,58,64,.44); box-shadow: 0 16px 50px rgba(0,0,0,.42), inset 0 0 45px rgba(120,25,30,.1); }
.hy[data-theme="mourning"] .occasion-symbol { color: #d65a60; border-color: rgba(214,90,96,.45); background: rgba(120,25,30,.18); }
.hy[data-theme="mourning"] .occasion-banner small,
.hy[data-theme="mourning"] .occasion-ornament { color: #d65a60; }
.hy[data-theme="mourning"] .theme-switcher { background: #151817; border-color: #3c3031; }
.hy[data-theme="mourning"] .theme-options { background: #211718; }
.hy[data-theme="mourning"] .theme-options button.active { background: #78191e; }
.hy[data-theme="celebration"] .hero-pattern { animation: celebrationShimmer 7s ease-in-out infinite; }
@keyframes celebrationShimmer { 0%,100% { opacity: .09; transform: translateX(0); } 50% { opacity: .2; transform: translateX(14px); } }

.splash-screen {
  position: fixed;
  z-index: 1000;
  inset: 0;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #faf8f3;
  background:
    radial-gradient(circle at 50% 38%, rgba(198,160,82,.14), transparent 30%),
    linear-gradient(145deg, #031d18 0%, #07392f 50%, #04271f 100%);
  opacity: 1;
  visibility: visible;
  transition: opacity .55s ease, visibility .55s ease;
}
.splash-screen.is-exiting { opacity: 0; visibility: hidden; pointer-events: none; }
.splash-aura {
  position: absolute;
  width: min(82vw, 620px);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(198,160,82,.12);
  box-shadow:
    0 0 0 70px rgba(198,160,82,.025),
    0 0 0 140px rgba(198,160,82,.018);
}
.splash-content {
  width: min(92vw, 480px);
  min-height: min(92vh, 660px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
}
.splash-static-logo {
  position: absolute;
  width: min(45vw, 210px);
  max-height: 230px;
  opacity: 0;
  object-fit: contain;
  animation: splashFallback 1s ease .25s both;
}
.splash-lottie {
  width: min(88vw, 450px);
  height: min(70vh, 535px);
  position: relative;
  z-index: 2;
}
.splash-lottie svg { overflow: visible; filter: drop-shadow(0 18px 40px rgba(0,0,0,.24)); }
.splash-copy {
  min-height: 52px;
  margin-top: -40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 3;
  animation: splashCopyIn .8s ease 2.7s both;
}
.splash-copy span { color: #e4bd6d; font-size: 20px; font-weight: 800; letter-spacing: -.4px; }
.splash-copy small { color: rgba(250,248,243,.6); font-size: 11px; margin-top: 3px; }
.splash-progress {
  width: 86px;
  height: 2px;
  margin-top: 20px;
  overflow: hidden;
  border-radius: 2px;
  background: rgba(255,255,255,.1);
}
.splash-progress span {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, #c6a052, transparent);
  animation: splashProgress 1.4s ease-in-out infinite;
}
.splash-ornament {
  position: absolute;
  width: min(58vw, 360px);
  height: min(58vw, 360px);
  opacity: .12;
  border: 1px solid #c6a052;
  transform: rotate(45deg);
}
.splash-ornament:before, .splash-ornament:after {
  content: "";
  position: absolute;
  inset: 12%;
  border: 1px solid #c6a052;
}
.splash-ornament:after { inset: 27%; }
.splash-ornament-top { top: -250px; right: -130px; }
.splash-ornament-bottom { bottom: -260px; left: -140px; }
@keyframes splashFallback { 0% { opacity: 0; transform: scale(.92); } 100% { opacity: .12; transform: scale(1); } }
@keyframes splashCopyIn { 0% { opacity: 0; transform: translateY(8px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes splashProgress { 0% { transform: translateX(100%); } 100% { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { *, *:before, *:after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; } }
@media (prefers-reduced-motion: reduce) {
  .splash-static-logo { opacity: 1; position: relative; }
  .splash-lottie { display: none; }
  .splash-copy { margin-top: 24px; opacity: 1; }
  .splash-progress { display: none; }
}
.overlay { position: fixed; z-index: 100; inset: 0; display: flex; align-items: flex-start; justify-content: center; padding-top: 90px; }.overlay-bg { position: absolute; inset: 0; border: 0; background: rgba(3,31,25,.55); backdrop-filter: blur(5px); }.search-sheet { z-index: 1; background: var(--warm); width: min(620px, calc(100% - 24px)); padding: 25px; border-radius: 28px; box-shadow: var(--shadow); }.sheet-handle { display: none; }.sheet-head { display: flex; align-items: center; justify-content: space-between; }.sheet-head h2 { margin: 0 0 20px; }.search-caption { display: block; color: var(--muted); margin: 22px 0 8px; }.search-result { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: transparent; display: flex; align-items: center; gap: 12px; padding: 12px 0; text-align: start; }.search-result > span { width: 44px; height: 44px; background: var(--emerald-light); color: var(--emerald); border-radius: 13px; display: grid; place-items: center; }.search-result > div { flex: 1; }.search-result b, .search-result small { display: block; }.search-result small { color: var(--muted); }.privacy-search { font-size: 10px; color: var(--muted); display: flex; gap: 6px; align-items: center; margin-top: 20px; }

@media (max-width: 700px) {
  .has-shell { padding-top: 64px; padding-bottom: 92px; }.topbar { height: 64px; padding: 0 8px; gap: 4px; }.brand small { display: none; }.header-brand { height: 58px; }.header-brand img { width: 35px; height: 47px; }.header-brand span { display: none; }.header-theme-switcher { gap: 1px; padding: 2px; margin-inline-start: auto; }.header-theme-switcher button { width: 29px; min-height: 30px; padding: 0; }.header-theme-switcher button span { display: none; }.language-switcher { gap: 1px; padding: 2px; }.language-switcher button { width: 25px; height: 30px; font-size: 9px; }.header-actions { gap: 3px; }.header-actions .icon-btn { width: 31px; height: 31px; }.header-actions .avatar-btn { display: none; }
  .page, .module-body { width: calc(100% - 28px); }.compact-page { padding-top: 25px; }
  .greeting { padding-top: 18px; }.hero { min-height: 555px; display: block; border-radius: 26px; }.hero-content { padding: 30px 26px 220px; }.hero-brand-mark { width: 82px; height: 80px; margin-bottom: 8px; }.hero h1 { font-size: 32px; }.hero-photo { position: absolute; right: 20px; left: 20px; bottom: 18px; margin: 0; height: 190px; border-radius: 100px 100px 18px 18px; background-position: center 42%; }.hero-photo:after { border-radius: inherit; }.hero-photo span { display: none; }
  .services-grid, .stories-row { grid-template-columns: 1fr; }.service-card { min-height: 200px; grid-template-columns: 90px 1fr; padding: 20px; gap: 16px; }.service-art { width: 86px; height: 110px; }.service-copy b { font-size: 20px; }.stories-row { display: flex; overflow-x: auto; margin-inline-end: -14px; padding-inline-end: 14px; scrollbar-width: none; }.story-card { min-width: 310px; grid-template-columns: 105px 1fr; }.story-visual { min-height: 155px; }.story-card p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .quick > div:last-child { grid-template-columns: 1fr; }.future-card { align-items: flex-start; }.future-card button { display: none; } footer { flex-wrap: wrap; gap: 10px; }footer p { margin-inline-start: 0; flex: 1; }footer > small { width: 100%; font-size: 10px; }
  .install-card { align-items: flex-start; flex-wrap: wrap; }.install-card .btn { margin-inline-start: 74px; }.page-heading h1 { font-size: 30px; }
  .module-page { padding-top: 62px; }.module-bar { height: 62px; padding: 0 14px; }.editorial-hero { min-height: 570px; padding: 38px 24px; display: block; }.editorial-hero h1 { font-size: 40px; }.portrait-frame { position: absolute; bottom: -40px; inset-inline-end: 25px; width: 190px; height: 240px; opacity: .72; }.editorial .module-body { padding-top: 65px; }
  .featured-profile { grid-template-columns: 1fr; gap: 15px; }.profile-art { min-height: 180px; }.featured-profile h2 { font-size: 22px; }.collection-grid { grid-template-columns: 1fr; }
  .result-head h1 { font-size: 20px; }.profile-list p { display: none; }.mini-portrait { width: 55px; height: 64px; }
  .profile-cover { min-height: 520px; padding: 28px 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }.large-portrait { width: 150px; height: 190px; }.profile-cover h1 { font-size: 28px; }.reading-page article { font-size: 16px; }.story-cover { height: 310px; }.story-detail article h1 { font-size: 32px; }
  .booking-hero { min-height: 680px; display: block; position: relative; }.booking-shrine { min-height: 260px; background: linear-gradient(0deg, #e7eee8 0%, transparent 45%), linear-gradient(0deg, rgba(7,57,47,.3), transparent 60%), var(--hy-photo-booking-shrine) center/cover; }.booking-shrine:after { inset: 16px; border-radius: 120px 120px 16px 16px; }.booking-shrine span { display: none; }.booking-hero-copy { padding: 20px 24px 40px; text-align: center; align-items: center; }.booking-hero-copy > img { display: none; }.booking-hero h1 { font-size: 34px; }.booking-hero p { margin-top: 0; }.steps { grid-template-columns: 1fr 1fr; gap: 18px; }.steps i { display: none; }.sticky-action { padding: 12px 20px; }.sticky-action small { display: none; }.field-row { grid-template-columns: 1fr; gap: 0; }.form-wrap { padding-top: 25px; }.choice-row { gap: 5px; }
  .success-content { padding-top: 65px; }.request-state { padding: 15px 0; }.account-head { flex-wrap: wrap; }.account-head .btn { width: 100%; }.support-row { gap: 4px; }
  .provider-page { display: block; }.provider-page aside { padding: 14px 18px; flex-direction: row; align-items: center; }.provider-page aside nav { display: none; }.provider-page aside > button { margin: 0; margin-inline-end: auto; }.provider-page main { padding: 22px 14px; }.provider-head h1 { font-size: 22px; }.metric-grid { grid-template-columns: 1fr; }.metric-grid > div { min-height: 90px; }.provider-panel { padding: 0 14px 8px; overflow: hidden; }.table-head { display: none; }.table-row { grid-template-columns: 1fr auto; }.table-row > span:nth-child(2), .table-row > span:nth-child(3), .table-row > span:nth-child(4) { display: none; }
  .overlay { align-items: flex-end; padding: 0; }.search-sheet { width: 100%; border-radius: 28px 28px 0 0; padding-bottom: 38px; }.sheet-handle { display: block; width: 40px; height: 4px; background: #c8cbc9; border-radius: 3px; margin: -10px auto 18px; }
  .occasion-banner { padding: 14px; min-height: 88px; border-radius: 20px; }.occasion-symbol { width: 44px; height: 44px; }.occasion-banner b { font-size: 15px; }.occasion-banner p { font-size: 10px; }.occasion-ornament { display: none; }.module-occasion { width: calc(100% - 28px); }
  .splash-content { min-height: 88vh; }.splash-lottie { width: min(96vw, 410px); height: min(66vh, 500px); }.splash-copy { margin-top: -30px; }
  .theme-switcher.compact { width: 100%; }.theme-switcher.compact .switcher-label span { display: none; }
  .admin-page { display: block; }.admin-page aside { padding: 13px 16px; flex-direction: row; align-items: center; }.admin-page aside nav { display: none; }.admin-page aside > button { margin: 0; margin-inline-end: auto; }.admin-page main { padding: 24px 14px 90px; }.admin-heading { align-items: flex-start; gap: 12px; }.admin-heading h1 { font-size: 23px; }.admin-heading p { display: none; }.admin-heading .btn { padding: 0 14px; font-size: 11px; }.theme-switcher { display: block; }.switcher-label { margin-bottom: 10px; }.theme-preview-card { min-height: 310px; padding: 24px; grid-template-columns: 1fr 105px; }.theme-preview-card h2 { font-size: 22px; }.theme-preview-card small { display: block; }.preview-icon { width: 100px; height: 125px; }.preview-icon img { width: 75px; height: 88px; }.occasion-list article { grid-template-columns: 58px 1fr auto; gap: 10px; }.occasion-date { height: 62px; }.occasion-actions button:first-child { display: none; }
}

@media (min-width: 1100px) {
  .bottom-nav { bottom: 22px; }
}

/* Rich spiritual imagery and iconography */
.home-page:before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background:
    radial-gradient(circle at 8% 20%, rgba(198,160,82,.16), transparent 20%),
    radial-gradient(circle at 94% 60%, rgba(6,75,59,.1), transparent 23%);
  z-index: -1;
}
.trust-strip {
  margin: 18px 0 4px;
  padding: 15px 22px;
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(6,75,59,.1);
  border-radius: 20px;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  box-shadow: 0 10px 30px rgba(7,57,47,.05);
}
.trust-strip > div {
  min-height: 54px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-inline-end: 1px solid var(--line);
}
.trust-strip > div:last-child { border-inline-end: 0; }
.trust-strip > div > span {
  width: 42px;
  height: 42px;
  flex: none;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: var(--emerald-light);
  color: var(--emerald);
}
.trust-strip p { margin: 0; }
.trust-strip b, .trust-strip small { display: block; }
.trust-strip b { font-size: 13px; }
.trust-strip small { color: var(--muted); font-size: 10px; margin-top: 2px; }

.service-art {
  overflow: hidden;
  isolation: isolate;
  background-position: center;
  background-size: cover;
}
.service-art:before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(7,57,47,.05), rgba(7,57,47,.72));
}
.service-art > span {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  color: white;
  background: rgba(6,75,59,.72);
  border: 1px solid rgba(255,255,255,.38);
  backdrop-filter: blur(8px);
}
.martyr-art {
  background-image: var(--hy-photo-martyr-art);
}
.ceremony-art {
  background-image: var(--hy-photo-ceremony-art);
}
.booking-card .service-art { background-color: #9b7138; }
.service-card {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
}
.service-card:hover .service-art { transform: translateY(-3px) scale(1.015); }
.service-art { transition: transform .35s ease; }

.arch-portrait {
  background:
    linear-gradient(180deg, transparent 25%, rgba(7,57,47,.78)),
    var(--hy-photo-arch-portrait) center 38%/cover;
}
.paper-art {
  background:
    linear-gradient(180deg, rgba(7,57,47,.08), rgba(7,57,47,.65)),
    var(--hy-photo-paper-art) center/cover;
  color: white;
}
.paper-art > span {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.45);
  backdrop-filter: blur(8px);
}
.story-card { transition: transform .25s ease, box-shadow .25s ease; }
.story-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }

.editorial-hero {
  background:
    linear-gradient(90deg, var(--emerald-dark) 0%, rgba(7,57,47,.96) 52%, rgba(7,57,47,.7) 100%),
    var(--hy-photo-editorial-hero) center/cover;
}
.portrait-placeholder {
  background:
    linear-gradient(180deg, transparent 30%, rgba(7,57,47,.7)),
    var(--hy-photo-arch-portrait) center 38%/cover;
}
.profile-art {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(7,57,47,.02), rgba(7,57,47,.72)),
    var(--hy-photo-martyr-art) center/cover;
}
.profile-art > span {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  color: white;
  background: rgba(6,75,59,.72);
  border: 1px solid rgba(255,255,255,.4);
  backdrop-filter: blur(8px);
}
.collection-grid button { position: relative; overflow: hidden; transition: transform .25s ease; }
.collection-grid button:hover { transform: translateY(-3px); }
.collection-grid button:after {
  content: "";
  position: absolute;
  width: 110px;
  height: 110px;
  border: 1px solid rgba(6,75,59,.1);
  border-radius: 50%;
  left: -35px;
  bottom: -55px;
}
.collection-grid button i {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: var(--emerald);
  background: rgba(255,255,255,.7);
  font-style: normal;
  margin-bottom: 14px;
}
.quick button { transition: transform .2s ease, border-color .2s ease; }
.quick button:hover { transform: translateY(-2px); border-color: rgba(6,75,59,.28); }
.quick button > span { box-shadow: inset 0 0 0 1px rgba(6,75,59,.06); }
.icon-btn { transition: color .2s ease, border-color .2s ease, background .2s ease; }
.icon-btn:hover { color: var(--emerald); border-color: rgba(6,75,59,.28); background: var(--emerald-light); }

.booking-hero-copy:before {
  content: "";
  position: absolute;
  width: 340px;
  height: 340px;
  border: 1px solid rgba(6,75,59,.06);
  transform: rotate(45deg);
  pointer-events: none;
}
.booking-hero-copy { position: relative; overflow: hidden; }
.booking-hero-copy > * { position: relative; z-index: 1; }
.story-cover {
  background:
    linear-gradient(rgba(7,57,47,.12),rgba(7,57,47,.82)),
    var(--hy-photo-arch-portrait) center 42%/cover;
}

@media (max-width: 700px) {
  .trust-strip {
    padding: 10px;
    gap: 6px;
  }
  .trust-strip > div {
    min-height: 72px;
    padding: 4px;
    border-inline-end: 0;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    gap: 5px;
  }
  .trust-strip > div > span { width: 34px; height: 34px; border-radius: 11px; }
  .trust-strip > div > span svg { width: 18px; height: 18px; }
  .trust-strip b { font-size: 10px; }
  .trust-strip small { display: none; }
  .editorial-hero {
    background:
      linear-gradient(180deg, rgba(7,57,47,.93), rgba(7,57,47,.77)),
      var(--hy-photo-editorial-hero) center/cover;
  }
}

/* Components added for the real application (not present in the static prototype), in the prototype's visual language. */

.hy { font-family: "Vazirmatn", Tahoma, sans-serif; }
.hy *, .hy *:before, .hy *:after { box-sizing: border-box; }
.hy :focus-visible { outline: 3px solid color-mix(in srgb, var(--gold) 70%, transparent); outline-offset: 2px; }
.hy button { cursor: pointer; }
.hy button:disabled { cursor: not-allowed; opacity: .55; }
.hy[dir="ltr"] .icon-dir { transform: scaleX(-1); }
.hy .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.hy .ltr { direction: ltr; unicode-bidi: isolate; }
.hy[dir="ltr"] .service-card, .hy[dir="ltr"] .story-card, .hy[dir="ltr"] .featured-profile, .hy[dir="ltr"] .request-card, .hy[dir="ltr"] .table-row { text-align: start; }
a.btn { text-decoration: none; }

/* Form controls: errors, selects, text areas, hints */
.field select, .field textarea { border: 1px solid var(--line); border-radius: 14px; padding: 12px 15px; outline: 0; background: #fdfcf9; font: inherit; color: inherit; }
.field select { height: 54px; }
.field textarea { min-height: 96px; resize: vertical; line-height: 1.8; }
.field select:focus, .field textarea:focus { border-color: var(--emerald); box-shadow: 0 0 0 3px rgba(6,75,59,.08); }
.field .hint { font-size: 11px; color: var(--muted); font-weight: 400; }
.field .error { font-size: 11px; color: var(--danger); font-weight: 600; }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color: var(--danger); box-shadow: 0 0 0 3px rgba(163,69,62,.08); }
.field .optional { font-weight: 400; color: var(--muted); font-size: 11px; }
.hy[data-theme="mourning"] .field select, .hy[data-theme="mourning"] .field textarea { background: #121413; color: var(--theme-text); border-color: var(--theme-line); }
.choice-row button[aria-pressed="true"] { background: var(--emerald-light); color: var(--emerald); border-color: #94baaa; font-weight: 700; }
.checkbox { display: flex; gap: 10px; align-items: flex-start; font-size: 12px; color: var(--muted); line-height: 1.8; }
.checkbox input { margin-top: 5px; accent-color: var(--emerald); }

/* Alerts, loading and empty states */
.alert { border-radius: 16px; padding: 14px 16px; display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.8; margin: 14px 0; }
.alert b { display: block; }
.alert-error { background: #f5e5e2; color: var(--danger); }
.alert-success { background: var(--emerald-light); color: var(--emerald); }
.alert-info { background: var(--gold-soft); color: #715926; }
.hy[data-theme="mourning"] .alert-error { background: #2a1416; color: #e7868a; }
.hy[data-theme="mourning"] .alert-info { background: #241719; color: #d9b98a; }
.loading { display: grid; place-items: center; min-height: 40vh; color: var(--muted); gap: 14px; }
.spinner { width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--emerald-light); border-top-color: var(--emerald); animation: hySpin .9s linear infinite; }
@keyframes hySpin { to { transform: rotate(360deg); } }
.skeleton { background: linear-gradient(90deg, var(--line) 0%, color-mix(in srgb, var(--line) 40%, transparent) 50%, var(--line) 100%); background-size: 200% 100%; animation: hyShimmer 1.4s ease-in-out infinite; border-radius: 14px; min-height: 18px; }
@keyframes hyShimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.empty-state { text-align: center; padding: 42px 20px; border: 1px dashed var(--line); border-radius: 22px; color: var(--muted); margin-top: 18px; }
.empty-state > span { width: 56px; height: 56px; display: inline-grid; place-items: center; border-radius: 50%; background: var(--emerald-light); color: var(--emerald); margin-bottom: 10px; }
.empty-state b { display: block; color: var(--ink); margin-bottom: 4px; }
.empty-state .btn { margin-top: 16px; }

/* Status badges for every lifecycle state */
.status.rejected { color: var(--danger); background: #f4e2df; }
.status.completed { color: #3b5b8a; background: #e3ebf5; }
.status.in_review { color: #89661d; background: #f7edce; }
.status.published { color: white; background: var(--emerald); }
.status.archived { color: #646d69; background: #ececeb; }

/* Header additions */
.notify { position: relative; }
.notify b.count { position: absolute; top: -4px; inset-inline-end: -4px; min-width: 18px; height: 18px; border-radius: 9px; background: var(--gold); color: var(--emerald-dark); font-size: 10px; display: grid; place-items: center; padding: 0 4px; }
.avatar-btn.guest { background: var(--white); color: var(--emerald); border: 1px solid var(--line); }

/* Notification sheet (reuses the search sheet frame) */
.notice-list { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; max-height: 60vh; overflow-y: auto; }
.notice { width: 100%; border: 1px solid var(--line); background: var(--white); border-radius: 16px; padding: 12px 14px; display: flex; gap: 12px; align-items: flex-start; text-align: start; }
.notice > span { width: 40px; height: 40px; flex: none; border-radius: 13px; display: grid; place-items: center; background: var(--emerald-light); color: var(--emerald); }
.notice div { flex: 1; }
.notice b, .notice small { display: block; }
.notice small { color: var(--muted); margin-top: 3px; font-size: 11px; }
.notice.unread { border-color: color-mix(in srgb, var(--gold) 55%, var(--line)); box-shadow: inset 3px 0 0 var(--gold); }
.hy[dir="rtl"] .notice.unread { box-shadow: inset -3px 0 0 var(--gold); }

/* Module slot hosted by the shell */
.module-slot { min-height: 100vh; }
.module-slot-state { min-height: 60vh; display: grid; place-items: center; text-align: center; padding: 30px 20px; }
.module-slot-state > div { max-width: 420px; }
.module-slot-state h1 { font-size: 22px; margin: 14px 0 6px; }
.module-slot-state p { color: var(--muted); line-height: 1.9; }
.activity-slot .module-page { min-height: auto; padding-top: 0; background: transparent; }
.activity-slot .module-bar { display: none; }

/* Timeline details */
.timeline small.note { display: block; color: var(--ink); background: var(--emerald-light); border-radius: 10px; padding: 6px 10px; margin-top: 6px; }
.timeline .rejected i, .timeline .cancelled i { background: var(--danger); border-color: var(--danger); color: white; }

/* Coordination and editorial workspaces (desktop-first, responsive) */
.workspace-toolbar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 18px 0; }
.workspace-toolbar .filter-chips { padding: 0; flex: 1; }
.detail-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; align-items: start; margin-top: 20px; }
.panel { background: var(--white); border: 1px solid var(--line); border-radius: 22px; padding: 20px; }
.panel h2 { margin: 0 0 14px; font-size: 17px; }
.panel .btn { width: 100%; margin-top: 8px; }
.panel .field { margin-bottom: 12px; }
.kv { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; font-size: 13px; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; font-weight: 600; }
.hy[data-theme="mourning"] .panel, .hy[data-theme="mourning"] .notice { background: var(--theme-surface); color: var(--theme-text); border-color: var(--theme-line); }
.list-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.list-table th { color: var(--muted); font-weight: 500; font-size: 11px; text-align: start; padding: 10px 12px; }
.list-table td { border-top: 1px solid var(--line); padding: 14px 12px; vertical-align: top; }
.list-table td small { display: block; color: var(--muted); }
.list-table tr.clickable { cursor: pointer; }
.list-table tr.clickable:hover td { background: color-mix(in srgb, var(--emerald-light) 45%, transparent); }
.pager { display: flex; justify-content: space-between; align-items: center; margin-top: 14px; color: var(--muted); font-size: 12px; }
.chip-list { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { font-size: 11px; padding: 4px 9px; border-radius: 10px; background: var(--emerald-light); color: var(--emerald); }

/* Reading pages: paragraphs from plain text */
.reading-page article p { white-space: pre-line; }
.sources li { border-bottom: 1px solid var(--line); padding: 8px 0; list-style: none; }
.sources ul { padding: 0; margin: 0; }
.sources a { color: var(--emerald); word-break: break-word; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 18px 0; }
.gallery figure { margin: 0; }
.gallery img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: 16px; }
.gallery figcaption { font-size: 11px; color: var(--muted); margin-top: 4px; }
.large-portrait img, .mini-portrait img, .profile-art img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.large-portrait, .mini-portrait { overflow: hidden; }

@media (max-width: 700px) {
  .detail-grid { grid-template-columns: 1fr; }
  .list-table thead { display: none; }
  .list-table tr { display: block; border-top: 1px solid var(--line); padding: 10px 0; }
  .list-table td { display: block; border: 0; padding: 3px 4px; }
}

@media (prefers-reduced-motion: reduce) {
  .spinner, .skeleton { animation: none; }
}

/* Links styled as menu rows (e.g. the identity provider's account page) */
.menu-list a.menu-link { width: 100%; border-bottom: 1px solid var(--line); background: var(--white); padding: 17px; display: flex; align-items: center; gap: 14px; text-align: start; color: inherit; text-decoration: none; }
.menu-list a.menu-link span { flex: 1; }
.menu-list a.menu-link b, .menu-list a.menu-link small { display: block; }
.menu-list a.menu-link small { color: var(--muted); }
.hy[data-theme="mourning"] .menu-list a.menu-link { background: var(--theme-surface); border-color: var(--theme-line); }

/* Mourning theme contrast fixes (the prototype left these elements in light-theme colours) */
.hy[data-theme="mourning"] .booking-hero h1, .hy[data-theme="mourning"] .booking-hero-copy > span { color: var(--theme-text); }
.hy[data-theme="mourning"] .trust-strip { background: var(--theme-surface); border-color: var(--theme-line); box-shadow: none; }
.hy[data-theme="mourning"] .trust-strip b { color: var(--theme-text); }
.hy[data-theme="mourning"] .trust-strip > div { border-color: var(--theme-line); }
.hy[data-theme="mourning"] .search-field kbd { background: #2a2224; color: var(--theme-text); }
.hy[data-theme="mourning"] .btn-secondary { background: #f0ede7; color: #78191e; }
.hy[data-theme="mourning"] .btn-ghost { color: var(--theme-text); border-color: rgba(240, 237, 231, .22); }
.hy[data-theme="mourning"] .page-heading p, .hy[data-theme="mourning"] .greeting small { color: var(--theme-muted); }

/* Server-rendered public pages */
.public-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px max(20px, calc((100vw - 900px) / 2)); border-bottom: 1px solid var(--line); background: var(--white); }
.public-header a { color: var(--emerald); text-decoration: none; font-weight: 700; }
.public-header img { width: 40px; height: 48px; object-fit: contain; vertical-align: middle; }
.public-main { min-height: 70vh; }
.public-list { width: min(900px, calc(100% - 32px)); margin: 30px auto; display: flex; flex-direction: column; gap: 10px; }
.public-list a { display: flex; gap: 14px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: var(--white); color: inherit; text-decoration: none; }
.public-list b, .public-list small { display: block; }
.public-list small { color: var(--muted); }
.open-in-app { display: inline-flex; margin: 10px 0 30px; }
.public-footer { text-align: center; color: var(--muted); font-size: 12px; padding: 30px 16px; border-top: 1px solid var(--line); }
.public-footer a { color: var(--emerald); }
.books-list { list-style: none; padding-inline-start: 0; display: grid; gap: 12px; }
.books-list li { border: 1px solid var(--line); background: var(--white); border-radius: 14px; padding: 14px; }
.book-card h3 { margin: 0 0 6px; overflow-wrap: anywhere; unicode-bidi: isolate; text-align: start; }
.edition-language { display: inline-block; font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.book-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 10px; }
.book-actions .book-download { display: inline-flex; text-decoration: none; }
.book-editions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); }
.book-editions a { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; padding: 4px 12px; text-decoration: none; color: var(--emerald); background: var(--white); }
.book-editions a:focus-visible, .book-download:focus-visible { outline: 2px solid var(--emerald); outline-offset: 3px; }
@media (max-width: 480px) { .book-actions .book-download { width: 100%; justify-content: center; } }
.profile-languages { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-block: 18px; font-size: 13px; }
.profile-languages > span { color: var(--muted); margin-inline-end: 6px; }
.profile-languages a { border: 1px solid var(--line); border-radius: 999px; padding: 7px 14px; background: var(--white); color: var(--emerald); text-decoration: none; }
.profile-languages a[aria-current='page'] { color: var(--white); background: var(--emerald); border-color: var(--emerald); font-weight: 700; }
.profile-languages a:focus-visible { outline: 2px solid var(--emerald); outline-offset: 3px; }
.translation-notice, .book-fallback { display: block; padding: 10px 12px; border-radius: 10px; background: var(--cream, #f9f4e9); color: var(--muted); font-size: 13px; }
.book-fallback { margin: 0 0 8px; }
/* A server-rendered memorial. All treatment is scoped to public profile pages. */
.skip-link{position:absolute;inset-inline-start:16px;top:-100px;z-index:100;background:#073f35;color:#fff;padding:12px 20px}.skip-link:focus{top:12px}
.memorial-document{background:#faf8f2;color:#1d2925}.memorial-document .public-header{max-width:none;padding:14px max(24px,calc((100vw - 1240px)/2));background:#faf8f2;border-bottom:1px solid #dedbce;font-size:13px}.memorial-document .public-header img{width:30px;height:34px}.memorial-document .public-footer{background:#073f35;color:#e2e9df;padding:40px 24px}.memorial-document .public-footer a{color:#e6ca93}
.memorial{--mem-green:#073f35;--mem-gold:#c7a66b;--mem-ink:#1d2925;--mem-muted:#5e6b64;--mem-line:#deddd2;color:var(--mem-ink)}
.memorial *{box-sizing:border-box}.memorial a{text-decoration:none}.memorial :focus-visible{outline:3px solid #b18949;outline-offset:5px}.memorial [hidden]{display:none!important}.memorial h1,.memorial h2,.memorial h3,.memorial p,.memorial figure{margin:0}.memorial section[id]{scroll-margin-top:84px}
.memorial-hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 15% 60%,#206553 0,transparent 52%),linear-gradient(120deg,#073f35,#082d28);color:#faf8f2;padding:26px max(24px,calc((100vw - 1240px)/2)) 0}.hero-geometry{position:absolute;z-index:-1;inset:0;opacity:.08;background-image:repeating-linear-gradient(45deg,transparent 0,transparent 83px,#d3bc85 84px,transparent 85px),repeating-linear-gradient(-45deg,transparent 0,transparent 83px,#d3bc85 84px,transparent 85px);mask-image:linear-gradient(90deg,#000,transparent 65%)}
.hero-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid #d5bd842b;font-size:12px}.hero-topline>a{color:#d5dacf}.memorial .profile-languages{margin:0;gap:5px;display:flex;flex-wrap:wrap}.memorial .profile-languages a{border:1px solid transparent;border-radius:6px;background:transparent;color:#dae7dd;padding:8px 14px;font-size:12px}.memorial .profile-languages a[aria-current=page]{background:#f4f0e6;color:#073f35}.memorial .profile-languages a:hover{border-color:#c7a66b}
.hero-inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.8fr);gap:90px;align-items:center;padding:60px 0 45px}.hero-copy{padding-bottom:20px;max-width:690px}.memorial .eyebrow{color:#e1c48f;font-size:12px;letter-spacing:.04em;display:flex;align-items:center;gap:12px;margin-bottom:26px}.eyebrow span{font-size:24px}.hero-honorific{display:block;font-size:19px;color:#d9c28e;margin-bottom:10px}.memorial .hero-copy h1{font-size:clamp(32px,3.6vw,52px);line-height:1.55;font-weight:750;letter-spacing:-.035em;color:#fff9e9;text-wrap:balance}.memorial .hero-intro{font-size:16px;line-height:2.05;color:#dae6dd;margin-top:24px;max-width:560px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.memorial-button{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:13px 22px;min-height:48px;font-size:13px;font-weight:650;border:1px solid #d0b27b;border-radius:6px;transition:background .2s,transform .2s}.memorial-button.gold{background:#ddc497;color:#193b30}.memorial-button.outline{color:#f8efdc;background:transparent;border-color:#c7a66b77}.memorial-button:hover{transform:translateY(-2px);background:#f3dfb4;color:#193b30}
.hero-portrait{position:relative;max-width:380px;justify-self:center;width:100%;padding:18px 18px 0}.hero-portrait:before{content:'';position:absolute;inset:0 0 50px;border:1px solid #c7a66b80;border-radius:200px 200px 4px 4px;pointer-events:none}.portrait-arch{aspect-ratio:4/4.8;border-radius:190px 190px 3px 3px;overflow:hidden;background:#193f34;border:7px solid #e4cf9b26;box-shadow:0 20px 50px #001d2670}.portrait-arch img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%}.portrait-empty{display:grid;place-items:center;height:100%;padding:24px;text-align:center}.hero-portrait figcaption{color:#d3ddcf;font-size:10px;text-align:center;padding:16px 0;line-height:1.8}.hero-bottom{display:flex;align-items:center;gap:24px;color:#d0b985;font-size:11px;letter-spacing:.05em;padding:0 0 25px}.hero-line{height:1px;flex:1;background:#c7a66b40}
.memorial-nav{position:sticky;top:0;z-index:5;display:flex;justify-content:center;gap:44px;background:#faf8f2f5;border-bottom:1px solid var(--mem-line);backdrop-filter:blur(12px);padding:17px 16px}.memorial-nav a{color:#526257;font-size:13px;display:flex;align-items:center;gap:10px;min-height:30px}.memorial-nav a:hover{color:#073f35}.memorial-nav a span{background:#e6ebdf;border-radius:12px;padding:0 8px;font-size:11px}
.memorial-content{max-width:1240px;margin:auto;padding:0 24px}.biography-section{display:grid;grid-template-columns:280px minmax(0,1fr);gap:85px;padding:86px 0}.section-number{display:block;font-size:12px;font-family:Georgia,serif;letter-spacing:.1em;color:#8b6934;margin-bottom:14px}.memorial h2{font-size:32px;line-height:1.65;letter-spacing:-.025em;font-weight:750;color:#073f35}.memorial .section-caption{color:var(--mem-muted);font-size:13px;margin-top:10px;line-height:1.9}.life-timeline{margin:35px 0;padding-inline-start:18px;border-inline-start:1px solid #c7a66b}.life-timeline>div{position:relative;margin-bottom:26px}.life-timeline>div:before{content:'';width:7px;height:7px;position:absolute;inset-inline-start:-22px;top:10px;border-radius:50%;background:#9d7a40;box-shadow:0 0 0 4px #faf8f2}.life-timeline dt{font-size:12px;color:#5d6e62}.life-timeline dd{margin:6px 0 0;font-size:13px;line-height:1.9;color:#233f32}.app-link{display:inline-flex;align-items:center;gap:10px;font-size:11px;color:#47614e;border-bottom:1px solid #bcbda9;padding-bottom:8px}.biography-prose{max-width:760px;padding-top:15px}.memorial .biography-prose p{font-size:16px;line-height:2.25;margin-bottom:22px;color:#3c4b41}.biography-prose p:first-child{color:#243d30}.biography-prose h3{margin:30px 0 16px}.biography-prose h4{margin:16px 0}
.memorial .books-section{border-top:1px solid #d7d7c7;padding:60px 0 70px}.library-heading{display:flex;align-items:center;justify-content:space-between;gap:35px;margin-bottom:32px}.library-heading p{color:var(--mem-muted);font-size:14px;margin-top:8px;line-height:1.8}.library-stats{display:flex;gap:34px;flex-shrink:0;text-align:center}.library-stats div{display:flex;flex-direction:column;gap:4px}.library-stats b{font-size:32px;font-weight:500;color:#073f35}.library-stats span{font-size:10px;color:#5a695f}.library-controls{display:flex;gap:22px;align-items:center;padding:18px;background:#f0f1e9;border:1px solid #dde1d2;border-radius:8px;margin-bottom:26px}.library-search{display:block;flex:1}.library-search>span{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.library-search input{font:inherit;font-size:13px;width:100%;border:1px solid #c9d0c3;border-radius:5px;padding:12px 16px;background:#fffef9;color:#203f32;min-height:46px}.translation-filter{display:flex;gap:9px;align-items:center;font-size:12px;color:#334e3d}.translation-filter input{accent-color:#073f35;width:18px;height:18px}#library-count{font-size:12px;white-space:nowrap;color:#4f6255}.no-results{padding:40px;text-align:center;color:#5a6b60}
.memorial .books-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;list-style:none;padding:0;margin:0}.memorial .book-card{display:grid;grid-template-columns:140px minmax(0,1fr);gap:22px;padding:24px;background:#fffefb;border:1px solid #dfdfd1;border-radius:9px;min-width:0;box-shadow:0 3px 10px #233d2403;transition:transform .22s,box-shadow .22s,border-color .22s}.memorial .book-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #203c2110;border-color:#b7bd9e}.book-art{min-width:0;text-align:center;align-self:start}.book-cover-image{display:block;width:100%;height:202px;object-fit:contain;background:#f4f3ec;border-radius:3px;filter:drop-shadow(0 5px 5px #152a1920)}.book-art figcaption{font-size:9px;line-height:1.8;color:#6c7264;padding-top:9px}.cover-placeholder{height:202px;background:linear-gradient(140deg,#155746,#073f35);border:1px solid #b29964;outline:1px solid #b2996480;outline-offset:-9px;padding:22px 15px;display:flex;flex-direction:column;justify-content:center;gap:14px;color:#e7d3a6;border-radius:3px}.cover-placeholder>span:first-child{font-size:26px}.cover-placeholder>span:nth-child(2){font-size:13px;line-height:1.9}.cover-placeholder small{font-size:9px;color:#e0e3d5}.book-info{display:flex;flex-direction:column;align-items:stretch;min-width:0}.memorial .book-card h3{font-size:16px;line-height:1.8;color:#133f30;margin:0 0 12px;text-align:start;overflow-wrap:anywhere;unicode-bidi:isolate}.memorial .edition-language{font-size:11px;color:#5c685b;margin-bottom:12px}.memorial .book-fallback{background:#f5f3e9;border-inline-start:2px solid #c5a66d;border-radius:0;padding:7px 9px;font-size:10px;line-height:1.9;color:#626348;margin:0 0 12px}.memorial .book-info>p:not(.book-fallback){font-size:12px;color:#53634f;line-height:1.8}.memorial .book-actions{margin-top:auto;padding-top:15px;display:flex;align-items:flex-start;flex-direction:column;gap:12px}.memorial .book-download{background:#0b493b;color:#fff9e9;border:1px solid #0b493b;border-radius:5px;font-size:11px;padding:10px 14px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;width:100%;white-space:normal;text-align:center}.memorial .book-download:hover{background:#17634e}.memorial .book-editions{display:flex;flex-wrap:wrap;gap:5px;font-size:10px;align-items:center;color:#65705e}.memorial .book-editions a{font-size:10px;color:#154a36;padding:5px 8px;border:1px solid #d4daca;border-radius:4px;min-height:30px;background:#f7f8f0;display:inline-flex;align-items:center}
.reference-section{display:grid;grid-template-columns:280px minmax(0,1fr);gap:85px;padding:50px 0;border-top:1px solid #d7d7c7}.reference-section>div p{font-size:12px;color:var(--mem-muted);margin-top:8px}.memorial .sources{margin:0;padding-inline-start:24px;display:grid;gap:20px;font-size:12px;line-height:1.9;color:#4b5c4e}.sources li::marker{color:#94723e}.sources cite{font-style:normal;display:block;color:#203f31}.sources li>span{display:block}.sources a{display:inline-block;color:#516848;direction:ltr;font-size:11px;overflow-wrap:anywhere}.back-top{display:block;text-align:center;color:#36583e;font-size:12px;padding:20px 0 45px}
.memorial-document:lang(en) .hero-copy h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.04em;line-height:1.2;font-size:clamp(36px,4vw,58px)}.memorial-document:lang(en) .biography-prose{font-family:Georgia,'Times New Roman',serif}.memorial-document:lang(en) .biography-prose p{line-height:1.95;font-size:18px}.memorial-document:lang(en) h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:36px}
@media(min-width:1500px){.memorial-content{max-width:1360px}.memorial .books-list{grid-template-columns:repeat(3,minmax(0,1fr))}.memorial .book-card{grid-template-columns:110px minmax(0,1fr);gap:16px;padding:20px}.book-cover-image,.cover-placeholder{height:170px}}
@media(max-width:950px){.hero-inner{gap:35px;grid-template-columns:1.2fr .8fr}.biography-section,.reference-section{grid-template-columns:220px minmax(0,1fr);gap:35px}.memorial .book-card{grid-template-columns:105px minmax(0,1fr);padding:18px;gap:16px}.book-cover-image,.cover-placeholder{height:160px}.library-stats{gap:20px}.library-stats b{font-size:26px}}
@media(max-width:700px){.hero-inner{grid-template-columns:1fr;padding:30px 0;gap:20px}.hero-copy{order:2;text-align:center;max-width:100%}.hero-copy .eyebrow{justify-content:center;margin-bottom:12px}.hero-honorific{font-size:15px}.memorial .hero-copy h1{font-size:30px;line-height:1.55}.memorial .hero-intro{font-size:13px;line-height:2;margin:16px auto 0}.hero-actions{justify-content:center;margin-top:22px;gap:8px}.memorial-button{font-size:12px;padding:11px 15px;gap:15px}.hero-portrait{max-width:230px;order:1;padding:10px 10px 0}.hero-portrait:before{bottom:36px}.portrait-arch{aspect-ratio:1/1.05}.hero-portrait figcaption{font-size:8px;padding:10px 0}.hero-topline>a{font-size:10px}.memorial .profile-languages a{padding:7px 9px;font-size:11px}.memorial-hero{padding-inline:20px}.hero-bottom{font-size:9px;gap:14px}.memorial-nav{gap:24px;padding:10px}.memorial-nav a{font-size:11px}.memorial-content{padding:0 20px}.biography-section{grid-template-columns:1fr;gap:12px;padding:45px 0}.memorial h2{font-size:27px}.section-number{margin-bottom:8px}.life-timeline{display:flex;gap:24px;border:0;padding:0;margin:24px 0}.life-timeline>div{flex:1;margin:0;border-inline-start:1px solid #c7a66b;padding-inline-start:12px}.life-timeline>div:before{display:none}.life-timeline dd{font-size:11px}.biography-prose{padding-top:15px}.memorial .biography-prose p{font-size:14px;line-height:2.15}.library-heading{flex-direction:column;align-items:stretch;gap:24px}.library-heading p{font-size:12px}.library-stats{justify-content:space-around;border-block:1px solid #deded0;padding:16px 0}.library-stats b{font-size:26px}.library-controls{flex-wrap:wrap;gap:14px;padding:12px}.library-search{flex-basis:100%}.translation-filter{flex:1}#library-count{font-size:11px}.memorial .books-list{grid-template-columns:1fr;gap:14px}.memorial .book-card{grid-template-columns:100px minmax(0,1fr);gap:16px;padding:18px}.memorial .book-card h3{font-size:15px}.book-cover-image,.cover-placeholder{height:155px}.cover-placeholder{padding:14px 9px}.cover-placeholder>span:nth-child(2){font-size:11px}.cover-placeholder small{font-size:8px}.book-art figcaption{font-size:8px}.reference-section{grid-template-columns:1fr;gap:24px;padding:35px 0}.memorial-document:lang(en) .hero-copy h1{font-size:35px}.memorial-document:lang(en) .biography-prose p{font-size:16px}.memorial-document:lang(en) h2{font-size:30px}}
@media(prefers-reduced-motion:no-preference){html:has(.memorial){scroll-behavior:smooth}.hero-copy{animation:memorial-rise .65s ease-out both}@keyframes memorial-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}}
@media(prefers-reduced-motion:reduce){.memorial *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.memorial .profile-languages a:focus-visible{outline:3px solid #e6ca93;outline-offset:4px}
@media(max-width:700px){
  .memorial .profile-languages a{min-height:44px;display:inline-flex;align-items:center}
  .memorial-nav a{min-height:44px}
  .memorial .book-download,.memorial .book-editions a{min-height:44px}
  .memorial .book-editions a,.memorial .book-fallback{font-size:11px}
  .memorial .book-art figcaption{font-size:9px}
  .memorial .app-link{min-height:44px}
}
