/* Device landing pages occupy the safe viewport; app content keeps its own scrolling. */
html:has(#install-gate:not([hidden])),body:has(#install-gate:not([hidden])){height:100%;overflow:hidden;overscroll-behavior:none}
.install-gate{position:fixed;inset:0;z-index:1;width:100%;height:100svh;height:100dvh;overflow:hidden;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}
.install-layout{width:min(100%,900px);max-height:100%;min-height:0;display:grid;gap:clamp(10px,2.4dvh,24px);align-items:center}
.install-brand{text-align:center;display:grid;justify-items:center;gap:8px;min-width:0}.install-brand .brand-logo{width:112px;height:112px;object-fit:contain}.install-brand h1{font-size:28px;margin-top:3px;line-height:1.5}.install-brand p{color:var(--muted);font-size:18px;line-height:1.5}
.install-card{min-width:0;min-height:0;padding:clamp(16px,2.8dvh,26px);border:1px solid var(--border);border-radius:24px;background:color-mix(in srgb,var(--panel) 95%,transparent);box-shadow:0 16px 54px #0003;display:grid;gap:clamp(10px,1.8dvh,17px)}.install-card h2{font-size:24px;line-height:1.5}.install-intro{color:var(--muted);font-size:15px;line-height:1.75}
.install-steps{list-style:none;padding:0;margin:0;display:grid;gap:12px;counter-reset:install-step}.install-steps li{display:flex;align-items:center;gap:11px;line-height:1.65;counter-increment:install-step;min-width:0}.install-steps li::before{content:counter(install-step);width:29px;height:29px;display:grid;place-items:center;flex:none;border-radius:10px;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));font-family:system-ui,sans-serif;font-size:14px;font-weight:700}.install-inline-icon{width:21px;height:21px;vertical-align:middle;margin-inline:4px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--ink)}
.install-buttons{display:flex;gap:10px;flex-wrap:wrap}.install-buttons:has(> :not([hidden])){min-height:44px}.install-buttons:not(:has(> :not([hidden]))){display:none}.install-buttons button{flex:1;min-height:44px;font-size:15px;padding:8px 12px}.install-note{font-size:13px;color:var(--muted);line-height:1.75}.install-status{font-size:14px;color:var(--ink);line-height:1.65}.install-card noscript{font-size:14px;color:var(--muted)}
.device-downloads{display:grid;gap:10px}.download-primary{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 16px;min-height:62px;border-radius:17px;background:color-mix(in srgb,var(--accent) 86%,#000);color:#fff;text-align:start;font-size:19px;line-height:1.5;font-weight:700;border:1px solid var(--accent)}.download-primary:hover{filter:brightness(1.1)}.download-symbol{font-family:system-ui,sans-serif;font-size:32px;line-height:1}.download-detail{display:block;font-size:12px;font-weight:400;opacity:.95}.download-secondary{text-align:center;font-size:14px;line-height:1.6;min-height:36px;display:grid;place-items:center;padding:4px}.download-primary[aria-disabled=true],.download-secondary[aria-disabled=true]{opacity:.5;cursor:wait}#retry-download-check{min-height:40px;font-size:14px;padding:7px 12px}
@media(min-width:900px){.install-layout{grid-template-columns:1fr 1.45fr;gap:44px}.install-gate[data-platform=android-tv] .install-layout{width:min(100%,1080px)}.install-gate[data-platform=android-tv] .install-card{padding:28px}.install-gate[data-platform=android-tv] .install-card h2{font-size:28px}.install-gate[data-platform=android-tv] .install-steps li{font-size:20px}.install-gate[data-platform=android-tv] .download-primary{font-size:24px;min-height:76px}}
@media(max-width:559px) and (max-height:740px){.install-gate{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}.install-layout{gap:10px}.install-brand{gap:4px}.install-brand h1{font-size:25px;margin:0}.install-brand p{font-size:16px}.install-card{padding:14px;gap:10px}.install-card h2{font-size:22px}.install-intro{font-size:13px;line-height:1.6}.install-steps{gap:9px}.install-steps li{font-size:14px;gap:9px;line-height:1.6}.install-steps li::before{width:26px;height:26px;font-size:13px}.install-note{font-size:12px;line-height:1.6}.install-status{font-size:13px}.device-downloads{gap:7px}.download-primary{min-height:58px;padding:10px 12px;font-size:18px}.download-detail{font-size:11px}#install-note{display:none}}
@media(max-width:559px) and (max-height:610px){.install-brand{grid-template-columns:112px minmax(0,1fr);grid-template-rows:auto auto;column-gap:14px;justify-items:start;text-align:start}.install-brand .brand-logo{grid-row:1 / 3}.install-brand h1{align-self:end;font-size:24px}.install-brand p{align-self:start;font-size:15px}#install-intro{display:none}.install-gate[data-platform=windows] #install-instructions,.install-gate[data-platform=android] #install-instructions,.install-gate[data-platform=android-tv] #install-instructions{display:none}}
@media(min-width:560px) and (max-height:600px){.install-gate{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}.install-layout{grid-template-columns:1fr 1.8fr;gap:22px;width:min(100%,960px)}.install-brand{gap:7px}.install-brand h1{font-size:25px;margin:0}.install-brand p{font-size:16px}.install-card{padding:15px;gap:10px}.install-card h2,.install-gate[data-platform=android-tv] .install-card h2{font-size:22px}.install-intro{font-size:13px;line-height:1.6}.install-steps{gap:9px}.install-steps li,.install-gate[data-platform=android-tv] .install-steps li{font-size:14px;line-height:1.6}.install-steps li::before{width:26px;height:26px}.install-note,.install-status{font-size:12px;line-height:1.55}.download-primary,.install-gate[data-platform=android-tv] .download-primary{min-height:56px;font-size:18px;padding:9px 13px}.download-detail{font-size:11px}.device-downloads{gap:6px}#install-note{display:none}}
@media(min-width:560px) and (max-height:430px){#install-intro{display:none}.install-gate[data-platform=windows] #install-instructions,.install-gate[data-platform=android] #install-instructions,.install-gate[data-platform=android-tv] #install-instructions{display:none}.install-layout{gap:18px}.install-card{padding:12px;gap:9px}.install-card h2{font-size:21px}.install-steps li{font-size:14px}.install-status{font-size:12px}.install-buttons button{font-size:14px;min-height:40px}}
