/* Layout concept: a fixed 3:2 dream desktop. The painted scene is the wallpaper, clickable hotspots sit on its baked-in icons,
   Win98-style windows float above it, and a canvas-built stacked-sprite skull hovers over the portal. */
:root{--art:url("../assets/art.jpg");--bg:#07132e;--panel:#c6c9d3;--card:#e7e9f1;--ink:#0b1030;--ink2:#3a4272;--navy:#142d91;--violet:#6a3fd6;--pink:#d067d8;--cyan:#72f5ff;--night:#0a1230;--kidbg:#efe8ff;--kidline:#9a7cf0;--whybg:#e1f1f6;--whyline:#2a8fb0;
--mono:"VT323","Courier New",monospace;--sans:Tahoma,Verdana,"Segoe UI",sans-serif;--W:min(100vw,150dvh);color-scheme:dark}
@media (max-aspect-ratio:1/1){:root{--W:150dvh}}
html,body{height:100%}
body{margin:0;background:var(--bg);overflow:hidden;font-family:var(--sans);color:var(--ink)}
body::before{content:"";position:fixed;inset:0;background:var(--art) center/cover;filter:blur(30px) brightness(.5);transform:scale(1.1)}
#stage{position:absolute;left:50%;top:50%;width:var(--W);height:calc(var(--W)/1.5);margin-left:calc(var(--W)/-2);margin-top:calc(var(--W)/-3);overflow:hidden;background:var(--bg)}
.layer{position:absolute;inset:0;pointer-events:none}
.art{background:var(--art) 0 0/100% 100%;filter:hue-rotate(var(--hue,0deg)) saturate(var(--sat,1))}
.water{background:var(--art) 0 0/100% 100%;-webkit-mask-image:linear-gradient(transparent 71%,#000 76%,#000 96%);mask-image:linear-gradient(transparent 71%,#000 76%,#000 96%);will-change:transform}
.w1{filter:url(#rippleA) hue-rotate(var(--hue,0deg)) saturate(var(--sat,1));animation:sway 11s ease-in-out infinite alternate}
.w2{filter:url(#rippleB) hue-rotate(var(--hue,0deg)) saturate(var(--sat,1));animation:sway 13s ease-in-out infinite alternate-reverse,wfade 9s ease-in-out infinite alternate}
@keyframes sway{from{transform:translateX(-5px)}to{transform:translateX(5px)}}
@keyframes wfade{from{opacity:0}to{opacity:1}}
.glint{left:0;width:calc(100% + 1050px);-webkit-mask-image:linear-gradient(transparent 72%,#000 78%,#000 95%,transparent);mask-image:linear-gradient(transparent 72%,#000 78%,#000 95%,transparent);mix-blend-mode:screen;opacity:.5;background:radial-gradient(ellipse,#d9f4ff77,transparent 70%) 0 0/150px 11px,radial-gradient(ellipse,#ffc8f677,transparent 70%) 70px 7px/210px 15px;animation:glint 120s linear infinite;will-change:transform}
@keyframes glint{to{transform:translateX(-1050px)}}
.cloud{position:absolute;border-radius:50%;filter:blur(26px);mix-blend-mode:screen;opacity:.2;animation:drift linear infinite alternate;will-change:transform}
.c1{left:-12%;top:6%;width:42%;height:12%;background:radial-gradient(#ffd6f5,transparent 70%);animation-duration:80s}
.c2{left:30%;top:36%;width:38%;height:11%;background:radial-gradient(#fff,transparent 70%);animation-duration:110s;animation-direction:alternate-reverse}
.c3{left:58%;top:50%;width:46%;height:13%;background:radial-gradient(#ffb8e8,transparent 70%);animation-duration:95s}
.c4{left:5%;top:56%;width:36%;height:10%;background:radial-gradient(#cfd8ff,transparent 70%);animation-duration:125s;animation-direction:alternate-reverse}
@keyframes drift{to{transform:translateX(32%)}}
.glow{position:absolute;border-radius:50%;mix-blend-mode:screen;aspect-ratio:1;translate:-50% -50%;animation:pulse 7s ease-in-out infinite alternate}
.portal{left:53%;top:48%;width:10%;background:radial-gradient(#c6ecff,transparent 65%)}
@keyframes pulse{from{opacity:.15;scale:.85}to{opacity:.7;scale:1.15}}
.spark{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 6px 2px #9fd8ff;animation:tw 4s ease-in-out infinite}
@keyframes tw{0%,100%{opacity:.1}50%{opacity:1}}
.skull{position:absolute;left:36.78%;top:-4.88%;width:31.64%;height:47.75%;z-index:4;pointer-events:none}
.pour{position:absolute;left:50.9%;top:31.6%;width:3.9%;height:9.6%;mix-blend-mode:screen;opacity:.55;pointer-events:none;background:repeating-linear-gradient(90deg,#d6ecff 0 1.5px,transparent 1.5px 6px),linear-gradient(#bfe0ff66,transparent);-webkit-mask-image:linear-gradient(transparent,#000 25%,#000 80%,transparent);mask-image:linear-gradient(transparent,#000 25%,#000 80%,transparent);animation:pour 1.8s ease-in-out infinite alternate}
@keyframes pour{from{background-position:0 0,0 0;opacity:.4}to{background-position:6px 0,0 0;opacity:.62}}
.still .cloud,.still .glow,.still .spark,.still .glint,.still .pour,.still .w1,.still .w2{animation:none}.still .w2{opacity:0}
@media (prefers-reduced-motion:reduce){.cloud,.glow,.spark,.glint,.pour,.w1,.w2{animation:none}.w2{opacity:0}}
/* hotspots on the painted icons */
.hot{position:absolute;left:.4%;width:7.4%;height:8.6%;border:0;background:transparent;cursor:pointer;border-radius:4px;z-index:10}
.hot:hover,.hot:focus-visible{background:#72f5ff1f;outline:1px dotted #fff;box-shadow:0 0 18px #72f5ff66}
/* taskbar + start menu */
#bar{position:absolute;left:0;right:0;bottom:0;height:4.4%;min-height:32px;z-index:900;display:flex;align-items:center;gap:6px;padding:3px 5px;background:#c2c6d2;border-top:2px solid #fff;color:var(--ink);font-size:clamp(11px,calc(var(--W)*.0092),14px)}
#bar button{font:inherit;color:inherit}
.start{height:100%;padding:0 12px;font-weight:bold;border:2px outset #fff;background:linear-gradient(#eceef5,#bcc0d0);cursor:pointer}
#tasks{flex:1;display:flex;gap:4px;height:100%;overflow:hidden;min-width:0}
.task{height:100%;min-width:0;width:140px;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:2px outset #fff;background:#d3d6e2;cursor:pointer}
.task.on{border-style:inset;background:#e6e8f1}
.tray{padding:2px 8px;border:2px inset #fff;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.cdbtn{background:none;border:0;padding:0;margin:0;cursor:pointer;display:inline-flex;align-items:center}
.cdbtn:hover{filter:brightness(1.25)}
.cdbtn:active{transform:translateY(1px)}
.cd{display:inline-block;width:20px;height:20px;line-height:0;filter:drop-shadow(0 1px 1px #0008)}
.cd svg{width:20px;height:20px;display:block}
/* default: speaker shows waves (playing). muted: swap to red X */
.cd .waves{display:inline}.cd .mute-x{display:none}
#musicbtn.muted .cd .waves{display:none}
#musicbtn.muted .cd .mute-x{display:inline}
/* soft pulse while awaiting the first interaction so visitors notice */
#musicbtn.waiting .cd{animation:spk 1.4s ease-in-out infinite}
@keyframes spk{0%,100%{transform:scale(1);filter:drop-shadow(0 1px 1px #0008)}50%{transform:scale(1.15);filter:drop-shadow(0 0 6px #72f5ff)}}
@media (prefers-reduced-motion:reduce){#musicbtn.waiting .cd{animation:none}}
#menu{position:absolute;left:.4%;bottom:calc(4.4% + 4px);z-index:1000;display:none;width:220px;background:#c2c6d2;border:2px outset #fff;box-shadow:4px 4px 18px #0008}
#menu.open{display:block}
#menu .mh{padding:12px 10px;background:linear-gradient(#142d91,#7a46dc 70%,#d067d8);color:#fff;font-weight:bold;letter-spacing:1px}
#menu .mh small{font-family:var(--mono);font-size:15px;letter-spacing:2px;font-weight:400}
#menu button{display:block;width:100%;text-align:left;padding:7px 12px;border:0;background:none;font:13px var(--sans);color:var(--ink);cursor:pointer}
#menu button:hover,#menu button:focus-visible{background:var(--navy);color:#fff;outline:none}
#menu hr{margin:3px 6px;border:0;border-top:1px solid #8b90a8;border-bottom:1px solid #fff}
/* windows */
.win{position:absolute;display:none;flex-direction:column;max-height:82%;background:var(--panel);color:var(--ink);border:2px solid;border-color:#fff #5a5f78 #5a5f78 #fff;box-shadow:0 10px 40px #1b0a5a99,0 0 0 1px #72f5ff55,0 0 26px #8a6bff55;font-size:clamp(12px,calc(var(--W)*.0105),15.5px);z-index:30}
.win.open{display:flex}
.win.max{left:.5%!important;top:.5%!important;width:99%!important;height:90%!important;max-height:none}
.tbar{display:flex;justify-content:space-between;align-items:center;padding:3px 4px 3px 8px;background:linear-gradient(90deg,#142d91,#6a3fd6 60%,#d067d8);color:#fff;font-weight:bold;cursor:grab;user-select:none;touch-action:none;gap:8px}
.tbar>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbar button{width:20px;height:18px;margin-left:2px;padding:0;border:2px outset #fff;background:#d4d7e3;font:bold 11px/1 var(--sans);color:var(--ink);cursor:pointer}
.wb{padding:12px 14px;overflow:auto;flex:1;min-height:0;line-height:1.5}
.wb h2{margin:0 0 6px;font-size:1.25em;line-height:1.25;text-wrap:balance}.wb p{margin:.5em 0}
.sb{font:15px var(--mono);padding:2px 8px;background:var(--night);color:var(--cyan);letter-spacing:1px}
.btn{border:2px outset #fff;background:linear-gradient(#eceef5,#bfc3d3);padding:5px 12px;font:inherit;color:var(--ink);cursor:pointer;margin:2px 4px 2px 0}
.btn:hover{background:linear-gradient(#f4f5fa,#cfd2e0)}.btn:active{border-style:inset}
.btn:disabled{opacity:.45;cursor:default}
.btn.go{background:linear-gradient(#8f6cf0,#5a35c8);color:#fff;font-weight:bold;border-color:#c4adff #2d1a73 #2d1a73 #c4adff}
.btn:focus-visible,.vocab:focus-visible,.les:focus-visible,.hot:focus-visible,.start:focus-visible,.task:focus-visible,.tbar button:focus-visible{outline:2px dotted var(--navy);outline-offset:1px}
.card{background:var(--card);border:2px inset #fff;padding:8px 10px;margin:8px 0}
.warn{font-size:.92em;padding:6px 8px;border-left:4px solid var(--pink);background:var(--card)}
.row{margin-top:12px;display:flex;flex-wrap:wrap;gap:2px}
.tag{font:15px/1 var(--mono);letter-spacing:1.5px;margin-bottom:4px;color:var(--violet)}
.part{font:15px var(--mono);letter-spacing:1.5px;color:var(--violet)}
.kid,.why{padding:8px 10px;margin:8px 0;border-left:4px solid}
.kid{background:var(--kidbg);border-color:var(--kidline)}
.why{background:var(--whybg);border-color:var(--whyline)}.why .tag{color:#1b6d88}
.kid p,.why p{margin:.35em 0}
.deep{background:var(--card);border:2px inset #fff;padding:6px 10px;margin:8px 0}
.deep summary,details summary{cursor:pointer;font-weight:bold}
.deep ul{margin:6px 0 2px;padding-left:18px}.deep li{margin:3px 0}
details{background:var(--card);border:2px inset #fff;padding:6px 10px;margin:5px 0}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.vocab{font:inherit;color:#3b1fa8;background:#ece6ff;border:0;border-bottom:2px dotted #6a3fd6;padding:0 2px;cursor:help;border-radius:2px}
.vocab:hover{background:#d9ccff}.vocab.seen{color:#17606f;border-bottom-color:#2a8fb0;background:#e0f3f7}
.chips .vocab{padding:2px 8px;border:1px solid #6a3fd6;border-radius:10px}
.les{display:flex;gap:8px;width:100%;text-align:left;margin:4px 0;padding:7px 10px;border:2px outset #fff;background:var(--card);color:var(--ink);font:inherit;cursor:pointer;align-items:baseline}
.les:hover{background:#d8cdfa}.les b{flex:1}.les small{font:15px var(--mono);color:var(--violet)}
.tabs{display:flex;gap:4px;margin-bottom:8px}.tab{padding:4px 10px;border:2px outset #fff;background:#d3d6e2;font:inherit;color:var(--ink);cursor:pointer}.tab.on{border-style:inset;background:#eceef6;font-weight:bold}
textarea,.field{width:100%;box-sizing:border-box;background:#fff;color:var(--ink);border:2px inset #fff;font:inherit;padding:6px}
.bar{height:10px;background:#9aa0bb;border:1px inset #fff;margin:3px 0 8px}.bar i{display:block;height:100%;background:linear-gradient(90deg,#6a3fd6,#d067d8)}
.term{background:#02070b;color:#65ff89;font:17px/1.4 var(--mono);padding:10px;min-height:260px;max-height:60vh;overflow-y:auto;white-space:pre-wrap;word-break:break-word}
.term .out{display:block}
.term .prline{display:flex;align-items:baseline;gap:6px}
.term .pr{color:#d067d8;flex-shrink:0;white-space:nowrap}
.term input{flex:1;min-width:0;background:none;border:0;color:#72f5ff;font:inherit;outline:none;caret-color:#72f5ff}
.win[data-n="terminal"] .wb{padding:4px}
.term::-webkit-scrollbar{width:8px}.term::-webkit-scrollbar-thumb{background:#1a3a5a;border-radius:4px}
.game{background:var(--card);border:2px inset #fff;padding:8px 10px;margin:10px 0}
.msg{background:#fff;border:1px solid #8b90a8;padding:8px 10px;margin:6px 0;font-style:italic}
.fb{margin:6px 0;padding:6px 8px;border-left:4px solid}.fb.ok{border-color:#1f9d55;background:#e3f6ea}.fb.no{border-color:#c0392b;background:#fbe7e4}
#wc{position:absolute;display:none;z-index:1050;width:min(290px,92vw);background:#fffdf3;color:var(--ink);border:2px solid;border-color:#fff #5a5f78 #5a5f78 #fff;box-shadow:4px 6px 22px #0009;padding:10px 12px;font-size:14px;line-height:1.45}
#wc.open{display:block}#wc b{font-size:1.1em;color:#3b1fa8}#wc p{margin:.4em 0}#wc .lab{font:15px var(--mono);letter-spacing:1px;color:#6a3fd6}
#toast{position:absolute;left:50%;bottom:7%;transform:translateX(-50%);z-index:1100;max-width:80%;padding:8px 14px;background:#0a1230ee;color:var(--cyan);border:1px solid var(--cyan);font:17px var(--mono);opacity:0;pointer-events:none;transition:opacity .3s}
#toast.show{opacity:1}
/* Overlay desktop icons — match the painted left column, draggable, positions persist */
.rico{position:absolute;z-index:12;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:7.4%;height:8.6%;padding:0;background:transparent;border:0;color:#fff;cursor:pointer;font:12px var(--sans);text-shadow:0 1px 3px #000a,0 0 10px #0007;user-select:none;border-radius:4px}
.rico:hover,.rico:focus-visible{background:#72f5ff1f;outline:1px dotted #fff;box-shadow:0 0 18px #72f5ff66}
.rico .gs{display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 4px #000a);pointer-events:none}
.rico .gs img,.rico .gs svg{display:block;width:48px;height:48px;image-rendering:pixelated;image-rendering:crisp-edges}
.rico small{font:11px var(--sans);letter-spacing:0;color:#fff;text-shadow:0 1px 3px #000c;pointer-events:none}
/* second column — same box dimensions as painted hotspots; Games & Gate nudged down for breathing room */
.tipicon{left:9%;top:.7%}
.gamesicon{left:9%;top:10.6%}
.classesicon{left:9%;top:19.4%}
.gateicon{left:9%;top:28.2%;display:none}
.gateicon.show{display:flex}
.gateicon .gs{filter:drop-shadow(0 2px 6px #000a) drop-shadow(0 0 14px #a97affaa);animation:gateFloat 4s ease-in-out infinite alternate}
@keyframes gateFloat{from{transform:translateY(0) scale(1)}to{transform:translateY(-3px) scale(1.03)}}
.step{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;margin:4px 0;background:var(--card);border:2px inset #fff}
.step .n{flex:0 0 24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:var(--violet);color:#fff;font-weight:bold;border-radius:50%}
.step.done .n{background:#1f9d55}
.step.done{opacity:.78}
.step b{display:block;margin-bottom:2px}
.step small{color:var(--ink2);font-size:.92em}
.step .act{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}
.gate h2{background:linear-gradient(90deg,#6a3fd6,#d067d8);-webkit-background-clip:text;background-clip:text;color:transparent}
.gauge{position:relative;width:100%;max-width:280px;margin:4px auto 8px}
.gauge svg{width:100%;height:auto;display:block}
.gauge .gval{position:absolute;left:0;right:0;bottom:6%;text-align:center;font:bold 28px var(--sans)}
.gauge .glab{position:absolute;left:0;right:0;bottom:-2px;text-align:center;font:12px var(--mono);letter-spacing:1.5px;color:var(--violet)}
.coin{display:grid;grid-template-columns:22px 1fr auto auto;gap:8px;align-items:center;padding:5px 8px;border-bottom:1px solid #b7bbcc;font-size:.95em}
.coin:last-child{border-bottom:0}
.coin img{width:20px;height:20px}
.coin .nm{font-weight:bold;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.coin .sy{font:12px var(--mono);color:var(--ink2);margin-left:4px;text-transform:uppercase}
.coin .pc{font:inherit;font-variant-numeric:tabular-nums}
.coin .ch{font:12px var(--mono);font-variant-numeric:tabular-nums;min-width:60px;text-align:right;padding:2px 6px;border-radius:4px}
.star{background:none;border:0;font-size:16px;cursor:pointer;color:#aaa;padding:0 4px;line-height:1}
.star.on{color:#f1c40f;text-shadow:0 0 6px #f1c40f88}
.signbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--card);border:2px inset #fff;padding:6px 10px;margin-bottom:8px;font-size:.9em}
.signbar .who{font:12px var(--mono);color:var(--violet);word-break:break-all}
.coin .up{color:#0a7a3c;background:#dff5e5}
.coin .dn{color:#9b2a1f;background:#fbe3df}
.news{display:block;padding:7px 8px;margin:4px 0;background:var(--card);border:2px inset #fff;color:var(--ink);text-decoration:none;font-size:.95em}
.news:hover{background:#dcd0f8}
.news .src{font:11px var(--mono);letter-spacing:1px;color:var(--violet);text-transform:uppercase}
.news .ti{display:block;line-height:1.35;margin-top:2px}
.cls .ch{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:start}
.cls .ce{font-size:24px;line-height:1.2}.cls small{color:var(--ink2)}
.cls .cp{font:22px var(--mono);color:var(--violet)}
.cls .yt{position:relative;aspect-ratio:16/9;margin-top:8px;background:#02070b;border:2px inset #fff}.cls .yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.site{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:7px 10px;margin:4px 0;background:var(--card);border:2px inset #fff;color:var(--ink);text-decoration:none}
.site:hover{background:#dcd0f8}
.site .gl{font-size:24px;line-height:1;text-align:center}
.site b{display:block}.site small{color:var(--ink2);font-size:.88em}
.site .go{font:11px var(--mono);letter-spacing:1px;color:var(--violet)}
.lockmsg{text-align:center;padding:14px;background:var(--card);border:2px inset #fff;margin:8px 0}
.lockmsg .lk{font-size:28px}
.pill{display:inline-block;padding:1px 8px;border-radius:9px;background:#ded0f6;color:var(--violet);font:11px var(--mono);letter-spacing:1px;margin-left:4px;vertical-align:middle}
.pill.on{background:#dff5e5;color:#0a7a3c}
/* store */
.shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:10px 0}
.prod{background:var(--card);border:2px inset #fff;overflow:hidden;display:flex;flex-direction:column}
.prod .thumb{aspect-ratio:1;background:#120836;position:relative;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center;padding:10px;font:bold 18px var(--sans);text-shadow:0 2px 10px #000a;overflow:hidden}
.prod .thumb::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,#ffffff22,transparent 60%);pointer-events:none}
.prod .thumb .sk{font-size:40px;margin-bottom:6px;filter:drop-shadow(0 0 10px #d8b4ff)}
.prod .meta{padding:8px 10px;flex:1;display:flex;flex-direction:column;gap:4px}
.prod .meta b{font-size:1.05em}
.prod .meta small{color:var(--ink2);font-size:.88em;line-height:1.35}
.prod .pr{font-family:var(--mono);font-size:14px;letter-spacing:1px;color:var(--violet)}
.prod .buy{padding:6px 10px;border-top:1px solid #bfc3d3;display:flex;gap:4px;flex-wrap:wrap}
.badge{display:inline-block;padding:2px 7px;background:#120836;color:#f3deff;font:10px var(--mono);letter-spacing:1.5px;border-radius:3px;align-self:flex-start}
.badge.soon{background:#555}.badge.nft{background:linear-gradient(90deg,#6a3fd6,#d067d8)}.badge.tip{background:#1f9d55}
.donate{background:linear-gradient(135deg,#120836,#2e1760);color:#fff;padding:14px;margin:10px 0;border:2px solid #c6a1ff;border-radius:6px}
.donate h2{margin:0 0 4px;background:linear-gradient(90deg,#f3deff,#d067d8);-webkit-background-clip:text;background-clip:text;color:transparent}
.donate p{margin:.3em 0;color:#e8dcff}
.damts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.damt{padding:7px 12px;border:1px solid #c6a1ff;background:#1a0a3eaa;color:#fff;font:inherit;cursor:pointer;border-radius:4px}
.chrow{display:flex;flex-wrap:wrap;gap:5px}
.chbtn{padding:4px 10px;border:1px solid #c6a1ff;background:#1a0a3eaa;color:#fff;font:12px var(--sans);cursor:pointer;border-radius:4px;letter-spacing:.3px}
.chbtn:hover{background:#6a3fd6}
.chbtn.on{background:#6a3fd6;border-color:#fff;box-shadow:inset 0 0 0 1px #fff}
.damt:hover,.damt.on{background:#6a3fd6}
.dcustom{display:flex;gap:6px;align-items:center;margin:6px 0}
.dcustom input{flex:1;min-width:0;background:#1a0a3e;color:#fff;border:1px solid #c6a1ff;padding:7px;border-radius:4px;font:inherit}
.drow{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.drow .btn{margin:0}
.addr{font:12px var(--mono);word-break:break-all;background:#1a0a3e;padding:5px 7px;border-radius:4px;color:#c6a1ff}
.setaddr{background:#ffeeba;color:#5a3300;padding:8px 10px;margin:8px 0;border-left:4px solid #e67e22;font-size:.92em}
.boot{position:absolute;inset:0;z-index:2000;background:#02070b;color:#72f5ff;font:17px var(--mono);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 8%;letter-spacing:1px;transition:opacity 1.2s}
.boot.gone{opacity:0;pointer-events:none}
.boot b{color:#d067d8}
.boot .cur::after{content:"▮";margin-left:3px;animation:bl 1s steps(1) infinite}
@keyframes bl{50%{opacity:0}}
.mob{display:none}
@media (max-aspect-ratio:1/1){
 .hot,.glint{display:none}
 .mob{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;position:absolute;left:calc(50% - 50vw + 12px);width:calc(100vw - 24px);top:12px;z-index:20}
 .mob button{padding:8px 2px;border:1px solid #72f5ff88;background:#061a3ecc;color:#fff;font:12px var(--sans);border-radius:6px}
 .mob span{display:block;font-size:24px}
 .win,.win.max{left:calc(50% - 48vw)!important;top:10px!important;width:96vw!important;max-height:none;height:calc(100% - 62px)!important;font-size:14px}
 #bar{left:calc(50% - 50vw);right:auto;width:100vw;height:44px}#menu{left:calc(50% - 50vw + 4px);bottom:48px}.task{width:90px}
}
