.tv-app{box-sizing:border-box;min-height:100vh;padding:5vh 5vw;font-size:clamp(18px,1.6vw,30px)}.tv-app *,.tv-app :after,.tv-app :before{box-sizing:inherit}.tv-app :focus{outline:4px solid var(--acid);outline-offset:6px}.tv-app a,.tv-app button{scroll-margin:5vh 5vw}.tv-app .populi-site-header{min-height:64px;padding:0 0 16px}.tv-app .populi-site-header nav a{min-height:48px;padding:10px;font-size:1em}.tv-app .populi-wordmark{font-size:1.6em}.tv-app .populi-hero{min-height:0;padding:32px 0}.tv-app .populi-hero h1{margin:12px 0;font-size:clamp(40px,5vw,88px)}.tv-app .populi-section{padding:30px 0}.tv-app .populi-mosaic{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.tv-app .populi-stream-card{border:1px solid var(--populi-rule);padding:0}.tv-app .populi-stream-card:nth-child(n){grid-column:auto}.tv-app .populi-stream-card:focus-within{border-color:var(--acid);background:#24291b}.tv-app .populi-stream-window{aspect-ratio:16/9}.tv-app .populi-room-poster{display:block;width:100%;height:100%;object-fit:cover}.tv-app .populi-stream-caption{flex-wrap:wrap;gap:12px;padding:16px}.tv-app .populi-open-room{min-height:52px;padding:12px;font-size:.85em}.tv-directory{min-height:90vh;max-width:1728px;margin:0 auto}.tv-directory-header{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:24px}.tv-directory-brand{color:var(--text);font:700 clamp(27px,2.4vw,42px)/1 var(--display);letter-spacing:-1.5px;white-space:nowrap}.tv-directory-brand>span{color:var(--acid)}.tv-directory-brand small{display:inline-block;margin-left:7px;border:1px solid #626a4b;border-radius:4px;padding:4px 7px;color:var(--acid);font:700 .38em/1 var(--font);letter-spacing:.08em;vertical-align:middle}.tv-directory-instructions{color:#c5c8bc;font-size:clamp(16px,1.1vw,21px);text-align:right}.tv-directory-instructions span{padding:0 8px;color:var(--acid)}.tv-directory-main{padding:clamp(30px,5vh,60px) 0 5vh}.tv-directory-intro{margin-bottom:clamp(26px,4vh,48px)}.tv-directory-kicker{color:var(--acid);font-size:clamp(13px,.95vw,18px);font-weight:700;letter-spacing:.14em}.tv-directory-intro h1{margin:7px 0 4px;font:600 clamp(38px,4vw,72px)/1.05 var(--display);letter-spacing:-.035em}.tv-directory-intro>p:last-child{color:#c5c8bc;font-size:clamp(18px,1.45vw,27px)}.tv-directory-section-heading{display:flex;align-items:baseline;gap:18px;margin-bottom:16px}.tv-directory-section-heading h2{font:600 clamp(23px,1.8vw,32px)/1.2 var(--display)}.tv-directory-section-heading>span{color:#b9bdaf;font-size:clamp(16px,1.1vw,21px)}.tv-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2vw,36px);padding:8px;margin:-8px}.tv-directory-card{display:block;min-width:0;overflow:hidden;border:1px solid #40443a;border-radius:10px;background:#1b1e18;color:var(--text);transition:border-color .14s ease,background-color .14s ease}.tv-directory-card:focus,.tv-directory-card:hover{border-color:var(--acid);background:#2a3020}.tv-directory-card:focus{outline-offset:4px}.tv-directory-poster{aspect-ratio:16/9;overflow:hidden;background:#0b0c0a}.tv-directory-poster img{display:block;width:100%;height:100%;object-fit:cover}.tv-directory-card-caption{display:flex;min-height:92px;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px}.tv-directory-card-caption>div{min-width:0}.tv-directory-card-caption h3,.tv-directory-card-caption p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tv-directory-card-caption h3{font:600 clamp(24px,1.8vw,34px)/1.1 var(--display)}.tv-directory-card-caption p{margin-top:5px;color:#c5c8bc;font-size:clamp(16px,1vw,20px)}.tv-directory-watch{flex:0 0 auto;color:var(--acid);font-size:clamp(16px,1.05vw,20px);font-weight:700}.tv-directory-watch span{padding-left:4px}.tv-directory-empty{max-width:680px;border:1px solid #40443a;border-radius:10px;padding:24px;background:#1b1e18;color:#c5c8bc;font-size:clamp(18px,1.4vw,26px)}@media (max-width:1000px){.tv-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.tv-directory-header{align-items:flex-start;flex-direction:column;gap:12px}.tv-directory-instructions{text-align:left}.tv-directory-grid{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.tv-directory-card{transition:none}}.tv-room{height:90vh;min-height:0;display:flex;flex-direction:column}.tv-room>header{flex:0 0 auto}.tv-room main{width:100%;max-width:none;flex:1 1;min-height:0;margin:0;display:flex;flex-direction:column;position:relative}.tv-room-heading{display:flex;flex:0 0 auto;align-items:baseline;justify-content:space-between;gap:24px;padding:12px 0}.tv-room-heading h1{min-width:0;overflow:hidden;margin:0;font:500 1.4em var(--display);text-overflow:ellipsis;white-space:nowrap}.tv-remote-hint,.tv-room-heading p{color:var(--muted);font-size:.7em}.tv-room .embed-page{flex:1 1 auto;min-height:0;background:transparent}.tv-room .embed-frame,.tv-room .embed-webcam{width:100%;height:100%;max-height:none;aspect-ratio:auto;margin:0 auto}.tv-room .webcam .video-layer,.tv-room .webcam .webcam-poster{object-fit:contain;background:#090a08}.tv-room .player-buttons{gap:20px}.tv-room .tv-playback-paused{position:absolute;inset:50% auto auto 50%;z-index:5;max-width:calc(100% - 48px);padding:18px 24px;transform:translate(-50%,-50%);border:1px solid var(--line);border-radius:8px;background:#111210ef;color:var(--paper);font-size:clamp(18px,2vw,28px);text-align:center}.tv-room .player-buttons button{width:64px;height:64px;border:1px solid var(--line);border-radius:8px;background:#151812e6}.tv-amazon-iap{position:absolute;z-index:12;right:clamp(24px,5vw,88px);bottom:clamp(84px,12vh,140px);width:min(560px,calc(100% - 48px));color:var(--paper);font-size:clamp(16px,1.25vw,23px)}.tv-amazon-iap button,.tv-amazon-iap textarea{font:inherit}.tv-amazon-iap button{min-height:52px;border:1px solid var(--line);border-radius:8px;padding:12px 18px;background:#20211d;color:var(--paper);text-align:left}.tv-amazon-iap button:focus-visible,.tv-amazon-iap textarea:focus-visible{outline:4px solid var(--acid);outline-offset:3px}.tv-amazon-iap button:disabled{opacity:.55}.tv-amazon-iap-trigger{display:block;margin-left:auto;background:#d8f36a!important;color:#111210!important;font-weight:700!important}.tv-amazon-iap-card{max-height:min(68vh,560px);overflow-y:auto;margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:22px;background:#111210f2;box-shadow:0 16px 64px #000a}.tv-amazon-iap-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.tv-amazon-iap-heading strong{font-size:1.25em}.tv-amazon-iap-custom label,.tv-amazon-iap-error,.tv-amazon-iap-heading p,.tv-amazon-iap-quote p,.tv-amazon-iap-status{margin:6px 0 0;color:var(--muted);line-height:1.35}.tv-amazon-iap-heading>span{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:var(--acid);font-size:.8em}.tv-amazon-iap-actions,.tv-amazon-iap-packs{display:grid;gap:10px}.tv-amazon-iap-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.tv-amazon-iap-actions button{display:flex;min-height:76px;align-items:center;gap:10px}.tv-amazon-iap-actions button span:first-child{font-size:1.25em}.tv-amazon-iap-custom{display:grid;gap:10px;margin-top:18px}.tv-amazon-iap-custom textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:12px;background:#191b17;color:var(--paper)}.tv-amazon-iap-custom button,.tv-amazon-iap-quote button:not(.tv-amazon-iap-secondary){background:#d8f36a;color:#111210;font-weight:700}.tv-amazon-iap-quote>strong{display:block;margin-bottom:8px}.tv-amazon-iap-packs{margin-top:16px}.tv-amazon-iap-packs button{text-align:center}.tv-amazon-iap-secondary{margin-top:14px;background:transparent!important}.tv-amazon-iap-error,.tv-amazon-iap-status{padding-top:12px}.tv-amazon-iap-error{color:#ffb3a7}.tv-room .camera-bottom{padding:24px}.tv-room .camera-clock,.tv-room .camera-label,.tv-room .camera-live{font-size:clamp(14px,1.1vw,20px)}.tv-room .camera-bottom strong{font-size:clamp(18px,1.5vw,26px)}.tv-remote-hint{flex:0 0 auto;margin:8px 0 0;text-align:center}.tv-room :is(.webcam:fullscreen,.webcam.fullscreen-fallback) .camera-top{top:5vh;right:5vw;left:5vw}.tv-room :is(.webcam:fullscreen,.webcam.fullscreen-fallback) .camera-bottom{right:5vw;bottom:5vh;left:5vw}@media (max-width:1000px){.tv-app .populi-hero-note{display:none}.tv-app .populi-hero{grid-template-columns:1fr}.tv-app .populi-mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}}