:root{
  --accent:#990033;
  --ink:#17171a;
  --muted:#6e6a6d;
  --paper:#f5f3f2;
  --panel:#ffffff;
  --line:#e5e1e2;
  --space:#0a1020;
  --space2:#131d33;
  --space-ink:#f8fbff;
  --shadow:0 24px 60px rgba(25,18,28,.14);
  --ease:cubic-bezier(.2,.76,.2,1);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
body{overflow-x:hidden;position:relative;background:
  radial-gradient(circle at 18% 18%, rgba(183,195,214,.22), transparent 24%),
  radial-gradient(circle at 82% 24%, rgba(214,220,232,.20), transparent 26%),
  radial-gradient(circle at 52% 72%, rgba(196,205,217,.16), transparent 30%),
  linear-gradient(180deg,#eef1f4 0%,#f5f6f7 46%,#e9edf1 100%);}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background:
  radial-gradient(circle at 50% 40%, rgba(255,255,255,.72), transparent 42%),
  linear-gradient(120deg, rgba(255,255,255,.12), transparent 38%, rgba(255,255,255,.10) 72%, transparent);}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 50% 50%, transparent 48%, rgba(93,104,118,.06) 100%)}
body[data-theme="dark"]{background:
  radial-gradient(circle at 18% 18%, rgba(62,82,116,.26), transparent 26%),
  radial-gradient(circle at 82% 24%, rgba(44,61,92,.24), transparent 28%),
  radial-gradient(circle at 52% 72%, rgba(41,51,75,.22), transparent 30%),
  linear-gradient(180deg,#0b1120 0%,#0e1524 48%,#0a101b 100%);}
body[data-theme="dark"]::before{background:radial-gradient(circle at 50% 40%, rgba(108,137,190,.10), transparent 42%),linear-gradient(120deg,rgba(255,255,255,.025),transparent 38%,rgba(255,255,255,.02) 72%,transparent)}
body[data-theme="dark"]::after{background:radial-gradient(circle at 50% 50%,transparent 44%,rgba(0,0,0,.18) 100%)}
body[data-theme="dark"]{--paper:#0f1320;--panel:#171d2d;--ink:#f7f8fb;--muted:#aab0bd;--line:#2a3140;--space:#070b14;--space2:#111a2a;--space-ink:#fff;--shadow:0 24px 70px rgba(0,0,0,.36)}
button,input{font:inherit}
button{color:inherit}
.topbar{max-width:1240px;margin:auto;padding:18px 26px;display:flex;justify-content:space-between;align-items:center;gap:18px;position:relative;z-index:50}
.brand strong{font-size:18px;letter-spacing:-.03em}.brand span{display:block;font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.top-actions{display:flex;align-items:center;gap:8px}.timebox{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,transparent);padding:9px 12px;border-radius:999px}.timebox span{font-size:9px;letter-spacing:.11em;color:var(--muted);font-weight:800}.timebox strong{color:var(--accent);font-size:12px;font-variant-numeric:tabular-nums}
.theme-switch{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,transparent);padding:9px 12px;border-radius:999px;cursor:pointer;font-size:11px;font-weight:800}.theme-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#fff 0 50%,#111 50%);border:1px solid #adb1b8}
.searchbox{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,transparent);border-radius:999px;padding:0 8px 0 14px;min-width:310px}.search-icon{color:var(--muted);font-size:16px}.searchbox input{border:0;outline:0;background:transparent;min-width:0;flex:1;padding:11px 4px;color:var(--ink)}.searchbox kbd{font-size:9px;border:1px solid var(--line);padding:4px 6px;border-radius:6px;color:var(--muted);background:var(--paper)}
.logo-holder{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--panel);display:grid;place-items:center;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.08)}.logo-holder img{width:28px;height:28px;object-fit:contain}
main{max-width:1240px;margin:auto;padding:0 26px}.welcome{text-align:center;padding:10px 0 10px}.welcome-date{font-size:10px;letter-spacing:.15em;font-weight:800;color:var(--muted)}.welcome h1{margin:8px 0 0;font-size:clamp(26px,3.8vw,42px);letter-spacing:-.045em}.welcome p{margin:8px 0 0;color:var(--muted);font-size:13px}
.space-stage{width:100vw;max-width:none;height:790px;margin:0 0 16px;position:relative;isolation:isolate;overflow:visible;left:50%;transform:translateX(-50%);background:transparent}
.space-stage:before,.space-stage:after{content:none}
.stage-sheen{position:absolute;inset:0;background:transparent;pointer-events:none}
.stars{position:absolute;inset:0;border-radius:0;overflow:hidden;pointer-events:none}.star{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;opacity:.3}.star.big{width:3px;height:3px;opacity:.48}.star.red{background:#ff9fbc}
body[data-theme="light"] .star{background:#87909a;opacity:.18;box-shadow:none}.star{box-shadow:0 0 6px rgba(255,255,255,.55)}
.orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(255,255,255,.1);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.orbit-1{width:300px;height:300px}.orbit-2{width:450px;height:450px;transform:translate(-50%,-50%) rotate(8deg)}.orbit-3{width:620px;height:620px;transform:translate(-50%,-50%) rotate(-11deg)}
body[data-theme="light"] .orbit{border-color:#cfd2d4}.launch-rings{position:absolute;left:50%;top:50%;width:400px;height:400px;transform:translate(-50%,-50%);pointer-events:none}.launch-rings i{position:absolute;inset:0;border:1px solid rgba(255,255,255,.08);border-radius:50%;animation:ringPulse 9s ease-in-out infinite}.launch-rings i:nth-child(2){inset:22px;animation-delay:1.8s}.launch-rings i:nth-child(3){inset:45px;animation-delay:3.3s}body[data-theme="light"] .launch-rings i{border-color:#d9d3d7}
.center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:250px;height:250px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:radial-gradient(circle at 50% 35%,#fff 0 37%,#edf2f8 60%,#d5dde8 100%);box-shadow:0 30px 90px rgba(0,0,0,.42),inset 0 0 0 1px rgba(255,255,255,.8);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease);z-index:20;color:#172033}.center:hover{transform:translate(-50%,-50%) scale(1.025);box-shadow:0 38px 105px rgba(0,0,0,.45),0 0 45px rgba(160,196,255,.18)}.center strong{font-size:19px;margin-top:10px}.center small{color:#626a76;margin-top:4px}.center em{font-style:normal;color:var(--accent);font-size:10px;margin-top:8px;font-weight:900;letter-spacing:.06em}
body[data-theme="light"] .center{box-shadow:0 24px 70px rgba(74,65,70,.17),inset 0 0 0 1px #fff}
.center-pad{width:90px;height:90px;position:relative;display:grid;place-items:center}.center-logo{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #1e2a3b22;box-shadow:0 0 0 8px rgba(153,0,51,.06),0 12px 30px rgba(25,33,50,.16);overflow:hidden}.center-logo img{width:40px;height:40px;object-fit:contain}.center-pulse{position:absolute;inset:3px;border:1px solid rgba(153,0,51,.25);border-radius:50%;animation:ringPulse 6s ease-in-out infinite}
.rocket-slot{position:absolute;left:50%;top:50%;width:0;height:0;z-index:30;pointer-events:none}.ship-marker{position:absolute;left:0;top:0;width:0;height:0;transform:translate(0,0);will-change:transform}.spacecraft{position:absolute;left:-22px;top:-15px;width:44px;height:auto;transform-origin:50% 50%;transform-box:fill-box;display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.18)) drop-shadow(0 0 5px rgba(153,0,51,.16));will-change:transform}
body[data-theme="light"] .spacecraft{filter:drop-shadow(0 3px 6px rgba(0,0,0,.10)) drop-shadow(0 0 4px rgba(153,0,51,.10))}
.planet-wrap{position:absolute;left:50%;top:50%;width:0;height:0;z-index:10;transform:translate(var(--x),var(--y))}.planet-node{position:absolute;left:-74px;top:-74px;width:148px;height:148px;border:0;background:transparent;padding:0;cursor:pointer;transition:transform .25s var(--ease),filter .25s var(--ease);display:grid;place-items:center}.planet-node:hover,.planet-wrap.active .planet-node{transform:scale(1.055)}.planet-node img{width:122px;height:122px;object-fit:contain;position:relative;z-index:3;filter:drop-shadow(0 14px 20px rgba(0,0,0,.22))}.planet-label{position:absolute;top:128px;left:50%;transform:translateX(-50%);font-size:12px;font-weight:900;white-space:nowrap;color:var(--space-ink);text-shadow:0 2px 8px rgba(0,0,0,.45);z-index:8}.planet-wrap.active .planet-label{color:var(--color)}body[data-theme="light"] .planet-label{color:#1c1c20;text-shadow:none}
.planet-ring{position:absolute;left:50%;top:50%;border:1.5px solid color-mix(in srgb,var(--color) 80%,white 20%);border-radius:50%;opacity:.9;z-index:2;pointer-events:none}.planet-ring.r1{width:148px;height:86px;transform:translate(-50%,-50%) rotate(var(--angle));animation:spinRing 28s linear infinite}.planet-ring.r2{width:166px;height:70px;transform:translate(-50%,-50%) rotate(calc(var(--angle) + 58deg));opacity:.55;animation:spinRingReverse 36s linear infinite}.sat{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--color);box-shadow:0 0 0 3px color-mix(in srgb,var(--color) 18%,transparent);z-index:4;pointer-events:none}.s1{left:18px;top:28px;animation:satMove1 12s linear infinite}.s2{right:10px;top:90px;width:6px;height:6px;animation:satMove2 15s linear infinite}.s3{left:94px;bottom:7px;width:5px;height:5px;animation:satMove3 17s linear infinite}
.planet-wrap.active .planet-ring{opacity:1}.planet-wrap.active .sat{box-shadow:0 0 0 4px color-mix(in srgb,var(--color) 22%,transparent),0 0 12px color-mix(in srgb,var(--color) 60%,transparent)}
.subs{position:absolute;left:0;top:0;width:0;height:0;z-index:16;pointer-events:none}.sub{position:absolute;left:-42px;top:-42px;width:84px;height:84px;border-radius:50%;border:1px solid color-mix(in srgb,var(--color) 55%,#b8bcc4 45%);background:var(--panel);box-shadow:0 12px 30px rgba(0,0,0,.12);display:flex;align-items:center;justify-content:center;text-align:center;padding:9px;color:var(--ink);font-size:10px;font-weight:850;cursor:pointer;opacity:0;pointer-events:none;transform:translate(var(--sx0),var(--sy0)) scale(.25);transition:transform .5s var(--ease),opacity .25s ease;z-index:2}.planet-wrap.active .sub{opacity:1;pointer-events:auto;transform:translate(var(--sx),var(--sy)) scale(1)}.sub:hover,.sub:focus-visible{border-color:var(--color);box-shadow:0 14px 36px color-mix(in srgb,var(--color) 20%,transparent);transform:translate(var(--sx),var(--sy)) scale(1.08)!important}.sub-star{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--color);left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1}
.sub-line{position:absolute;height:1px;background:linear-gradient(90deg,var(--color),color-mix(in srgb,var(--color) 20%,transparent));transform-origin:0 50%;opacity:0;pointer-events:none;transition:opacity .25s ease}.planet-wrap.active .sub-line{opacity:.8}
.results{max-width:760px;margin:0 auto 28px;background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden;position:relative;z-index:40}.result{display:flex;justify-content:space-between;gap:10px;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:13px 16px;cursor:pointer;color:var(--ink);text-align:left}.result:last-child{border-bottom:0}.result:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.result small{color:var(--muted)}
.viewer{max-width:1120px;margin:0 auto 60px;border:1px solid var(--line);border-radius:26px;background:var(--panel);overflow:hidden;box-shadow:var(--shadow);position:relative;z-index:42}.viewer-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.viewer-head span{font-size:9px;letter-spacing:.13em;color:var(--accent);font-weight:900}.viewer-head h2{margin:3px 0 0;font-size:19px}.viewer-actions{display:flex;gap:8px}.viewer-actions button{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:9px 12px;cursor:pointer;font-size:12px;font-weight:800}.viewer-actions button:hover{border-color:var(--accent);color:var(--accent)}.icon-btn{width:40px;padding:0!important;font-size:20px!important}.viewer-body{height:min(72vh,700px);position:relative;background:var(--paper)}.viewer-body iframe{width:100%;height:100%;border:0;background:#fff}.viewer-body #viewerLoading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);z-index:1}.viewer-body.loading iframe{opacity:0}
footer{text-align:center;color:var(--muted);font-size:11px;padding:4px 0 22px}
@keyframes ringPulse{0%,100%{transform:scale(.97);opacity:.35}50%{transform:scale(1.03);opacity:.9}}
@keyframes spinRing{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes spinRingReverse{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(-360deg)}}
@keyframes satMove1{from{transform:translate(0,0)}50%{transform:translate(28px,-16px)}to{transform:translate(0,0)}}
@keyframes satMove2{from{transform:translate(0,0)}50%{transform:translate(-24px,13px)}to{transform:translate(0,0)}}
@keyframes satMove3{from{transform:translate(0,0)}50%{transform:translate(15px,20px)}to{transform:translate(0,0)}}
@media(max-width:900px){.topbar{flex-direction:column;align-items:stretch}.top-actions{justify-content:center;flex-wrap:wrap}.searchbox{min-width:260px;flex:1}.space-stage{height:640px}.planet-node{width:118px;height:118px;left:-59px;top:-59px}.planet-node img{width:98px;height:98px}.planet-label{top:103px}.planet-ring.r1{width:124px;height:74px}.planet-ring.r2{width:142px;height:62px}}
@media(max-width:700px){.top-actions{gap:6px}.timebox{order:1}.theme-switch{order:2}.logo-holder{order:3}.searchbox{order:4;flex-basis:100%}.welcome h1{font-size:28px}.space-stage{height:570px}.space-stage:before,.space-stage:after{display:none}.center{width:190px;height:190px}.center-pad{width:72px;height:72px}.center-logo{width:46px;height:46px}.center-logo img{width:32px;height:32px}.center strong{font-size:16px}.center em{font-size:8px}.planet-wrap{transform:translate(calc(var(--x) * .68),calc(var(--y) * .68))}.planet-node{width:104px;height:104px;left:-52px;top:-52px}.planet-node img{width:88px;height:88px}.planet-label{top:91px;font-size:11px}.planet-ring.r1{width:108px;height:65px}.planet-ring.r2{width:122px;height:56px}.sub{width:72px;height:72px;left:-36px;top:-36px;font-size:9px}}
@media(max-width:520px){.space-stage{height:500px}.center{width:166px;height:166px}.planet-wrap{transform:translate(calc(var(--x) * .48),calc(var(--y) * .48))}.planet-node{width:88px;height:88px;left:-44px;top:-44px}.planet-node img{width:72px;height:72px}.planet-label{top:76px;font-size:10px}.planet-ring.r1{width:94px;height:56px}.planet-ring.r2{width:106px;height:50px}.sub{width:66px;height:66px;left:-33px;top:-33px;font-size:8px}.logo-holder{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}


/* v17 functional layer */
.result{align-items:center}.result-main{display:flex;flex:1;border:0;background:transparent;color:var(--ink);padding:13px 16px;text-align:left;cursor:pointer}.result-main span{display:flex;flex-direction:column;gap:4px}.result-fav{width:44px;border:0;background:transparent;color:var(--accent);font-size:20px;cursor:pointer;padding:8px}.result.empty{padding:16px}.sub-wrap{position:absolute;left:0;top:0;width:0;height:0}.sub-favorite{position:absolute;right:7px;top:7px;width:20px;height:20px;border-radius:50%;border:1px solid color-mix(in srgb,var(--color) 45%,#b8bcc4 55%);background:var(--panel);color:var(--color);font-size:13px;display:grid;place-items:center;cursor:pointer;z-index:4;box-shadow:0 6px 14px rgba(0,0,0,.12);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.planet-wrap.active .sub-favorite{opacity:1;pointer-events:auto}.sub-favorite:hover{transform:scale(1.08)}
.palette{position:fixed;inset:0;z-index:100;display:grid;place-items:start center;padding-top:10vh}.palette[hidden]{display:none}.palette-backdrop{position:absolute;inset:0;background:rgba(15,18,24,.35)}.palette-dialog{position:relative;width:min(720px,calc(100vw - 30px));max-height:min(72vh,650px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.24)}.palette-input-row{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:2}.palette-input-row input{flex:1;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:16px}.palette-input-row kbd{font-size:10px;border:1px solid var(--line);padding:4px 7px;border-radius:6px;color:var(--muted)}.palette-body{padding:8px 10px 14px}.palette-group{padding:6px 0 10px}.palette-group-title{padding:7px 9px;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:900}.palette-item{display:flex;align-items:center;gap:4px;border-radius:14px}.palette-item:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}.palette-main{flex:1;border:0;background:transparent;color:var(--ink);padding:11px 10px;text-align:left;cursor:pointer}.palette-main span{display:flex;flex-direction:column;gap:3px}.palette-main small{color:var(--muted)}.palette-fav{width:42px;border:0;background:transparent;color:var(--accent);font-size:19px;cursor:pointer}.palette-empty{padding:24px 12px;color:var(--muted);text-align:center}
body[data-theme="dark"] .palette-backdrop{background:rgba(0,0,0,.5)}
body[data-theme="light"] .palette-dialog{background:#fff;border-color:#dfd9db;box-shadow:0 24px 70px rgba(45,34,40,.18)}
.spacecraft{width:44px}.rocket-slot{z-index:30}.planet-wrap.dim{opacity:.58;transition:opacity .25s ease}.planet-wrap.hovering .planet-node{transform:scale(1.045)}
@media(max-width:700px){.spacecraft{width:38px;left:-19px;top:-13px}.palette{padding-top:6vh}.palette-dialog{max-height:80vh}.sub-favorite{right:-39px;top:-27px}}

/* v18: visible Lemmikud control + central book/lamp planet */
.favorites-launch{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:10px 12px;font:inherit;font-size:11px;font-weight:850;cursor:pointer;white-space:nowrap;box-shadow:0 6px 18px rgba(30,20,24,.08);transition:.2s ease}
.favorites-launch:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}
.favorites-launch span{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);margin-left:4px}
.center-planet{position:relative;width:148px;height:148px;display:grid;place-items:center;filter:drop-shadow(0 18px 24px rgba(0,0,0,.18))}
.center-planet>img{width:142px;height:142px;object-fit:contain;position:relative;z-index:3}
.center-planet-ring{position:absolute;inset:12px;border:1px solid rgba(153,0,51,.23);border-radius:50%;z-index:2;animation:ringPulse 7s ease-in-out infinite}
.center-planet-ring.ring-b{inset:2px;border-style:dashed;animation-delay:1.5s}
.center-logo-badge{position:absolute;right:6px;bottom:10px;width:38px;height:38px;border-radius:50%;background:var(--panel);display:grid;place-items:center;border:1px solid rgba(153,0,51,.28);box-shadow:0 7px 18px rgba(20,20,30,.16);z-index:6}
.center-logo-badge img{width:26px;height:26px;object-fit:contain}
body[data-theme="light"] .center-logo-badge{background:#fff}
body[data-theme="dark"] .center-planet-ring{border-color:rgba(255,255,255,.3)}
@media(max-width:900px){.favorites-launch{font-size:10px;padding:9px 10px}.center-planet{width:122px;height:122px}.center-planet>img{width:118px;height:118px}.center-logo-badge{width:32px;height:32px}.center-logo-badge img{width:22px;height:22px}}
@media(max-width:700px){.favorites-launch{order:5}.center-planet{width:106px;height:106px}.center-planet>img{width:102px;height:102px}}


/* v19: symmetric regular-heptagon layout, slow motion, large top-left logo, collision-safe radial submenus */
.brand-block{display:flex;align-items:center;gap:14px}.logo-holder.logo-large{width:74px;height:74px;border-radius:50%;border:1px solid var(--line);background:var(--panel);box-shadow:0 10px 28px rgba(0,0,0,.10)}.logo-holder.logo-large img{width:52px;height:52px;object-fit:contain}.top-actions{flex:1;justify-content:flex-end}
.planet-node img{animation:planetFloat 26s ease-in-out infinite}.planet-wrap:nth-of-type(2) .planet-node img{animation-delay:-2s}.planet-wrap:nth-of-type(3) .planet-node img{animation-delay:-4s}.planet-wrap:nth-of-type(4) .planet-node img{animation-delay:-6s}.planet-wrap:nth-of-type(5) .planet-node img{animation-delay:-8s}.planet-wrap:nth-of-type(6) .planet-node img{animation-delay:-10s}.planet-wrap:nth-of-type(7) .planet-node img{animation-delay:-12s}.planet-wrap:nth-of-type(8) .planet-node img{animation-delay:-14s}
@keyframes planetFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-2px,0)}}
.planet-ring.r1{animation-duration:150s}.planet-ring.r2{animation-duration:205s}.sat{animation:none}.planet-wrap .s1{animation:satOrbit1 82s linear infinite}.planet-wrap .s2{animation:satOrbit2 104s linear infinite}.planet-wrap .s3{animation:satOrbit3 118s linear infinite}
@keyframes satOrbit1{from{transform:rotate(0deg) translateX(34px)}to{transform:rotate(360deg) translateX(34px)}}
@keyframes satOrbit2{from{transform:rotate(120deg) translateX(46px)}to{transform:rotate(480deg) translateX(46px)}}
@keyframes satOrbit3{from{transform:rotate(240deg) translateX(40px)}to{transform:rotate(600deg) translateX(40px)}}
.subs{overflow:visible;z-index:28}.sub-wrap{z-index:30;width:0;height:0}.sub{z-index:31}.sub-line{z-index:29}.sub-favorite{z-index:32}
.planet-wrap.active{z-index:40}.planet-wrap.active .planet-node{z-index:45}.planet-wrap.dim{opacity:.48}
@media(max-width:900px){.logo-holder.logo-large{width:76px;height:76px}.logo-holder.logo-large img{width:54px;height:54px}.brand-block{gap:10px}.sub{width:78px;height:78px;left:-39px;top:-39px;font-size:9px}}
@media(max-width:700px){.logo-holder.logo-large{width:56px;height:56px}.logo-holder.logo-large img{width:39px;height:39px}.brand-block{justify-content:center}.top-actions{justify-content:center}.sub{width:70px;height:70px;left:-35px;top:-35px;font-size:8.5px}}
@media(prefers-reduced-motion:reduce){.planet-node img,.planet-ring.r1,.planet-ring.r2,.planet-wrap .s1,.planet-wrap .s2,.planet-wrap .s3{animation:none!important}}

/* v19 submenu positioning: move the favorite star with its circular submenu */
.planet-wrap.active .sub-favorite{left:50%;top:50%;right:auto;transform:translate(calc(var(--sx) + 24px),calc(var(--sy) - 46px));opacity:1;pointer-events:auto}
.planet-wrap.active .sub-favorite:hover{transform:translate(calc(var(--sx) + 24px),calc(var(--sy) - 46px)) scale(1.08)}
@media(max-width:900px){.planet-wrap.active .sub-favorite{transform:translate(calc(var(--sx) + 22px),calc(var(--sy) - 43px))}}
@media(max-width:700px){.planet-wrap.active .sub-favorite{transform:translate(calc(var(--sx) + 20px),calc(var(--sy) - 39px))}}


/* v22: themed service actions + readable app/web launcher */
.sub{
  background:color-mix(in srgb,var(--color) 16%,var(--panel) 84%);
  border-color:color-mix(in srgb,var(--color) 62%,#c6c9cf 38%);
}
body[data-theme="dark"] .sub{color:#fff;background:color-mix(in srgb,var(--color) 28%,#151b2a 72%)}
.sub:hover,.sub:focus-visible{background:color-mix(in srgb,var(--color) 27%,var(--panel) 73%)}
.service-chooser{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  min-width:166px;padding:12px;border:1px solid color-mix(in srgb,var(--service-color) 55%,var(--line) 45%);
  border-radius:18px;background:var(--panel);color:var(--ink);box-shadow:0 18px 50px rgba(20,16,24,.22);
  z-index:90;display:flex;flex-direction:column;gap:10px;pointer-events:auto
}
.service-chooser-title{font-size:11px;font-weight:900;text-align:center;color:var(--service-color)}
.service-chooser-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.service-chooser-actions button{border:1px solid color-mix(in srgb,var(--service-color) 46%,var(--line) 54%);border-radius:12px;background:color-mix(in srgb,var(--service-color) 10%,var(--panel) 90%);color:var(--ink);padding:9px 8px;font-size:10px;font-weight:800;cursor:pointer}
.service-chooser-actions button:hover,.service-chooser-actions button:focus-visible{background:var(--service-color);color:#fff;border-color:var(--service-color)}
@media(max-width:700px){.service-chooser{min-width:148px}.service-chooser-actions{grid-template-columns:1fr}.service-chooser-actions button{padding:10px}}

@media(prefers-reduced-motion:reduce){.spacecraft{animation:none!important}}


/* v23: service-specific brand colors, slower motion, and correct shuttle orientation */
.sub{
  border-color: color-mix(in srgb,var(--service-color,var(--color)) 58%,#b8bec7 42%);
  background: color-mix(in srgb,var(--service-color,var(--color)) 11%,var(--panel) 89%);
  box-shadow: 0 10px 24px rgba(0,0,0,.10), 0 0 0 3px color-mix(in srgb,var(--service-color,var(--color)) 8%,transparent);
}
.sub:hover,.sub:focus-visible{
  background: color-mix(in srgb,var(--service-color,var(--color)) 20%,var(--panel) 80%);
  color: var(--ink);
  border-color: var(--service-color,var(--color));
  box-shadow: 0 14px 32px color-mix(in srgb,var(--service-color,var(--color)) 18%,transparent);
}
.sub-favorite{color:var(--service-color,var(--color));border-color:color-mix(in srgb,var(--service-color,var(--color)) 55%,#b8bcc4 45%)}
.sub-line{background:linear-gradient(90deg,var(--service-color,var(--color)),color-mix(in srgb,var(--service-color,var(--color)) 20%,transparent))}
.service-chooser{min-width:220px}
.service-chooser-actions button:first-child{background:var(--service-color);color:#fff;border-color:var(--service-color)}
.service-chooser-actions button:first-child:hover{filter:brightness(.96)}
.planet-node img{animation-duration:42s}
.planet-ring.r1{animation-duration:220s}
.planet-ring.r2{animation-duration:300s}
.planet-wrap .s1{animation-duration:138s}
.planet-wrap .s2{animation-duration:164s}
.planet-wrap .s3{animation-duration:190s}
.spacecraft{width:34px;height:auto;transform-origin:50% 50%;backface-visibility:hidden}
@media(max-width:700px){.service-chooser{min-width:190px}.spacecraft{width:30px}}


/* v23b: stable SVG rotation for the shuttle */
.spacecraft{transform-box:fill-box;transform-origin:50% 50%;}

/* v24: focused submenu workspace */
.focus-backdrop{position:absolute;inset:0;border-radius:50%;background:rgba(246,244,245,.46);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;pointer-events:none;z-index:12;transition:opacity .35s ease}
body[data-theme="dark"] .focus-backdrop{background:rgba(5,9,16,.52)}
.space-stage.focus-mode .focus-backdrop{opacity:1}
.space-stage.focus-mode .planet-wrap.dim{filter:blur(2px);opacity:.16;transform:translate(var(--x),var(--y)) scale(.98)!important;pointer-events:none}
.space-stage.focus-mode .planet-wrap.active{transform:translate(0,0)!important;z-index:60}
.space-stage.focus-mode .planet-wrap.active .planet-node{transform:scale(1.1)}
.space-stage.focus-mode .planet-wrap.active .planet-label{top:132px;font-size:14px}
.space-stage.focus-mode .planet-wrap.active .subs{z-index:70}
.space-stage.focus-mode .planet-wrap.active .sub-wrap{z-index:72}
.space-stage.focus-mode .planet-wrap.active .sub{width:92px;height:92px;left:-46px;top:-46px;font-size:10px}
.space-stage.focus-mode .planet-wrap.active .sub-favorite{z-index:74}
.space-stage.focus-mode .planet-wrap.active .sub-line{z-index:69}
.service-chooser{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);min-width:246px;padding:18px 18px 16px;border:1px solid color-mix(in srgb,var(--service-color) 52%,var(--line) 48%);border-radius:20px;background:var(--panel);color:var(--ink);box-shadow:0 26px 80px rgba(20,16,24,.24);z-index:140;display:flex;flex-direction:column;gap:12px}
.service-chooser[hidden]{display:none}
.service-chooser-title{font-size:13px;font-weight:900;text-align:center;color:var(--service-color)}
.service-chooser-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.service-chooser-actions button{border:1px solid color-mix(in srgb,var(--service-color) 46%,var(--line) 54%);border-radius:12px;background:color-mix(in srgb,var(--service-color) 10%,var(--panel) 90%);color:var(--ink);padding:10px 9px;font-size:10px;font-weight:850;cursor:pointer}
.service-chooser-actions button:first-child{background:var(--service-color);color:#fff;border-color:var(--service-color)}
.service-chooser-actions button:hover,.service-chooser-actions button:focus-visible{background:var(--service-color);color:#fff;border-color:var(--service-color)}
.chooser-close{position:absolute;right:8px;top:7px;width:28px;height:28px;border:0;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;border-radius:50%}
.chooser-close:hover{background:color-mix(in srgb,var(--service-color) 10%,transparent);color:var(--service-color)}
body.focus-mode-open{overflow:hidden}
@media(max-width:700px){.space-stage.focus-mode .planet-wrap.active .sub{width:76px;height:76px;left:-38px;top:-38px;font-size:8.5px}.service-chooser{min-width:210px}.service-chooser-actions{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.focus-backdrop,.space-stage.focus-mode .planet-wrap.active .sub{transition:none!important}.space-stage.focus-mode .planet-wrap.dim{filter:none!important}}

/* v24: compact solar-system focus mode */
.planet-wrap{transition:transform .75s var(--ease),opacity .45s ease,filter .45s ease}
.planet-wrap.active{transform:translate(0px,0px)!important;z-index:70}
.planet-wrap.active .planet-node{transform:scale(1.10);z-index:72}
.planet-wrap.active .planet-label{top:132px}
.planet-wrap.dim{opacity:.18;filter:saturate(.55);pointer-events:none}
body:has(.planet-wrap.active) .center{opacity:.22;transform:translate(-50%,-50%) scale(.86);pointer-events:none}
body:has(.planet-wrap.active) .orbit{opacity:.24}
.sub{width:76px;height:76px;left:-38px;top:-38px;font-size:9px;padding:8px}
.planet-wrap.active .sub-favorite{transform:translate(calc(var(--sx) + 20px),calc(var(--sy) - 39px))}
.planet-wrap.active .sub-favorite:hover{transform:translate(calc(var(--sx) + 20px),calc(var(--sy) - 39px)) scale(1.08)}
.sub-app{position:absolute;left:50%;top:50%;width:20px;height:20px;border-radius:50%;border:1px solid color-mix(in srgb,var(--service-color) 55%,#b8bcc4 45%);background:var(--panel);color:var(--service-color);font-weight:900;line-height:1;display:grid;place-items:center;cursor:pointer;z-index:34;opacity:0;pointer-events:none;transform:translate(calc(var(--sx) - 40px),calc(var(--sy) - 39px));transition:opacity .2s ease,transform .2s ease}
.planet-wrap.active .sub-app{opacity:1;pointer-events:auto}
.sub-app:hover{transform:translate(calc(var(--sx) - 40px),calc(var(--sy) - 39px)) scale(1.08)}
.service-chooser{display:none!important}
@media(max-width:700px){
  .planet-wrap.active{transform:translate(0px,0px)!important}
  .planet-wrap.active .planet-node{transform:scale(1.04)}
  .sub{width:64px;height:64px;left:-32px;top:-32px;font-size:8px}
  .planet-wrap.active .sub-favorite{transform:translate(calc(var(--sx) + 17px),calc(var(--sy) - 33px))}
  .sub-app{transform:translate(calc(var(--sx) - 35px),calc(var(--sy) - 33px))}
}

/* v24b: no popup launcher; web opens directly, optional Mac action stays on the satellite */
.service-chooser{display:none!important}
.sub-app{position:absolute;left:50%;top:50%;width:21px;height:21px;border-radius:50%;border:1px solid color-mix(in srgb,var(--service-color) 55%,#b8bcc4 45%);background:var(--panel);color:var(--service-color);font-size:13px;font-weight:900;line-height:1;display:grid;place-items:center;cursor:pointer;z-index:75;opacity:0;pointer-events:none;transform:translate(calc(var(--sx) - 43px),calc(var(--sy) - 45px));transition:opacity .2s ease,transform .2s ease}
.planet-wrap.active .sub-app{opacity:1;pointer-events:auto}
.sub-app:hover,.sub-app:focus-visible{transform:translate(calc(var(--sx) - 43px),calc(var(--sy) - 45px)) scale(1.1);outline:none}
.space-stage.focus-mode .center{opacity:.16;transform:translate(-50%,-50%) scale(.82);pointer-events:none}
.space-stage.focus-mode .planet-wrap.active .sub-line{opacity:.5}
@media(max-width:700px){.sub-app{transform:translate(calc(var(--sx) - 37px),calc(var(--sy) - 38px))}}


/* v25: selected planets stay in their original positions; submenu is a local orbital ring. */
.space-stage.focus-mode .planet-wrap.active,
.planet-wrap.active{transform:translate(var(--x),var(--y)) !important;}
.space-stage.focus-mode .planet-wrap.dim{filter:none;opacity:.34;transform:translate(var(--x),var(--y)) !important;}
.space-stage.focus-mode .planet-wrap.active .planet-node{transform:scale(1.055);}
.space-stage.focus-mode .focus-backdrop{opacity:0;backdrop-filter:none;-webkit-backdrop-filter:none;}
body.focus-mode-open{overflow:auto;}

.sub{
  width:84px;height:84px;left:-42px;top:-42px;
  padding:8px 6px 7px;
  flex-direction:column;
  gap:4px;
}
.sub-label{display:block;max-width:68px;line-height:1.08;white-space:normal;}
.sub-actions{display:flex;gap:5px;align-items:center;justify-content:center;}
.sub-action{
  width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  border:1px solid color-mix(in srgb,var(--service-color) 52%,#c2c6cb 48%);
  background:var(--panel);color:var(--service-color);padding:0;cursor:pointer;
  box-shadow:0 4px 10px rgba(0,0,0,.08);
}
.sub-action svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.sub-action:hover,.sub-action:focus-visible{background:var(--service-color);color:#fff;outline:none;}
.sub-favorite{right:3px;top:3px;width:18px;height:18px;font-size:11px;}
.planet-wrap.active .sub-favorite{left:50%;top:50%;right:auto;transform:translate(calc(var(--sx) + 25px),calc(var(--sy) - 47px));}
.planet-wrap.active .sub-favorite:hover{transform:translate(calc(var(--sx) + 25px),calc(var(--sy) - 47px)) scale(1.08);}
.service-chooser{display:none!important;}
@media(max-width:700px){
  .sub{width:74px;height:74px;left:-37px;top:-37px;font-size:8.5px;}
  .sub-action{width:20px;height:20px;}
  .sub-action svg{width:11px;height:11px;}
  .planet-wrap.active .sub-favorite{transform:translate(calc(var(--sx) + 22px),calc(var(--sy) - 42px));}
}

/* v25b: keep Stardikeskus fixed and fully usable while a category is open. */
.space-stage.focus-mode .center,
body:has(.planet-wrap.active) .center{
  opacity:1 !important;
  transform:translate(-50%,-50%) scale(1) !important;
  pointer-events:auto !important;
}
.sub[role="button"]{outline:none;}
.sub[role="button"]:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--service-color,var(--color)) 28%,transparent),0 14px 36px color-mix(in srgb,var(--service-color,var(--color)) 20%,transparent);}

/* v26: lightweight inline-SVG flat planets */
.planet-node .flat-planet{width:122px;height:122px;display:block;position:relative;z-index:3;filter:drop-shadow(0 12px 18px rgba(0,0,0,.16));animation:planetFloat 42s ease-in-out infinite}
.flat-planet svg{width:100%;height:100%;display:block;overflow:visible}
.flat-planet .planet-disc{fill:var(--color)}
.flat-planet .planet-shine{fill:#fff;opacity:.10}
.flat-planet .planet-icon{fill:none;stroke:#fff;stroke-width:3.1;stroke-linecap:round;stroke-linejoin:round}
.flat-planet .planet-icon-fill{fill:#fff;stroke:none}
body[data-theme="light"] .planet-node .flat-planet{filter:drop-shadow(0 10px 16px rgba(20,24,30,.12))}
@media(max-width:900px){.planet-node .flat-planet{width:98px;height:98px}}
@media(max-width:700px){.planet-node .flat-planet{width:88px;height:88px}}
@media(max-width:520px){.planet-node .flat-planet{width:72px;height:72px}}
@media(prefers-reduced-motion:reduce){.planet-node .flat-planet{animation:none!important}}

/* v27: compact service satellites. All controls stay inside each satellite. */
.planet-wrap.active .sub{
  width:66px!important;height:66px!important;left:-33px!important;top:-33px!important;
  padding:8px 5px 6px!important;font-size:8.5px!important;gap:4px!important;
  box-shadow:0 8px 20px rgba(26,32,44,.10)!important;
}
.sub-label{max-width:56px!important;font-size:8.5px!important;line-height:1.05!important;font-weight:800!important;}
.sub-actions{display:flex!important;position:static!important;gap:4px!important;align-items:center!important;justify-content:center!important;margin-top:1px!important;}
.sub-action,.sub-actions .sub-app,.sub-actions .sub-web{
  position:static!important;left:auto!important;top:auto!important;transform:none!important;
  width:18px!important;height:18px!important;min-width:18px!important;border-radius:50%!important;
  opacity:1!important;pointer-events:auto!important;padding:0!important;margin:0!important;
  display:grid!important;place-items:center!important;
}
.sub-actions .sub-app:hover,.sub-actions .sub-app:focus-visible,
.sub-actions .sub-web:hover,.sub-actions .sub-web:focus-visible{transform:scale(1.08)!important;}
.sub-action svg{width:10px!important;height:10px!important;}
/* favorite button sits on the satellite rim instead of floating elsewhere */
.planet-wrap.active .sub-favorite{
  width:16px!important;height:16px!important;font-size:10px!important;
  left:50%!important;top:50%!important;right:auto!important;
  transform:translate(calc(var(--sx) + 21px),calc(var(--sy) - 29px))!important;
  box-shadow:0 3px 8px rgba(0,0,0,.09)!important;
}
.planet-wrap.active .sub-favorite:hover{transform:translate(calc(var(--sx) + 21px),calc(var(--sy) - 29px)) scale(1.08)!important;}
/* keep the constellation clean: reveal the short connection only for the hovered/focused satellite */
.planet-wrap.active .sub-line{opacity:0!important;transition:opacity .16s ease!important;}
.planet-wrap.active .sub-wrap:hover + .sub-line,
.planet-wrap.active .sub-wrap:focus-within + .sub-line{opacity:.38!important;}
@media(max-width:700px){
  .planet-wrap.active .sub{width:60px!important;height:60px!important;left:-30px!important;top:-30px!important;font-size:8px!important;}
  .sub-label{max-width:50px!important;font-size:8px!important;}
  .planet-wrap.active .sub-favorite{transform:translate(calc(var(--sx) + 19px),calc(var(--sy) - 27px))!important;}
  .planet-wrap.active .sub-favorite:hover{transform:translate(calc(var(--sx) + 19px),calc(var(--sy) - 27px)) scale(1.08)!important;}
}


/* v28: remove only the largest background orbit and add the concept line. */
.orbit-3{display:none!important}
.concept-line{margin-top:8px;font-size:12px;letter-spacing:.01em;color:var(--muted);font-weight:650}
.concept-line strong{color:var(--accent);font-weight:850}
body[data-theme="light"] .concept-line{color:#5f5960}
body[data-theme="light"] .concept-line strong{color:var(--accent)}
@media(max-width:700px){.concept-line{font-size:11px;margin-top:7px}}

/* v30: final monochrome vector planet system. The planet, rings and satellites share one category color. */
.planet-node .flat-planet{width:122px;height:122px;display:block;position:relative;z-index:3;filter:drop-shadow(0 10px 16px rgba(0,0,0,.15));animation:planetFloat 48s ease-in-out infinite}
.flat-planet svg{width:100%;height:100%;display:block;overflow:visible}
.flat-planet .planet-disc{fill:color-mix(in srgb,var(--color) 92%,#ffffff 8%);stroke:color-mix(in srgb,var(--color) 74%,#000 26%);stroke-width:1.2}
.flat-planet .planet-shine{fill:#fff;opacity:.08}
.flat-planet .planet-icon{fill:none;stroke:color-mix(in srgb,var(--color) 35%,#ffffff 65%);stroke-width:3.15;stroke-linecap:round;stroke-linejoin:round}
.flat-planet .planet-icon-fill{fill:color-mix(in srgb,var(--color) 30%,#ffffff 70%);stroke:none}
.planet-ring{border-color:color-mix(in srgb,var(--color) 76%,transparent)!important}
.sat{background:var(--color)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--color) 17%,transparent)!important}
body[data-theme="light"] .planet-node .flat-planet{filter:drop-shadow(0 8px 13px rgba(20,24,30,.10))}
@media(max-width:900px){.planet-node .flat-planet{width:98px;height:98px}}
@media(max-width:700px){.planet-node .flat-planet{width:88px;height:88px}}
@media(max-width:520px){.planet-node .flat-planet{width:72px;height:72px}}
@media(prefers-reduced-motion:reduce){.planet-node .flat-planet{animation:none!important}}

/* v31: provided spacecraft asset. Nose points right at 0deg, so orbit math aligns tangent directly. */
.spacecraft{position:absolute;left:-22px;top:-15px;width:44px!important;height:auto;transform-origin:50% 50%;transform-box:fill-box;backface-visibility:hidden;will-change:transform;}
@media(max-width:700px){.spacecraft{left:-19px;top:-13px;width:38px!important;}}

/* v32: restore the original detailed thematic planet artwork. */
.flat-planet{display:none!important}

/* v33: new premium detailed planet set + Stuudium custom school logo badge. */
.planet-node img {
  animation: planetFloat 52s ease-in-out infinite;
}
.planet-node > img {
  width: 132px;
  height: 132px;
  object-fit: contain;
  position: relative;
  z-index: 3;
  filter: drop-shadow(0 12px 18px rgba(0,0,0,.18));
}
body[data-theme="dark"] 
/* Keep generated orbit rings and satellites separate from the image assets. */
.planet-ring,
.sat{z-index:5}
@media(max-width:900px){
  .planet-node > img{width:116px;height:116px}
  
  
}
@media(max-width:700px){
  .planet-node > img{width:102px;height:102px}
  
  
}
@media(max-width:520px){
  .planet-node > img{width:84px;height:84px}
  
  
}


/* v34: unique motion profile per planet; assets contain no baked orbit rings/satellites. */
.planet-wrap .planet-ring.r1{animation-name:spinRing;animation-timing-function:linear;animation-iteration-count:infinite;}
.planet-wrap .planet-ring.r2{animation-name:spinRingReverse;animation-timing-function:linear;animation-iteration-count:infinite;}
.p-stuudium .planet-ring.r1{animation-duration:190s}.p-stuudium .planet-ring.r2{animation-duration:265s}
.p-oppetoo .planet-ring.r1{animation-duration:235s}.p-oppetoo .planet-ring.r2{animation-duration:180s}
.p-tunnid .planet-ring.r1{animation-duration:165s}.p-tunnid .planet-ring.r2{animation-duration:290s}
.p-m365 .planet-ring.r1{animation-duration:255s}.p-m365 .planet-ring.r2{animation-duration:210s}
.p-kool .planet-ring.r1{animation-duration:145s}.p-kool .planet-ring.r2{animation-duration:320s}
.p-ai .planet-ring.r1{animation-duration:280s}.p-ai .planet-ring.r2{animation-duration:195s}
.p-abi .planet-ring.r1{animation-duration:175s}.p-abi .planet-ring.r2{animation-duration:245s}
.p-stuudium .s1{animation-duration:72s}.p-stuudium .s2{animation-duration:118s}.p-stuudium .s3{animation-duration:150s}
.p-oppetoo .s1{animation-duration:98s;animation-direction:reverse}.p-oppetoo .s2{animation-duration:132s}.p-oppetoo .s3{display:none}
.p-tunnid .s1{animation-duration:64s}.p-tunnid .s2{animation-duration:116s;animation-direction:reverse}.p-tunnid .s3{animation-duration:172s}
.p-m365 .s1{animation-duration:108s;animation-direction:reverse}.p-m365 .s2{animation-duration:82s}.p-m365 .s3{display:none}
.p-kool .s1{animation-duration:86s}.p-kool .s2{animation-duration:140s;animation-direction:reverse}.p-kool .s3{animation-duration:190s}
.p-ai .s1{animation-duration:120s;animation-direction:reverse}.p-ai .s2{animation-duration:76s}.p-ai .s3{animation-duration:166s;animation-direction:reverse}
.p-abi .s1{animation-duration:90s}.p-abi .s2{display:none}.p-abi .s3{animation-duration:155s;animation-direction:reverse}
.spacecraft{width:48px!important}.rocket-slot{z-index:52!important}.ship-marker{z-index:53!important}
@media(max-width:700px){.spacecraft{width:42px!important}}
@media(prefers-reduced-motion:reduce){.planet-wrap .planet-ring.r1,.planet-wrap .planet-ring.r2,.planet-wrap .s1,.planet-wrap .s2,.planet-wrap .s3{animation:none!important}}


/* v35: restored latest detailed glass planet set; per-planet ring and satellite motion. */
.planet-wrap .planet-node{z-index:46}
.planet-wrap .planet-ring{z-index:2}
.planet-wrap .sat{z-index:4}
.planet-wrap .subs{z-index:60}
.planet-wrap.active .planet-node{z-index:90}
.planet-wrap.active .subs{z-index:70}
.planet-wrap.active .sub-line{z-index:69}
.planet-wrap.active .sub-wrap{z-index:72}
.planet-wrap.active .sub{z-index:73}
.planet-wrap.active .sub-favorite{z-index:74}
/* Keep the service ring outside the planet silhouette. */
.planet-wrap.active .sub{pointer-events:auto}
/* Individual ring speeds/directions */
.p-stuudium .planet-ring.r1{animation-duration:188s}.p-stuudium .planet-ring.r2{animation-duration:276s}
.p-oppetoo .planet-ring.r1{animation-duration:236s}.p-oppetoo .planet-ring.r2{animation-duration:182s}
.p-tunnid .planet-ring.r1{animation-duration:164s}.p-tunnid .planet-ring.r2{animation-duration:292s}
.p-m365 .planet-ring.r1{animation-duration:258s}.p-m365 .planet-ring.r2{animation-duration:214s}
.p-kool .planet-ring.r1{animation-duration:146s}.p-kool .planet-ring.r2{animation-duration:326s}
.p-ai .planet-ring.r1{animation-duration:284s}.p-ai .planet-ring.r2{animation-duration:198s}
.p-abi .planet-ring.r1{animation-duration:174s}.p-abi .planet-ring.r2{animation-duration:252s}
.p-stuudium .s1{animation-duration:76s}.p-stuudium .s2{animation-duration:111s}.p-stuudium .s3{animation-duration:137s}
.p-oppetoo .s1{animation-duration:92s}.p-oppetoo .s2{animation-duration:124s}.p-oppetoo .s3{animation-duration:151s}
.p-tunnid .s1{animation-duration:68s}.p-tunnid .s2{animation-duration:101s}.p-tunnid .s3{animation-duration:126s}
.p-m365 .s1{animation-duration:84s}.p-m365 .s2{animation-duration:116s}.p-m365 .s3{animation-duration:141s}
.p-kool .s1{animation-duration:63s}.p-kool .s2{animation-duration:107s}.p-kool .s3{animation-duration:132s}
.p-ai .s1{animation-duration:97s}.p-ai .s2{animation-duration:128s}.p-ai .s3{animation-duration:154s}
.p-abi .s1{animation-duration:74s}.p-abi .s2{animation-duration:118s}.p-abi .s3{animation-duration:139s}
/* Latest detailed planet assets: never animate/rotate the base image itself. */
.planet-node > img{animation:none!important;transform:none!important}
/* Slightly larger inter-planet clearance for the spacecraft */
.rocket-slot{z-index:120}
.spacecraft{width:46px!important;left:-23px!important;top:-16px!important}
@media(max-width:700px){.spacecraft{width:40px!important;left:-20px!important;top:-14px!important}}
@media(prefers-reduced-motion:reduce){.planet-wrap .planet-ring,.planet-wrap .sat,.spacecraft{animation:none!important}}

/* v37: local planet rings sit over the planet surface; satellites stay above rings. */
.planet-wrap .planet-ring{z-index:6;}
.planet-wrap .planet-node img,.planet-wrap .planet-node .flat-planet{z-index:3;}
.planet-wrap .sat{z-index:7;}
.planet-wrap .planet-label{z-index:12;}
/* Keep rings visible over the planet, but below interactive submenu satellites. */
.planet-wrap.active .subs{z-index:28;}
.planet-wrap.active .sub-wrap{z-index:30;}

/* v37: slightly tighter ship orbit between the decorative rings and submenu ring. */
.spacecraft{z-index:90;}

/* v38: lower category labels and give the home orbit more breathing room. */
.planet-label{top:142px;}
.planet-wrap.active .planet-label{top:146px;}

/* The home ship orbit follows the first inner gray orbit, but sits just outside the center label zone. */
.planet-wrap .planet-label{line-height:1.15;}
@media(max-width:900px){
  .planet-label{top:112px;font-size:12px;}
  .planet-wrap.active .planet-label{top:116px;}
}
@media(max-width:700px){
  .planet-label{top:99px;font-size:11px;}
  .planet-wrap.active .planet-label{top:103px;}
}
@media(max-width:520px){
  .planet-label{top:83px;font-size:10px;}
  .planet-wrap.active .planet-label{top:87px;}
}

/* Keep the center-flight path clear of the Stardikeskus label. */
.rocket-slot{z-index:120;}

/* v40: ambient sky activity and subtle real-constellation moments. */
.stars .star{animation:starTwinkle var(--twinkle-duration,11s) ease-in-out var(--twinkle-delay,0s) infinite;}
@keyframes starTwinkle{0%,100%{opacity:.2;transform:scale(.82)}50%{opacity:.72;transform:scale(1.28)}}
.comet-field{position:absolute;inset:0;overflow:hidden;border-radius:50%;pointer-events:none;z-index:4}
.comet{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;opacity:0;box-shadow:0 0 9px 2px rgba(255,255,255,.85)}
.comet::after{content:"";position:absolute;right:3px;top:1px;width:92px;height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(255,255,255,.75),rgba(255,255,255,0));filter:blur(.3px);transform-origin:right center;}
.comet-1{left:12%;top:18%;animation:cometFlight1 34s linear infinite 7s}
.comet-2{left:74%;top:62%;animation:cometFlight2 41s linear infinite 19s}
@keyframes cometFlight1{0%,70%{opacity:0;transform:translate(-40px,-25px) rotate(-18deg)}73%{opacity:.9}100%{opacity:0;transform:translate(470px,170px) rotate(-18deg)}}
@keyframes cometFlight2{0%,68%{opacity:0;transform:translate(50px,-30px) rotate(165deg)}72%{opacity:.78}100%{opacity:0;transform:translate(-390px,150px) rotate(165deg)}}
.constellation-layer{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;opacity:.66;overflow:visible}
.constellation{opacity:0;transition:opacity 1.4s ease}
.constellation.visible{opacity:.42}
.constellation path{fill:none;stroke:rgba(102,116,134,.28);stroke-width:1.15;stroke-dasharray:2 8}
.constellation circle{fill:rgba(101,119,142,.68);filter:drop-shadow(0 0 4px rgba(104,125,152,.16))}
body[data-theme="dark"] .constellation path{stroke:rgba(188,204,228,.24)}
body[data-theme="dark"] .constellation circle{fill:rgba(217,228,245,.7)}
body[data-theme="dark"] .comet{background:#fff}
body[data-theme="light"] .comet{background:#990033;box-shadow:0 0 8px 1px rgba(153,0,51,.25)}
body[data-theme="light"] .comet::after{background:linear-gradient(90deg,rgba(153,0,51,.26),rgba(153,0,51,0))}
@media(prefers-reduced-motion:reduce){.stars .star,.comet,.constellation{animation:none!important;transition:none!important}.constellation.visible{opacity:.26}}

/* v40: move labels a little farther below the planet. */
.planet-label{top:152px;}
.planet-wrap.active .planet-label{top:156px;}
@media(max-width:900px){.planet-label{top:121px;font-size:12px}.planet-wrap.active .planet-label{top:125px}}
@media(max-width:700px){.planet-label{top:106px;font-size:11px}.planet-wrap.active .planet-label{top:110px}}
@media(max-width:520px){.planet-label{top:90px;font-size:10px}.planet-wrap.active .planet-label{top:94px}}

/* v41: lift the greeting block slightly and make shooting stars genuinely rare. */
.welcome{position:relative;transform:translateY(-30px)}
.comet-1{animation-duration:78s;animation-delay:13s}
.comet-2{animation-duration:103s;animation-delay:47s}
@keyframes cometFlight1{
  0%,93%{opacity:0;transform:translate(-40px,-25px) rotate(-18deg)}
  94%{opacity:.9}
  99%{opacity:.72;transform:translate(470px,170px) rotate(-18deg)}
  100%{opacity:0;transform:translate(500px,180px) rotate(-18deg)}
}
@keyframes cometFlight2{
  0%,94%{opacity:0;transform:translate(50px,-30px) rotate(165deg)}
  95%{opacity:.78}
  99%{opacity:.6;transform:translate(-390px,150px) rotate(165deg)}
  100%{opacity:0;transform:translate(-420px,160px) rotate(165deg)}
}
@media(max-width:700px){.welcome{transform:translateY(-18px)}}

/* v41.1 — favorite star only: no circular badge/background. */
.sub-favorite{
  width:22px!important;
  height:22px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--service-color,var(--color))!important;
  font-size:20px!important;
  line-height:1!important;
  font-family:Arial,sans-serif!important;
  text-shadow:none!important;
}
.sub-favorite[aria-pressed="false"]{font-weight:400;opacity:.9}
.sub-favorite[aria-pressed="true"]{font-weight:700;opacity:1}
.planet-wrap.active .sub-favorite:hover{filter:none!important}

/* v41.2 — favorites are visible only while their parent planet menu is open. */
.planet-wrap:not(.active) .sub-favorite{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.planet-wrap.active .sub-favorite{
  visibility:visible!important;
  pointer-events:auto!important;
}
.planet-wrap.active .sub-favorite[aria-pressed="false"]{opacity:.9!important}
.planet-wrap.active .sub-favorite[aria-pressed="true"]{opacity:1!important}

/* v44: active category labels sit clearly below the planet and never trigger navigation. */
.planet-wrap.active .planet-label{top:176px;}
@media(max-width:900px){.planet-wrap.active .planet-label{top:140px;}}
@media(max-width:700px){.planet-wrap.active .planet-label{top:124px;}}
@media(max-width:520px){.planet-wrap.active .planet-label{top:106px;}}
