/* Beta surfaces share the game's quiet ink-and-paper palette. */
.beta-menu{position:relative;display:block;margin:1rem auto;padding:.7rem 1rem;border:1px solid #c4d2e2;border-radius:14px;background:#f4f8fd;color:#294562;font:inherit;font-size:.9rem;cursor:pointer}
.beta-menu[hidden],.premium-welcome[hidden],.premium-welcome [hidden],.premium-beta-hub[hidden],.premium-beta-hub [hidden],.premium-install [hidden],#intro-game-content[hidden],#intro-beta-back[hidden]{display:none!important}
.beta-dialog{box-sizing:border-box;width:min(92vw,34rem);max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)));padding:1.5rem;color:#24384e;background:#f9fbff;border:1px solid #cfdbeb;border-radius:24px;box-shadow:0 28px 80px #132c4833;line-height:1.6;overflow:auto;overscroll-behavior:contain;z-index:10000}
.beta-dialog::backdrop{background:#15263d66;backdrop-filter:blur(5px)}
.beta-dialog button,.beta-dialog a{display:inline-block;box-sizing:border-box;max-width:100%;min-height:46px;padding:.65rem .9rem;margin:.3rem;border-radius:12px;font:inherit;touch-action:manipulation;overflow-wrap:anywhere}
.beta-dialog button{background:#254562;color:#fff;border:1px solid #254562;cursor:pointer}
.beta-dialog a{color:#245c87;text-decoration:underline;text-underline-offset:.2em}
.beta-dialog input{display:block;box-sizing:border-box;width:100%;min-height:48px;padding:.75rem;border:1px solid #9baec6;border-radius:12px;background:#fff;color:inherit;font:inherit;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
.beta-dialog h2{color:#203a56;font-size:1.5em;line-height:1.25;letter-spacing:-.025em}
.beta-dialog p{overflow-wrap:anywhere}
.beta-dialog code{display:block;padding:.8rem;border-radius:10px;background:#edf3fa;font-size:.8rem;overflow-wrap:anywhere;user-select:text;-webkit-user-select:text}
.beta-actions{display:flex;flex-wrap:wrap;gap:.4rem}
.beta-dialog :focus-visible,.premium-welcome :focus-visible,.premium-beta-hub :focus-visible,.premium-install :focus-visible{outline:3px solid #ac7437;outline-offset:4px}
#intro-game-content{display:flex;flex-direction:column;gap:12px;min-width:0}
#intro-beta-back{align-self:flex-start;max-width:100%;text-align:left;white-space:normal;gap:6px}
/* One intro card, with a compact campaign front and the existing mode tour. */
.intro-card:has(#beta-welcome:not([hidden])){width:min(440px,100%);padding:clamp(20px,5vw,30px);border-radius:28px;border-color:#d6e1ed;background:linear-gradient(160deg,#fff 15%,#f3f7fd 100%);box-shadow:0 28px 80px #1c38552b}
.premium-welcome{display:flex;flex-direction:column;gap:18px;min-width:0;text-align:left;font-size:16px;line-height:1.5}
.premium-welcome-top,.premium-install-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.premium-wordmark{display:flex;align-items:center;gap:9px;color:#3d5673;font-size:.7em;font-weight:750;letter-spacing:.16em;line-height:1.5;overflow-wrap:anywhere}
.premium-brand-dot{width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#254562}
.premium-language{flex:0 0 auto;min-width:44px;min-height:44px;padding:8px;border:1px solid #d6e1ed;border-radius:50%;background:#ffffffb3;color:#4b617a;font:inherit;font-size:.75em;font-weight:700;cursor:pointer}
.premium-welcome-art{position:relative;display:block;height:104px;margin:0 4px;overflow:hidden;border:1px solid #dce6f1;border-radius:22px;background:radial-gradient(ellipse at 45% 0%,#fff 0%,#edf3fa 80%)}
.premium-art-orbit{position:absolute;width:166px;height:166px;left:50%;top:50%;border:1px solid #c1d0e1;border-radius:50%;transform:translate(-50%,-50%)}
.premium-art-orbit::after{content:'';position:absolute;inset:23px;border:1px solid #d6e0ec;border-radius:50%}
.premium-art-dot{position:absolute;left:calc(50% - 20px);top:calc(50% - 20px);width:40px;height:40px;background:linear-gradient(145deg,#395c80,#1d3856);border-radius:50%;box-shadow:0 8px 20px #243e6240,inset 0 1px 1px #ffffff66}
.premium-art-satellite{position:absolute;left:calc(50% + 63px);top:21px;width:12px;height:12px;border-radius:50%;background:#bf9363;box-shadow:0 2px 6px #875f3430}
.premium-art-line{position:absolute;left:28px;right:28px;top:50%;height:1px;background:linear-gradient(90deg,transparent,#bacbdd 25%,#bacbdd 75%,transparent);z-index:0}
.premium-art-dot,.premium-art-satellite{z-index:1}
.premium-mode-marks{position:absolute;left:14px;bottom:12px;display:flex;align-items:center;gap:6px}
.premium-mode-marks i{display:block;width:5px;height:5px;border-radius:50%;background:#7f96ad}
.premium-mode-marks i:nth-child(2){background:linear-gradient(90deg,#7f96ad 42%,transparent 42%,transparent 58%,#7f96ad 58%)}
.premium-mode-marks i:nth-child(3){background:transparent;border:1px solid #7f96ad;box-sizing:border-box}
.premium-mode-marks i:nth-child(4){border-radius:2px;transform:rotate(45deg)}
.premium-mode-marks i:nth-child(5){background:#354d67;box-shadow:0 0 0 2px #dce6f1}
.premium-welcome-heading{display:flex;flex-direction:column;gap:12px;min-width:0}
#beta-welcome-title{max-width:13ch;margin:0;color:#203a56;font-size:clamp(2.25rem,9vw,3rem);font-weight:780;line-height:1.06;letter-spacing:-.055em;overflow-wrap:anywhere;white-space:pre-line;text-wrap:balance}
#beta-welcome-copy{margin:0;max-width:35ch;color:#576c84;font-size:.95em;line-height:1.55;overflow-wrap:anywhere}
.premium-entry-status{margin:0;padding:10px 12px;border:1px solid #dce5ef;border-radius:12px;background:#f5f8fc;color:#526a83;font-size:.8em;line-height:1.5;overflow-wrap:anywhere}
.premium-welcome-links a[aria-disabled=true],.premium-hub-feedback[aria-disabled=true]{cursor:default;color:#6a7b8f;text-decoration:none;opacity:.8}
.premium-welcome-actions{display:grid;gap:10px}
.premium-primary,.premium-secondary{display:flex;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;width:100%;min-width:0;min-height:50px;padding:13px 18px;border-radius:15px;font:inherit;font-weight:650;line-height:1.35;cursor:pointer;touch-action:manipulation;overflow-wrap:anywhere}
.premium-primary{border:1px solid #244562;background:linear-gradient(180deg,#315577,#203e5b);color:#fff;box-shadow:0 7px 16px #24456220}
.premium-secondary{border:1px solid #c8d6e7;background:#ffffffaa;color:#294b6c}
.premium-primary svg,.premium-secondary svg,.premium-hub-feedback svg,.premium-icon-button svg{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.premium-welcome-links{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px 12px}
.premium-text-action,.premium-welcome-links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box;padding:8px 0;border:0;background:transparent;color:#42617f;font:inherit;font-size:.8em;font-weight:600;line-height:1.4;text-decoration:none;cursor:pointer;overflow-wrap:anywhere;touch-action:manipulation}
.premium-welcome-links a{text-decoration:underline;text-underline-offset:.22em}
#beta-welcome-note{margin:0;color:#6a7b8f;font-size:.72em;line-height:1.55;overflow-wrap:anywhere}
/* The game action stays first; the beta hub is a quiet secondary destination. */
#start-screen:has(#beta-hub:not([hidden])){grid-template-rows:minmax(80px,1fr) auto auto minmax(0,1fr);row-gap:18px;padding:calc(var(--menu-top) + 54px) var(--menu-right) var(--menu-bottom) var(--menu-left);overflow-y:auto;overscroll-behavior:contain;align-content:start}
.premium-beta-hub{box-sizing:border-box;width:min(360px,100%);min-width:0;margin-top:4px;padding:20px;text-align:left;border:1px solid #cfdeed;border-radius:22px;background:linear-gradient(135deg,#ffffffed,#edf4fcee);box-shadow:0 9px 25px #2547640a;color:#28435f}
.premium-beta-hub-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.premium-eyebrow{color:#647b94;font-size:11px;font-weight:750;line-height:1.5;letter-spacing:.15em}
.premium-status-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#a5b3c4}
.premium-beta-hub[data-state=granted] .premium-status-dot{background:#2d8175;box-shadow:0 0 0 4px #2d817511}
#beta-hub-title{margin:0 0 7px;font-size:1.08em;font-weight:700;line-height:1.35;letter-spacing:-.025em;overflow-wrap:anywhere}
#beta-hub-status{margin:0;color:#687b90;font-size:.82em;line-height:1.5;overflow-wrap:anywhere}
.premium-beta-hub-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:15px}
.premium-hub-feedback{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:9px 13px;border:1px solid #c9d9e9;border-radius:12px;background:#f8fbff;color:#315879;font-size:.82em;font-weight:650;line-height:1.35;text-decoration:none;overflow-wrap:anywhere;touch-action:manipulation}
.premium-hub-feedback svg{width:16px;height:16px;flex-basis:16px}
#beta-hub-settings{font-size:.73em}
/* Installation is an optional sheet: three visual steps, no game obstruction. */
.premium-install{box-sizing:border-box;width:min(420px,calc(100vw - 28px));max-height:calc(100dvh - max(28px,env(safe-area-inset-top)) - max(28px,env(safe-area-inset-bottom)));margin:auto;padding:24px;border:1px solid #cedbeb;border-radius:26px;background:linear-gradient(155deg,#fff,#f3f7fd);color:#28435f;box-shadow:0 28px 80px #132c4833;font:inherit;line-height:1.5;overflow-y:auto;overscroll-behavior:contain;z-index:10010}
.premium-install::backdrop{background:#15263d66;backdrop-filter:blur(5px)}
.premium-icon-button{display:flex;align-items:center;justify-content:center;flex:0 0 44px;min-width:44px;min-height:44px;padding:9px;border:1px solid #d8e2ee;border-radius:50%;background:#ffffffa6;color:#506981;cursor:pointer}
#install-help-title{margin:16px 0 10px;font-size:1.6em;font-weight:730;line-height:1.15;letter-spacing:-.04em;overflow-wrap:anywhere;text-wrap:balance}
#install-help-lead{margin:0;color:#63788f;font-size:.88em;line-height:1.5;overflow-wrap:anywhere}
.premium-install-steps{display:grid;gap:16px;margin:25px 0;padding:0;list-style:none;counter-reset:install-step}
.premium-install-steps li{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;min-width:0;counter-increment:install-step;font-size:.94em;line-height:1.45;overflow-wrap:anywhere}
.premium-install-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #d6e1ee;border-radius:14px;background:#edf3fa;color:#34597b}
.premium-install-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.premium-install-step-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
#install-step-1-detail{color:#718298;font-size:.8em;line-height:1.4}
.premium-install-status{margin:4px 0 16px;padding-top:15px;border-top:1px solid #dce5ef;color:#6a7f96;font-size:.8em;line-height:1.5;overflow-wrap:anywhere}
.premium-install-status:empty{display:none}
.premium-install-later{width:100%;margin-top:10px;font-size:.88em}
body.large-text .premium-welcome,body.large-text .premium-beta-hub,body.large-text .premium-install{font-size:18px}
@media(max-width:360px){.premium-welcome{gap:14px}.premium-welcome-art{height:86px}.premium-beta-hub{padding:17px}.premium-beta-hub-actions{align-items:stretch;flex-direction:column}.premium-hub-feedback{justify-content:center}#beta-hub-settings{font-size:.78em}.premium-install{padding:20px}}
@media(max-height:680px){.premium-welcome-art{height:72px}.premium-welcome{gap:12px}#beta-welcome-title{font-size:2.15rem}.premium-welcome-links{gap:2px 10px}.premium-welcome-actions{gap:8px}}
@media(prefers-reduced-motion:no-preference){.premium-welcome{animation:premium-enter .35s ease-out both}.premium-beta-hub{animation:premium-enter .3s ease-out both}.premium-primary,.premium-secondary,.premium-hub-feedback{transition:background-color .16s ease,box-shadow .16s ease}.premium-primary:hover{box-shadow:0 9px 22px #2445622b}@keyframes premium-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}}
body.reduced-effects .premium-welcome,body.reduced-effects .premium-beta-hub{animation:none!important}
@media(prefers-reduced-motion:reduce){.premium-welcome,.premium-beta-hub{animation:none!important}.premium-primary,.premium-secondary,.premium-hub-feedback{transition:none!important}}
