/* PlayBed app-style layout — preserves the existing PlayBed color palette. */
html, body { min-height: 100%; }
body {
    min-height: 100svh;
    display: flex;
    flex-direction: column;
}
#main-content { flex: 1 0 auto; }
.pb-home-page { padding-top: 22px; }

.pb-home-shell {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: clamp(38px, 6vw, 74px) clamp(24px, 5vw, 58px);
    border: 1px solid var(--border);
    border-radius: 32px;
    background: linear-gradient(145deg, var(--surface), color-mix(in srgb, var(--surface-solid) 88%, transparent));
    box-shadow: var(--shadow);
    text-align: center;
}

.pb-home-brand { display:inline-flex;align-items:center;justify-content:center;gap:16px;font-size:clamp(2.7rem,7vw,5.2rem);font-weight:950;letter-spacing:-.06em;line-height:1; }
.pb-home-brand-icon { width:clamp(64px,10vw,94px);height:clamp(64px,10vw,94px);display:grid;place-items:center;border-radius:24px;border:1px solid var(--border);background:color-mix(in srgb,var(--primary) 18%,var(--surface));font-size:clamp(2.2rem,6vw,3.7rem); }
.pb-home-copy { margin:24px auto 0;color:var(--muted);font-size:clamp(1rem,2.2vw,1.2rem);line-height:1.65; }
.pb-home-copy p { margin:4px 0; }
.pb-home-cards { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:44px; }
.pb-home-card { min-height:280px;padding:30px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:24px;background:color-mix(in srgb,var(--surface-solid) 76%,transparent);transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.pb-home-card:hover { transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 42%,var(--border));background:color-mix(in srgb,var(--surface-solid) 88%,transparent); }
.pb-home-card-icon { width:78px;height:78px;display:grid;place-items:center;margin-bottom:20px;border-radius:22px;background:color-mix(in srgb,var(--primary) 14%,var(--surface-2));font-size:2.35rem; }
.pb-home-card h2 { margin:0 0 12px;font-size:clamp(1.2rem,2.4vw,1.55rem);letter-spacing:-.02em; }
.pb-home-card p { margin:0;max-width:285px;color:var(--muted);line-height:1.65; }
.pb-home-shortcuts { display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:28px; }
.pb-home-player { width:min(1180px,calc(100% - 40px));margin:20px auto 0; }
.pb-player-compact { padding:26px 28px; }

.pb-site-footer { width:min(1180px,calc(100% - 40px));margin:auto auto 18px;flex:0 0 auto; }
.pb-footer-panel { padding:34px 34px 38px;border:1px solid var(--border);border-radius:28px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface-solid) 90%,transparent));box-shadow:var(--shadow); }
.pb-footer-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px; }
.pb-footer-column h3 { margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--border);color:var(--primary);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase; }
.pb-footer-links { display:grid;gap:13px; }
.pb-footer-links a,.pb-footer-links button { width:fit-content;padding:0;border:0;background:transparent;color:var(--muted);font:inherit;font-weight:700;cursor:pointer; }
.pb-footer-links a:hover,.pb-footer-links button:hover { color:var(--text); }
.pb-footer-bottom { margin-top:16px;padding:28px 22px;border:1px solid var(--border);border-radius:24px;text-align:center;color:var(--muted);background:color-mix(in srgb,var(--surface) 78%,transparent); }
.pb-footer-bottom p { margin:4px 0;line-height:1.6; }

@media (max-width: 820px) {
    body:not(.pb-immersive-page) { padding-bottom:calc(116px + env(safe-area-inset-bottom)); }
    .pb-home-page { padding-top:14px; }
    .pb-home-shell { width:min(100% - 24px,1180px);padding:30px 18px 24px;border-radius:24px; }
    .pb-home-brand { gap:10px; }
    .pb-home-copy { margin-top:18px; }
    .pb-home-cards { grid-template-columns:1fr;margin-top:28px;gap:12px; }
    .pb-home-card { min-height:0;padding:24px 18px; }
    .pb-home-card-icon { width:66px;height:66px;margin-bottom:14px;font-size:2rem; }
    .pb-home-shortcuts { margin-top:22px; }
    .pb-home-player { width:min(100% - 24px,1180px); }

    /* On mobile the information footer belongs to the document, not the viewport.
       Only the five-tab navigation is fixed. This prevents the copyright card
       from covering rankings, forms and game content while scrolling. */
    .pb-site-footer {
        position:static;
        width:min(100% - 24px,1180px);
        margin:32px auto calc(108px + env(safe-area-inset-bottom));
        pointer-events:auto;
    }
    .pb-site-footer .pb-footer-panel { display:none; }
    .pb-footer-bottom {
        margin:0;
        padding:16px 18px;
        border-radius:20px;
        background:color-mix(in srgb,var(--surface-solid) 94%,transparent);
        box-shadow:none;
        backdrop-filter:none;
        -webkit-backdrop-filter:none;
    }
    .pb-footer-bottom p { margin:2px 0;font-size:.78rem;line-height:1.35; }
}

@media (max-width: 520px) {
    .pb-home-brand { font-size:2.6rem; }
    .pb-home-brand-icon { width:58px;height:58px;border-radius:18px;font-size:2rem; }
    .pb-home-shortcuts { display:grid; }
    .pb-home-shortcuts > * { width:100%; }
    .pb-footer-grid { grid-template-columns:1fr 1fr; }
    .pb-footer-column h3 { font-size:.7rem; }
    .pb-footer-links a,.pb-footer-links button { font-size:.9rem; }
}
