.planet-screen{position:absolute;inset:0;z-index:10;overflow:hidden;isolation:isolate;background:#030812;color:#edf2f5;font-family:Exo,Arial,sans-serif}
.planet-screen *{box-sizing:border-box}
.planet-scroll{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none}
.planet-scroll::-webkit-scrollbar{display:none}
.planet-map{position:relative;width:100%;margin-inline:auto;aspect-ratio:9/16;overflow:hidden;isolation:isolate;container-type:inline-size;background:#08111d}
.planet-map-image,.planet-map-placeholder{display:block;width:100%;height:100%;object-fit:contain;background:#08111d}
.planet-map-placeholder{background:radial-gradient(ellipse at 50% 55%,#1c3347,#08111d 65%,#02060c)}
.planet-map-shade,.planet-world-light{position:absolute;inset:0;pointer-events:none}
.planet-map-shade{background:linear-gradient(180deg,rgba(2,7,14,.2),transparent 20%)}
.planet-world-light{z-index:1;mix-blend-mode:screen;opacity:.28;background:radial-gradient(ellipse 54% 30% at 50% 48%,color-mix(in srgb,var(--planet-accent) 32%,transparent),transparent 74%);animation:planet-breathe 7s ease-in-out infinite alternate}
.planet-glow-points{position:absolute;z-index:2;inset:0;pointer-events:none;mix-blend-mode:screen}
.planet-glow-point{position:absolute;width:var(--glow-size);height:var(--glow-size);border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,var(--glow-color),color-mix(in srgb,var(--glow-color) 47%,transparent) 23%,transparent 72%);filter:blur(2px);opacity:var(--glow-opacity);animation:planet-glow-pulse 5s ease-in-out infinite alternate}
.planet-glow-point:nth-child(2n){animation-delay:-2s;animation-duration:7s}
.planet-atmosphere{position:absolute;z-index:2;inset:0;pointer-events:none;overflow:hidden}
.planet-atmosphere i{position:absolute;left:var(--particle-x);top:var(--particle-y);display:block;width:3px;height:3px;border-radius:50%;opacity:0;animation-duration:var(--particle-duration);animation-delay:var(--particle-delay);animation-timing-function:ease-in-out;animation-iteration-count:infinite}
.planet-screen[data-planet-effect=water] .planet-atmosphere i{width:4px;height:2px;border-radius:50%;background:#cffaff;box-shadow:0 0 7px #a7edff;animation-name:planet-water-glint}
.planet-screen[data-planet-effect=mist] .planet-atmosphere i{width:55%;height:10%;border-radius:50%;background:linear-gradient(90deg,transparent,rgba(194,222,223,.18),transparent);filter:blur(13px);animation-name:planet-mist-pass;animation-duration:15s}
.planet-screen[data-planet-effect=ice] .planet-atmosphere i{width:2px;height:2px;background:#e6f8ff;box-shadow:0 0 5px #c9ecff;animation-name:planet-ice-fall}
.planet-screen[data-planet-effect=embers] .planet-atmosphere i{background:#ffc890;box-shadow:0 0 7px #ff9854;animation-name:planet-embers-rise}
.planet-screen[data-planet-effect=spores] .planet-atmosphere i{width:4px;height:4px;background:#c5eccc;box-shadow:0 0 8px #a5ddad;filter:blur(.6px);animation-name:planet-spores-drift}
.planet-screen[data-planet-effect=dust] .planet-atmosphere i{width:2px;height:2px;background:#e5ccb0;box-shadow:0 0 4px #c1a98e;animation-name:planet-dust-drift}
.planet-screen.is-hidden .planet-atmosphere i,.planet-screen.is-hidden .planet-world-light,.planet-screen.is-hidden .planet-glow-point,.planet-screen.is-hidden .planet-cloud,.planet-screen.is-hidden .planet-labels,.planet-screen.is-hidden .planet-item{animation-play-state:paused}
.planet-screen[data-planet-effect=spores] .planet-world-light{background:radial-gradient(ellipse 72% 23% at 42% 31%,rgba(66,199,165,.37),transparent 70%),radial-gradient(ellipse 50% 30% at 75% 56%,rgba(140,116,222,.3),transparent 80%)}
.planet-screen[data-planet-effect=embers] .planet-world-light{background:radial-gradient(ellipse 50% 42% at 53% 65%,rgba(243,137,66,.38),transparent 73%)}
.planet-screen[data-planet-effect=ice] .planet-world-light{background:radial-gradient(ellipse 57% 36% at 52% 44%,rgba(127,218,249,.32),transparent 75%)}
.planet-screen[data-planet-effect=water] .planet-world-light{background:radial-gradient(ellipse 66% 32% at 48% 58%,rgba(63,181,219,.35),transparent 75%)}
.planet-screen[data-planet-effect=dust] .planet-world-light{background:radial-gradient(ellipse 48% 44% at 50% 47%,rgba(216,172,123,.29),transparent 75%)}
.planet-screen[data-planet-effect=mist] .planet-world-light{background:radial-gradient(ellipse 78% 24% at 50% 57%,rgba(160,191,190,.29),transparent 77%)}
.planet-labels{position:absolute;z-index:4;inset:0;pointer-events:none}
/* Frosted markers keep the map visible while softening detail behind the labels. */
.planet-zone-label{position:absolute;left:clamp(22%,var(--label-x),78%);width:max-content;display:inline-flex;align-items:center;gap:7px;min-height:44px;max-width:42%;padding:6px 8px;border:1px solid rgba(239,248,252,.4);border-radius:14px;background:rgba(24,42,56,.48);box-shadow:0 5px 18px #02060b40,inset 0 1px rgba(255,255,255,.18);color:#f7fbfd;font:500 clamp(9px,2.5vw,11px)/1.2 Exo,Arial,sans-serif;text-align:left;white-space:normal;cursor:pointer;pointer-events:auto;transform:translate(-50%,-50%);-webkit-backdrop-filter:blur(18px) saturate(125%);backdrop-filter:blur(18px) saturate(125%)}
.planet-zone-label:hover,.planet-zone-label:focus-visible,.planet-zone-label.is-selected{background:rgba(43,64,80,.58);box-shadow:0 4px 18px #02060b45}
.planet-zone-label.is-discovered{border-color:var(--zone-color);background:rgba(24,42,56,.48)}
.planet-zone-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--zone-color);box-shadow:0 0 7px color-mix(in srgb,var(--zone-color) 58%,transparent)}
.planet-zone-copy{display:flex;flex-direction:column;min-width:0;gap:2px}
.planet-zone-copy small{font:500 8px/1 Oxanium,Exo,sans-serif;letter-spacing:.11em;color:var(--zone-color)}
.planet-zone-copy strong{font:500 12px/1.25 Exo,Arial,sans-serif;overflow-wrap:break-word}
.planet-zone-check{display:none;margin-left:auto;color:var(--zone-color);font-size:13px;font-weight:700}
.planet-zone-label.is-discovered .planet-zone-check{display:block}
.planet-cloud-filter{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.planet-cloud{position:absolute;z-index:5;inset:0;pointer-events:none;background-repeat:no-repeat;background-position:center;background-size:100% 100%;filter:blur(2px);animation:planet-cloud-open-left 2.2s cubic-bezier(.22,.64,.23,1) both}
.planet-cloud-left{background-image:url('/mini/assets/planets/reveal/cloud-curtain-left.png')}
.planet-cloud-right{background-image:url('/mini/assets/planets/reveal/cloud-curtain-right.png');animation-name:planet-cloud-open-right;animation-delay:.08s}
.planet-screen.has-map-reveal .planet-labels{animation:planet-labels-appear .48s ease-out 1.35s both}
.planet-screen.no-map-reveal .planet-cloud{display:none}
.planet-screen.is-loading-map .planet-cloud,.planet-screen.is-map-error .planet-cloud,.planet-screen.is-loading-map .planet-labels,.planet-screen.is-map-error .planet-labels{animation-play-state:paused}
.planet-screen.is-loading-map .planet-labels,.planet-screen.is-map-error .planet-labels{visibility:hidden;pointer-events:none}
.planet-map-loading{position:absolute;z-index:7;left:12%;right:12%;top:24%;display:none;flex-direction:column;align-items:center;gap:12px;padding:16px;border:1px solid rgba(231,243,247,.3);border-radius:14px;background:rgba(8,20,32,.89);box-shadow:0 8px 27px #0008;color:#e2eef1;font:12px/1.35 Exo,Arial,sans-serif;text-align:center;-webkit-backdrop-filter:none;backdrop-filter:none}
.planet-screen.is-loading-map .planet-map-loading,.planet-screen.is-map-error .planet-map-loading{display:flex}
.planet-map-loading button{min-height:44px;padding:8px 14px;border:1px solid rgba(225,239,244,.48);border-radius:9px;background:rgba(20,42,56,.9);color:#f0f5f5;font:500 11px Exo,Arial,sans-serif;cursor:pointer}
.planet-map-loading button[hidden]{display:none}
.planet-panel-backdrop{position:absolute;z-index:9;inset:0;background:rgba(7,15,24,.18);opacity:0;pointer-events:none;transition:opacity .3s}
.planet-panel{position:absolute;z-index:10;left:0;right:0;bottom:0;max-height:min(calc(var(--aes-viewport-height, 100dvh) - var(--aes-safe-top) - 16px),780px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(210,225,235,.2);border-bottom:0;border-radius:24px 24px 0 0;background:linear-gradient(145deg,rgba(214,227,234,.24),rgba(69,85,100,.35)),rgba(25,36,47,.28);box-shadow:0 -12px 42px rgba(0,0,0,.18),inset 0 1px rgba(246,252,255,.08);-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);transform:translateY(105%);visibility:hidden;transition:transform .42s cubic-bezier(.2,.75,.15,1),visibility 0s .42s}
.planet-panel-content{display:flex;flex-direction:column;min-height:0;max-height:inherit;overflow:hidden}
.planet-panel-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 18px calc(24px + var(--aes-safe-bottom, env(safe-area-inset-bottom, 0px)))}
.planet-screen.has-panel .planet-panel-backdrop{opacity:1;pointer-events:auto}
.planet-screen.has-panel .planet-panel{visibility:visible;transform:translateY(0);transition-delay:0s}
.planet-panel-head{position:relative;flex-shrink:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;margin:0;padding:4px 18px;background:rgba(130,151,167,.16);border-bottom:1px solid rgba(225,236,243,.1);color:var(--zone-accent);font:500 10px/1.4 Oxanium,Exo,sans-serif;letter-spacing:.16em;-webkit-backdrop-filter:none;backdrop-filter:none}
.planet-panel-head button{display:grid;place-items:center;width:44px;height:44px;flex:none;margin:0;border:0;background:transparent;color:#e4ebed;font:29px/1 Exo,Arial,sans-serif;cursor:pointer}
.planet-panel h2{margin:5px 0 14px;font:500 clamp(23px,7vw,31px)/1.1 Exo,Arial,sans-serif}
.planet-panel-text{margin:10px 0 19px;font:13px/1.45 Jura,Exo,sans-serif;color:#b9c7d0}
.planet-secondary,.planet-purchase{min-height:44px;border:1px solid color-mix(in srgb,var(--zone-accent) 70%,transparent);border-radius:11px;background:color-mix(in srgb,var(--zone-accent) 17%,#0b1723);color:#f4f5f3;font:500 12px/1.2 Exo,Arial,sans-serif;letter-spacing:.035em;cursor:pointer}
.planet-secondary{width:100%;margin-top:12px;background:rgba(220,234,242,.05);border-color:rgba(220,234,242,.24)}
.planet-secondary:hover,.planet-purchase:hover:not(:disabled){background:color-mix(in srgb,var(--zone-accent) 30%,#0b1723)}
.planet-discovery-flash{position:absolute;z-index:11;inset:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 55%,rgba(240,251,255,.45),rgba(215,240,249,.2) 60%,rgba(214,239,249,.06));}
.planet-screen.is-discovery-flashing .planet-discovery-flash{animation:planet-discovery-flash .32s ease-out both}
.planet-items{display:grid;gap:9px}
.planet-item{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;padding:9px;border:1px solid rgba(222,233,239,.13);border-radius:14px;background:linear-gradient(135deg,rgba(241,247,250,.16),rgba(214,228,240,.05));animation:planet-find-reveal .32s ease-out both}
.planet-item:nth-child(2){animation-delay:.09s}.planet-item:nth-child(3){animation-delay:.18s}.planet-item:nth-child(4){animation-delay:.27s}
.planet-item:focus-visible{outline:1px solid var(--zone-accent);outline-offset:2px}
.planet-item.is-owned{border-color:color-mix(in srgb,var(--zone-accent) 34%,transparent)}
.planet-item-image{display:grid;place-items:center;width:76px;height:76px;overflow:hidden;border-radius:10px;background:rgba(11,22,32,.38);color:var(--zone-accent);font-size:28px}
.planet-item-image img{width:100%;height:100%;object-fit:contain}
.planet-item-copy{min-width:0}
.planet-item h3{margin:0 0 4px;font:500 13px/1.25 Exo,Arial,sans-serif;overflow-wrap:anywhere}
.planet-item h3{color:var(--zone-accent,var(--planet-accent))}
.planet-item-rarity{display:block;margin:7px 0;color:var(--zone-accent);font:10px/1.4 Exo,sans-serif}
.planet-purchase:disabled{opacity:.55;cursor:default}
.planet-item p{margin:0 0 9px;color:#b0bfca;font:11px/1.35 Jura,Exo,sans-serif;overflow-wrap:anywhere}
.planet-purchase{padding:8px 11px;font-size:10px}
.planet-purchase:disabled{cursor:default;border-color:color-mix(in srgb,var(--zone-accent) 45%,transparent);background:color-mix(in srgb,var(--zone-accent) 9%,#0b1723);color:#cbdad6}
.planet-results-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--zone-accent);font:500 9px/1.3 Oxanium,Exo,sans-serif;letter-spacing:.08em}
.planet-results-summary strong{font-weight:500;color:#e2ecec;white-space:nowrap}
.planet-purchase-feedback{min-height:15px;margin:10px 2px 0;color:var(--zone-accent);font:11px/1.35 Jura,Exo,sans-serif}
.planet-storage-note{margin:0 0 10px;padding:9px 10px;border:1px solid rgba(223,232,239,.17);border-radius:9px;color:#c5d1d7;background:rgba(220,232,238,.045);font:11px/1.35 Jura,Exo,sans-serif}
.planet-empty{margin:0;padding:20px;text-align:center;color:#b9c6cf;font:12px Jura,Exo,sans-serif}
.planet-expired{position:absolute;z-index:9;inset:0;display:none;place-items:center;padding:24px;background:rgba(2,7,15,.76);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.planet-screen.is-expired .planet-expired{display:grid}
.planet-expired>div{width:100%;max-width:360px;padding:24px 20px;border:1px solid rgba(218,235,242,.2);border-radius:20px;background:linear-gradient(145deg,rgba(24,43,57,.9),rgba(8,18,29,.96));box-shadow:0 18px 55px #0009}
.planet-expired span{color:var(--planet-accent);font:500 10px Oxanium,Exo,sans-serif;letter-spacing:.16em}
.planet-expired h2{margin:10px 0;font:500 24px/1.15 Exo,Arial,sans-serif}
.planet-expired p{margin:0 0 22px;color:#bbcbd3;font:13px/1.45 Jura,Exo,sans-serif}
.planet-expired button{width:100%;min-height:43px;border:1px solid color-mix(in srgb,var(--planet-accent) 65%,transparent);border-radius:11px;background:color-mix(in srgb,var(--planet-accent) 15%,#0b1723);color:#f3f6f6;font:500 12px Exo,Arial,sans-serif;cursor:pointer}
@keyframes planet-breathe{from{opacity:.15;transform:scale(.98)}to{opacity:.32;transform:scale(1.03)}}
@keyframes planet-glow-pulse{from{scale:.88;opacity:calc(var(--glow-opacity)*.8)}to{scale:1.08;opacity:var(--glow-opacity)}}
@keyframes planet-water-glint{0%,100%{opacity:0;transform:scale(.55)}42%{opacity:.25;transform:scale(1.25)}65%{opacity:.08}}
@keyframes planet-mist-pass{0%,100%{opacity:0;transform:translateX(-20px)}30%,65%{opacity:.32}80%{opacity:.08;transform:translateX(25px)}}
@keyframes planet-ice-fall{0%{opacity:0;transform:translateY(-8px)}30%{opacity:.25}75%{opacity:.12}100%{opacity:0;transform:translateY(24px)}}
@keyframes planet-embers-rise{0%{opacity:0;transform:translateY(8px)}28%{opacity:.29}75%{opacity:.1}100%{opacity:0;transform:translateY(-25px)}}
@keyframes planet-spores-drift{0%{opacity:0;transform:translate(-4px,5px)}40%{opacity:.24}100%{opacity:0;transform:translate(12px,-12px)}}
@keyframes planet-dust-drift{0%{opacity:0;transform:translate(-7px,2px)}45%{opacity:.18}100%{opacity:0;transform:translate(17px,-4px)}}
@keyframes planet-cloud-open-left{0%,9%{transform:translateX(0);opacity:1}73%{opacity:1}100%{transform:translateX(-110%);opacity:0}}
@keyframes planet-cloud-open-right{0%,9%{transform:translateX(0);opacity:1}73%{opacity:1}100%{transform:translateX(110%);opacity:0}}
@keyframes planet-labels-appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes planet-discovery-flash{0%{opacity:0}28%{opacity:1}100%{opacity:0}}
@keyframes planet-find-reveal{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:350px){.planet-header{padding-inline:13px}.planet-heading h1{font-size:22px}.planet-map-status{left:12px;right:12px}.planet-panel-body{padding-inline:13px}.planet-panel-head{padding-inline:13px}.planet-zone-label{padding:5px 7px;max-width:42%}.planet-item{grid-template-columns:64px minmax(0,1fr);gap:9px}.planet-item-image{width:64px;height:64px}}
@media(prefers-reduced-motion:reduce){.planet-world-light,.planet-glow-point,.planet-atmosphere i,.planet-cloud,.planet-labels,.planet-item,.planet-discovery-flash{animation:none!important}.planet-cloud{display:none}.planet-panel,.planet-panel-backdrop,.planet-zone-outline{transition:none!important}}


/* Thin frosted surfaces, with focus confined to real controls. */
.planet-screen{--glass-blur:blur(22px) saturate(135%)}
.planet-screen *{-webkit-tap-highlight-color:transparent}
.planet-zone-label{padding:9px 11px;gap:9px;text-shadow:0 1px 4px #020811aa;transition:background .2s,box-shadow .2s,scale .15s}
.planet-zone-label:active{scale:.96}
.planet-zone-label:focus{outline:none}
.planet-zone-label:focus-visible{outline:2px solid #edf8ff;outline-offset:3px}
.planet-zone-dot{position:relative;animation:planet-marker-pulse 3s ease-in-out infinite}
.planet-zone-dot:after{content:"";position:absolute;inset:-4px;border:1px solid var(--zone-color);border-radius:50%;opacity:.3}
.planet-zone-label:nth-child(2) .planet-zone-dot{animation-delay:-1s}
.planet-zone-label:nth-child(3) .planet-zone-dot{animation-delay:-2s}
.planet-panel{outline:none;-webkit-backdrop-filter:blur(32px) saturate(130%);backdrop-filter:blur(32px) saturate(130%)}
.planet-item{box-shadow:inset 0 1px rgba(255,255,255,.13);-webkit-backdrop-filter:none;backdrop-filter:none}
.planet-primary,.planet-purchase,.planet-secondary{background:rgba(224,239,247,.13);border-color:rgba(238,248,255,.35)}
.planet-primary:hover,.planet-purchase:hover:not(:disabled),.planet-secondary:hover{background:rgba(231,244,252,.23)}
.planet-purchase:disabled{background:rgba(223,239,233,.09)}
.planet-item p,.planet-panel-text{color:#e0e8ee}
@keyframes planet-marker-pulse{0%,100%{opacity:.65;box-shadow:0 0 5px var(--zone-color)}50%{opacity:1;box-shadow:0 0 10px var(--zone-color)}}
@media(prefers-reduced-motion:reduce){.planet-zone-dot{animation:none}.planet-zone-label{transition:none}}
.planet-screen.is-hidden .planet-zone-dot{animation-play-state:paused}

.planet-zone-copy small{color:#edf5f8;text-shadow:0 1px 3px #152736}
.planet-panel-head,.planet-results-summary{color:#e7f1ee}
.planet-map-loading,.planet-expired>div{background:linear-gradient(145deg,rgba(235,245,250,.2),rgba(184,206,223,.07)),rgba(34,48,60,.3);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:0 5px 20px #06101c33}
.planet-map-loading button,.planet-expired button{background:rgba(225,241,249,.12)}
.planet-panel:not(:focus-visible),.planet-item:not(:focus-visible){outline:none}

.planet-item{grid-template-columns:112px minmax(0,1fr);align-items:center}
.planet-item-image{width:112px;height:100px;padding:4px}
.planet-item.is-panoramic{grid-template-columns:minmax(0,1fr)}
.planet-item.is-panoramic .planet-item-image{width:100%;height:90px;padding:7px 12px}
@media(max-width:350px){.planet-item{grid-template-columns:92px minmax(0,1fr)}.planet-item-image{width:92px;height:92px}.planet-item.is-panoramic{grid-template-columns:minmax(0,1fr)}}

/* The instruction sits above the original map; status never covers discovery zones. */
.planet-header{position:relative;z-index:8;padding:calc(15px + var(--aes-safe-top, env(safe-area-inset-top, 0px))) 18px 15px;background:#030812}
.planet-heading{min-width:0}
.planet-heading h1{margin:0;font:500 clamp(23px,6vw,29px)/1.1 Exo,Arial,sans-serif;overflow-wrap:anywhere;outline:none}
.planet-instruction{margin:8px 0 0;max-width:38ch;color:#b6c6d2;font:13px/1.4 Jura,Exo,sans-serif}
.planet-map-status{position:absolute;z-index:6;left:18px;right:18px;top:12px;pointer-events:none;color:#e0edf2;text-shadow:0 1px 5px #030812;font:500 9px/1.4 Oxanium,Exo,sans-serif;letter-spacing:.06em}
.planet-map-status>div{display:flex;align-items:center;justify-content:space-between;gap:12px}
.planet-map-status [data-count]{color:var(--planet-accent);white-space:nowrap}
.planet-next{display:block;margin-top:5px;font:11px/1.35 Exo,Arial,sans-serif;letter-spacing:0;color:#c2d2db}

/* Paint the complete decoded map once, rather than exposing partial image data. */
.planet-map-image{visibility:hidden}
.planet-screen.is-map-ready .planet-map-image{visibility:visible}
