/* ============================================================
   MEMES ARE BACK — styles
   Sections: 0 base · 1 enter gate · 2 intro · 3 desktop
   4 icons · 5 windows · 6 popups · 7 taskbar/start
   8 assistant · 9 chaos/effects · 10 bsod · 11 responsive
   ============================================================ */

/* ---------- 0. base ---------- */
:root{
  --teal:#0a8a8a;
  --teal2:#0c6e6e;
  --win:#c3c7cb;
  --win-dark:#868a8e;
  --win-light:#fdfdfd;
  --title1:#000080;
  --title2:#1084d0;
  --neon:#39ff14;
  --hot:#ff2d95;
  --gold:#ffd23f;
  --ink:#0a0a0a;
  --face:#1a1a1a;
}
*{box-sizing:border-box;}
html,body{height:100%;margin:0;}
body{
  font-family:"Tahoma","Segoe UI",Verdana,sans-serif;
  background:#000;
  color:#fff;
  overflow:hidden;
  -webkit-font-smoothing:none;
  cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M3 2 L3 22 L8 17 L12 25 L15 23 L11 16 L18 16 Z' fill='white' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") 2 2, auto;
  user-select:none;
}
.hidden{display:none !important;}
.screen{position:fixed;inset:0;}
code{font-family:"Consolas",monospace;color:var(--neon);background:#000;padding:1px 5px;border-radius:3px;}
button{font-family:inherit;}

/* ---------- 1. enter gate ---------- */
#enter-gate{
  display:flex;align-items:center;justify-content:center;
  background:#000;overflow:hidden;
}
.gate-bg{
  position:absolute;inset:0;
  background:repeating-linear-gradient(0deg,#000 0 2px,#060606 2px 4px);
  animation:bgpan 6s linear infinite;
}
@keyframes bgpan{to{background-position:0 40px,0 40px;}}
.gate-inner{position:relative;text-align:center;z-index:2;padding:24px;}
.gate-title{
  font-size:clamp(40px,11vw,140px);
  font-weight:900;letter-spacing:-2px;margin:0;line-height:.9;
  color:#fff;text-transform:uppercase;
  text-shadow:4px 4px 0 var(--hot),-4px -4px 0 var(--teal);
  animation:gateGlitch 2.6s steps(1) infinite;
}
.gate-title::before,.gate-title::after{
  content:attr(data-text);position:absolute;left:0;top:0;width:100%;
}
.gate-title::before{color:var(--hot);transform:translate(3px,0);mix-blend-mode:screen;animation:gj1 2s infinite;}
.gate-title::after{color:var(--teal);transform:translate(-3px,0);mix-blend-mode:screen;animation:gj2 2.4s infinite;}
@keyframes gj1{0%,90%,100%{clip-path:inset(0 0 100% 0);}92%{clip-path:inset(20% 0 40% 0);}96%{clip-path:inset(60% 0 10% 0);}}
@keyframes gj2{0%,88%,100%{clip-path:inset(100% 0 0 0);}90%{clip-path:inset(10% 0 70% 0);}95%{clip-path:inset(50% 0 20% 0);}}
@keyframes gateGlitch{0%,97%{transform:translate(0,0);}97.5%{transform:translate(-3px,2px);}98.5%{transform:translate(3px,-2px);}}
.gate-logo{
  display:block;width:auto;height:auto;max-width:min(540px,84vw);max-height:58vh;margin:0 auto;
  filter:drop-shadow(0 8px 26px rgba(0,0,0,.6));
  animation:logoIdle 2.6s ease-in-out infinite;
}
@keyframes logoIdle{0%,100%{transform:translateY(0) rotate(-1deg) scale(1);}50%{transform:translateY(-8px) rotate(1deg) scale(1.02);}}
.gate-ca{
  display:inline-block;margin:0 auto 18px;
  font-family:Consolas,monospace;font-size:clamp(12px,1.7vw,16px);font-weight:700;letter-spacing:1px;
  color:#39ff14;background:rgba(0,0,0,.55);border:1px solid #39ff14;border-radius:8px;padding:7px 16px;
  cursor:pointer;user-select:text;-webkit-user-select:text;box-shadow:0 0 14px rgba(57,255,20,.25);
}
.gate-ca:hover{background:rgba(57,255,20,.14);}
.gate-ca.copied{color:#fff;border-color:#fff;}
.gate-sub{color:#9ad;letter-spacing:6px;text-transform:uppercase;font-size:13px;margin:16px 0 20px;}
.enter-btn{
  background:none;border:none;padding:6px 12px;margin:2px 0 6px;
  color:#fff;font-family:inherit;font-size:clamp(16px,2.6vw,24px);font-weight:700;
  letter-spacing:5px;text-transform:lowercase;cursor:pointer;
  animation:enterBlink 1.25s steps(1) infinite;
}
.enter-btn:hover{color:var(--neon);text-decoration:underline;}
.enter-btn:active{transform:scale(.95);}
@keyframes enterBlink{50%{opacity:.35;}}
.gate-warn{margin-top:22px;color:var(--gold);font-size:12px;letter-spacing:1px;}

/* ---------- 2. intro ---------- */
#intro{background:#000;overflow:hidden;}
.video-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
#ansem-video{width:100%;height:100%;object-fit:cover;background:#000;}
.video-placeholder{
  position:absolute;inset:0;display:none;
  align-items:flex-end;justify-content:center;
  background:#bfe0f5 url("../assets/wallpaper.jpg") center/cover no-repeat;
}
#intro.no-video .video-placeholder{display:flex;}
#intro.no-video #ansem-video{display:none;}
.ansem-intro-img{
  max-height:88vh;max-width:72vw;width:auto;
  filter:drop-shadow(0 12px 34px rgba(0,0,0,.45));
  transform-origin:center bottom;
  animation:ansemHype .5s ease-in-out infinite;
}
@keyframes ansemHype{
  0%,100%{transform:translateY(0) rotate(-1.5deg) scale(1);}
  50%{transform:translateY(-12px) rotate(1.5deg) scale(1.035);}
}
/* ---- ANSEM talking-head puppet (pops up ~1s in) ---- */
.ansem-stage{
  position:absolute;inset:0;display:none;z-index:10;pointer-events:none;
  align-items:flex-end;justify-content:center;padding-bottom:4vh;
}
#intro.no-video .ansem-stage{display:flex;}
.ansem-talker{
  position:relative;display:inline-block;width:340px;max-width:78vw;
  opacity:0;transform:scale(.25);--split:40%;
}
.ansem-talker.show{animation:talkerPop .45s cubic-bezier(.2,1.5,.4,1) forwards;}
@keyframes talkerPop{to{opacity:1;transform:scale(1);}}
.talker-shake{position:relative;display:block;filter:drop-shadow(0 10px 24px rgba(0,0,0,.5));}
.ansem-talker.show .talker-shake{animation:talkerShake .12s steps(2) infinite;}
@keyframes talkerShake{
  0%{transform:translate(0,0) rotate(-1.2deg);}
  50%{transform:translate(-3px,2px) rotate(1.2deg);}
  100%{transform:translate(3px,-2px) rotate(-1.2deg);}
}
.talk-layer{display:block;width:100%;height:auto;image-rendering:pixelated;}
.talk-top{position:relative;clip-path:inset(0 0 calc(100% - var(--split)) 0);}
.talk-bottom{position:absolute;left:0;top:0;clip-path:inset(var(--split) 0 0 0);}
.ansem-talker.talking .talk-bottom{animation:jawFlap .15s steps(2) infinite;}
@keyframes jawFlap{0%{transform:translateY(0);}50%{transform:translateY(4px);}100%{transform:translateY(0);}}
/* ---- green-screen dancing cat (live chroma-key) ---- */
#cat-src,#bj-src{position:fixed;left:-9999px;top:0;width:320px;height:auto;pointer-events:none;}
.cat-stage{position:absolute;inset:0;display:none;z-index:10;pointer-events:none;}
#intro.no-video .cat-stage{display:block;}
.gs-canvas{
  position:absolute;bottom:7%;height:32vh;width:auto;
  image-rendering:pixelated;filter:drop-shadow(0 8px 18px rgba(0,0,0,.5));
  opacity:0;transition:opacity .25s;
}
#cat-canvas{left:4%;}
#bj-canvas{right:4%;}
.gs-canvas.show{opacity:1;animation:catBob 1.05s ease-in-out infinite;}
@keyframes catBob{0%,100%{transform:translateY(0) rotate(-4deg) scale(1);}50%{transform:translateY(-12px) rotate(4deg) scale(1.05);}}
.vp-face{width:120px;height:auto;animation:bob 1.2s ease-in-out infinite;filter:drop-shadow(2px 4px 5px rgba(0,0,0,.5));}
@keyframes bob{50%{transform:translateY(-12px) rotate(3deg);}}
.vp-title{font-size:34px;font-weight:900;letter-spacing:2px;}
.vp-msg{color:#9ad;font-size:15px;line-height:1.6;}
.vp-mouth{width:90px;height:10px;background:var(--neon);border-radius:6px;animation:talk .18s steps(2) infinite;box-shadow:0 0 18px var(--neon);}
@keyframes talk{50%{height:34px;border-radius:14px;}}

.intro-banner{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-6deg);
  font-size:clamp(40px,12vw,150px);font-weight:900;text-transform:uppercase;
  color:#fff;text-shadow:5px 5px 0 var(--hot),-5px -5px 0 var(--teal);
  pointer-events:none;opacity:0;letter-spacing:-3px;z-index:5;
}
.intro-banner.flash{animation:bannerFlash .5s ease-out;}
@keyframes bannerFlash{0%{opacity:0;transform:translate(-50%,-50%) scale(2) rotate(-6deg);}30%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-6deg);}100%{opacity:0;transform:translate(-50%,-50%) scale(.9) rotate(-6deg);}}

.subtitle{
  position:absolute;left:50%;bottom:9%;transform:translateX(-50%);
  font-size:clamp(20px,4vw,40px);font-weight:900;text-align:center;
  color:var(--gold);text-shadow:0 3px 0 #000,0 0 16px #000;
  max-width:90%;z-index:6;letter-spacing:1px;
}
.skip-btn{
  position:absolute;right:22px;bottom:22px;z-index:9;
  background:rgba(0,0,0,.6);color:#fff;border:2px solid #fff;
  padding:10px 18px;font-weight:800;border-radius:8px;cursor:pointer;letter-spacing:1px;
}
.skip-btn:hover{background:var(--hot);}

.crt-overlay{
  position:absolute;inset:0;pointer-events:none;z-index:7;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 1px,transparent 1px 3px);
  mix-blend-mode:multiply;opacity:.5;
}
.vignette{position:absolute;inset:0;pointer-events:none;z-index:7;
  box-shadow:inset 0 0 220px 60px rgba(0,0,0,.8);}

/* ---- pixelated rainbow chaos (intro only) ---- */
.rainbow-strobe{
  position:absolute;inset:0;pointer-events:none;z-index:9;
  mix-blend-mode:hard-light;opacity:.62;
  background:linear-gradient(120deg,#ff2d95,#ffd23f,#39ff14,#00e5ff,#ff2d95);
  background-size:300% 300%;
  animation:rbMove .6s linear infinite, rbHue .9s linear infinite;
}
@keyframes rbMove{0%{background-position:0% 50%;}100%{background-position:300% 50%;}}
@keyframes rbHue{to{filter:hue-rotate(360deg) saturate(1.9);}}
/* full-screen color strobe */
.color-flash{
  position:absolute;inset:0;pointer-events:none;z-index:8;mix-blend-mode:screen;opacity:.3;
  animation:colorFlash .26s steps(1) infinite;
}
@keyframes colorFlash{
  0%{background:#ff2d95;}17%{background:#39ff14;}34%{background:#00e5ff;}
  50%{background:#ffd23f;}67%{background:#ff5e00;}84%{background:#b026ff;}100%{background:#ff2d95;}
}
.pixel-overlay{
  position:absolute;inset:0;pointer-events:none;z-index:11;opacity:.6;mix-blend-mode:multiply;
  background-image:linear-gradient(rgba(0,0,0,.6) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(0,0,0,.6) 1px,transparent 1px);
  background-size:10px 10px;
}
/* render the intro imagery as chunky pixels + constant jitter */
#intro .ansem-intro-img,#intro .meme img,#intro .meme.img{image-rendering:pixelated;}
#intro{animation:introJitter .11s steps(2) infinite;}
@keyframes introJitter{0%{transform:translate(0,0);}50%{transform:translate(-2px,1px);}100%{transform:translate(2px,-1px);}}
.skip-btn{z-index:20;}
.crash-thumb{width:50px;height:50px;object-fit:contain;flex:0 0 auto;image-rendering:auto;border-radius:4px;}

/* ---- games.exe (ANSEM-MAN) ---- */
.game-wrap{background:#000;padding:6px;}
.game-hud{display:flex;justify-content:space-between;color:#39ff14;font-weight:800;font-size:13px;letter-spacing:1px;padding:2px 4px 6px;}
.game-canvas{display:block;background:#000;border:2px solid #16308a;image-rendering:auto;}
.game-hint{color:#9ad;font-size:11px;text-align:center;padding:6px 0 2px;}

/* ---- interactive terminal input ---- */
.term-input-row{display:flex;align-items:center;background:#000;padding:0 10px 8px;font-family:Consolas,monospace;}
.term-prompt{color:#39ff14;margin-right:6px;font-size:13px;}
.term-in{flex:1;background:transparent;border:none;outline:none;color:#39ff14;font-family:Consolas,monospace;font-size:13px;}
.term-green{color:#39ff14;}
.term-red{color:#ff5555;}

/* ---- memechat.exe ---- */
.chat-head{background:#2a527e;color:#fff;font-size:12px;padding:6px 9px;font-weight:700;}
.chat-msgs{height:220px;overflow:auto;background:#1e2228;padding:7px;display:flex;flex-direction:column;gap:7px;}
.chat-msg{display:flex;gap:7px;align-items:flex-start;}
.chat-msg.me{flex-direction:row-reverse;}
.chat-av{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:#000;}
.chat-bubble{background:#2f343d;color:#e6e6e6;border-radius:8px;padding:5px 8px;font-size:12px;max-width:220px;line-height:1.3;}
.chat-msg.me .chat-bubble{background:#3a6ea5;color:#fff;}
.chat-name{display:block;font-size:10px;color:#7fb3ff;font-weight:700;margin-bottom:1px;}
.chat-input-row{display:flex;gap:5px;padding:6px;background:#1e2228;}
.chat-in{flex:1;border:1px solid #3a3f47;background:#2a2f37;color:#fff;border-radius:6px;padding:6px 8px;font-size:12px;outline:none;font-family:inherit;}

/* ---- pump.exe ---- */
body.pumping{animation:chaosShake .22s linear infinite;}
.pump-wrap{background:#0b0f0d;text-align:center;padding:14px 10px 18px;}
.pump-label{color:#39ff14;font-weight:800;letter-spacing:3px;font-size:12px;font-family:Consolas,monospace;}
.pump-num{color:#fff;font-weight:900;line-height:1;margin:10px 0 16px;text-shadow:0 0 16px #39ff14;font-family:Consolas,monospace;min-height:64px;display:flex;align-items:center;justify-content:center;}
.pump-btn{width:90%;padding:16px;border:3px solid #000;border-radius:10px;background:linear-gradient(180deg,#39ff14,#1fae0c);color:#000;font-weight:900;font-size:16px;letter-spacing:1px;cursor:pointer;user-select:none;}
.pump-btn.held{transform:scale(.96);filter:brightness(1.2);}

/* ---- minesweeper.exe ---- */
.mine-hud{display:flex;align-items:center;gap:8px;padding:2px 2px 8px;font-size:12px;font-weight:700;color:#000;}
.mine-grid{display:grid;gap:2px;justify-content:center;}
.mine-cell{width:26px;height:26px;background:linear-gradient(135deg,#e2e6ea,#b8bdc4);border:2px solid;border-color:#fff #8a8f96 #8a8f96 #fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;cursor:pointer;overflow:hidden;}
.mine-cell.rev{background:#cdd2d7;border:1px solid #b0b6bd;}
.mine-cell.rev.mine{background:#ff5555;}
.mine-cell img{width:20px;height:20px;object-fit:contain;pointer-events:none;}

/* shake utility (added to body) */
.shake{animation:shake .25s linear;}
@keyframes shake{
  0%,100%{transform:translate(0,0);}
  20%{transform:translate(-6px,4px) rotate(-.4deg);}
  40%{transform:translate(7px,-5px) rotate(.5deg);}
  60%{transform:translate(-5px,6px);}
  80%{transform:translate(5px,-4px);}
}

/* ---------- 3. desktop ---------- */
#desktop{background:var(--teal);overflow:hidden;}
.wallpaper{
  position:absolute;inset:0;
  background:#bfe0f5 url("../assets/wallpaper.jpg") center/cover no-repeat;
}
.wp-meme{position:absolute;width:min(26vw,250px);opacity:.16;pointer-events:none;}
.wp-tl{top:1%;left:1%;} .wp-tr{top:1%;right:1%;} .wp-bl{bottom:1%;left:1%;} .wp-br{bottom:1%;right:1%;}
.wp-logo3d{position:relative;z-index:2;font-size:clamp(34px,6vw,72px);}

/* ===== RETURN TO MEMES logo (CSS, three styles) ===== */
.logo3d{display:flex;flex-direction:column;align-items:center;line-height:.86;user-select:none;text-align:center;}
.logo3d span{display:inline-block;white-space:nowrap;}
.lg-mc{   /* RETURN — Minecraft stone 3D */
  font-family:"Arial Black",Impact,sans-serif;font-weight:900;letter-spacing:.04em;font-size:1.15em;
  color:#9b8d7b;-webkit-text-stroke:.055em #241b14;paint-order:stroke fill;
  text-shadow:0 .04em 0 #6b6056,0 .08em 0 #54493f,0 .12em 0 #3e352d,0 .16em .1em rgba(0,0,0,.5);
  transform:rotate(-3deg);
}
.lg-pk{   /* TO — Pokémon */
  font-family:"Trebuchet MS","Arial Black",sans-serif;font-weight:900;letter-spacing:.02em;font-size:.92em;
  color:#ffd23f;-webkit-text-stroke:.13em #36459a;paint-order:stroke fill;
  text-shadow:0 .06em 0 #232f6e,0 .1em .08em rgba(0,0,0,.4);margin:-.04em 0;
}
.lg-gta{  /* MEMES — GTA */
  font-family:Impact,Haettenschweiler,"Arial Narrow",sans-serif;font-weight:900;font-style:italic;font-size:1.05em;
  letter-spacing:.02em;color:#fff;background:#d61f1f;padding:.02em .2em;border:.06em solid #ffd23f;border-radius:.06em;
  -webkit-text-stroke:.05em #111;paint-order:stroke fill;text-shadow:0 .05em 0 #000;
  transform:skewX(-7deg);box-shadow:0 .08em 0 rgba(0,0,0,.4);
}
.gate-logo3d{font-size:clamp(40px,8vw,82px);filter:drop-shadow(0 6px 18px rgba(0,0,0,.55));animation:logoIdle 2.6s ease-in-out infinite;}
.marquee{
  position:absolute;top:0;left:0;right:0;height:26px;overflow:hidden;
  background:#000;border-bottom:1px solid var(--neon);z-index:50;
  display:flex;align-items:center;
}
.marquee span{
  white-space:nowrap;color:var(--neon);font-weight:800;letter-spacing:2px;font-size:13px;
  padding-left:100%;animation:scrollLeft 18s linear infinite;
}
@keyframes scrollLeft{to{transform:translateX(-100%);}}

/* ---------- 4. icons ---------- */
.icons{position:absolute;top:12px;left:10px;display:flex;flex-direction:column;flex-wrap:wrap;
  gap:6px;max-height:calc(100% - 80px);z-index:10;align-content:flex-start;}
.icon{
  width:84px;padding:8px 4px;text-align:center;border:1px dotted transparent;border-radius:4px;cursor:pointer;
}
.icon:hover{background:rgba(0,0,40,.25);border-color:rgba(255,255,255,.4);}
.icon.selected{background:rgba(0,0,128,.45);border-color:rgba(255,255,255,.6);}
.icon .glyph{font-size:38px;line-height:1;filter:drop-shadow(1px 1px 0 rgba(0,0,0,.5));}
.icon .glyph-img{width:44px;height:44px;object-fit:contain;display:block;margin:0 auto;border-radius:6px;filter:drop-shadow(1px 1px 0 rgba(0,0,0,.6));}
.icon .label{display:block;margin-top:4px;font-size:12px;color:#fff;text-shadow:1px 1px 2px #000;word-break:break-word;}
.icon.danger .label{color:var(--gold);font-weight:800;}

/* ---------- 5. windows ---------- */
.win{
  position:absolute;min-width:240px;background:var(--win);color:#000;
  border:2px solid var(--win-light);border-right-color:var(--win-dark);border-bottom-color:var(--win-dark);
  box-shadow:3px 3px 0 rgba(0,0,0,.45);z-index:100;display:flex;flex-direction:column;
}
.win.max{left:0 !important;top:26px !important;width:100% !important;height:calc(100% - 26px - 40px) !important;}
.win-title{
  display:flex;align-items:center;gap:6px;cursor:grab;
  background:linear-gradient(90deg,var(--title1),var(--title2));
  color:#fff;font-weight:700;font-size:13px;padding:4px 5px;user-select:none;
}
.win-title img.wt-icon{width:16px;height:16px;object-fit:contain;border-radius:3px;}
.task-tab img.tab-icon{width:15px;height:15px;object-fit:contain;border-radius:2px;vertical-align:middle;flex:0 0 auto;}
.win-title .wt-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.win-btns{display:flex;gap:3px;}
.win-btns button{
  width:18px;height:16px;border:1px solid #000;border-top-color:#fff;border-left-color:#fff;
  background:var(--win);color:#000;font-size:11px;font-weight:900;line-height:12px;cursor:pointer;padding:0;
}
.win-body{padding:12px;overflow:auto;font-size:13px;line-height:1.5;flex:1;background:var(--win);}
.win-body.inset{background:#fff;border:2px solid var(--win-dark);border-right-color:#fff;border-bottom-color:#fff;margin:8px;padding:10px;}
.win.dragging{opacity:.92;}
.win.dragging .win-title{cursor:grabbing;}

/* file list */
.filelist{list-style:none;margin:0;padding:0;}
.filelist li{display:flex;justify-content:space-between;padding:5px 6px;border-bottom:1px solid #e6e6e6;cursor:pointer;}
.filelist li:hover{background:#000080;color:#fff;}
.muted{color:#555;}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;}
.gallery .card{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:40px;overflow:hidden;
  background:#000;border:2px solid #444;border-radius:6px;cursor:pointer;text-align:center;line-height:1.1;}
.gallery .card img{width:100%;height:100%;object-fit:cover;display:block;}
.gallery .card span{font-size:13px;color:var(--neon);font-weight:800;padding:4px;}
.gallery .card:hover{transform:scale(1.08) rotate(-3deg);border-color:var(--neon);}
.gallery .card:hover img{transform:scale(1.12);}

/* soundboard */
.soundboard{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.sb-btn{padding:14px 8px;font-weight:800;border:2px solid #000;border-radius:8px;cursor:pointer;
  background:linear-gradient(180deg,#ffe27a,var(--gold));color:#000;font-size:13px;}
.sb-btn:hover{transform:translateY(-2px);}
.sb-btn:active{transform:translateY(1px);}

/* terminal */
.terminal{background:#000;color:var(--neon);font-family:Consolas,monospace;font-size:13px;
  padding:10px;height:240px;overflow:auto;white-space:pre-wrap;}
.terminal .cursor{animation:blink 1s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}

/* notepad */
.notepad{background:#fff;color:#000;font-family:Consolas,monospace;font-size:13px;white-space:pre-wrap;}

/* stonks */
.stonks2{background:#001b0e;border:2px solid #0f5;}
.stonks-hud{display:flex;align-items:center;gap:10px;padding:6px 9px;font-family:Consolas,monospace;}
.st-tick{color:#39ff14;font-weight:900;font-size:16px;letter-spacing:1px;}
.st-price{color:#fff;font-weight:800;font-size:14px;}
.st-chg{color:#39ff14;font-weight:800;font-size:14px;margin-left:auto;}
.stonks-canvas-wrap{position:relative;}
#st-canvas{display:block;width:100%;}
.st-pops{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.st-pop{position:absolute;animation:stPop 1.5s ease-out forwards;}
.st-pop img{height:100%;width:auto;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));}
@keyframes stPop{0%{transform:translate(0,0) scale(.5);opacity:0;}20%{opacity:1;}100%{transform:translate(var(--dx,0),-95px) scale(1.1) rotate(20deg);opacity:0;}}
.st-note{color:#0a8;font-size:10px;text-align:center;padding:5px;font-family:Consolas,monospace;}

/* ---------- 6. popups (error spam) ---------- */
.popups{position:absolute;inset:0;pointer-events:none;z-index:400;}
.popup{
  position:absolute;pointer-events:auto;min-width:230px;max-width:300px;
  background:var(--win);color:#000;border:2px solid var(--win-light);
  border-right-color:var(--win-dark);border-bottom-color:var(--win-dark);
  box-shadow:3px 3px 0 rgba(0,0,0,.45);font-size:13px;
}
.popup .pop-title{background:linear-gradient(90deg,#a00,#e33);color:#fff;font-weight:700;
  padding:3px 6px;display:flex;justify-content:space-between;align-items:center;cursor:grab;}
.popup .pop-title.info{background:linear-gradient(90deg,var(--title1),var(--title2));}
.popup .pop-body{padding:12px;display:flex;gap:10px;align-items:flex-start;}
.popup .pop-icon{font-size:30px;}
.pop-meme{width:46px;height:46px;object-fit:contain;display:block;border-radius:5px;}
.popup .pop-actions{display:flex;justify-content:center;gap:8px;padding:0 12px 12px;}
.popup .pop-actions button{padding:4px 16px;border:1px solid #000;border-top-color:#fff;border-left-color:#fff;
  background:var(--win);cursor:pointer;font-weight:700;min-width:64px;}
.popup .x{cursor:pointer;font-weight:900;padding:0 4px;}

/* ---------- 7. taskbar / start ---------- */
.taskbar{
  position:absolute;left:0;right:0;bottom:0;height:40px;z-index:600;
  background:linear-gradient(180deg,#3a6ea5,#1a3a66);border-top:2px solid #6ea0d8;
  display:flex;align-items:center;gap:6px;padding:0 6px;
}
.start-btn{
  display:flex;align-items:center;gap:6px;height:30px;padding:0 14px;font-weight:900;font-style:italic;
  color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:15px;
  background:linear-gradient(180deg,#5ac05a,#2e8b2e);box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);
}
.start-btn:hover{filter:brightness(1.1);}
.start-btn.on{filter:brightness(.85);}
.task-tabs{flex:1;display:flex;gap:5px;overflow:hidden;}
.task-tab{max-width:170px;height:28px;padding:0 10px;display:flex;align-items:center;gap:6px;
  background:#2a527e;color:#fff;border:1px solid #6ea0d8;border-radius:4px;cursor:pointer;font-size:12px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.task-tab.active{background:#5a86bb;box-shadow:inset 1px 1px 3px rgba(0,0,0,.5);}
.tray{display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.25);height:30px;padding:0 10px;border-radius:6px;}
.tray-icon{height:20px;width:auto;object-fit:contain;border-radius:3px;cursor:default;}
.start-logo{width:20px;height:20px;object-fit:contain;border-radius:3px;vertical-align:middle;}
.clock{color:#fff;font-size:13px;font-weight:700;min-width:46px;text-align:center;}

.start-menu{
  position:absolute;left:6px;bottom:44px;width:260px;z-index:650;
  background:var(--win);border:2px solid var(--win-light);
  border-right-color:var(--win-dark);border-bottom-color:var(--win-dark);
  box-shadow:3px 3px 0 rgba(0,0,0,.5);overflow:hidden;
}
.sm-head{background:linear-gradient(180deg,var(--title2),var(--title1));color:#fff;
  font-weight:900;font-size:18px;padding:14px 12px;font-style:italic;}
.sm-list{padding:4px;}
.sm-item{display:flex;align-items:center;gap:10px;padding:8px 10px;color:#000;cursor:pointer;font-size:13px;font-weight:600;}
.sm-item:hover{background:linear-gradient(90deg,var(--title1),var(--title2));color:#fff;}
.sm-item .smi-img{width:22px;height:22px;object-fit:contain;border-radius:3px;}
.sm-item.sm-text{padding-left:42px;}
.sm-sep{height:1px;background:var(--win-dark);margin:4px 8px;}

/* ---------- 8. assistant ---------- */
.assistant{position:absolute;right:24px;bottom:60px;z-index:500;width:150px;text-align:center;cursor:grab;}
.assistant.dragging{cursor:grabbing;}
.assistant-face{width:64px;height:auto;animation:bob 1.5s ease-in-out infinite;filter:drop-shadow(2px 2px 0 rgba(0,0,0,.4));}
.assistant-bubble{
  background:#ffffe0;color:#000;border:2px solid #000;border-radius:12px;padding:8px 10px;font-size:12px;
  margin-bottom:6px;position:relative;font-weight:600;box-shadow:2px 2px 0 rgba(0,0,0,.4);
}
.assistant-bubble::after{content:"";position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);
  border:8px solid transparent;border-top-color:#000;}

/* ---------- 9. chaos / effects ---------- */
.chaos-field{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:8;}
.meme{
  position:absolute;font-size:42px;will-change:transform;pointer-events:none;
  text-shadow:2px 2px 0 rgba(0,0,0,.5);
}
.meme.text{font-weight:900;text-transform:uppercase;color:#fff;text-shadow:3px 3px 0 var(--hot);}
.meme.img{height:90px;}
.meme.img img{height:100%;width:auto;object-fit:contain;display:block;filter:drop-shadow(2px 3px 4px rgba(0,0,0,.55));}

@keyframes floatUp{from{transform:translateY(0) rotate(0);opacity:1;}to{transform:translateY(-120vh) rotate(var(--spin,360deg));opacity:0;}}
@keyframes rainDown{from{transform:translateY(-20vh) rotate(0);opacity:1;}to{transform:translateY(120vh) rotate(var(--spin,360deg));opacity:0;}}
@keyframes flyAcross{from{transform:translateX(-30vw) rotate(0);opacity:1;}to{transform:translateX(130vw) rotate(var(--spin,720deg));opacity:0;}}
@keyframes pop{0%{transform:scale(0) rotate(0);opacity:0;}30%{transform:scale(1.3) rotate(10deg);opacity:1;}100%{transform:scale(1) rotate(-6deg);opacity:0;}}

.cursor-spark{position:fixed;pointer-events:none;z-index:9999;animation:spark .8s ease-out forwards;}
.cursor-spark img{height:100%;width:auto;display:block;}
@keyframes spark{to{transform:translateY(-26px) scale(.3);opacity:0;}}

/* confetti pieces */
.confetti{position:fixed;pointer-events:none;z-index:9998;font-size:22px;animation:confFall 1.4s ease-in forwards;}
.confetti.img img{height:100%;width:auto;display:block;}
@keyframes confFall{to{transform:translate(var(--dx,0),var(--dy,140px)) rotate(var(--spin,540deg));opacity:0;}}

/* CHAOS MODE */
body.chaos #desktop .wallpaper{animation:rainbow 1.2s linear infinite;}
@keyframes rainbow{0%{filter:hue-rotate(0) saturate(2);}100%{filter:hue-rotate(360deg) saturate(2);}}
body.chaos{animation:chaosShakeBig .2s linear infinite;}
@keyframes chaosShake{0%,100%{transform:translate(0,0);}25%{transform:translate(-3px,2px);}75%{transform:translate(3px,-2px);}}
@keyframes chaosShakeBig{0%,100%{transform:translate(0,0) rotate(-.4deg);}20%{transform:translate(-7px,5px) rotate(.5deg);}40%{transform:translate(6px,-6px) rotate(-.3deg);}60%{transform:translate(-5px,-4px) rotate(.4deg);}80%{transform:translate(7px,3px) rotate(-.4deg);}}

/* DO NOT CLICK: dancing cat center-screen */
.chaos-cat{position:absolute;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;pointer-events:none;}
#ccat-src{position:fixed;left:-9999px;top:0;width:320px;height:auto;pointer-events:none;}
.ccat-canvas{height:56vh;width:auto;image-rendering:pixelated;filter:drop-shadow(0 12px 30px rgba(0,0,0,.6));opacity:0;transition:opacity .2s;}
.ccat-canvas.show{opacity:1;}

/* games.exe folder */
.games-folder{display:flex;gap:16px;flex-wrap:wrap;padding:14px 10px;background:#cfd3da;justify-content:center;}
.gf-item{width:88px;text-align:center;cursor:pointer;padding:8px 4px;border:1px dotted transparent;border-radius:4px;}
.gf-item:hover{background:rgba(0,0,80,.12);border-color:rgba(0,0,80,.3);}
.gf-item img{width:46px;height:46px;object-fit:contain;display:block;margin:0 auto 4px;border-radius:6px;}
.gf-item span{font-size:12px;font-weight:600;color:#102;}
body.inverted{filter:invert(1) hue-rotate(180deg);}

/* ---------- 10. bsod ---------- */
.bsod{background:#0078d7;color:#fff;display:flex;align-items:center;justify-content:center;font-family:"Segoe UI",sans-serif;}
.bsod-inner{max-width:680px;padding:40px;}
.bsod-face{font-size:90px;font-weight:300;}
.bsod p{font-size:18px;line-height:1.5;}
.bsod-code{font-family:Consolas,monospace;color:#bfe0ff;margin-top:30px;}
.bsod-hint{opacity:.7;font-size:14px;}

/* ---------- 11. responsive ---------- */
@media (max-width:640px){
  .icons{flex-direction:row;max-height:none;width:calc(100% - 20px);}
  .icon{width:74px;}
  .assistant{right:8px;bottom:54px;width:110px;}
  .win{min-width:200px;}
  .start-menu{width:220px;}
}

/* honor reduced motion a little (keeps it usable) */
@media (prefers-reduced-motion:reduce){
  .meme,.confetti,.cursor-spark{animation-duration:.01ms !important;}
}
