/* Home utilities occupy only the existing safe area; no center/card geometry rules. */
#starBagApp[data-state="GROUP_HOME"] > .starbag-header > div:first-child { visibility: hidden; }
#groupHomeScreen .community-home-utilities { position: absolute; z-index: 40; top: var(--safe-top); right: var(--safe-right); }
#groupHomeScreen .community-home-video-slot { position: absolute; z-index: 40; top: var(--safe-top); left: var(--safe-left); }
html[data-device="phone"] #groupHomeScreen .community-home-video-slot { display: none; }
.community-desktop-sea, .community-phone-tools summary, .community-utility-items a { color: #fff2b4; background: #073954; border: 1px solid #8fcbdc; border-radius: 16px; padding: 10px 16px; font: inherit; font-size: 18px; text-decoration: none; }
.community-phone-tools { display: none; }
.community-utility-items { position: absolute; top: 100%; right: 0; min-width: 150px; padding-top: 8px; }
.community-utility-items a { display: block; }
html[data-device="phone"] #groupHomeScreen .community-desktop-sea { display: none; }
html[data-device="phone"] #groupHomeScreen .community-phone-tools { display: block; }
.community-phone-tools summary { cursor: pointer; font-size: 16px; }
.community-dialog { width: min(520px, calc(100vw - 40px)); max-height: 85dvh; box-sizing: border-box; overflow: auto; padding: 24px; border: 1px solid #8fcbdc; border-radius: 24px; background: #073954; color: #f0f9ff; font: inherit; font-size: 18px; }
.community-dialog::backdrop { background: #001b34b8; }
.community-dialog h2 { color: #fff0b0; font-size: 26px; margin-top: 0; }
.community-dialog p { line-height: 1.6; }
.community-dialog button { display: block; width: 100%; margin-top: 14px; min-height: 46px; border: 1px solid #b5e1e8; border-radius: 16px; padding: 10px; background: #e5f5f7; color: #103951; font: inherit; cursor: pointer; }
.community-sea-page { margin: 0; color: #edfaff; background: #063b68 url('../assets/community-memory/ocean.webp') center / cover fixed; }
.community-sea { position: relative; min-height: 100dvh; isolation: isolate; overflow: hidden; }
.community-sea-toolbar { position: relative; z-index: 3; display: flex; justify-content: space-between; gap: 12px; padding: max(20px, env(safe-area-inset-top)) 24px 10px; }
.community-sea-toolbar a, .community-sea-toolbar button { font: inherit; font-size: 18px; padding: 10px 16px; color: #fff2b4; background: #073954df; border: 1px solid #8fcbdc; border-radius: 18px; text-decoration: none; cursor: pointer; }
.community-sea-title { position: relative; z-index: 2; text-align: center; padding: 16px 24px; }
.community-sea-title h1 { font-size: clamp(30px, 4vw, 48px); color: #ffedaa; margin: 16px 0; }
.community-sea-title p { font-size: 18px; line-height: 1.6; }
.community-stars { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(auto-fit, 94px); justify-content: center; align-items: center; gap: 32px 38px; max-width: 1100px; margin: 20px auto; padding: 30px 24px 210px; }
.community-memory-star { border: 0; padding: 6px; background: transparent; width: 94px; height: 94px; cursor: pointer; animation: communityFloat 5s ease-in-out infinite; animation-delay: var(--float-delay); }
.community-memory-star:nth-child(3n+2) { margin-top: 30px; }
.community-memory-star img, .community-detail-star { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 0 15px #fff0a060); }
.community-detail-star { display: block; width: 110px; height: 110px; margin: 0 auto 18px; }
.community-wave-window { position: fixed; z-index: 1; bottom: -4px; left: 0; right: 0; overflow: hidden; pointer-events: none; }
.community-wave-strip { --tile: clamp(640px, 65vw, 1203px); display: flex; width: max-content; align-items: flex-end; animation: communityWave 18s linear infinite; }
.community-wave-strip img { display: block; width: var(--tile); height: auto; flex: 0 0 var(--tile); margin-right: -160px; }
@keyframes communityWave { to { transform: translateX(calc(160px - var(--tile))); } }
@keyframes communityFloat { 50% { transform: translateY(-9px); } }
@media (max-width: 767px) { .community-wave-strip { --tile: 100vw; } .community-wave-strip img { margin-right: 0; } .community-wave-strip { animation-name: communityPhoneWave; } .community-stars { gap: 24px 14px; padding-bottom: 130px; } .community-sea-toolbar { padding-left: 14px; padding-right: 14px; } }
@keyframes communityPhoneWave { to { transform: translateX(-100vw); } }
@media (prefers-reduced-motion: reduce) { .community-memory-star, .community-wave-strip { animation: none; } }
.community-memory-star:focus-visible, .community-sea-toolbar :focus-visible, .community-home-utilities :focus-visible { outline: 3px solid #fff; outline-offset: 4px; }

/* Exact donor cover is isolated so its visual cascade cannot style the archive. */
#communitySeaCover { height: 100dvh; }
#communitySeaCover iframe { display: block; width: 100%; height: 100%; border: 0; }
#communitySeaCover[hidden], #communitySeaArchive[hidden] { display: none; }
/* Home video hook: default hidden, only revealed after configured video metadata loads. */
#groupHomeScreen [data-community-video-open] { color: #fff2b4; background: #073954; border: 1px solid #8fcbdc; border-radius: 16px; padding: 10px 16px; font: inherit; font-size: 18px; cursor: pointer; }
#groupHomeScreen .community-utility-items [data-community-video-open] { width: 100%; margin-top: 6px; text-align: left; }
#groupHomeScreen [data-community-video-open][hidden], #groupHomeScreen .community-home-video-slot[hidden] { display: none; }
#communityVideoDialog { width: min(960px, calc(100vw - 40px)); }
#communityVideoDialog video { display: block; width: 100%; max-height: 70dvh; background: #000; }
