*{box-sizing:border-box}
html,body{margin:0}
body{
  font-family:"Comic Sans MS","Comic Sans","Chalkboard SE","Comic Neue",cursive;
  color:#ff0;
  background-color:#00f;
  background-image:
    radial-gradient(circle at 20% 30%,#f0f 0 6px,transparent 7px),
    radial-gradient(circle at 70% 60%,#0f0 0 5px,transparent 6px),
    radial-gradient(circle at 40% 85%,#ff0 0 7px,transparent 8px),
    repeating-linear-gradient(45deg,#00c 0 14px,#40f 14px 28px);
  background-size:90px 90px,70px 70px,110px 110px,auto;
  cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32'><text y='24' font-size='24'>🐾</text></svg>") 16 16,auto;
  overflow-x:hidden;
  padding:0 0 30px;
  animation:bgmove 6s linear infinite;
}
@keyframes bgmove{to{background-position:90px 90px,-70px 70px,110px -110px,0 0}}
#shake.shaking{animation:shake .5s}
@keyframes shake{0%,100%{transform:translate(0,0) rotate(0)}15%{transform:translate(-12px,8px) rotate(-1deg)}30%{transform:translate(14px,-9px) rotate(1.2deg)}45%{transform:translate(-10px,-12px) rotate(-.8deg)}60%{transform:translate(12px,10px) rotate(1deg)}80%{transform:translate(-6px,4px)}}
.blink{animation:blink .7s steps(1) infinite}
@keyframes blink{50%{visibility:hidden}}
.red{color:#f00}
.marq{background:#f0f;color:#0ff;font-weight:bold;font-size:20px;overflow:hidden;white-space:nowrap;border-bottom:4px dashed #ff0;padding:4px 0}
.marq span{display:inline-block;padding-left:100%;animation:marq 14s linear infinite}
@keyframes marq{to{transform:translateX(-100%)}}
#title{text-align:center;font-size:clamp(34px,9vw,92px);margin:14px 6px 0;font-family:Impact,"Comic Sans MS",cursive;letter-spacing:2px;text-shadow:4px 4px 0 #000;line-height:1.05}
#title span{display:inline-block;animation:wob 1.1s ease-in-out infinite}
#title span:nth-child(odd){animation-delay:-.4s}
#title span:nth-child(1){color:#f00}#title span:nth-child(2){color:#ff0}#title span:nth-child(3){color:#0f0}#title span:nth-child(4){color:#0ff}#title span:nth-child(5){color:#f0f}#title span:nth-child(6){color:#fff}
#title span:nth-child(8){color:#f80}#title span:nth-child(9){color:#0f8}#title span:nth-child(10){color:#f08}#title span:nth-child(11){color:#8f0}
@keyframes wob{0%,100%{transform:translateY(0) rotate(-6deg) scale(1)}50%{transform:translateY(-10px) rotate(7deg) scale(1.15)}}
.sub{text-align:center;color:#0f0;font-size:clamp(18px,4vw,34px);margin:6px 0 10px;transform:rotate(-2deg);text-shadow:2px 2px #f00}
.construction{background:repeating-linear-gradient(-45deg,#ff0 0 18px,#000 18px 36px);color:#fff;text-align:center;font-weight:bold;font-size:18px;padding:8px;margin:8px auto 14px;width:94%;max-width:1100px;text-shadow:2px 2px #000,-2px -2px #000,2px -2px #000,-2px 2px #000;transform:rotate(.6deg)}
.gifdot{vertical-align:middle;animation:spin 2s linear infinite;border-radius:50%}
@keyframes spin{to{transform:rotate(360deg)}}
.row{display:flex;flex-wrap:wrap;gap:22px;justify-content:center;align-items:flex-start;padding:10px 12px;max-width:1250px;margin:0 auto}
.win95{background:#c0c0c0;border:3px outset #fff;box-shadow:6px 6px 0 #000;color:#000}
.titlebar{background:linear-gradient(90deg,#000080,#1084d0);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:3px 6px;font-weight:bold;font-size:15px}
.btns i{display:inline-block;background:#c0c0c0;color:#000;border:2px outset #fff;width:20px;height:18px;line-height:14px;text-align:center;font-style:normal;margin-left:3px;font-size:12px}
.win95.big{flex:1 1 640px;max-width:860px;transform:rotate(-.6deg)}
#desktop{position:relative;height:min(62vh,520px);min-height:340px;background:#008080;overflow:hidden;border:2px inset #888;user-select:none;-webkit-user-select:none}
.dicon{position:absolute;color:#fff;font-size:11px;text-align:center;line-height:1.1;text-shadow:1px 1px #000;z-index:1;pointer-events:none}
.dicon{font-size:12px}
#cat{position:absolute;left:0;top:0;height:200px;width:auto;cursor:pointer;z-index:3;will-change:transform;filter:drop-shadow(5px 6px 0 rgba(0,0,0,.45));-webkit-user-drag:none;touch-action:manipulation}
#cat.crazy{animation:crazycat .25s steps(2) 6}
@keyframes crazycat{0%{filter:hue-rotate(0) drop-shadow(5px 6px 0 rgba(0,0,0,.45))}100%{filter:hue-rotate(180deg) saturate(3) drop-shadow(5px 6px 0 rgba(0,0,0,.45))}}
#cornerMsg{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) rotate(-6deg);font-family:Impact,"Comic Sans MS";font-size:clamp(30px,8vw,80px);color:#ff0;text-shadow:4px 4px 0 #f00,-3px -3px 0 #00f;z-index:5;pointer-events:none;opacity:0;white-space:nowrap}
#cornerMsg.show{animation:cmsg 1.2s ease-out}
@keyframes cmsg{0%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(.3)}25%{opacity:1;transform:translate(-50%,-50%) rotate(8deg) scale(1.3)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-90%) rotate(-5deg) scale(1)}}
#hint{position:absolute;left:50%;bottom:44px;transform:translateX(-50%);background:#ff0;color:#f00;font-weight:bold;padding:2px 8px;border:2px solid #000;z-index:2;font-size:14px;animation:blink 1s steps(1) infinite;pointer-events:none}
.taskbar{position:absolute;left:0;right:0;bottom:0;height:34px;background:#c0c0c0;border-top:3px outset #fff;display:flex;justify-content:space-between;align-items:center;padding:0 6px;z-index:4;color:#000;font-size:14px;font-weight:bold;pointer-events:none}
.taskbar .start,.taskbar .tray{border:2px outset #fff;padding:1px 8px}
.side{flex:1 1 220px;max-width:300px;display:flex;flex-direction:column;gap:16px}
.note{background:#ff9;color:#000;border:4px dotted #f0f;padding:10px;font-size:17px;transform:rotate(2.5deg);box-shadow:5px 5px 0 #000}
.note.rot2{transform:rotate(-3deg);background:#9ff}
.counter{background:#000;color:#0f0;font-family:"Courier New",monospace;font-size:18px;padding:8px;border:4px ridge #888;text-align:center;transform:rotate(-1.5deg)}
.litterwin{flex:1 1 360px;max-width:480px;transform:rotate(1deg)}
.litterbody{padding:10px;text-align:center}
.lbl{font-weight:bold;font-size:20px;color:#f0f;text-shadow:1px 1px #fff;margin:4px 0}
.lbl.small{font-size:13px;color:#000;text-shadow:none}
#litter{margin:8px auto;width:100%;max-width:440px;aspect-ratio:60/30;background:#6b3f1d;border:10px ridge #b5651d;border-radius:6px;position:relative;box-shadow:inset 0 0 0 4px #3a1f0a;cursor:crosshair;touch-action:manipulation}
#sand{width:100%;height:100%;display:block;image-rendering:pixelated;image-rendering:crisp-edges}
.portwrap,.mannwrap{text-align:center;position:relative}
.portwrap{flex:0 1 250px;transform:rotate(-3.5deg)}
#portrait{width:100%;max-width:250px;border:5px solid #f0f;cursor:pointer;box-shadow:5px 5px 0 #000;-webkit-user-drag:none;transition:transform .08s}
#portrait.pop{animation:popp .5s}
@keyframes popp{0%{transform:scale(1)}30%{transform:scale(1.15) rotate(4deg)}60%{transform:scale(.95) rotate(-4deg)}100%{transform:scale(1)}}
.mannwrap{flex:0 1 190px;transform:rotate(4deg)}
#mannequin{width:100%;max-width:180px;cursor:pointer;filter:drop-shadow(5px 5px 0 #000);-webkit-user-drag:none}
#mannequin.pop{animation:popp .5s}
#speech{position:absolute;top:30px;left:50%;transform:translateX(-50%) rotate(-5deg);background:#fff;color:#000;border:4px solid #000;border-radius:50%;padding:10px 16px;font-family:Impact,"Comic Sans MS";font-size:28px;opacity:0;pointer-events:none;z-index:5;white-space:nowrap}
#speech.show{animation:sp .9s ease-out}
@keyframes sp{0%{opacity:1;transform:translateX(-50%) rotate(-8deg) scale(.4)}20%{opacity:1;transform:translateX(-50%) rotate(6deg) scale(1.25)}80%{opacity:1}100%{opacity:0;transform:translateX(-50%) translateY(-30px) rotate(-5deg) scale(1)}}
.wob{animation:wob 1.3s ease-in-out infinite}.wob2{animation:wob 1.7s ease-in-out infinite reverse}
.foot{text-align:center;margin:26px 8px 0;color:#0ff;font-size:15px;line-height:1.7}
.foot a{color:#ff0;font-weight:bold}
#overlay{position:fixed;inset:0;background:rgba(255,0,255,.35);display:flex;align-items:center;justify-content:center;z-index:1000;padding:12px}
#overlay.hidden{display:none}
.popup{width:min(430px,94vw);animation:pup .35s cubic-bezier(.3,1.7,.5,1)}
@keyframes pup{from{transform:scale(.1) rotate(-30deg)}to{transform:scale(1) rotate(-2deg)}}
.pbody{padding:14px;text-align:center}
.pcat{height:130px;margin-bottom:6px;animation:wob .5s ease-in-out infinite}
#ptext{font-size:30px;font-weight:bold;color:#f00;margin:4px 0 14px;text-transform:uppercase}
.pbtns{display:flex;gap:20px;justify-content:center}
.pbtns button{font-family:inherit;font-size:26px;font-weight:bold;padding:8px 28px;background:#c0c0c0;border:4px outset #fff;cursor:pointer;color:#000;min-width:110px}
.pbtns button:active{border-style:inset}
#yes{color:#080}#no{color:#c00}
#fx{position:fixed;inset:0;pointer-events:none;z-index:900;overflow:hidden}
.px{position:fixed;width:8px;height:8px;pointer-events:none;image-rendering:pixelated}
.bill{position:fixed;width:84px;height:38px;background:#6fa86f;border:3px solid #1c4b1c;color:#133d13;font-weight:bold;font-family:"Times New Roman",serif;font-size:20px;display:flex;align-items:center;justify-content:space-between;padding:0 6px;pointer-events:none;box-shadow:inset 0 0 0 3px #a8d6a8;image-rendering:pixelated}
.bill:after{content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px;border-radius:50%;background:#cfe8cf;border:2px solid #1c4b1c}
.bill b{z-index:1;font-size:16px}
.rainbow{position:fixed;pointer-events:none;width:min(88vw,520px);height:min(44vw,260px);overflow:hidden;z-index:950}
.rainbow .arc{position:absolute;left:0;right:0;bottom:0;height:200%;border-radius:50%;border:0 solid transparent}
.rainbow .rtext{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) rotate(-6deg);font-family:Impact,"Comic Sans MS";font-size:clamp(34px,9vw,76px);color:#fff;text-shadow:4px 4px 0 #f0f,-3px -3px 0 #00f;white-space:nowrap;z-index:2}
.rainbow.go{animation:rb 2.8s ease-out forwards}
@keyframes rb{0%{opacity:0;transform:translateY(60px) scale(.2)}15%{opacity:1;transform:translateY(-30px) scale(1.15)}30%{transform:translateY(0) scale(1)}85%{opacity:1}100%{opacity:0;transform:translateY(-40px) scale(1.05)}}
@media(max-width:700px){#cat{height:150px}.win95.big{transform:none}.row{gap:16px}.portwrap,.mannwrap{flex:0 1 44%}}
.credits{font-size:11px;color:#9cf;margin-top:10px}
