/* Public HTML is a real, readable first paint, never a hidden SEO-only copy.
   Plain selectors deliberately avoid Tailwind's client-only class scanning. */
body:has(> #community-server-content) > #root { display: none; }
#community-server-content {
 --cs-bg: #fff; --cs-fg: #171717; --cs-muted: #6e6e6e;
 --cs-border: #e5e5e5; --cs-surface: #f9f9f9;
 min-height: 100dvh; margin: 0; background: var(--cs-bg); color: var(--cs-fg);
 font: 400 14px/1.6 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.dark #community-server-content { --cs-bg: #212121; --cs-fg: #ededed; --cs-muted: #afafaf; --cs-border: #3a3a3a; --cs-surface: #181818; }
#community-server-content * { box-sizing: border-box; }
#community-server-content a { color: inherit; text-decoration: none; }
#community-server-content a:hover { text-decoration: underline; }
#community-server-content a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; border-radius: 6px; }
#community-server-content h1 { margin: 0 0 20px; font-size: 28px; line-height: 1.25; font-weight: 600; letter-spacing: -.025em; overflow-wrap: anywhere; }
#community-server-content h2 { margin: 0 0 8px; font-size: 20px; line-height: 1.4; font-weight: 600; overflow-wrap: anywhere; }
#community-server-content p { margin: 0 0 16px; }
#community-server-content .community-server-topbar { height: 64px; padding: 0 28px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--cs-border); background: var(--cs-bg); }
#community-server-content .community-server-topbar a:first-child { font-size: 18px; font-weight: 600; }
#community-server-content .community-server-topbar a:last-child { color: var(--cs-muted); }
#community-server-content .community-server-rail { display: none; }
#community-server-content .community-server-body { max-width: 1280px; margin: 0 auto; padding: 24px 16px 80px; }
#community-server-content .community-server-card { border: 1px solid var(--cs-border); border-radius: 16px; background: var(--cs-bg); margin-bottom: 20px; min-width: 0; overflow: hidden; }
#community-server-content .community-server-copy { padding: 24px; }
#community-server-content .community-server-card p:last-child { margin-bottom: 0; }
#community-server-content .community-server-author { font-size: 13px; color: var(--cs-muted); }
#community-server-content .community-server-text { white-space: pre-wrap; overflow-wrap: anywhere; }
#community-server-content .future-section { padding: 24px; border: 1px solid var(--cs-border); border-radius: 16px; margin: 20px 0; }
#community-server-content .community-server-userbar { display: flex; justify-content: space-between; align-items: center; min-height: 64px; padding: 12px 16px; margin: -24px -16px 24px; border-bottom: 1px solid var(--cs-border); }
#community-server-content .community-server-userbar span { font-weight: 500; max-width: 65%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#community-server-content .community-server-post { border: 0; border-radius: 0; }
#community-server-content .community-server-post .community-server-copy { padding: 24px 0; }
#community-server-content .community-server-media { display: flex; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; border-radius: 16px; background: var(--cs-surface); }
#community-server-content .community-server-media figure { flex: 0 0 100%; min-width: 0; margin: 0; scroll-snap-align: start; position: relative; }
#community-server-content .community-server-media img { display: block; width: 100%; height: min(70dvh,650px); object-fit: contain; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
#community-server-content .community-server-media figcaption { position: absolute; bottom: 12px; right: 12px; padding: 2px 10px; border-radius: 999px; background: #171717cc; color: white; font-size: 12px; }
#community-server-content .community-server-media-hint { margin: 10px 0 0; font-size: 12px; color: var(--cs-muted); }
@media (min-width:1280px) {
 #community-server-content { padding-left: 240px; }
 #community-server-content .community-server-rail { display: block; width: 240px; position: fixed; left: 0; top: 0; bottom: 0; background: var(--cs-surface); border-right: 1px solid var(--cs-border); padding: 20px 12px; }
 #community-server-content .community-server-brand { display: block; font-size: 16px; font-weight: 600; padding: 0 8px 32px; }
 #community-server-content .community-server-rail nav { display: grid; gap: 4px; }
 #community-server-content .community-server-rail nav a { display: block; border-radius: 12px; padding: 12px; font-weight: 500; }
 #community-server-content .community-server-rail nav a:last-child { background: var(--cs-border); }
}
@media (max-width:639px) {
 #community-server-content .community-server-topbar { height: 56px; padding: 0 16px; }
 #community-server-content .community-server-body { padding: 16px 8px 64px; }
 #community-server-content h1 { font-size: 24px; }
 #community-server-content .community-server-copy { padding: 20px; }
 #community-server-content .community-server-userbar { margin: -16px -8px 16px; padding: 8px 16px; min-height: 52px; }
 #community-server-content .community-server-media img { height: min(65dvh,650px); }
}

/* JavaScript clients always use the real application, never this alternative
   document layout. Public data is handed to the existing React components. */
.js-on #community-server-content { display: none; }
.js-on body:has(> #community-server-content) > #root { display: block; }

/* A failed application load must not leave a successful HTTP document blank.
   These rules apply to all visitors equally, only while its public HTML exists. */
.js-on.community-boot-failed #community-server-content { display: block; }
.js-on.community-boot-failed body:has(> #community-server-content) > #root { display: none; }
