/* GoodNews Plus — full-screen player (/play/*). Controls auto-hide; keyboard + TV remote friendly. */
body.page-play{background:#000;overflow:hidden}
.player-page{position:fixed;inset:0;background:#000}
.player-shell{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;cursor:default}
.player-shell.is-idle{cursor:none}
.player-shell video{width:100%;height:100%;object-fit:contain;background:#000}
.p-spinner{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;border:3px solid rgba(255,255,255,.2);border-top-color:var(--gold);animation:spin .9s linear infinite;opacity:0;pointer-events:none;transition:opacity var(--t-fast)}
.player-shell.is-buffering .p-spinner{opacity:1}
@keyframes spin{to{transform:rotate(360deg)}}
.player-ui{position:absolute;inset:0;transition:opacity var(--t-med) var(--ease)}
.player-shell.is-idle .player-ui{opacity:0;pointer-events:none}
.p-top{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:12px;padding:16px 18px;background:linear-gradient(180deg,rgba(0,0,0,.8),transparent);padding-top:max(16px,env(safe-area-inset-top))}
.p-title{display:flex;flex-direction:column;min-width:0;flex:1}.p-title strong{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-title small{color:var(--text-dim);font-size:.78rem}
.p-right{display:flex;gap:6px}
.p-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;height:44px;padding:0 10px;border-radius:12px;color:#fff;transition:background var(--t-fast),transform var(--t-fast)}
.p-btn:hover{background:rgba(255,255,255,.14)}.p-btn:focus-visible{box-shadow:var(--focus);transform:scale(1.05)}
.p-btn .ic{width:24px;height:24px}.p-btn.p-skip span{font-size:.62rem;font-weight:700;position:absolute;margin-top:2px}.p-btn.p-skip{position:relative}
.p-pill{padding:0 14px;border-radius:var(--r-pill);background:rgba(255,255,255,.1);font-weight:600;font-size:.85rem}.p-pill span{text-transform:uppercase}
.p-back{text-decoration:none}
.p-center{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;color:#fff;transition:transform var(--t-fast),background var(--t-fast)}
.p-center:hover{background:var(--gold);color:var(--on-gold)}.p-center .ic{width:40px;height:40px;fill:currentColor;stroke:none}
.i-pause,.is-playing .i-play{display:none}.is-playing .i-pause{display:block}
.player-shell.is-playing .p-center{opacity:0;transform:scale(.8);pointer-events:none}
.p-paused{position:absolute;left:50%;top:calc(50% + 64px);transform:translateX(-50%);display:flex;gap:8px}.player-shell.is-playing .p-paused,.p-paused[hidden]{display:none}
.p-paused .ic{fill:none}.p-paused .is-on{color:var(--gold)}
.p-bottom{position:absolute;left:0;right:0;bottom:0;padding:0 18px 14px;background:linear-gradient(0deg,rgba(0,0,0,.85),transparent);padding-bottom:max(14px,env(safe-area-inset-bottom))}
.p-seek{position:relative;height:28px;cursor:pointer;display:flex;align-items:center;margin-bottom:4px}
.p-seek::before{content:"";position:absolute;left:0;right:0;height:4px;border-radius:2px;background:rgba(255,255,255,.25);transition:height var(--t-fast)}
.p-seek:hover::before,.p-seek:focus-visible::before{height:6px}
.p-buffer,.p-played{position:absolute;left:0;height:4px;border-radius:2px;pointer-events:none}.p-seek:hover .p-buffer,.p-seek:hover .p-played{height:6px}
.p-buffer{background:rgba(255,255,255,.35);width:0}.p-played{background:var(--gold);width:0}
.p-knob{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--gold);transform:translateX(-50%) scale(0);transition:transform var(--t-fast);box-shadow:0 0 0 4px rgba(243,180,39,.25);pointer-events:none}.p-seek:hover .p-knob,.p-seek:focus-visible .p-knob{transform:translateX(-50%) scale(1)}
.p-tip{position:absolute;bottom:26px;transform:translateX(-50%);padding:3px 8px;border-radius:6px;background:rgba(0,0,0,.8);font-size:.75rem;font-variant-numeric:tabular-nums;opacity:0;pointer-events:none;transition:opacity var(--t-fast)}.p-seek:hover .p-tip{opacity:1}
.p-row{display:flex;align-items:center;gap:4px}
.p-vol{display:flex;align-items:center;gap:4px}.p-vol input{width:0;opacity:0;transition:width var(--t-med),opacity var(--t-med);accent-color:var(--gold);cursor:pointer}.p-vol:hover input,.p-vol:focus-within input{width:90px;opacity:1}
.i-muted,.is-muted .i-vol{display:none}.is-muted .i-muted{display:block}
.p-time{font-size:.85rem;font-variant-numeric:tabular-nums;color:var(--text-dim);margin:0 8px;white-space:nowrap}.p-spacer{flex:1}
.p-skip-intro{position:absolute;right:24px;bottom:110px;padding:10px 18px;border-radius:var(--r-pill);background:rgba(255,255,255,.15);border:1px solid var(--edge);color:#fff;font-weight:600;backdrop-filter:blur(8px)}.p-skip-intro:hover{background:var(--gold);color:var(--on-gold)}
.p-next{position:absolute;right:24px;bottom:110px;display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:rgba(10,11,13,.92);border:1px solid var(--line);box-shadow:0 20px 50px rgba(0,0,0,.6);max-width:420px;animation:pop var(--t-med) var(--ease)}
.p-next img{width:120px;aspect-ratio:16/9;object-fit:cover;border-radius:8px}.p-next div{display:flex;flex-direction:column;min-width:0}.p-next small{color:var(--text-dim)}.p-next small b{color:var(--gold)}.p-next strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}
.p-end{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:rgba(0,0,0,.65);text-align:center}.p-end strong{font-size:1.4rem}
.p-toast{position:absolute;left:50%;top:84px;transform:translateX(-50%);padding:10px 16px;border-radius:var(--r-pill);background:rgba(10,11,13,.9);border:1px solid var(--line);font-size:.9rem;white-space:nowrap;animation:pop var(--t-fast)}
.p-sheet{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-end;background:rgba(0,0,0,.35);z-index:5}
.sheet-card{width:min(100%,360px);max-height:70vh;overflow:auto;background:rgba(14,15,18,.97);border:1px solid var(--line);border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding:18px;margin:0 auto;animation:sheetUp var(--t-med) var(--ease)}
@media (min-width:768px){.sheet-card{margin:0 24px 90px 0;border-radius:var(--r-sheet)}}
.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sheet-head h3{margin:0;font-size:1rem}
.sheet-section{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin:12px 0 6px}
.sheet-opt{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border-radius:10px;text-align:left}.sheet-opt:hover{background:rgba(255,255,255,.08)}.sheet-opt.is-on{color:var(--gold)}.sheet-opt small{color:var(--text-faint)}
.sheet-chips{display:flex;gap:6px;flex-wrap:wrap}.sheet-chips .chip{cursor:pointer}
.sheet-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px}
@media (max-width:767px){.p-next{left:12px;right:12px;bottom:96px;max-width:none}.p-next img{width:90px}.p-skip-intro{bottom:96px;right:12px}.p-time{margin:0 4px;font-size:.78rem}.p-btn{min-width:40px;height:40px}.p-paused{top:calc(50% + 56px)}.p-paused .p-pill span{display:none}}
@media (prefers-reduced-motion:reduce){.p-spinner{animation-duration:.01ms}}
