:root {
  --ink: #310708;
  --ink-soft: #4a1012;
  --verdigris: #701e24;
  --brass: #c6923f;
  --brass-light: #e4bc68;
  --bone: #f4eddf;
  --paper: #faf7f0;
  --rust: #8a2b30;
  --culture-plum: #74151d;
  --culture-plum-dark: #260405;
  --culture-pink: #ead29a;
  --culture-blue: #f5ead2;
  --culture-paper: #fffaf0;
  --culture-velvet: #56080d;
  --culture-red: #8c1820;
  --culture-gold: #bd7e2b;
  --culture-gold-light: #e4be70;
  --muted: #716b65;
  --line: rgba(49, 7, 8, 0.15);
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  color-scheme: light;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--ink); }
body { min-width: 320px; min-height: 100%; margin: 0; color: var(--ink); background: var(--paper); }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }

.launch-screen { position: fixed; z-index: 2200; inset: 0; width: 100%; height: 100dvh; min-height: 100vh; display: grid; place-items: center; align-content: center; overflow: hidden; padding: max(30px, var(--safe-top)) 28px max(30px, var(--safe-bottom)); color: var(--bone); background: radial-gradient(circle at 50% 24%, rgba(198, 146, 63, .22), transparent 27%), linear-gradient(160deg, #551519, var(--ink) 60%, #190304); box-shadow: 0 140px 0 #190304; text-align: center; transition: opacity 640ms cubic-bezier(.2,.75,.25,1), visibility 640ms ease; }
.launch-screen.is-leaving { opacity: 0; visibility: hidden; }
.launch-emblem { position: absolute; width: min(88vw, 430px); aspect-ratio: 1; border: 1px solid rgba(228, 197, 143, .09); border-radius: 50%; box-shadow: 0 0 0 54px rgba(228, 197, 143, .026), 0 0 0 108px rgba(228, 197, 143, .012); animation: launch-breathe 2.8s ease-in-out infinite; }
.launch-media { position: relative; width: min(54vw, 210px); aspect-ratio: 1; display: grid; place-items: center; isolation: isolate; overflow: hidden; border: 1px solid rgba(228, 197, 143, .2); border-radius: 50%; background: #07183c; box-shadow: 0 18px 42px rgba(0, 0, 0, .22); transition: opacity 520ms ease, transform 620ms cubic-bezier(.2,.75,.25,1); }
.launch-static-logo { position: relative; z-index: 1; width: 156px; height: 156px; border-radius: 50%; box-shadow: 0 18px 45px rgba(0, 0, 0, .34); animation: launch-rise 560ms cubic-bezier(.2,.8,.2,1) both; transition: opacity 340ms ease, transform 420ms ease; }
.launch-video, .launch-animation { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 0; pointer-events: none; }
.launch-animation { transform: scale(1.12); }
.launch-media.is-video-pending,
.launch-media.has-video { width: min(72vw, 300px); aspect-ratio: 16 / 9; border-radius: 18px; border-color: rgba(239, 209, 125, .24); background: #030817; box-shadow: 0 24px 58px rgba(0, 0, 0, .3), inset 0 0 0 1px rgba(255, 255, 255, .025); }
.launch-media.has-video .launch-video { animation: launch-video-in 520ms cubic-bezier(.2,.8,.2,1) both; }
.launch-media.has-video .launch-static-logo,
.launch-media.has-animation .launch-static-logo { opacity: 0; transform: scale(.76); }
.launch-media.has-animation .launch-animation { animation: launch-film-in 620ms cubic-bezier(.2,.8,.2,1) both; }
.launch-screen.is-leaving .launch-media { opacity: 0; transform: scale(.9); }
.launch-kicker { position: relative; margin: 22px 0 8px; color: var(--brass-light); font-size: .66rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.launch-screen h1 { position: relative; max-width: 12ch; margin: 0; font: 500 clamp(2rem, 9vw, 2.7rem)/1 Georgia, serif; letter-spacing: -.05em; text-wrap: balance; }
.launch-copy { position: relative; max-width: 31ch; margin: 13px 0 0; color: rgba(243, 239, 229, .68); font-size: .84rem; line-height: 1.5; }
.launch-progress { position: relative; width: min(230px, 66vw); height: 2px; margin-top: 28px; overflow: hidden; background: rgba(228, 197, 143, .16); }
.launch-progress span { display: block; width: 42%; height: 100%; background: var(--brass-light); animation: launch-progress 1.25s ease-in-out infinite; }
.launch-screen small { position: relative; margin-top: 12px; color: rgba(243, 239, 229, .55); font-size: .7rem; }
.launch-screen.is-update .launch-progress span { width: 70%; animation-duration: .9s; }
.launch-screen.is-update .launch-media { width: 88px; aspect-ratio: 1; border-radius: 50%; }
.launch-screen.is-update .launch-video, .launch-screen.is-update .launch-animation { display: none; }
.launch-screen.is-update .launch-static-logo { width: 70px; height: 70px; opacity: 1; transform: none; }
.launch-update-button { position: relative; width: min(310px, 82vw); min-height: 54px; margin-top: 26px; border: 1px solid var(--brass-light); color: var(--ink); background: var(--brass-light); font-size: .84rem; font-weight: 900; letter-spacing: .02em; cursor: pointer; }
.launch-update-button:disabled { cursor: wait; opacity: .72; }
.launch-screen.is-update:not(.is-updating) .launch-progress span { width: 100%; animation: none; }

.app { min-height: 100svh; padding-bottom: calc(58px + var(--safe-bottom)); background: var(--paper); }
.app-header { position: sticky; z-index: 30; top: 0; min-height: calc(50px + var(--safe-top)); display: flex; align-items: flex-end; justify-content: space-between; padding: calc(4px + var(--safe-top)) 14px 5px; border-bottom: 1px solid rgba(244, 237, 223, .13); color: var(--bone); background: rgba(49, 7, 8, .98); backdrop-filter: blur(18px); transition: transform 280ms cubic-bezier(.2,.8,.2,1); will-change: transform; }
.app.is-culture-view .app-header { border-bottom-color: rgba(228, 190, 112, .28); background: linear-gradient(180deg, rgba(38, 4, 5, .99) 0%, rgba(74, 7, 11, .99) 62%, rgba(102, 12, 17, .99) 100%); }
.app.app-chrome-hidden .app-header { transform: translateY(calc(-100% - 2px)); }
.brand { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.brand img { width: 34px; height: 34px; border-radius: 9px; object-fit: cover; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2); transition: border-radius 220ms ease, transform 220ms ease, box-shadow 220ms ease; }
.app.is-culture-view .brand img { border: 1px solid rgba(226,197,133,.55); border-radius: 50%; transform: scale(1.07); box-shadow: 0 7px 18px rgba(8,12,30,.38); }
.brand span, .brand strong, .brand small { display: block; }
.brand strong { font-family: Georgia, "Times New Roman", serif; font-size: 1rem; line-height: 1; letter-spacing: -0.025em; }
.brand small { margin-top: 2px; color: var(--brass-light); font-size: 0.55rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; }
.icon-button, .close-button { display: grid; place-items: center; border: 0; background: transparent; cursor: pointer; }
.icon-button { width: 36px; height: 36px; color: var(--bone); }
.icon-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.header-actions { display: flex; align-items: center; gap: 2px; }
.culture-donate-button { position: relative; display: inline-flex; align-items: center; gap: 5px; min-height: 32px; margin-right: 2px; padding: 0 9px; overflow: hidden; border: 1px solid rgba(226, 197, 133, .74); border-radius: 999px; color: #3f142f; background: linear-gradient(135deg, #f1d594, #c99c49); box-shadow: 0 7px 17px rgba(21, 7, 17, .28); font-size: .64rem; font-weight: 900; letter-spacing: .01em; text-decoration: none; }
.culture-donate-button::after { position: absolute; inset: -80% auto -80% -35%; width: 22%; background: rgba(255,255,255,.42); content: ""; transform: rotate(17deg); animation: donate-glint 4.8s ease-in-out 1.2s infinite; }
.culture-donate-button svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.culture-donate-button:active { transform: translateY(1px); }
.share-button:active { transform: scale(.92); }
.inbox-button { position: relative; isolation: isolate; }
.inbox-button::before { position: absolute; z-index: -1; inset: 4px; border: 1px solid rgba(226, 197, 133, .42); border-radius: 50%; opacity: 0; content: ""; transform: scale(.65); }
.inbox-button.has-unread { color: var(--brass-light); }
.inbox-button.is-alerting svg { transform-origin: 50% 8%; animation: inbox-bell 720ms cubic-bezier(.36,.07,.19,.97) 3; }
.inbox-button.is-alerting::before { animation: inbox-halo 1.1s ease-out 2; }
.inbox-button__badge { position: absolute; top: 1px; right: 0; min-width: 16px; height: 16px; display: grid; place-items: center; padding: 0 4px; border: 2px solid var(--ink); border-radius: 9px; color: #fff; background: #c63047; font-size: .53rem; font-weight: 900; line-height: 1; animation: inbox-badge-in 280ms cubic-bezier(.2,.9,.25,1.3) both; }
.app.is-culture-view .inbox-button__badge { border-color: var(--culture-velvet); }
.icon-button:focus-visible, .bottom-nav-button:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid rgba(197, 147, 74, 0.6); outline-offset: 3px; }

.app-main { width: 100%; max-width: 640px; margin: 0 auto; }
.app-view { min-height: calc(100svh - 150px); animation: view-arrive 320ms ease both; }
.museum-intro, .culture-intro { position: relative; overflow: hidden; padding: 22px 20px 20px; color: var(--bone); }
.museum-intro { background: var(--ink); }
.museum-intro::after { position: absolute; right: -78px; bottom: -112px; width: 240px; aspect-ratio: 1; border: 1px solid rgba(228, 197, 143, 0.14); border-radius: 50%; box-shadow: 0 0 0 44px rgba(228, 197, 143, 0.035), 0 0 0 88px rgba(228, 197, 143, 0.018); content: ""; }
.culture-intro { isolation: isolate; padding-top: 20px; padding-bottom: 22px; border-bottom: 2px solid var(--culture-gold); background:
  radial-gradient(ellipse at 50% 128%, rgba(228, 190, 112, .3) 0%, transparent 46%),
  linear-gradient(90deg, rgba(22, 1, 2, .32), transparent 16%, rgba(255,255,255,.035) 34%, transparent 51%, rgba(255,255,255,.03) 68%, transparent 84%, rgba(22, 1, 2, .35)),
  linear-gradient(145deg, var(--culture-plum-dark) 0%, var(--culture-velvet) 48%, var(--culture-red) 100%); }
.culture-intro::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(115deg, transparent 10%, rgba(228,190,112,.07) 31%, transparent 48%, rgba(228,190,112,.05) 67%, transparent 88%); content: ""; pointer-events: none; }
.kicker, .install-kicker { margin: 0 0 9px; color: var(--brass-light); font-size: 0.68rem; font-weight: 900; letter-spacing: 0.17em; text-transform: uppercase; }
.museum-intro h1, .culture-intro h1 { position: relative; z-index: 1; width: 100%; max-width: none; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.55rem, 6.4vw, 2.05rem); font-weight: 500; letter-spacing: -0.035em; line-height: 1.05; text-wrap: balance; }
.museum-intro > p:last-child, .culture-intro > p:last-child { position: relative; z-index: 1; max-width: 35ch; margin: 10px 0 0; color: rgba(244, 237, 223, .7); font-size: .8rem; line-height: 1.43; }
.content-status { margin: 24px 20px; padding: 28px 18px; border: 1px dashed rgba(19, 36, 31, 0.23); color: var(--muted); text-align: center; }

.museum-filter { position: sticky; z-index: 22; top: calc(50px + var(--safe-top)); display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 52px; padding: 6px 13px; border-bottom: 1px solid var(--line); background: rgba(250, 247, 240, .97); box-shadow: 0 8px 19px rgba(49, 7, 8, .06); backdrop-filter: blur(15px); transition: top 280ms cubic-bezier(.2,.8,.2,1), transform 280ms cubic-bezier(.2,.8,.2,1); will-change: transform; }
.app.app-chrome-hidden .museum-filter { top: 0; transform: translateY(calc(-100% - 2px)); }
.museum-filter__eyebrow { color: var(--muted); font-size: .63rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.museum-filter__button { min-height: 38px; display: inline-flex; align-items: center; gap: 7px; max-width: 225px; padding: 0 9px 0 11px; border: 1px solid rgba(49, 7, 8, .2); color: var(--ink); background: #fff; font-size: .73rem; font-weight: 850; cursor: pointer; }
.museum-filter__button:disabled { opacity: .5; cursor: default; }
.museum-filter__button svg { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: var(--brass); stroke-width: 1.8; stroke-linecap: round; }
.museum-filter__button > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.museum-filter__button > small { min-width: 23px; height: 23px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: var(--bone); background: var(--ink); font-size: .65rem; }
.museum-filter__menu { position: absolute; z-index: 2; top: calc(100% + 7px); right: 14px; width: min(310px, calc(100vw - 28px)); padding: 6px; border: 1px solid rgba(49, 7, 8, .14); background: #fff; box-shadow: 0 20px 48px rgba(49, 7, 8, .2); }
.museum-filter__menu button { width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 0 13px; border: 0; color: var(--ink); background: transparent; text-align: left; cursor: pointer; }
.museum-filter__menu button + button { border-top: 1px solid rgba(49, 7, 8, .08); }
.museum-filter__menu button[aria-checked="true"] { color: var(--verdigris); background: rgba(118, 43, 55, .08); font-weight: 900; }
.museum-filter__menu small { min-width: 25px; color: var(--muted); text-align: right; }

.highlight-feed { padding-bottom: 24px; background: #d2d0cb; }
.highlight-category { background: var(--paper); animation: category-arrive 300ms ease both; }
.highlight-category + .highlight-category { margin-top: 8px; }
.highlight-category--tinted { background: #efebe2; }
.highlight-category__header { min-height: 102px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding: 21px 20px 17px; border-bottom: 1px solid rgba(49, 7, 8, .12); }
.highlight-category__header p { margin: 0 0 5px; color: var(--brass); font-size: .59rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.highlight-category__header h2 { margin: 0; font: 500 clamp(1.9rem, 8.8vw, 2.6rem)/.95 Georgia, "Times New Roman", serif; letter-spacing: -.05em; }
.highlight-category__header > span { flex: 0 0 auto; padding-bottom: 4px; color: var(--muted); font-size: .67rem; font-weight: 800; white-space: nowrap; }
.highlight-category__items { display: grid; gap: 12px; padding: 14px 14px 18px; perspective: 1100px; }
.product-teaser { --card-delay: 0ms; position: relative; width: 100%; aspect-ratio: 4 / 4.05; display: block; overflow: hidden; padding: 0; border: 1px solid rgba(226, 197, 133, .36); border-radius: 15px; color: var(--bone); background: var(--ink); box-shadow: 0 18px 38px rgba(49, 7, 8, .22), 0 3px 8px rgba(49, 7, 8, .16); text-align: left; transform: perspective(900px) rotateX(1.7deg) translateZ(0); transform-style: preserve-3d; cursor: pointer; animation: product-card-in 540ms cubic-bezier(.2,.8,.2,1) var(--card-delay) both; transition: transform 180ms ease, box-shadow 180ms ease; }
.product-teaser::after { position: absolute; z-index: 4; inset: -45% -70%; background: linear-gradient(110deg, transparent 40%, rgba(255, 255, 255, .18) 49%, transparent 58%); transform: translateX(-55%) rotate(7deg); animation: product-card-glint 5.8s ease-in-out calc(var(--card-delay) + 900ms) infinite; pointer-events: none; content: ""; }
.product-teaser:active { transform: perspective(900px) rotateX(0) scale(.982); box-shadow: 0 8px 18px rgba(49, 7, 8, .22); }
.product-teaser > img, .product-teaser__placeholder { position: absolute; inset: 0; width: 100%; height: 100%; }
.product-teaser > img { object-fit: cover; transform: scale(1.012); transition: transform 500ms ease; }
.product-teaser:active > img { transform: scale(1.035); }
.product-teaser__placeholder { display: grid; place-content: center; gap: 5px; background: linear-gradient(145deg, var(--ink-soft), var(--ink)); text-align: center; }
.product-teaser__placeholder strong { font: 500 3.2rem/1 Georgia, serif; }
.product-teaser__placeholder small { font-size: .63rem; letter-spacing: .14em; text-transform: uppercase; }
.product-teaser__shade { position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgba(19, 7, 10, .06) 28%, rgba(24, 7, 11, .3) 58%, rgba(37, 8, 14, .9) 100%); pointer-events: none; }
.product-teaser__count { position: absolute; z-index: 3; top: 12px; right: 12px; padding: 7px 9px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 999px; color: var(--bone); background: rgba(49, 7, 8, .78); backdrop-filter: blur(8px); font-size: .61rem; font-weight: 850; }
.product-teaser__identity { position: absolute; z-index: 3; right: 16px; bottom: 80px; left: 16px; display: grid; gap: 5px; transform: translateZ(24px); }
.product-teaser__identity small { color: var(--brass-light); font-size: .57rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.product-teaser__identity strong { max-width: 18ch; font: 500 clamp(1.55rem, 7vw, 2.15rem)/1 Georgia, "Times New Roman", serif; letter-spacing: -.04em; text-wrap: balance; }
.product-teaser__meta { position: absolute; z-index: 3; right: 0; bottom: 0; left: 0; min-height: 67px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; border-top: 1px solid rgba(226, 197, 133, .34); background: rgba(49, 7, 8, .93); backdrop-filter: blur(12px); transform: translateZ(30px); }
.product-teaser__prompt, .product-teaser__price { display: grid; align-content: center; gap: 3px; padding: 10px 13px; }
.product-teaser__prompt strong { font-size: .74rem; }
.product-teaser__prompt small { color: rgba(244, 237, 223, .65); font-size: .58rem; }
.product-teaser__price { min-width: 105px; border-left: 1px solid rgba(226, 197, 133, .26); text-align: right; }
.product-teaser__price small { color: var(--brass-light); font-size: .55rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.product-teaser__price strong { font-size: .95rem; white-space: nowrap; }
.highlight { border-bottom: 1px solid var(--line); }
.highlight-category .highlight h2 { font-size: clamp(1.55rem, 6.7vw, 2rem); }
.highlight-category--tinted .price-line > span { background: #f6f2e9; }
.highlight-category--tinted .price-line .app-price { background: var(--ink); }
.object-slider { position: relative; overflow: hidden; background: #dfd9cf; }
.object-track { display: flex; gap: 8px; overflow-x: auto; padding: 0 11% 0 0; scroll-snap-type: x mandatory; scroll-padding-inline: 0 11%; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-inline: contain; }
.object-track::-webkit-scrollbar { display: none; }
.object-track:focus-visible { outline: 3px solid rgba(195, 149, 72, .65); outline-offset: -3px; }
.object-slide { position: relative; flex: 0 0 89%; aspect-ratio: 4 / 4.25; margin: 0; overflow: hidden; padding: 0; border: 0; color: inherit; background: transparent; scroll-snap-align: start; scroll-snap-stop: always; cursor: zoom-in; }
.object-slider--single .object-track { padding-right: 0; }
.object-slider--single .object-slide { flex-basis: 100%; }
.object-slide img { width: 100%; height: 100%; object-fit: cover; }
.object-slide__zoom { position: absolute; right: 10px; bottom: 10px; width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; color: #fff; background: rgba(24,7,11,.7); box-shadow: 0 5px 16px rgba(0,0,0,.22); backdrop-filter: blur(8px); }
.object-slide__zoom svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.object-placeholder { aspect-ratio: 4 / 4.2; display: grid; place-content: center; gap: 5px; color: rgba(243, 239, 229, 0.72); background: linear-gradient(145deg, var(--ink-soft), var(--ink)); text-align: center; }
.object-placeholder span { font-family: Georgia, serif; font-size: 3.3rem; }
.object-placeholder small { font-size: 0.67rem; letter-spacing: 0.16em; text-transform: uppercase; }
.highlight-copy { padding: 18px 20px 22px; }
.inventory-line { display: flex; justify-content: space-between; gap: 15px; color: var(--brass); font-size: 0.61rem; font-weight: 900; letter-spacing: 0.1em; line-height: 1.4; text-transform: uppercase; }
.inventory-line span:last-child { color: var(--muted); text-align: right; }
.highlight h2, .culture-event h2 { margin: 10px 0 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.6rem, 7vw, 2.2rem); font-weight: 500; letter-spacing: -0.04em; line-height: 1.03; }
.highlight-copy > p, .culture-event > p { margin: 10px 0 0; color: #5e5955; font-size: .87rem; line-height: 1.5; }
.price-line { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 15px 0 0; overflow: hidden; border: 1px solid var(--line); background: var(--line); }
.price-line > span { min-width: 0; padding: 11px 12px; background: var(--paper); }
.price-line small, .price-line strong { display: block; }
.price-line small { color: var(--muted); font-size: 0.61rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.price-line strong { margin-top: 3px; font-size: .96rem; }
.price-line.has-app-price .regular-price strong { color: var(--muted); text-decoration: line-through; text-decoration-color: var(--rust); text-decoration-thickness: 1.5px; }
.price-line .app-price { color: var(--bone); background: var(--ink); }
.price-line .app-price small { color: var(--brass-light); }
.visit-action, .event-action { min-height: 46px; display: flex; align-items: center; justify-content: space-between; margin-top: 10px; padding: 0 14px; color: var(--bone); background: var(--verdigris); font-size: .8rem; font-weight: 850; text-decoration: none; }
.visit-action__copy { display: grid; gap: 2px; }
.visit-action__copy strong { font-size: .81rem; }
.visit-action__copy small { color: rgba(244, 237, 223, .7); font-size: .63rem; font-weight: 650; }
.visit-action svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.product-detail-open { overflow: hidden; }
.product-detail { position: fixed; z-index: 70; inset: 0; width: 100vw; height: 100dvh; overflow: hidden; background: var(--ink); }
.product-detail__surface { width: 100%; max-width: 640px; height: 100%; min-height: 100dvh; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; margin: auto; overflow: hidden; color: var(--ink); background: var(--paper); box-shadow: 0 0 70px rgba(20, 4, 8, .4); animation: product-detail-in 340ms cubic-bezier(.2,.8,.2,1) both; }
.product-detail__header { min-height: calc(40px + var(--safe-top)); display: grid; grid-template-columns: 36px 1fr 36px; align-items: end; gap: 6px; padding: var(--safe-top) 8px 2px; color: var(--bone); background: var(--ink); }
.product-detail__header > span { align-self: center; font-size: .61rem; font-weight: 900; letter-spacing: .13em; text-align: center; text-transform: uppercase; }
.product-detail__back { width: 36px; height: 36px; display: grid; place-items: center; padding: 0; border: 0; color: var(--bone); background: transparent; cursor: pointer; }
.product-detail__back svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.product-detail__content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.product-detail .object-slider { width: 100%; padding: 14px 0; background: #d9d1c5; }
.product-detail .object-track { gap: 14px; padding: 0 18% 0 16px; scroll-padding-inline: 16px 18%; }
.product-detail .object-slide { flex-basis: 82%; aspect-ratio: 4 / 4.08; border-radius: 15px; box-shadow: 0 9px 23px rgba(48,30,24,.17); }
.product-detail .object-slide img { object-position: center center; }
.product-detail .object-slider--single .object-slide { flex-basis: 88%; }
.product-detail .object-slider--single .object-track { justify-content: center; padding: 0 6%; }
.product-detail__copy { padding: 20px 20px 24px; }
.product-detail__copy h1 { margin: 12px 0 0; font: 500 clamp(2rem, 9.5vw, 3rem)/.98 Georgia, "Times New Roman", serif; letter-spacing: -.05em; text-wrap: balance; }
.product-detail__description { display: -webkit-box; margin: 15px 0 0; overflow: hidden; color: #5e5955; font-size: .93rem; line-height: 1.58; white-space: pre-line; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.product-detail__description.is-expanded { display: block; overflow: visible; -webkit-line-clamp: unset; }
.product-detail__description-toggle { display: inline-flex; align-items: center; gap: 5px; min-height: 36px; margin: 8px 0 0 -8px; padding: 0 8px; border: 0; color: var(--verdigris); background: transparent; font-size: .72rem; font-weight: 850; cursor: pointer; }
.product-detail__description-toggle svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform 180ms ease; }
.product-detail__description-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.product-detail__purchase { display: grid; grid-template-columns: minmax(110px, .8fr) minmax(180px, 1.25fr); gap: 1px; padding: 9px 10px max(9px, var(--safe-bottom)); border-top: 1px solid var(--line); background: #d8d0c4; box-shadow: 0 -12px 32px rgba(49, 7, 8, .13); }
.product-detail__prices { min-width: 0; display: grid; align-content: center; padding: 8px 12px; background: var(--paper); }
.product-detail__prices small { color: var(--muted); font-size: .56rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.product-detail__prices strong { margin-top: 2px; font-size: 1.04rem; }
.product-detail__prices del { margin-top: 1px; color: var(--muted); font-size: .65rem; }
.product-detail__purchase > a { min-height: 53px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 14px; color: var(--bone); background: var(--verdigris); text-decoration: none; }
.product-detail__purchase > a span { display: grid; gap: 2px; }
.product-detail__purchase > a strong { font-size: .8rem; }
.product-detail__purchase > a small { color: rgba(244, 237, 223, .68); font-size: .6rem; }
.product-detail__purchase > a svg { width: 21px; height: 21px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.image-gallery-open { overflow: hidden; }
.image-gallery { position: fixed; z-index: 110; inset: 0; width: 100vw; height: 100dvh; overflow: hidden; color: var(--bone); background: #130a0c; }
.image-gallery__surface { width: 100%; max-width: 760px; height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; margin: auto; overflow: hidden; background: radial-gradient(circle at 50% 46%, rgba(195,149,72,.1), transparent 36%), #130a0c; animation: gallery-arrive 260ms cubic-bezier(.2,.8,.2,1) both; }
.image-gallery__header { min-height: calc(46px + var(--safe-top)); display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: end; gap: 6px; padding: var(--safe-top) 9px 4px; border-bottom: 1px solid rgba(232,204,152,.16); }
.image-gallery__header > span { align-self: center; overflow: hidden; font-size: .61rem; font-weight: 900; letter-spacing: .13em; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.image-gallery__header > strong { align-self: center; color: var(--brass-light); font-size: .65rem; text-align: center; }
.image-gallery__close { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border: 0; color: var(--bone); background: transparent; cursor: pointer; }
.image-gallery__close svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.image-gallery__track { min-height: 0; display: flex; gap: 16px; overflow-x: auto; padding: 0; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; }
.image-gallery__track::-webkit-scrollbar { display: none; }
.image-gallery__track:focus-visible { outline: 2px solid var(--brass-light); outline-offset: -3px; }
.image-gallery__slide { flex: 0 0 100%; min-width: 0; height: 100%; display: grid; place-items: center; margin: 0; padding: 20px 14px; scroll-snap-align: start; scroll-snap-stop: always; }
.image-gallery__slide img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; filter: drop-shadow(0 18px 35px rgba(0,0,0,.32)); }
.image-gallery__dots { min-height: calc(27px + var(--safe-bottom)); display: flex; align-items: flex-start; justify-content: center; gap: 7px; padding: 7px 14px var(--safe-bottom); }
.image-gallery__dots span { width: 6px; height: 6px; border-radius: 50%; background: rgba(243,239,229,.28); transition: width 170ms ease, background 170ms ease; }
.image-gallery__dots span.is-active { width: 20px; border-radius: 999px; background: var(--brass-light); }

.event-feed { display: grid; gap: 14px; padding: 16px 13px 26px; background:
  linear-gradient(180deg, rgba(189,126,43,.11), transparent 95px),
  var(--culture-paper); }
.culture-event { min-width: 0; animation: event-card-in 480ms cubic-bezier(.2,.8,.2,1) var(--event-delay) both; }
.event-card { width: 100%; min-height: 166px; display: grid; grid-template-columns: 116px minmax(0, 1fr); overflow: hidden; padding: 0; border: 1px solid rgba(116, 21, 29, .17); border-radius: 15px; color: #302526; background: rgba(255, 253, 247, .96); box-shadow: 0 14px 30px rgba(60, 10, 13, .12), 0 2px 0 rgba(189,126,43,.15); text-align: left; cursor: pointer; transition: transform 180ms ease, box-shadow 180ms ease; }
.event-card:active { transform: scale(.985); box-shadow: 0 6px 16px rgba(60, 10, 13, .13); }
.event-card__poster { position: relative; isolation: isolate; min-width: 0; overflow: hidden; background: #e8dfcf; }
.event-card__poster::after { position: absolute; z-index: 2; inset: 0; box-shadow: inset -1px 0 rgba(16, 42, 92, .14); content: ""; pointer-events: none; }
.event-card__poster-backdrop { position: absolute; z-index: 0; inset: -9%; width: 118%; height: 118%; object-fit: cover; filter: blur(10px) saturate(.72); opacity: .36; transform: scale(1.04); }
.event-card__poster-image { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.event-card__placeholder { position: absolute; inset: 0; display: grid; place-content: center; gap: 4px; padding: 12px; color: #fff; background: linear-gradient(145deg, var(--culture-plum), var(--culture-plum-dark)); text-align: center; }
.event-card__placeholder img { width: 62px; height: 62px; margin: 0 auto 3px; border: 1px solid rgba(231,199,128,.5); border-radius: 50%; object-fit: cover; transform: scale(1.05); }
.event-card__placeholder small { color: rgba(255,255,255,.66); font-size: .58rem; }
.event-card__copy { min-width: 0; display: flex; flex-direction: column; padding: 14px 13px 12px; }
.event-card__copy > small { color: var(--culture-gold); font-size: .55rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.event-card__copy > strong { margin-top: 6px; font: 600 1.13rem/1.04 Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.event-card__copy > span:not(.event-card__more):not(.event-card__booking) { display: -webkit-box; margin-top: 6px; overflow: hidden; color: var(--culture-plum); font-size: .72rem; font-weight: 800; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.event-card__copy > em { margin-top: 8px; color: #665d63; font-size: .62rem; font-style: normal; font-weight: 700; line-height: 1.3; }
.event-card__more { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 8px; color: #33262f; font-size: .63rem; font-weight: 850; }
.event-card__more b { color: var(--culture-gold); font-size: 1rem; }
.event-card__booking { min-height: 50px; display: grid; align-content: center; gap: 3px; margin: 10px -13px -12px; padding: 8px 12px 9px; border-top: 1px solid rgba(16, 42, 92, .12); color: var(--culture-plum-dark); background: rgba(16, 42, 92, .055); }
.event-card__booking > small { font-size: .54rem; font-weight: 900; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
.event-card__booking > strong { display: flex; align-items: center; justify-content: space-between; gap: 7px; font-size: .68rem; font-weight: 900; line-height: 1.2; }
.event-card__booking b { color: var(--culture-gold); font-size: .95rem; line-height: .7; }
.event-card__booking--waitlist { border-top-color: rgba(239, 209, 125, .4); color: #fff; background: linear-gradient(105deg, var(--culture-plum-dark), var(--culture-velvet)); }
.event-card__booking--waitlist > small { color: var(--culture-gold-light); }
.event-card__booking--waitlist b { color: var(--culture-gold-light); }
.event-card__booking--low { border-top-color: rgba(201, 150, 63, .32); background: #f3e4bb; }
.event-card__booking--loading,
.event-card__booking--unknown { color: #625c66; background: #f0eee9; }

.event-detail-open { overflow: hidden; }
.event-detail { position: fixed; z-index: 72; inset: 0; width: 100vw; height: 100dvh; overflow: hidden; background: var(--culture-plum-dark); }
.event-detail__surface { width: 100%; max-width: 640px; height: 100%; min-height: 100dvh; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; margin: auto; overflow: hidden; color: #302526; background: var(--culture-paper); box-shadow: 0 0 70px rgba(38, 4, 5, .48); animation: product-detail-in 340ms cubic-bezier(.2,.8,.2,1) both; }
.event-detail__header { min-height: calc(40px + var(--safe-top)); display: grid; grid-template-columns: 36px 1fr 36px; align-items: end; gap: 6px; padding: var(--safe-top) 8px 2px; border-bottom: 1px solid rgba(228,190,112,.34); color: #fff; background: linear-gradient(135deg, var(--culture-plum-dark), var(--culture-velvet)); }
.event-detail__header > span { align-self: center; font-size: .61rem; font-weight: 900; letter-spacing: .13em; text-align: center; text-transform: uppercase; }
.event-detail__back { width: 36px; height: 36px; display: grid; place-items: center; padding: 0; border: 0; color: #fff; background: transparent; cursor: pointer; }
.event-detail__back svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.event-detail__header { grid-template-columns: 44px minmax(0, 1fr) 44px; }
.event-detail__header .event-detail__back { width: 44px; height: 44px; }
.event-detail__share { color: var(--culture-gold-light); }
[data-share-event]:disabled { opacity: .5; cursor: progress; }
[data-share-event]:focus-visible { outline: 2px solid var(--culture-gold); outline-offset: 2px; }
.event-share-open { overflow: hidden; }
.event-share-screen { position: fixed; z-index: 100; inset: 0; width: 100%; height: 100dvh; overflow: hidden; background: var(--culture-plum-dark); }
.event-share__content { min-height: 0; padding: 20px 18px; overflow-y: auto; overscroll-behavior: contain; }
.event-share__summary { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.event-share__summary img { flex: 0 0 72px; width: 72px; height: 102px; object-fit: contain; background: #050e25; }
.event-share__summary p { margin: 0 0 6px; color: #806025; font-size: .6rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.event-share__summary h1 { margin: 0; color: var(--culture-plum-dark); font: 600 1.45rem/1.15 Georgia, "Times New Roman", serif; overflow-wrap: anywhere; }
.event-share__field-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.event-share__field-header label, .event-share__label { display: block; color: #302526; font-size: .75rem; font-weight: 800; }
.event-share__field-header button { min-height: 44px; padding: 6px 0 6px 12px; border: 0; color: var(--culture-plum); background: transparent; font-size: .73rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.event-share__caption, .event-share__link { display: block; width: 100%; padding: 12px; border: 1px solid rgba(49,7,8,.23); border-radius: 8px; color: #302526; background: #fff; font: 400 16px/1.5 Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; resize: none; }
.event-share__caption { height: 230px; margin-bottom: 20px; }
.event-share__label { margin-bottom: 9px; }
.event-share__link { height: 98px; overflow-wrap: anywhere; word-break: break-all; }
.event-share__copy-link { width: 100%; min-height: 46px; display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 10px; padding: 8px 12px; border: 1px solid rgba(49,7,8,.25); border-radius: 8px; color: var(--culture-plum); background: transparent; font-size: .8rem; font-weight: 800; cursor: pointer; }
.event-share__copy-link svg, .event-share__submit svg { width: 21px; height: 21px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.event-share__hint { margin: 13px 0 0; color: var(--muted); font-size: .74rem; line-height: 1.5; }
.event-share__footer { padding: 12px 18px calc(12px + var(--safe-bottom)); border-top: 1px solid var(--line); background: var(--culture-paper); }
.event-share__submit { width: 100%; min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 16px; border: 1px solid var(--culture-gold); border-radius: 10px; color: var(--culture-plum-dark); background: var(--culture-gold-light); font-size: .85rem; font-weight: 850; cursor: pointer; }
[data-share-event-submit]:disabled { opacity: .5; cursor: progress; }
.event-share-screen button:focus-visible, .event-share-screen textarea:focus-visible { outline: 2px solid var(--culture-gold); outline-offset: 3px; }
.event-detail__content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; background: var(--culture-paper); }
.event-detail__poster { width: 100%; display: grid; place-items: center; margin: 0; background: #170203; }
.event-detail__poster img { width: 100%; height: auto; max-height: none; object-fit: contain; }
.event-detail__media-gallery { position: relative; overflow: hidden; background: radial-gradient(circle at 92% 18%, rgba(239,209,125,.14), transparent 25%), #080d1b; }
.event-detail__artist-message-slot { position: sticky; z-index: 8; top: 0; max-height: 160px; padding: 8px 0; overflow: hidden; opacity: 1; background: #080d1b; box-shadow: 0 8px 20px rgba(3,8,23,.18); transition: max-height 300ms cubic-bezier(.2,.8,.2,1), padding 300ms cubic-bezier(.2,.8,.2,1), opacity 180ms ease; }
.event-detail__artist-message { width: calc(100% - 24px); min-height: 76px; display: flex; align-items: center; gap: 14px; margin: 0 12px; padding: 10px 14px; border: 1px solid var(--culture-gold); border-radius: 10px; color: var(--culture-plum-dark); background: linear-gradient(110deg, #f4dfa0, var(--culture-gold-light) 72%, #dfb75e); box-shadow: 0 4px 12px rgba(0,0,0,.16); text-align: left; cursor: pointer; animation: artist-message-arrive 320ms ease-out both; }
.event-detail__artist-message:focus-visible { outline: 2px solid var(--culture-gold-light); outline-offset: 3px; }
.event-detail__artist-message:active { filter: brightness(.96); }
.event-detail__artist-play { width: 46px; height: 46px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: var(--culture-gold-light); background: var(--culture-plum-dark); }
.event-detail__artist-play svg { width: 23px; height: 23px; fill: currentColor; }
.event-detail__artist-copy { min-width: 0; display: grid; gap: 4px; }
.event-detail__artist-label { font-size: .56rem; font-weight: 900; line-height: 1.2; letter-spacing: .09em; text-transform: uppercase; }
.event-detail__artist-title { font: 600 .875rem/1.3 Georgia, "Times New Roman", serif; white-space: nowrap; }
.event-detail__artist-link { display: flex; align-items: center; gap: 6px; font-size: .75rem; font-weight: 800; line-height: 1.25; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.event-detail__artist-link svg { width: 15px; height: 15px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.event-detail__artist-message-slot.is-hidden { max-height: 0; padding-top: 0; padding-bottom: 0; opacity: 0; pointer-events: none; }
.event-detail__media-track { width: 100%; display: flex; align-items: stretch; gap: 10px; overflow-x: auto; padding: 0 26px 0 12px; scroll-padding: 0 26px 0 12px; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-inline: contain; touch-action: pan-x pan-y; -webkit-overflow-scrolling: touch; }
.event-detail__media-track::-webkit-scrollbar { display: none; }
.event-detail__media-track:focus-visible { outline: 2px solid var(--culture-gold-light); outline-offset: -2px; }
.event-detail__media-slide { width: auto; height: clamp(330px, 54svh, 560px); flex: 0 0 calc(min(100vw, 640px) - 52px); overflow: hidden; border: 0; border-radius: 0; scroll-snap-align: center; scroll-snap-stop: always; box-shadow: none; transition: height 360ms cubic-bezier(.2,.8,.2,1); }
.event-detail__media-slide--poster { grid-template-rows: minmax(0, 1fr); grid-template-columns: minmax(0, 1fr); scroll-snap-align: start; }
.event-detail__media-slide--poster img { min-width: 0; min-height: 0; width: 100%; height: 100%; object-fit: contain; }
.event-detail__video { margin: 0; }
.event-detail__media-gallery[data-active-media="1"] .event-detail__video { height: clamp(420px, 68svh, 660px); }
.event-detail__media-controls { min-height: 44px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 10px; padding: 0 14px; color: rgba(255,253,248,.72); }
.event-detail__media-label { font-size: .58rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.event-detail__media-dots { display: flex; align-items: center; justify-content: center; gap: 0; }
.event-detail__media-dots button { position: relative; width: 34px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.event-detail__media-dots button::after { position: absolute; top: 50%; left: 50%; width: 7px; height: 7px; border-radius: 50%; background: rgba(255,253,248,.3); content: ""; transform: translate(-50%, -50%); transition: width 180ms ease, background 180ms ease; }
.event-detail__media-dots button.is-active::after { width: 22px; border-radius: 999px; background: var(--culture-gold-light); }
.event-detail__media-hint { justify-self: end; font-size: .61rem; font-weight: 800; white-space: nowrap; }
.event-detail__media-hint b { color: var(--culture-gold-light); font-size: .85rem; }
.app-video-stage { position: relative; min-height: 240px; overflow: hidden; background: #170203; }
.app-video-stage video { width: 100%; max-height: 62svh; display: block; background: #170203; object-fit: contain; }
.app-video-sound-start { position: absolute; inset: 0; width: 100%; display: grid; place-content: center; justify-items: center; gap: 8px; padding: 24px; border: 0; color: #fffaf0; background: linear-gradient(180deg, rgba(21,3,8,.36), rgba(41,5,16,.82)); text-align: center; cursor: pointer; backdrop-filter: blur(2px); }
.app-video-sound-start[hidden] { display: none; }
.app-video-sound-start > span { display: grid; place-items: center; width: 58px; height: 58px; border: 1px solid rgba(238,207,135,.8); border-radius: 50%; color: var(--culture-gold-light); background: rgba(101,23,42,.68); font-size: 1.2rem; text-indent: 4px; box-shadow: 0 14px 30px rgba(0,0,0,.3); }
.app-video-sound-start > span svg { width: 24px; height: 24px; fill: currentColor; stroke: none; }
.app-video-sound-start strong { font: 700 1.08rem Georgia, serif; }
.app-video-sound-start small { max-width: 300px; color: rgba(255,250,240,.74); font-size: .66rem; line-height: 1.4; }
.event-detail__media-gallery .app-video-stage video { height: 100%; max-height: none; }
.event-detail__media-gallery .app-video-sound-start { inset: 0; width: 100%; display: grid; place-content: center; justify-items: center; gap: 10px; padding: 24px; border: 0; border-radius: 0; background: linear-gradient(180deg, rgba(3,8,23,.26), rgba(3,8,23,.7)); box-shadow: inset 0 -80px 100px rgba(3,8,23,.22); backdrop-filter: none; }
.event-detail__media-gallery .app-video-sound-start { touch-action: pan-x; }
.event-detail__media-gallery .app-video-sound-start > span { width: 68px; height: 68px; border: 1px solid rgba(239,209,125,.75); background: linear-gradient(145deg, rgba(16,42,92,.94), rgba(6,20,52,.96)); box-shadow: 0 17px 38px rgba(0,0,0,.38), inset 0 0 0 7px rgba(239,209,125,.07); }
.event-detail__media-gallery .app-video-sound-start > span svg { width: 28px; height: 28px; margin-left: 4px; }
.event-detail__placeholder { width: 100%; min-height: 58vh; display: grid; place-content: center; gap: 8px; padding: 30px; color: #fff; background: radial-gradient(ellipse at 50% 72%, rgba(228,190,112,.28), transparent 42%), linear-gradient(145deg, var(--culture-plum), var(--culture-plum-dark)); text-align: center; }
.event-detail__placeholder img { width: 112px; height: 112px; margin: 0 auto 10px; border: 1px solid rgba(231,199,128,.56); border-radius: 50%; object-fit: cover; box-shadow: 0 18px 38px rgba(20,6,17,.32); transform: scale(1.05); }
.event-detail__placeholder strong { font: 500 2rem/1 Georgia, serif; }
.event-detail__placeholder span { color: rgba(255,255,255,.7); font-size: .78rem; }
.event-detail__copy { padding: 23px 18px 28px; }
.event-detail__eyebrow { margin: 0; color: var(--culture-gold); font-size: .59rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.event-detail__copy h1 { margin: 8px 0 0; color: #31232d; font: 600 clamp(1.5rem, 6.3vw, 1.95rem)/1.02 Georgia, "Times New Roman", serif; letter-spacing: -.035em; text-wrap: balance; }
.event-detail__subtitle { display: block; margin-top: 9px; color: var(--culture-plum); font-size: 1rem; line-height: 1.35; }
.event-detail__description { margin: 18px 0 0; color: #534b51; font-size: .9rem; line-height: 1.62; white-space: pre-line; }
.event-detail__facts { display: grid; gap: 10px; margin-top: 22px; }
.event-detail__fact { min-height: 62px; display: grid; grid-template-columns: 25px 1fr; align-items: center; gap: 8px; padding: 13px 14px; border-left: 4px solid var(--culture-gold); border-radius: 9px; color: #453638; background: linear-gradient(105deg, #f6ead2, #fffaf0); box-shadow: 0 7px 18px rgba(60, 10, 13, .07); text-decoration: none; }
.event-detail__fact > span { font-size: 1rem; text-align: center; }
.event-detail__fact p { margin: 0; font-size: .83rem; line-height: 1.5; }
.event-detail__fact strong { color: var(--culture-plum); }
.event-detail__fact--phone { color: var(--culture-plum); font-weight: 750; }
.event-detail__action { display: grid; grid-template-columns: 1fr; gap: 8px; padding: 9px 10px max(9px, var(--safe-bottom)); border-top: 1px solid rgba(116,21,29,.16); background: rgba(255,250,240,.97); box-shadow: 0 -12px 30px rgba(60,10,13,.1); }
.event-detail__action.has-phone { grid-template-columns: minmax(0, 1fr) 56px; }
.event-detail__ticket { min-height: 53px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px; padding: 0 13px; border: 1px solid rgba(119,74,18,.32); border-radius: 10px; color: #2c1808; background: linear-gradient(105deg, #f3dfad, var(--culture-gold-light)); box-shadow: 0 9px 22px rgba(96,56,12,.18); text-decoration: none; }
.event-detail__ticket-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--culture-plum); background: rgba(16,42,92,.09); }
.event-detail__ticket-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.event-detail__ticket strong { font-size: .79rem; }
.event-detail__ticket > svg { width: 18px; height: 18px; fill: none; stroke: var(--culture-plum); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.event-detail__ticket.is-waitlist { border-color: rgba(239, 209, 125, .48); color: #fff; background: linear-gradient(105deg, var(--culture-plum-dark), var(--culture-velvet)); box-shadow: 0 9px 22px rgba(5, 14, 37, .24); }
.event-detail__ticket.is-waitlist .event-detail__ticket-icon { color: var(--culture-gold-light); background: rgba(239,209,125,.12); }
.event-detail__ticket.is-waitlist > svg { stroke: var(--culture-gold-light); }
.event-detail__call { min-height: 53px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: linear-gradient(145deg, var(--culture-red), var(--culture-velvet)); box-shadow: 0 9px 22px rgba(60,10,13,.24); text-decoration: none; }
.event-detail__call svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.event-detail__ticket:active, .event-detail__call:active { transform: scale(.97); }

.booking-funnel-open { overflow: hidden; }
.booking-funnel { position: fixed; z-index: 82; inset: 0; width: 100vw; height: 100dvh; overflow: hidden; background: var(--culture-plum-dark); }
.booking-funnel__surface { width: 100%; max-width: 640px; height: 100%; min-height: 100dvh; display: grid; grid-template-rows: auto minmax(0, 1fr); margin: auto; overflow: hidden; background: var(--culture-paper); box-shadow: 0 0 70px rgba(38, 4, 5, .5); animation: product-detail-in 300ms cubic-bezier(.2,.8,.2,1) both; }
.booking-funnel__header { min-height: calc(42px + var(--safe-top)); display: grid; grid-template-columns: 42px minmax(0, 1fr) 42px; align-items: end; gap: 4px; padding: var(--safe-top) 7px 3px; border-bottom: 1px solid rgba(228,190,112,.34); color: #fff; background: linear-gradient(135deg, var(--culture-plum-dark), var(--culture-velvet)); }
.booking-funnel__header > span:not(.booking-funnel__secure) { align-self: center; overflow: hidden; font-size: .61rem; font-weight: 900; letter-spacing: .13em; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.booking-funnel__back { width: 38px; height: 38px; display: grid; place-items: center; padding: 0; border: 0; color: #fff; background: transparent; cursor: pointer; }
.booking-funnel__back svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.booking-funnel__secure { align-self: center; color: var(--culture-gold-light); font-size: .49rem; font-weight: 900; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.booking-funnel iframe { width: 100%; height: 100%; min-height: 0; border: 0; background: var(--culture-paper); }

.bottom-nav { position: fixed; z-index: 40; right: 0; bottom: 0; left: 0; height: calc(50px + var(--safe-bottom)); display: grid; grid-template-columns: 1fr 1fr; padding: 3px 8px max(3px, var(--safe-bottom)); border-top: 1px solid rgba(49, 7, 8, .12); background: rgba(250, 247, 240, .97); box-shadow: 0 -9px 28px rgba(49, 7, 8, .08); backdrop-filter: blur(18px); transition: transform 280ms cubic-bezier(.2,.8,.2,1); will-change: transform; }
.app.app-chrome-hidden .bottom-nav { transform: translateY(calc(100% + 2px)); }
.bottom-nav-button { display: grid; place-items: center; align-content: center; gap: 1px; border: 0; color: #817975; background: transparent; font-size: 0.6rem; font-weight: 800; cursor: pointer; }
.bottom-nav-button svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.bottom-nav-button.is-active { color: var(--ink); }
.bottom-nav-button.is-active svg { color: var(--brass); }
.app.is-culture-view .bottom-nav-button.is-active { color: var(--culture-velvet); }
.app.is-culture-view .bottom-nav-button.is-active svg { color: var(--culture-gold); }

.message-center-open, .message-detail-open { overflow: hidden; }
.message-center { position: fixed; z-index: 88; inset: 0; width: 100vw; height: 100dvh; overflow: hidden; background: #d7cfc2; }
.message-center__surface { width: 100%; max-width: 640px; height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr); margin: auto; overflow: hidden; color: var(--ink); background: #eee8dd; box-shadow: 0 0 70px rgba(40, 15, 20, .35); animation: message-center-in 300ms cubic-bezier(.2,.8,.2,1) both; }
.message-center__header, .message-detail__header { min-height: calc(44px + var(--safe-top)); display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: end; gap: 4px; padding: var(--safe-top) 8px 4px; color: var(--bone); background: var(--ink); }
.message-center__header > span, .message-detail__header > span { align-self: center; font-size: .61rem; font-weight: 900; letter-spacing: .13em; text-align: center; text-transform: uppercase; }
.message-center__back, .message-detail__back { width: 38px; height: 38px; display: grid; place-items: center; padding: 0; border: 0; color: inherit; background: transparent; cursor: pointer; }
.message-center__back svg, .message-detail__back svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.message-center__read-all { min-width: 78px; min-height: 34px; padding: 0 6px; border: 0; color: var(--brass-light); background: transparent; font-size: .58rem; font-weight: 850; cursor: pointer; }
.message-center__content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.message-center__intro { position: relative; overflow: hidden; padding: 22px 19px 20px; color: var(--bone); background: linear-gradient(135deg, #310708 0%, #4f1215 66%, #652026 100%); }
.message-center__intro::after { position: absolute; top: -58px; right: -42px; width: 170px; height: 170px; border: 1px solid rgba(226,197,133,.13); border-radius: 50%; box-shadow: 0 0 0 32px rgba(226,197,133,.03); content: ""; }
.message-center__intro p { position: relative; z-index: 1; margin: 0 0 7px; color: var(--brass-light); font-size: .61rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.message-center__intro h1 { position: relative; z-index: 1; margin: 0; font: 500 1.9rem/1 Georgia, "Times New Roman", serif; letter-spacing: -.045em; }
.message-center__intro span { position: relative; z-index: 1; display: block; margin-top: 9px; color: rgba(244,237,223,.68); font-size: .71rem; }
.message-center__status { margin: 18px 14px; padding: 28px 20px; border: 1px dashed rgba(49,7,8,.22); color: var(--muted); background: rgba(255,255,255,.45); font-size: .78rem; line-height: 1.5; text-align: center; }
.message-list { display: grid; gap: 11px; padding: 14px 12px calc(25px + var(--safe-bottom)); }
.message-card { position: relative; width: 100%; min-height: 132px; display: grid; grid-template-columns: 104px minmax(0, 1fr); overflow: hidden; padding: 0; border: 1px solid rgba(49,7,8,.11); border-radius: 16px; color: #30282a; background: rgba(255,255,255,.94); box-shadow: 0 10px 25px rgba(49,7,8,.09); text-align: left; cursor: pointer; animation: message-card-in 430ms cubic-bezier(.2,.8,.2,1) var(--message-delay) both; transition: transform 170ms ease, box-shadow 170ms ease; }
.message-card:active { transform: scale(.985); box-shadow: 0 5px 14px rgba(49,7,8,.09); }
.message-card.is-unread { border-left: 4px solid var(--brass); }
.message-card.is-culture.is-unread { border-left-color: var(--culture-plum); }
.message-card__media { position: relative; min-width: 0; overflow: hidden; background: #d7cfc2; }
.message-card__media > img { width: 100%; height: 100%; object-fit: cover; }
.message-card__play { position: absolute; right: 8px; bottom: 8px; display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid rgba(241,210,139,.7); border-radius: 50%; color: #f4d98f; background: rgba(61,13,25,.82); font-size: .72rem; font-style: normal; text-indent: 2px; box-shadow: 0 7px 15px rgba(0,0,0,.25); }
.message-card__placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: var(--brass-light); background: linear-gradient(145deg, var(--ink-soft), var(--ink)); }
.message-card.is-culture .message-card__placeholder { color: var(--culture-gold-light); background: radial-gradient(ellipse at 50% 78%, rgba(228,190,112,.24), transparent 45%), linear-gradient(145deg, var(--culture-plum), var(--culture-plum-dark)); }
.message-card__placeholder svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.message-card__copy { min-width: 0; display: flex; flex-direction: column; padding: 11px 12px 10px; }
.message-card__line { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.message-card__line small { overflow: hidden; color: var(--rust); font-size: .53rem; font-weight: 900; letter-spacing: .09em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.message-card.is-culture .message-card__line small { color: var(--culture-plum); }
.message-card__line i { flex: 0 0 auto; padding: 3px 6px; border-radius: 8px; color: var(--ink); background: var(--brass-light); font-size: .48rem; font-style: normal; font-weight: 900; text-transform: uppercase; }
.message-card.is-culture .message-card__line i { color: #2c1808; background: var(--culture-gold-light); }
.message-card__copy > strong { display: -webkit-box; overflow: hidden; margin-top: 6px; font: 600 1.01rem/1.08 Georgia, "Times New Roman", serif; letter-spacing: -.025em; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.message-card__excerpt { display: -webkit-box; overflow: hidden; margin-top: 6px; color: #6b6262; font-size: .67rem; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.message-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 8px; color: #8a817c; font-size: .55rem; font-weight: 700; }
.message-card__meta b { color: var(--rust); font-size: 1rem; }
.message-card.is-culture .message-card__meta b { color: var(--culture-plum); }

.message-detail { position: fixed; z-index: 92; inset: 0; width: 100vw; height: 100dvh; overflow: hidden; background: var(--ink); }
.message-detail__surface { width: 100%; max-width: 640px; height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; margin: auto; overflow: hidden; color: #30282a; background: var(--paper); box-shadow: 0 0 70px rgba(40,15,20,.42); animation: message-detail-in 320ms cubic-bezier(.2,.8,.2,1) both; }
.message-detail.is-culture .message-detail__header { background: var(--culture-plum-dark); }
.message-detail__content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; background: var(--paper); }
.message-detail__media { width: 100%; max-height: 55svh; display: grid; place-items: center; overflow: hidden; margin: 0; background: #24191b; }
.message-detail__media img { width: 100%; height: 100%; max-height: 55svh; object-fit: contain; }
.message-detail__media.app-video-stage { max-height: none; }
.message-detail__media.app-video-stage video { max-height: 55svh; }
.message-detail__visual { min-height: 220px; display: grid; place-content: center; justify-items: center; gap: 13px; color: var(--brass-light); background: radial-gradient(circle at 50% 45%, rgba(195,149,72,.18), transparent 35%), var(--ink); }
.message-detail.is-culture .message-detail__visual { color: var(--culture-gold-light); background: radial-gradient(ellipse at 50% 72%, rgba(228,190,112,.24), transparent 42%), var(--culture-plum-dark); }
.message-detail__visual img { width: 72px; height: 72px; border-radius: 20px; box-shadow: 0 13px 28px rgba(0,0,0,.28); }
.message-detail__visual.is-culture img { border: 1px solid rgba(231,199,128,.56); border-radius: 50%; transform: scale(1.06); }
.message-detail__visual span { font: 500 1.12rem/1 Georgia, serif; }
.message-detail__post { padding: 21px 18px 30px; }
.message-detail__meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--rust); font-size: .55rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.message-detail.is-culture .message-detail__meta { color: var(--culture-plum); }
.message-detail__meta time { color: var(--muted); font-size: .53rem; letter-spacing: 0; text-transform: none; }
.message-detail__post h1 { margin: 11px 0 0; color: var(--ink); font: 500 clamp(2rem, 9vw, 2.75rem)/.98 Georgia, "Times New Roman", serif; letter-spacing: -.05em; text-wrap: balance; }
.message-detail.is-culture .message-detail__post h1 { color: var(--culture-plum-dark); }
.message-detail__tags { margin: 10px 0 0; color: var(--brass); font-size: .62rem; font-weight: 850; line-height: 1.4; }
.message-detail.is-culture .message-detail__tags { color: var(--culture-plum); }
.message-detail__body { margin: 19px 0 0; color: #5b5352; font-size: .9rem; line-height: 1.62; white-space: pre-line; }
.message-detail__price { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2px 12px; margin-top: 22px; padding: 14px 15px; border-left: 4px solid var(--brass); color: var(--ink); background: #eee6d9; }
.message-detail__price small { font-size: .57rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.message-detail__price strong { grid-row: 1 / 3; grid-column: 2; font-size: 1.3rem; }
.message-detail__price del { color: var(--muted); font-size: .66rem; }
.message-detail__action { padding: 9px 10px max(9px, var(--safe-bottom)); border-top: 1px solid rgba(49,7,8,.13); background: rgba(250,247,240,.97); box-shadow: 0 -12px 30px rgba(49,7,8,.11); }
.message-detail__action button { width: 100%; min-height: 55px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 0 16px; border: 0; color: var(--bone); background: var(--verdigris); text-align: left; cursor: pointer; }
.message-detail.is-culture .message-detail__action button { background: var(--culture-plum); }
.message-detail__action button span { display: grid; gap: 2px; }
.message-detail__action button small { color: rgba(244,237,223,.65); font-size: .54rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.message-detail__action button strong { font-size: .8rem; }
.message-detail__action button svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.message-detail__action button:active { transform: scale(.985); }

.sheet { position: fixed; z-index: 80; inset: 0; }
.sheet-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(9, 18, 15, 0.58); backdrop-filter: blur(5px); }
.sheet-panel { position: absolute; right: 0; bottom: 0; left: 0; max-height: calc(94svh - var(--safe-top)); overflow-y: auto; padding: 9px 20px calc(24px + var(--safe-bottom)); border-radius: 26px 26px 0 0; background: var(--paper); box-shadow: 0 -24px 60px rgba(0, 0, 0, 0.24); animation: sheet-up 320ms cubic-bezier(0.2, 0.75, 0.25, 1) both; }
.sheet-handle { width: 42px; height: 4px; margin: 0 auto 15px; border-radius: 4px; background: rgba(19, 36, 31, 0.18); }
.sheet-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.sheet-header h2 { margin: 0; font-family: Georgia, serif; font-size: 2rem; font-weight: 500; letter-spacing: -0.045em; line-height: 1; }
.close-button { width: 42px; height: 42px; font-size: 1.75rem; }
.push-invitation { margin: 22px 0 20px; padding: 17px; border-left: 3px solid var(--brass); color: var(--bone); background: var(--ink); }
.push-invitation strong { font-family: Georgia, serif; font-size: 1.18rem; font-weight: 500; }
.push-invitation p { margin: 7px 0 0; color: rgba(243, 239, 229, 0.69); font-size: 0.82rem; line-height: 1.5; }
.tag-fieldset { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.tag-fieldset legend { margin-bottom: 9px; font-size: 0.7rem; font-weight: 900; letter-spacing: 0.12em; text-transform: uppercase; }
.tag-choice { min-height: 50px; display: grid; grid-template-columns: 25px 1fr; align-items: center; gap: 11px; padding: 10px 13px; border: 1px solid var(--line); cursor: pointer; }
.tag-choice:has(input:checked) { border-color: rgba(118, 43, 55, .42); background: rgba(118, 43, 55, .07); }
.tag-choice input { width: 20px; height: 20px; accent-color: var(--verdigris); }
.tag-choice span { font-size: 0.87rem; font-weight: 750; }
.preference-status { min-height: 1.4em; margin: 16px 0 8px; color: var(--muted); font-size: 0.76rem; line-height: 1.4; }
.primary-action { width: 100%; min-height: 54px; border: 0; color: var(--bone); background: var(--verdigris); font-weight: 900; cursor: pointer; }
.primary-action:disabled { opacity: 0.6; cursor: wait; }
.preferences-form[aria-busy="true"] .primary-action,
#preferencesForm[aria-busy="true"] .primary-action { background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, .16), transparent); background-size: 210% 100%; animation: saving-sheen 1.2s linear infinite; }
.text-action { width: 100%; margin-top: 10px; padding: 10px; border: 0; color: var(--rust); background: transparent; font-size: 0.78rem; font-weight: 800; cursor: pointer; }
.sheet[data-automatic="true"] #remindLaterButton { display: block !important; color: var(--muted); }
.sheet-open { overflow: hidden; }

.share-sheet { position: fixed; z-index: 110; inset: 0; height: 100dvh; overflow: hidden; background: #020817; }
.share-sheet__panel { position: absolute; inset: 0; width: min(100%, 640px); height: 100dvh; max-height: none; display: grid; grid-template-rows: auto minmax(0, 1fr); margin: 0 auto; overflow: hidden; border: 0; border-radius: 0; background: linear-gradient(180deg, #fffdf8, var(--culture-paper)); box-shadow: 0 0 80px rgba(2, 8, 23, .5); animation: share-screen-in 280ms cubic-bezier(.2,.8,.2,1) both; }
.share-sheet__panel::before { position: absolute; z-index: 0; top: calc(104px + var(--safe-top)); right: -155px; width: 430px; aspect-ratio: 1; border-radius: 50%; background: url("../assets/kulturverein-app-icon.png") center / cover no-repeat; content: ""; filter: saturate(.4); opacity: .035; pointer-events: none; }
.share-sheet__panel > * { position: relative; z-index: 1; }
.share-sheet__header { min-height: calc(106px + var(--safe-top)); display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; padding: calc(14px + var(--safe-top)) 20px 18px; border-bottom: 1px solid rgba(239, 209, 125, .3); color: #fffdf8; background: radial-gradient(circle at 86% 24%, rgba(239, 209, 125, .16), transparent 28%), linear-gradient(145deg, var(--culture-plum-dark), var(--culture-velvet)); box-shadow: 0 10px 28px rgba(5, 14, 37, .16); }
.share-sheet__header > div { flex: 1 1 auto; min-width: 0; }
.share-sheet__header p { margin: 0 0 7px; color: var(--culture-gold-light); font-size: .58rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }
.share-sheet__header h2 { max-width: 13ch; margin: 0; color: inherit; font: 500 clamp(1.62rem, 7vw, 2rem)/.98 Georgia, "Times New Roman", serif; letter-spacing: -.045em; text-wrap: balance; }
.share-sheet__close { z-index: 2; flex: 0 0 auto; width: 46px; height: 46px; display: grid; place-items: center; margin-bottom: 1px; border: 1px solid rgba(239, 209, 125, .45); border-radius: 50%; color: #fffdf8; background: rgba(255, 255, 255, .055); font-size: 1.68rem; line-height: 1; cursor: pointer; }
.share-sheet__choice { min-height: 0; width: min(100%, 520px); display: grid; align-content: center; margin: 0 auto; overflow-y: auto; padding: 24px 20px calc(24px + var(--safe-bottom)); animation: share-view-in 260ms ease both; overscroll-behavior: contain; }
.share-sheet__lead { max-width: 39ch; margin: 0 0 22px; color: #5f6b82; font-size: .84rem; line-height: 1.55; }
.share-options { display: grid; gap: 12px; }
.share-option { width: 100%; min-height: 96px; display: grid; grid-template-columns: 54px 1fr 22px; align-items: center; gap: 14px; padding: 14px 15px; border: 1px solid rgba(16, 42, 92, .15); border-radius: 18px; color: var(--culture-plum-dark); background: rgba(255, 255, 255, .88); box-shadow: 0 12px 28px rgba(5, 14, 37, .08); text-align: left; cursor: pointer; transition: transform 170ms ease, border-color 170ms ease, box-shadow 170ms ease; }
.share-option:first-child { border-color: rgba(239, 209, 125, .5); color: #fffdf8; background: linear-gradient(135deg, var(--culture-plum-dark), var(--culture-plum)); box-shadow: 0 18px 36px rgba(5, 14, 37, .2); }
.share-option__icon { width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid rgba(16, 42, 92, .13); border-radius: 50%; color: var(--culture-plum); background: rgba(16, 42, 92, .055); }
.share-option:first-child .share-option__icon { border-color: rgba(239, 209, 125, .45); color: var(--culture-plum-dark); background: linear-gradient(135deg, #f5dd99, var(--culture-gold)); }
.share-option__icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.share-option__copy { display: grid; gap: 5px; }
.share-option__copy strong { font-size: .94rem; line-height: 1.15; }
.share-option__copy small { color: #6e798e; font-size: .71rem; line-height: 1.4; }
.share-option:first-child .share-option__copy small { color: rgba(255, 253, 248, .68); }
.share-option__arrow { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; opacity: .78; }
.share-option:active { transform: scale(.985); }
.share-sheet__qr { min-height: 0; width: min(100%, 520px); display: grid; grid-template-rows: auto minmax(min-content, 1fr) auto; gap: 8px; margin: 0 auto; overflow-y: auto; padding: 12px 20px calc(16px + var(--safe-bottom)); animation: share-view-in 260ms ease both; overscroll-behavior: contain; }
.share-sheet__back { min-height: 40px; display: inline-flex; align-items: center; justify-self: start; gap: 7px; padding: 0 5px; border: 0; color: var(--culture-plum); background: transparent; font-size: .72rem; font-weight: 850; cursor: pointer; }
.share-sheet__back svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.share-qr-card { width: min(100%, 420px); align-self: center; margin: 0 auto; padding: 0; border: 0; background: transparent; text-align: center; }
.share-qr-card__brand { display: flex; align-items: center; justify-content: center; gap: 9px; margin-bottom: 9px; text-align: left; }
.share-qr-card__brand img { width: 42px; height: 42px; border: 1px solid rgba(201, 150, 63, .5); border-radius: 50%; box-shadow: 0 6px 15px rgba(5, 14, 37, .15); }
.share-qr-card__brand span, .share-qr-card__brand strong, .share-qr-card__brand small { display: block; }
.share-qr-card__brand small { color: var(--culture-gold); font-size: .51rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.share-qr-card__brand strong { margin-top: 2px; color: var(--culture-plum-dark); font: 500 1.05rem/1 Georgia, "Times New Roman", serif; }
.share-qr-card__frame { width: clamp(176px, min(68vw, 34svh), 292px); margin: 0 auto; padding: 7px; border: 1px solid rgba(201, 150, 63, .42); border-radius: 12px; background: #fff; box-shadow: 0 16px 38px rgba(5, 14, 37, .13); }
.share-qr-card__frame img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; image-rendering: pixelated; }
.share-qr-card > p { margin: 10px 0 3px; color: var(--culture-plum-dark); font-size: .78rem; font-weight: 900; }
.share-qr-card > small { display: block; color: #70798c; font-size: .62rem; overflow-wrap: anywhere; }
.share-qr-download { width: min(100%, 420px); min-height: 58px; display: flex; align-items: center; justify-content: center; gap: 11px; margin: 5px auto 0; padding: 9px 16px; border: 1px solid rgba(239, 209, 125, .55); border-radius: 14px; color: #fffdf8; background: linear-gradient(135deg, var(--culture-plum), #173b78); box-shadow: 0 11px 24px rgba(5, 14, 37, .18); text-decoration: none; }
.share-qr-download svg { flex: 0 0 auto; width: 22px; height: 22px; fill: none; stroke: var(--culture-gold-light); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.share-qr-download span, .share-qr-download strong, .share-qr-download small { display: block; }
.share-qr-download strong { font-size: .8rem; }
.share-qr-download small { margin-top: 2px; color: rgba(255, 253, 248, .64); font-size: .61rem; }
.share-qr-download:active { transform: scale(.985); }
.share-sheet-open { overflow: hidden; overscroll-behavior: none; }
.push-reminder-open { overflow: hidden; }
.push-reminder { position: fixed; z-index: 130; inset: 0; height: 100dvh; overflow: hidden; background: #050e25; }
.push-reminder__surface { width: min(100%, 640px); height: 100%; display: grid; grid-template-rows: minmax(0, 1fr) auto; margin: auto; overflow: hidden; color: #050e25; background: #f8f5ee; }
.push-reminder__scroll { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.push-reminder__hero { position: relative; isolation: isolate; overflow: hidden; padding: calc(22px + var(--safe-top)) 24px 30px; color: #fffaf0; background: radial-gradient(ellipse at 50% 28%, #173b7866, transparent 68%), #050e25; text-align: center; }
.push-reminder__brand { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 13px; padding-right: 20px; text-align: left; }
.push-reminder__brand img { flex: 0 0 70px; width: 70px; height: 70px; border-radius: 50%; }
.push-reminder__brand span { font: 600 clamp(.98rem, 4.4vw, 1.28rem)/1.16 Georgia, "Times New Roman", serif; }
.push-reminder__close { position: absolute; z-index: 3; top: calc(10px + var(--safe-top)); right: 8px; width: 44px; height: 44px; display: grid; place-items: center; padding: 10px; border: 0; color: #efd17d; background: transparent; cursor: pointer; }
.push-reminder__close svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.push-reminder__music { position: absolute; z-index: -1; top: calc(105px + var(--safe-top)); left: -18%; width: 136%; height: 145px; color: #c9963f; opacity: .36; pointer-events: none; }
.push-reminder__bell { width: 94px; height: 94px; margin: 20px auto 7px; fill: none; stroke: #efd17d; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 14px #efd17d20); }
.push-reminder__hero h1 { margin: 0; font: 600 clamp(2.05rem, 8.8vw, 3.1rem)/1.02 Georgia, "Times New Roman", serif; letter-spacing: -.025em; }
.push-reminder__divider { display: flex; align-items: center; justify-content: center; gap: 8px; width: 65%; margin: 17px auto 0; color: #c9963f; font-size: .65rem; }
.push-reminder__divider::before, .push-reminder__divider::after { flex: 1; height: 1px; background: currentColor; content: ""; }
.push-reminder__wave { position: absolute; right: 0; bottom: -1px; left: 0; width: 100%; height: 23px; fill: #f8f5ee; stroke: #d5ad57; stroke-width: 2px; }
.push-reminder__body { padding: 16px 24px 4px; }
.push-reminder__lead { max-width: 34ch; margin: 0 auto 12px; font: 600 clamp(1.03rem, 4.6vw, 1.35rem)/1.3 Georgia, "Times New Roman", serif; text-align: center; }
.push-reminder__benefits { margin: 0; padding: 0; list-style: none; }
.push-reminder__benefits li { min-height: 57px; display: flex; align-items: center; gap: 13px; padding: 9px 0; font-size: clamp(.78rem, 3.35vw, .95rem); font-weight: 750; line-height: 1.35; }
.push-reminder__benefits li + li { border-top: 1px solid #c9963f42; }
.push-reminder__benefits li > span { flex: 0 0 42px; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #efd17d38; }
.push-reminder__benefits svg { width: 26px; height: 26px; fill: none; stroke: #050e25; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.push-reminder__guide { margin-top: 12px; padding: 13px; border-left: 3px solid #c9963f; border-radius: 4px; background: #efd17d24; font-size: .83rem; line-height: 1.5; }
.push-reminder__guide p { margin: 6px 0 0; }
.push-reminder__status { margin: 10px 0 0; font-size: .8rem; line-height: 1.5; text-align: center; }
.push-reminder__status:empty { display: none; }
.push-reminder__footer { padding: 12px 20px calc(13px + var(--safe-bottom)); background: #f8f5ee; text-align: center; }
.push-reminder__activate { width: 100%; min-height: 56px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px; border: 1px solid #bd8c36; border-radius: 12px; color: #050e25; background: linear-gradient(110deg, #f5dfa0, #efd17d 65%, #e4bf65); box-shadow: 0 7px 17px #050e2510; font-size: clamp(.8rem, 3.6vw, 1rem); font-weight: 850; cursor: pointer; }
.push-reminder__activate svg { flex: 0 0 20px; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.push-reminder__activate:disabled { cursor: progress; opacity: .7; }
.push-reminder__later { min-height: 44px; margin-top: 4px; padding: 6px 15px; border: 0; color: #050e25; background: transparent; font-size: .92rem; font-weight: 750; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.push-reminder__footer small { display: block; margin-top: 4px; color: #716b65; font-size: .66rem; line-height: 1.4; }
.push-reminder button:focus-visible { outline: 2px solid #c9963f; outline-offset: 3px; }
.toast { position: fixed; z-index: 150; right: 16px; bottom: calc(88px + var(--safe-bottom)); left: 16px; max-width: 480px; margin: auto; padding: 14px 16px; color: var(--bone); background: var(--ink); box-shadow: 0 14px 40px rgba(0, 0, 0, 0.25); font-size: 0.84rem; font-weight: 800; text-align: center; }

.installation-required { overflow: hidden; background: var(--ink); }
.install-gate { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; overflow-y: auto; padding: max(20px, var(--safe-top)) 17px max(20px, var(--safe-bottom)); color: var(--bone); background: radial-gradient(circle at 50% 4%, rgba(198, 146, 63, .24), transparent 27%), linear-gradient(150deg, #551519, var(--ink) 58%, #190304); }
.install-gate::before { position: fixed; top: 4%; left: 50%; width: min(86vw, 430px); aspect-ratio: 1; border: 1px solid rgba(228, 197, 143, 0.09); border-radius: 50%; box-shadow: 0 0 0 42px rgba(228, 197, 143, 0.025), 0 0 0 84px rgba(228, 197, 143, 0.012); content: ""; transform: translateX(-50%); }
.install-card { position: relative; width: min(100%, 450px); padding: clamp(23px, 6vw, 34px); border: 1px solid rgba(228, 197, 143, 0.24); background: rgba(15, 30, 25, 0.94); box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4); text-align: center; }
.install-logo { width: 76px; height: 76px; margin: 0 auto 18px; border-radius: 21px; box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3); }
.install-card h1 { max-width: 11ch; margin: 0 auto; font-family: Georgia, serif; font-size: clamp(2rem, 9vw, 2.8rem); font-weight: 500; letter-spacing: -0.055em; line-height: 0.98; text-wrap: balance; }
.install-lead { max-width: 36ch; margin: 15px auto 0; color: rgba(243, 239, 229, 0.68); font-size: 0.86rem; line-height: 1.52; }
.install-device { margin: 24px 0 11px; color: var(--brass-light); font-size: 0.66rem; font-weight: 900; letter-spacing: 0.13em; text-transform: uppercase; }
.install-steps { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; text-align: left; }
.install-steps li { min-height: 58px; display: grid; grid-template-columns: 24px 38px 1fr; align-items: center; gap: 10px; padding: 8px 11px 8px 8px; border: 1px solid rgba(228, 197, 143, 0.14); background: rgba(255, 255, 255, 0.025); }
.gate-number { display: grid; place-items: center; width: 23px; height: 23px; border: 1px solid rgba(228, 197, 143, 0.44); border-radius: 50%; color: var(--brass-light); font-size: 0.68rem; font-weight: 900; }
.gate-icon, .install-android > span, .install-success { display: grid; place-items: center; color: var(--brass-light); }
.gate-icon svg, .install-android svg, .install-success svg, .install-desktop svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.install-steps strong, .install-steps small { display: block; }
.install-steps strong { font-size: 0.84rem; }
.install-steps small { margin-top: 3px; color: rgba(243, 239, 229, 0.58); font-size: 0.7rem; line-height: 1.35; }
.install-primary { width: 100%; min-height: 54px; margin-top: 15px; border: 0; color: #21170b; background: linear-gradient(135deg, #e8cc98, var(--brass)); box-shadow: 0 13px 28px rgba(85, 50, 15, 0.24); font-weight: 900; cursor: pointer; }
.install-primary:disabled { opacity: 0.65; }
.install-primary--chrome { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; overflow: hidden; text-decoration: none; }
.install-primary--chrome::after { position: absolute; inset: -80% auto -80% -24%; width: 18%; background: rgba(255, 255, 255, .42); content: ""; transform: rotate(17deg); animation: install-route-glint 4.8s ease-in-out 1.3s infinite; }
.install-primary--chrome > span, .install-primary--chrome > strong { position: relative; z-index: 1; }
.install-primary--chrome > span { display: grid; place-items: center; }
.install-primary--chrome svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.install-browser-cue { position: relative; display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 11px; margin-top: 14px; padding: 12px 14px; overflow: hidden; border: 1px solid rgba(228, 197, 143, 0.38); color: #21170b; background: linear-gradient(135deg, #f1ddb6, var(--brass)); box-shadow: 0 13px 28px rgba(85, 50, 15, 0.2); text-align: left; }
.install-browser-cue::after { position: absolute; inset: 0; background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,.38) 45%, transparent 70%); content: ""; transform: translateX(-120%); animation: install-cue-shine 2.7s ease-in-out 1.1s 2; }
.install-browser-cue > span { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(33, 23, 11, .22); border-radius: 50%; }
.install-browser-cue svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.install-browser-cue strong { position: relative; z-index: 1; font-size: .82rem; line-height: 1.32; }
.install-card details { margin-top: 12px; color: rgba(243, 239, 229, 0.58); font-size: 0.72rem; line-height: 1.45; text-align: left; }
.install-card summary { color: var(--brass-light); font-weight: 800; cursor: pointer; }
.install-status { min-height: 1.5em; margin: 13px 0 0; color: var(--brass-light); font-size: 0.75rem; font-weight: 750; }
.install-android { display: grid; grid-template-columns: 50px 1fr; align-items: center; gap: 13px; padding: 14px; border: 1px solid rgba(228, 197, 143, 0.15); text-align: left; }
.install-android > span { width: 48px; height: 48px; background: rgba(197, 147, 74, 0.1); }
.install-android strong, .install-android small { display: block; }
.install-android strong { font-size: 0.9rem; }
.install-android small { margin-top: 4px; color: rgba(243, 239, 229, 0.58); font-size: 0.73rem; line-height: 1.4; }
.install-trust-note { position: relative; display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 13px; padding: 14px 14px 14px 17px; overflow: hidden; border: 1px solid rgba(228, 197, 143, .23); background: linear-gradient(105deg, rgba(228, 197, 143, .1), rgba(255, 255, 255, .025)); text-align: left; }
.install-trust-note::before { position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(var(--brass-light), var(--brass)); content: ""; }
.install-trust-note > span { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(228, 197, 143, .28); border-radius: 50%; color: var(--brass-light); background: rgba(5, 14, 37, .42); }
.install-trust-note svg, .install-browser-fallback svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.install-trust-note strong, .install-trust-note small { display: block; }
.install-trust-note strong { font-size: .88rem; }
.install-trust-note small { margin-top: 4px; color: rgba(243, 239, 229, .61); font-size: .72rem; line-height: 1.4; }
.install-browser-fallback { display: grid; grid-template-columns: 30px 1fr; gap: 10px; margin-top: 12px; padding: 12px; border: 1px solid rgba(232, 190, 104, .48); color: #f5ead2; background: rgba(116, 21, 29, .42); text-align: left; animation: view-arrive 260ms ease both; }
.install-browser-fallback > span { color: var(--brass-light); }
.install-browser-fallback strong, .install-browser-fallback small { display: block; }
.install-browser-fallback strong { font-size: .76rem; line-height: 1.35; }
.install-browser-fallback small { margin-top: 4px; color: rgba(243, 239, 229, .64); font-size: .69rem; line-height: 1.4; }
.install-browser-fallback a { display: inline-block; margin-top: 7px; color: var(--brass-light); font-size: .71rem; font-weight: 850; }
.install-samsung-route { margin-top: 17px; padding-top: 15px; border-top: 1px solid rgba(228, 197, 143, .17); text-align: left; }
.install-samsung-route p { margin: 0; color: rgba(243, 239, 229, .66); font-size: .72rem; line-height: 1.47; }
.install-samsung-route p strong { color: var(--bone); }
.install-secondary { width: 100%; min-height: 50px; margin-top: 11px; border: 1px solid rgba(228, 197, 143, .48); color: var(--bone); background: rgba(255, 255, 255, .035); font-size: .78rem; font-weight: 850; cursor: pointer; }
.install-secondary:disabled { opacity: .6; }
.install-samsung-route > small { display: block; margin-top: 9px; color: rgba(243, 239, 229, .54); font-size: .65rem; line-height: 1.42; }
.install-samsung-route b { color: var(--brass-light); overflow-wrap: anywhere; }
.install-success { width: 68px; height: 68px; margin: 25px auto 12px; border: 1px solid rgba(228, 197, 143, 0.25); }
.install-card h2, .install-desktop h2 { margin: 0; font-family: Georgia, serif; font-weight: 500; }
.install-card [data-gate-content] > p { color: rgba(243, 239, 229, 0.65); font-size: 0.83rem; line-height: 1.5; }
.install-gate--samsung .install-device { color: var(--brass-light); font-size: .66rem; line-height: 1.2; }
.install-desktop { margin-top: 25px; padding: 18px; border: 1px solid rgba(228, 197, 143, 0.14); }
.install-desktop > svg { width: 36px; height: 36px; margin-bottom: 12px; color: var(--brass-light); }
.install-desktop p { color: rgba(243, 239, 229, 0.62); font-size: 0.82rem; line-height: 1.5; }
.install-desktop strong { color: var(--brass-light); font-size: 0.75rem; }

@keyframes view-arrive { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@keyframes sheet-up { from { transform: translateY(100%); } to { transform: none; } }
@keyframes share-screen-in { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
@keyframes share-view-in { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: none; } }
@keyframes launch-rise { from { opacity: 0; transform: translateY(12px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes launch-film-in { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: scale(1.12); } }
@keyframes launch-video-in { from { opacity: 0; transform: scale(.985); } to { opacity: 1; transform: scale(1); } }
@keyframes launch-breathe { 0%, 100% { opacity: .56; transform: scale(.96); } 50% { opacity: 1; transform: scale(1.03); } }
@keyframes launch-progress { from { transform: translateX(-120%); } to { transform: translateX(260%); } }
@keyframes saving-sheen { from { background-position: 120% 0; } to { background-position: -120% 0; } }
@keyframes install-cue-shine { 0%, 15% { transform: translateX(-120%); } 70%, 100% { transform: translateX(120%); } }
@keyframes install-route-glint { 0%, 72% { left: -24%; opacity: 0; } 78% { opacity: 1; } 94%, 100% { left: 116%; opacity: 0; } }
@keyframes category-arrive { from { opacity: .65; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@keyframes product-card-in { from { opacity: 0; transform: perspective(900px) rotateX(7deg) translateY(18px); } to { opacity: 1; transform: perspective(900px) rotateX(1.7deg) translateY(0); } }
@keyframes product-card-glint { 0%, 68% { transform: translateX(-55%) rotate(7deg); opacity: 0; } 74% { opacity: 1; } 88%, 100% { transform: translateX(55%) rotate(7deg); opacity: 0; } }
@keyframes product-detail-in { from { opacity: 0; transform: translateY(28px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes gallery-arrive { from { opacity: 0; transform: scale(.985); } to { opacity: 1; transform: none; } }
@keyframes event-card-in { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes artist-message-arrive { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes inbox-bell { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(13deg); } 40% { transform: rotate(-11deg); } 60% { transform: rotate(7deg); } 80% { transform: rotate(-4deg); } }
@keyframes inbox-halo { 0% { opacity: .75; transform: scale(.65); } 100% { opacity: 0; transform: scale(1.45); } }
@keyframes inbox-badge-in { from { opacity: 0; transform: scale(.35); } to { opacity: 1; transform: scale(1); } }
@keyframes donate-glint { 0%, 72% { left: -35%; opacity: 0; } 78% { opacity: 1; } 94%, 100% { left: 122%; opacity: 0; } }
@keyframes message-center-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes message-card-in { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes message-detail-in { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }

@media (max-width: 430px) {
  .culture-donate-button { width: 32px; justify-content: center; padding: 0; }
  .culture-donate-button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media (max-width: 350px) {
  .app-header .brand > span { display: none; }
}
@media (min-width: 641px) {
  body { background: #d9d6ce; }
  .app { width: 100%; max-width: 640px; margin: auto; box-shadow: 0 0 80px rgba(49, 7, 8, .18); }
  .bottom-nav { right: calc((100vw - 640px) / 2); left: calc((100vw - 640px) / 2); }
  .sheet-panel { width: min(100%, 640px); margin: auto; }
}
@media (max-height: 700px) {
  .install-card { padding: 20px; }
  .install-logo { width: 58px; height: 58px; margin-bottom: 12px; }
  .install-lead { margin-top: 10px; }
  .install-device { margin-top: 16px; }
  .install-steps li { min-height: 50px; }
  .share-sheet__header { min-height: calc(90px + var(--safe-top)); padding-bottom: 13px; }
  .share-sheet__header h2 { font-size: 1.55rem; }
  .share-sheet__qr { gap: 4px; padding-top: 7px; padding-bottom: calc(10px + var(--safe-bottom)); }
  .share-qr-card__brand { margin-bottom: 5px; }
  .share-qr-card__brand img { width: 36px; height: 36px; }
  .share-qr-card__frame { width: clamp(156px, min(60vw, 31svh), 218px); padding: 5px; }
  .share-qr-card > p { margin-top: 7px; }
  .share-qr-download { min-height: 54px; }
  .install-gate--samsung .install-logo { width: 48px; height: 48px; margin-bottom: 9px; }
  .install-gate--samsung .install-card h1 { font-size: clamp(1.72rem, 8vw, 2.15rem); }
  .install-gate--samsung .install-device { margin-top: 13px; }
  .install-gate--samsung .install-trust-note { padding-top: 10px; padding-bottom: 10px; }
}

/* Eigenständige Kulturverein-PWA: Nachtblau und Gold aus dem Vereinswappen. */
:root {
  --culture-plum: #102a5c;
  --culture-plum-dark: #050e25;
  --culture-pink: #f0d27f;
  --culture-blue: #eef3fb;
  --culture-paper: #f8f5ee;
  --culture-velvet: #0a1e49;
  --culture-red: #173b78;
  --culture-gold: #c9963f;
  --culture-gold-light: #efd17d;
}

html { background: var(--culture-plum-dark); }
.app { padding-bottom: var(--safe-bottom); background: var(--culture-paper); }
.bottom-nav { display: none; }
.app.is-culture-view .app-header {
  position: fixed;
  right: 0;
  left: 0;
  width: min(100%, 640px);
  margin: 0 auto;
  border-bottom-color: rgba(239, 209, 125, .3);
  background: linear-gradient(180deg, rgba(5, 14, 37, .99), rgba(10, 30, 73, .99));
  transform: translateY(var(--culture-header-push, 0px));
  transition: none;
}
.app-main { padding-top: calc(50px + var(--safe-top)); }
.app.is-culture-view .brand img { object-fit: cover; }
.culture-scroll-emblem {
  position: fixed;
  z-index: 31;
  top: 0;
  left: 0;
  width: 210px;
  height: 210px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 25px rgba(239, 209, 125, .025), 0 0 0 50px rgba(239, 209, 125, .015);
  pointer-events: none;
  transform-origin: center;
  will-change: transform, opacity, clip-path;
}
.culture-intro {
  min-height: 168px;
  display: grid;
  align-content: end;
  padding: 42px 22px 25px;
  background:
    radial-gradient(circle at 86% 22%, rgba(239, 209, 125, .22), transparent 28%),
    linear-gradient(135deg, var(--culture-plum-dark), var(--culture-velvet) 56%, var(--culture-red));
}
.culture-intro__crest {
  position: absolute;
  z-index: -1;
  top: -48px;
  right: -30px;
  width: 210px;
  height: 210px;
  aspect-ratio: 1;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 0 0 25px rgba(239, 209, 125, .025), 0 0 0 50px rgba(239, 209, 125, .015);
  opacity: .2;
  transform: rotate(8deg);
  transform-origin: center;
  will-change: opacity;
}
.culture-intro h1 { max-width: 13ch; font-size: clamp(2rem, 8vw, 2.65rem); }
.culture-intro > p:last-child { max-width: 30ch; }
.event-feed { min-height: calc(100svh - 218px); padding-bottom: calc(28px + var(--safe-bottom)); }
.event-card { border-color: rgba(16, 42, 92, .17); box-shadow: 0 14px 30px rgba(5, 14, 37, .11), 0 2px 0 rgba(201, 150, 63, .14); }
.event-card:focus-visible { outline-color: rgba(201, 150, 63, .82); }
.event-detail__fact { color: #26334d; background: linear-gradient(105deg, #f3ead7, #fffdf8); }
.message-center { background: #030817; }
.message-center__surface {
  color: #18243c;
  background: var(--culture-paper);
  box-shadow: 0 0 70px rgba(2, 8, 23, .52);
}
.message-center__header,
.message-detail.is-culture .message-detail__header {
  border-bottom: 1px solid rgba(239, 209, 125, .34);
  color: #fffdf8;
  background: linear-gradient(180deg, var(--culture-plum-dark), var(--culture-velvet));
}
.message-center__read-all { color: var(--culture-gold-light); }
.message-center__intro {
  border-bottom: 2px solid var(--culture-gold);
  background: radial-gradient(circle at 86% 22%, rgba(239, 209, 125, .17), transparent 29%), linear-gradient(145deg, var(--culture-plum-dark), var(--culture-velvet));
}
.message-center__intro p { color: var(--culture-gold-light); }
.message-center__status { border-color: rgba(16, 42, 92, .25); }
.message-card {
  border-color: rgba(16, 42, 92, .12);
  box-shadow: 0 10px 25px rgba(5, 14, 37, .09);
}
.message-card.is-culture.is-unread { border-left-color: var(--culture-gold); }
.message-card.is-culture .message-card__meta b { color: var(--culture-gold); }
.message-detail { background: var(--culture-plum-dark); }
.push-invitation { border-left-color: var(--culture-gold); background: var(--culture-plum-dark); }
.primary-action { background: var(--culture-plum); }
.tag-choice input { accent-color: var(--culture-plum); }
.tag-choice:has(input:checked) { border-color: rgba(16, 42, 92, .4); background: rgba(16, 42, 92, .07); }
.launch-screen,
.install-gate { background: radial-gradient(circle at 50% 4%, rgba(239, 209, 125, .2), transparent 28%), linear-gradient(150deg, #102a5c, #07183c 58%, #030817); }
.install-card { background: rgba(5, 14, 37, .95); }
.launch-static-logo,
.install-logo { border-radius: 50%; }

@media (hover: hover) {
  .event-card:hover { transform: translateY(-3px); box-shadow: 0 20px 38px rgba(5, 14, 37, .16), 0 2px 0 rgba(201, 150, 63, .2); }
}

@media (prefers-reduced-motion: reduce) {
  .launch-video, .launch-animation { display: none; }
  .launch-media.has-video,
  .launch-media.has-animation { width: min(54vw, 210px); aspect-ratio: 1; border-radius: 50%; }
  .launch-media.has-video .launch-static-logo,
  .launch-media.has-animation .launch-static-logo { opacity: 1; transform: none; }
  .event-detail__artist-message { animation-delay: 0s !important; }
  .culture-scroll-emblem { display: none !important; }
  .culture-intro__crest { opacity: .2 !important; }
  .app.is-culture-view .brand img { opacity: 1 !important; }
}
