/* Shared layout refinements. Uses grid-gap and ordinary media queries for older TV browsers. */
html { -webkit-text-size-adjust:100%; scroll-padding-top:24px; }
*, *:before, *:after { box-sizing:border-box; }
button, input, select, textarea { font:inherit; }
video { max-width:100%; height:auto; }
a, button, input { touch-action:manipulation; }
main a, main button { scroll-margin:24px; }
.public-header nav, .tv-header, .public-footer, .tv-footer { flex-wrap:wrap; }
.public-header nav a { display:inline-flex; align-items:center; min-height:48px; }
.public-header > *, .tv-header > *, .public-footer > *, .tv-footer > * { min-width:0; max-width:100%; }
.public-footer a, .tv-footer a { overflow-wrap:break-word; word-break:break-word; white-space:normal; max-width:100%; }
.showcase-heading h1, .showcase-heading h1 em { overflow-wrap:break-word; }
.showcase .showcase-grid { align-items:stretch; grid-gap:24px; }
.showcase .showcase-card { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); grid-template-rows:1fr auto auto; }
.showcase-category { font-size:.75rem; letter-spacing:.03em; }
.showcase-note { line-height:1.55; }
.showcase-facts dt { font-size:.875rem; }
.showcase .showcase-actions { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }
.showcase .showcase-install, .showcase .showcase-details { text-align:center; white-space:normal; overflow-wrap:break-word; font-size:1.125rem; min-height:64px; }
.showcase .showcase-install:not(.disabled) { color:#071624!important; background:linear-gradient(115deg,#e0fbff,var(--glow)); font-weight:800; }
.showcase .showcase-install > span, .showcase .showcase-details > span { flex-shrink:0; }
.showcase .showcase-status { font-size:.875rem; line-height:1.6; }
.showcase .platforms { padding:16px 20px; }
.showcase .platforms-title { font-size:.9375rem; }
.showcase .platforms-grid a { min-height:88px; }
.showcase .platforms-grid img { width:36px; height:36px; margin-bottom:8px; }
.showcase .app-devices > span { font-size:.875rem; margin-right:16px; }
.showcase .app-requirements { font-size:.875rem; line-height:1.5; }
.showcase .showcase-copy, .showcase .showcase-bottom, .showcase .showcase-status { min-width:0; }
.showcase .tv-code { overflow-wrap:break-word; }
.future-strip { flex-wrap:wrap; }
.future-strip > * { min-width:0; max-width:100%; }
.future-facts, .future-bottom { grid-template-columns:repeat(2,minmax(0,1fr)); }
.future-facts > div:last-child { grid-column:1/-1; }
.app-future .future-download .download-button, .app-future .future-download .unlock-go { text-align:center; color:#04182b; background:linear-gradient(115deg,#8ff8db,#6fdcff); border-color:#a4f8ff; }
.app-future .future-download .download-button span { flex-shrink:0; }
.unlock-input { min-width:0; max-width:100%; font-size:1.25rem; min-height:60px; }
.unlock-key { min-width:0; min-height:56px; }
.guide-step, .guide-video, .guide-help, .guide-faq-grid article { line-height:1.65; }
.guide-step p, .guide-step li { max-width:75ch; }
.guide-step-actions a, .guide-button, .extra-access a { text-align:center; justify-content:center; }
.guide-progress { flex-wrap:wrap; }
.guide-progress a { flex-shrink:0; }
.guide-app-link { margin-top:auto!important; }
.guide-code-grid article > * { min-width:0; max-width:100%; }
.guide-video video { display:block; width:100%; background:#030b14; border-radius:12px; }
.tv-footer, .public-footer { line-height:1.7; }
a:focus, button:focus, input:focus { outline:3px solid #ffda63; outline-offset:4px; }

@media (hover:hover) and (pointer:fine) {
 .showcase .showcase-details:hover { background:#18324b; border-color:#a1e8ff; }
 .showcase .showcase-install:hover { filter:brightness(1.08); }
 .platforms-grid a:hover { background:#18324b; }
}
@media (min-width:761px) and (max-width:1099px) {
 .showcase .showcase-grid { grid-template-columns:minmax(0,1fr); max-width:850px; margin:0 auto; }
 .showcase .showcase-card { padding:28px; }
 .showcase .showcase-card h2 { font-size:2rem; }
 .showcase .showcase-icon img { width:160px; height:160px; }
 .public-header { flex-wrap:wrap; }
 .public-header nav { margin-top:8px; }
 .future-hero { grid-gap:24px; }
 .future-strip { padding:24px; }
 .future-strip > * { margin:8px 0; }
}
@media (max-width:760px) {
 .showcase .public-main, .showcase .tv-main, .app-future .public-main { width:calc(100% - 32px); }
 .showcase .tv-header { padding:14px 16px; justify-content:flex-start; }
 .showcase .tv-brand { flex-basis:100%; margin-bottom:10px; }
 .showcase .tv-device { display:inline-block; width:auto; flex-basis:auto; margin:0 8px 4px 0; padding:6px 10px; font-size:.8125rem; line-height:1.4; }
 .public-header { padding:12px 16px; width:100%; min-height:0; }
 .public-header nav { display:flex; flex-wrap:wrap; width:100%; margin-top:8px; }
 .public-header nav a, .app-future .public-header nav a { font-size:.875rem; min-height:44px; margin:0 6px 0 0; padding:8px; }
 .showcase-heading { padding:24px 0 18px; }
 .showcase-heading h1 { font-size:2rem; letter-spacing:-.04em; }
 .showcase-heading > p:last-of-type { font-size:1rem; line-height:1.5; margin-bottom:12px; }
 .showcase-tags > a, .showcase-tags > span { font-size:.875rem; padding:10px 12px; margin:4px; }
 .showcase .platforms { padding:12px; margin-bottom:20px; border-radius:18px; }
 .showcase .platforms-title { font-size:.875rem; margin-bottom:10px; }
 .showcase .platforms-grid { grid-gap:6px; }
 .showcase .platforms-grid a { min-height:78px; padding:8px 2px; font-size:.8125rem; }
 .showcase .platforms-grid img { width:30px; height:30px; }
 .showcase .showcase-grid { grid-template-columns:minmax(0,1fr); grid-gap:20px; }
 .showcase .showcase-card { padding:20px 18px 16px; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); grid-template-areas:"copy scene" "bottom bottom" "status status"; grid-gap:0 12px; }
 .showcase .showcase-copy { grid-area:copy; }
 .showcase .showcase-scene { grid-area:scene; min-height:160px; }
 .showcase .showcase-bottom { grid-area:bottom; margin-top:18px; }
 .showcase .showcase-status { grid-area:status; margin-bottom:0; }
 .showcase .showcase-card h2 { font-size:1.5rem; letter-spacing:-.025em; line-height:1.2; }
 .showcase .showcase-note { font-size:.9375rem; margin-bottom:14px; }
 .showcase .showcase-facts > div { margin-right:12px; }
 .showcase .showcase-facts dd { font-size:.9375rem; }
 .showcase .showcase-icon { padding:7px; border-radius:18px; }
 .showcase .showcase-icon img, .showcase .showcase-icon > span { width:96px; height:96px; border-radius:12px; }
 .showcase .showcase-pedestal { width:100%; max-width:150px; }
 .showcase .showcase-card .tv-code { font-size:.875rem; letter-spacing:0; }
 .showcase .showcase-actions { grid-template-columns:minmax(0,1fr); grid-gap:10px; }
 .showcase .showcase-install { min-height:60px; font-size:1.125rem; padding:14px 12px; }
 .showcase .showcase-details { min-height:52px; font-size:1rem; padding:12px; }
 .showcase .app-devices { margin:0 0 4px; }
 .showcase .app-devices > span { margin:0 12px 10px 0; font-size:.8125rem; }
 .showcase .app-devices img { width:24px; height:24px; }
 .future-bottom, .future-steps { grid-template-columns:minmax(0,1fr); }
 .future-steps li { border-right:0; padding:18px; }
 .future-bottom { grid-gap:20px; }
 .app-future .future-download .download-button { padding:16px 12px; font-size:1.125rem; }
 .app-future .future-strip { padding:20px; display:block; }
 .app-future .future-code { padding:18px 0 8px; }
 .app-future .future-strip > a { display:inline-flex; align-items:center; min-height:48px; }
 .guide-hero { padding-top:22px; }
 .guide-section-head, .guide-step, .guide-video { border-radius:18px; }
 .guide-progress { justify-content:flex-start; }
 .guide-progress a { margin:4px; min-width:44px; min-height:44px; }
 .guide-step-actions a { width:100%; }
 .public-footer, .tv-footer { padding:24px 16px; font-size:.9375rem; }
 .public-footer > div { width:100%; margin-bottom:16px; }
 .tv-footer > span { display:block; width:100%; margin-bottom:12px; }
 .dmca-contact { font-size:.875rem; }
}
@media (max-width:360px) {
 .showcase .showcase-card { padding:16px 12px; grid-gap:0 8px; }
 .showcase .showcase-icon img, .showcase .showcase-icon > span { width:76px; height:76px; }
 .showcase .showcase-card h2 { font-size:1.375rem; }
 .showcase-category { padding:5px 7px; font-size:.6875rem; }
}
/* TV layout keeps large controls and a visible focus ring, without relying on hover. */
.remote-mode .showcase-install, .on-tv .showcase-install,
.remote-mode .showcase-details, .on-tv .showcase-details { min-height:80px!important; font-size:1.5rem!important; }
.remote-mode .showcase-card, .on-tv .showcase-card { overflow:visible; }
.remote-mode a:focus, .on-tv a:focus, .on-tv button:focus, .remote-mode button:focus { outline:5px solid #ffdf66; outline-offset:4px; }
@media (min-width:1600px) {
 .remote-mode .tv-main, .on-tv .public-main { max-width:1600px; }
 .remote-mode .showcase-grid, .on-tv .showcase-grid { max-width:1400px; }
 .remote-mode .showcase-note, .on-tv .showcase-note { font-size:1.5rem; }
}
@media (prefers-reduced-motion:reduce) {
 *, *:before, *:after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
}
