:root{
  color-scheme:dark;
  --background:#0b1323;--surface:#121f34;--surface-raised:#192940;
  --ink:#eff4ff;--muted:#abb9d1;--border:#33445e;--control-border:#64748b;
  --primary:#3568e9;--primary-hover:#2857d0;--link:#b6ccff;--focus:#abd1ff;
  --success:#bbdda2;--error:#ffb4b9;--success-surface:#1e342c;--error-surface:#391f2c;
  --brand-navy:#b6ccff;--brand-blue:#8bb0ff;--radius:8px;
  font-family:"Segoe UI",Arial,Helvetica,sans-serif;font-size:16px;
}
body{background:var(--background);color:var(--ink)}
.skip-link{background:var(--surface-raised);color:var(--ink);border:1px solid var(--control-border)}
a{color:var(--link)}
button,input,select,summary{touch-action:manipulation}
button,a,input,select,summary{transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
::selection{background:#b6ccff;color:#0b1323}
.site-header{background:var(--background);border-color:var(--border)}
.header-inner{padding-block:10px;min-height:88px;gap:32px}
.brand{color:var(--ink);gap:14px}
.brand-logo{width:56px;height:56px;filter:saturate(.32);opacity:.96}
.brand .brand-caption{font-size:16px;letter-spacing:.7px;font-weight:700}
.brand .brand-caption small{color:var(--muted);font-size:11px;letter-spacing:1px}
.site-header nav a{color:var(--muted);min-height:44px;align-content:center;font-size:14px}
.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--ink)}
.header-account .text-button{color:var(--muted);min-height:44px;font-size:13px}
.header-account #open-login{border-color:var(--control-border);border-radius:6px;min-height:44px;padding:10px 16px;color:var(--ink)}
.header-account .account-name{color:var(--muted);font-size:13px}
.channel-hero{background:var(--background);min-height:calc(100svh - 88px);padding-block:24px 28px;border-bottom:1px solid var(--border)}
.channel-heading h1{font-size:26px;font-weight:650;letter-spacing:-.5px;line-height:1.3}
.channel-heading .eyebrow{color:var(--muted);font-size:12px;letter-spacing:1.5px}
.channel-hero .channel-frame{background:#060c17;box-shadow:0 12px 40px #0003;border:1px solid #25354b;border-radius:8px;position:relative}
.channel-frame video{position:absolute;inset:0;min-width:0;min-height:0;object-fit:contain}
.channel-hero #channel-placeholder{background:var(--surface)}
.channel-hero #channel-placeholder strong{font-weight:650;letter-spacing:-1px}
.channel-hero .channel-badge{background:var(--surface-raised);color:var(--muted);font-size:11px;border:1px solid var(--border);border-radius:4px}
.channel-hero .channel-badge[data-state=live]{background:#442331;border-color:#9b5869;color:#ffd8e0}
.channel-now-bar{border-color:var(--border)}
.channel-hero .channel-schedule dd{color:var(--ink)}
.channel-hero .channel-schedule dt{color:var(--muted);font-size:12px}
.channel-hero .channel-controls{gap:12px}
.channel-hero .channel-controls .button{font-size:13px;min-height:44px}
.channel-hero .secondary{background:var(--surface-raised);color:var(--ink);border-color:var(--control-border)}
.channel-hero .text-button,.channel-info summary{color:var(--link);min-height:44px;font-size:13px}
.channel-hero #channel-feedback,.channel-info p{color:var(--muted);font-size:13px}
.button{min-height:44px;border-radius:6px;font-size:14px;font-weight:600}
.primary{color:#fff;background:var(--primary)}
.primary:hover:not(:disabled){background:var(--primary-hover)}
.secondary{border-color:var(--control-border);background:var(--surface);color:var(--ink)}
.secondary:hover:not(:disabled),.quiet:hover:not(:disabled),.icon-button:hover{background:var(--surface-raised);color:var(--ink)}
.text-button{color:var(--link);min-height:44px;font-size:14px}
.icon-button{min-width:44px;min-height:44px;color:var(--muted)}
.eyebrow{color:var(--muted);font-size:12px;letter-spacing:1.4px}
.account-gate{padding-block:36px;border-color:var(--border)}
.account-gate h2{font-size:25px;line-height:1.25}
.account-gate p{color:var(--muted);font-size:15px}
.member-heading{padding-top:28px;font-size:14px}
.viewer-library{border-color:var(--border);padding-block:28px 32px}
.viewer-library h2,.about-copy h2{font-weight:650;font-size:28px}
.library-status-row p,.library-feedback{font-size:14px}
.library-columns h3{font-weight:600;font-size:18px}
.library-empty{background:var(--surface);border-color:var(--border);color:var(--muted);border-style:solid;line-height:1.7}
.library-open{background:var(--surface);border-color:var(--border);padding:12px}
.library-open:hover,.collection-card:hover{background:var(--surface-raised);border-color:var(--control-border)}
.library-art{background:#243d63;color:var(--ink)}
.library-card-body strong{font-size:15px;font-weight:600}
.library-card-body>span{font-size:13px}
.watch-progress::-webkit-progress-bar{background:#41516c}
.watch-progress::-webkit-progress-value{background:#8bb0ff}
.toolbar{gap:16px;border-color:var(--border);padding-block:20px}
.filters{gap:8px}
.filters span{font-size:13px;min-height:44px;border:1px solid var(--border);border-radius:6px;padding:12px 14px}
.filters input:checked+span,.filters label:hover input:checked+span{background:#b6ccff;color:#101e35;border-color:#b6ccff}
.filters label:hover span{background:var(--surface-raised);color:var(--ink)}
.filters input:focus-visible+span{outline-color:var(--focus)}
.search{background:var(--surface);border-color:var(--control-border);min-height:46px;border-radius:6px}
.search input{font-size:15px;color:var(--ink)}
.search:focus-within{outline-color:var(--focus)}
.category-filter label{font-size:13px;color:var(--muted)}
.category-filter select,.quality-control select,.schedule-date input,#login-form>input,#signup-name,.account-panel input{background:var(--surface);color:var(--ink);border:1px solid var(--control-border);border-radius:6px;min-height:46px;font-size:16px}
.result-count{font-size:14px;line-height:1.5}
.catalog-grid{gap:28px 24px}
.card-art{background:#1f3453;border-color:var(--border);color:#c5d9ff;border-radius:8px}
.card-art[data-tone="0"],.card-art[data-tone="3"]{background:#1b304e;color:#bbd2f5}
.card-art[data-tone="1"],.card-art[data-tone="4"]{background:#26334b;color:#cbd4e5}
.card-art[data-tone="2"],.card-art[data-tone="5"]{background:#20373c;color:#c2dcd6}
.card-art-mark{font-weight:650}
.card-body h3{font-weight:600;line-height:1.4}
.card-body p{font-size:14px;line-height:1.6}
.access-tag,.access-tag[data-policy=public]{background:#20372f;color:#c0dfaf;font-size:12px;letter-spacing:.15px}
.access-tag[data-policy=registered_only]{background:#233954;color:#bed6fc}
.access-tag[data-policy=explicit_grant]{background:#352d4b;color:#dfcef9}
.access-tag[data-policy=subscriber_only]{background:#3b3020;color:#f0d59b}
.card-body .subscriber-lock{color:#f0d59b;font-size:13px}
.state-panel{background:var(--surface);border-color:var(--border);color:var(--ink)}
.error-panel{background:var(--error-surface);border-color:#93535f}
.program-info{background:var(--surface);border-color:var(--border)}
.collection-card{background:var(--surface);border-color:var(--border);border-radius:8px;padding:20px;gap:10px}
.collection-card strong{font-size:19px;font-weight:600}
.collection-card>span:not(.eyebrow){color:var(--muted);font-size:14px}
.collection-card>.collection-count{color:var(--link)}
.schedule-disclosure{border-color:var(--border);margin-block:32px}
.schedule-disclosure>summary{min-height:64px;font-size:18px}
.schedule-disclosure>summary span{font-size:13px}
.schedule-toolbar,.schedule-day-group{background:var(--surface);border-color:var(--border)}
.schedule-row{border-color:var(--border);background:var(--surface)}
.schedule-row[data-phase=current]{background:#18362e;border-color:#729e85}
.schedule-day-group>h3{background:var(--surface-raised);color:var(--ink);border-color:var(--border)}
.schedule-body h3,.schedule-body h4{font-size:16px;font-weight:600}
.schedule-body p,.schedule-body p.schedule-note,.schedule-body details{font-size:13px;color:var(--muted)}
.schedule-tags,.schedule-weekly{font-size:12px;color:var(--muted)}
dialog{background:var(--surface);border:1px solid var(--control-border);border-radius:12px;box-shadow:0 20px 80px #0008}
dialog::backdrop{background:#030815d4}
.dialog-head{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 20px}
.dialog-head .eyebrow{font-size:12px}
.dialog-body{padding:24px 28px 28px}
.dialog-body h2{font-size:28px;font-weight:650;line-height:1.2}
.dialog-body>p{font-size:14px;line-height:1.7;color:var(--muted)}
.episode-navigation,.session-panel{border-color:var(--border)}
.episode-navigation p{font-size:14px;color:var(--muted)}
.media-note{background:#302b20;border-color:#b99d5c;color:#e6d4ad}
.video-frame{background:#08111f;border:1px solid var(--border);border-radius:6px}
.video-panel #video-status{font-size:14px;color:var(--ink)}
.video-panel #video-description{font-size:13px;color:var(--muted)}
.favorite-actions p,#progress-feedback{font-size:14px;color:var(--muted)}
#favorite-video[aria-pressed=true]{background:#223b33;border-color:#88af95;color:#cfebc0}
#login-form>label,#signup-name-field label{font-size:14px}
#login-form>input,#signup-name{padding:11px 12px}
#login-form .show-password{font-size:14px;min-height:44px}
.login-feedback{color:var(--error);font-size:14px}
.demo-credentials{border-color:var(--border);color:var(--muted);background:var(--surface)}
.demo-credentials summary{color:var(--ink);min-height:44px}
.demo-credentials p,.demo-account-row span{font-size:13px}
.about-city{border-top:1px solid var(--border);margin-top:24px;padding-block:44px}
.about-identity img{filter:saturate(.32);width:108px;height:108px;opacity:.96}
.about-copy>p{font-size:16px;color:var(--muted);line-height:1.8}
.about-copy>.eyebrow{font-size:12px}
.about-copy .founder{font-size:15px;color:var(--ink)}
.founder span{font-size:14px}
.contact-links a{font-size:14px}
.institutional-details{font-size:14px;border-color:var(--border)}
.footer{border-color:var(--border);font-size:13px;color:var(--muted);padding-block:24px 32px}
.footer .footer-environment{font-size:12px}
.profile-summary{display:flex;align-items:center;gap:16px;padding:20px 0 24px;border-bottom:1px solid var(--border);margin-bottom:24px;min-width:0}
.profile-summary>div{min-width:0}.profile-summary strong{font-size:18px;font-weight:600;overflow-wrap:anywhere}
.profile-summary p{margin:6px 0 0;color:var(--muted);font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.profile-avatar{display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;border-radius:50%;background:#243e65;color:#d4e5ff;font-size:20px;font-weight:600}
#profile-fields,#password-fields{border:0;margin:0;padding:0;min-width:0;display:grid;gap:9px}
#profile-fields legend{font-weight:600;font-size:17px;margin-bottom:18px}
#profile-fields label,#password-fields label{font-size:14px;font-weight:500}
#profile-fields>input,#password-fields>input{background:var(--surface-raised);border:1px solid var(--control-border);border-radius:6px;color:var(--ink);width:100%;min-height:46px;padding:11px 12px;font:inherit;font-size:16px}
#profile-fields input[aria-invalid=true],#password-fields input[aria-invalid=true]{border-color:var(--error)}
.field-error{color:var(--error);font-size:13px;line-height:1.5;margin:0;overflow-wrap:anywhere}
.field-error:empty{display:none}
.field-hint{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 8px}
.account-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}
.account-feedback{font-size:14px;line-height:1.6;margin:12px 0 0;color:var(--ink);overflow-wrap:anywhere}
.account-feedback:empty{display:none}
.password-settings{border-top:1px solid var(--border);margin-top:28px;padding-top:4px}
.password-settings>summary{cursor:pointer;font-size:17px;font-weight:600;padding:18px 0;line-height:1.5;min-height:60px}
.password-settings>summary span{display:block;color:var(--muted);font-size:13px;font-weight:400;margin-top:3px}
.password-settings[open]>summary{margin-bottom:10px}
.account-settings{border-top:1px solid var(--border);margin-top:28px;padding-top:4px}
.account-settings>summary{cursor:pointer;font-size:17px;font-weight:600;padding:18px 0;line-height:1.5;min-height:60px}
.account-settings>summary span{display:block;color:var(--muted);font-size:13px;font-weight:400;margin-top:3px}
.account-settings[open]>summary{margin-bottom:10px}
#preferences-fields,#sessions-fields{border:0;margin:0;padding:0;min-width:0}
.preference-option{display:flex;align-items:center;gap:12px;min-height:44px;font-size:15px;font-weight:500;cursor:pointer}
.preference-option input{width:20px;height:20px;flex-shrink:0;accent-color:var(--primary)}
.preference-option+.field-hint{padding-left:32px;margin:0 0 16px}
.sessions-list{list-style:none;margin:16px 0;padding:0;display:grid;gap:12px}
.sessions-list li{display:grid;gap:5px;background:var(--surface-raised);border:1px solid var(--border);padding:14px;border-radius:6px;overflow-wrap:anywhere}
.sessions-list strong{font-size:15px;font-weight:600}.sessions-list span{color:var(--muted);font-size:13px;line-height:1.6}
.account-notice{border:1px solid var(--control-border);background:var(--surface-raised);padding:16px;margin:18px 0;border-radius:6px}
.account-notice p{font-size:14px;line-height:1.7;margin:0 0 12px}
.account-privacy{font-size:13px;line-height:1.8;color:var(--muted);border-top:1px solid var(--border);padding-top:24px;margin:28px 0 0}
#recovery-dialog{max-width:520px}
.recovery-fields{border:0;padding:0;margin:24px 0 0;display:grid;gap:12px;min-width:0}
.recovery-fields>input{width:100%;min-height:46px;background:var(--surface-raised);border:1px solid var(--control-border);border-radius:6px;color:var(--ink);padding:11px 12px;font:inherit;font-size:16px}
.recovery-fields>label{font-size:14px}.recovery-fields>input[aria-invalid=true]{border-color:var(--error)}
#recovery-local-note{font-size:13px;line-height:1.7}
#forgot-password{margin-left:16px}
.channel-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
#password-fields .show-password{display:flex;align-items:center;gap:10px;min-height:44px}
#password-visible{width:18px;height:18px;accent-color:var(--primary)}
@media(max-width:900px){.header-inner{gap:24px}.channel-hero{min-height:calc(100svh - 112px)}.brand .brand-caption{display:none}}
@media(max-width:600px){.header-inner{padding-block:8px;min-height:112px;gap:4px 12px}.brand-logo{width:48px;height:48px}.site-header nav{gap:22px}.site-header nav a{font-size:13px;padding-block:10px}.header-account #open-login{padding:9px 13px}.channel-hero{padding-block:22px;min-height:calc(100svh - 112px)}.channel-heading h1{font-size:23px}.channel-heading .eyebrow{font-size:11px}.channel-hero .channel-schedule dt{font-size:11px}.channel-hero .channel-schedule dd{font-size:14px}.channel-hero .channel-controls{gap:8px}.channel-hero .channel-controls .button{font-size:12px;padding-inline:12px}.channel-hero .channel-badge{font-size:10px}.viewer-library h2,.about-copy h2{font-size:25px}.viewer-library{padding-block:24px}.member-heading{font-size:14px;gap:12px}.library-art{width:96px}.library-card-body strong{font-size:14px}.library-card-body>span{font-size:12px}.dialog-body{padding:22px 20px 24px}.dialog-body h2{font-size:25px}.dialog-head{padding-inline:16px}.about-copy>p{font-size:15px}.about-identity img{width:88px;height:88px}.footer{gap:16px}.account-actions{align-items:stretch}.account-actions .primary{flex:1 1 100%}.profile-summary{align-items:start}.profile-avatar{width:44px;height:44px;font-size:17px}}
@media(max-width:600px){.channel-hero .channel-badge{font-size:12px}}
@media(prefers-reduced-motion:reduce){button,a,input,select,summary{transition:none}}
