:root{--ease-out:cubic-bezier(.2,.8,.2,1)}
button,a,[role=button],input{touch-action:manipulation}
button,[role=button]{transition:transform .16s var(--ease-out),filter .16s,box-shadow .2s}
button:hover,[role=button]:hover{filter:brightness(1.12)}
button:active,[role=button]:active{transform:translateY(2px) scale(.98)}
:focus-visible{outline:3px solid #60bfff!important;outline-offset:4px}
#fade.out{opacity:1!important;pointer-events:all!important}
.win{box-shadow:0 16px 48px #001a3966;transition:box-shadow .2s}
.win.open{animation:window-arrive .25s var(--ease-out)}
@keyframes window-arrive{from{opacity:0;translate:0 12px;scale:.97}to{opacity:1;translate:0;scale:1}}
.world-return{position:fixed;left:18px;bottom:18px;z-index:400;padding:10px 16px;border:1px solid #d9bb7055;border-radius:30px;background:#111b;color:#e9d7a1;font:13px Georgia;text-decoration:none;backdrop-filter:blur(12px)}
.world-return:hover{background:#29251e;color:white}
body[data-world="index"] .frame-wrap{transition:filter .35s,box-shadow .35s;filter:saturate(.85)}
body[data-world="index"] .frame-wrap:hover{filter:saturate(1.18) brightness(1.13);box-shadow:0 0 35px #d4a34e30}
body[data-world="index"] #room{transition:filter .6s}
body[data-world="tree"] #water-ui{padding:18px 24px;border-radius:16px;background:#131510aa;border:1px solid #c9bb7340;backdrop-filter:blur(12px);box-shadow:0 14px 40px #0005}
body[data-world="tree"] #water-btn{border-radius:30px;padding:12px 24px;box-shadow:0 5px 24px #a8ca5820;font-size:14px}
body[data-world="tree"] #water-status{font-size:12px;line-height:1.5}
body[data-world="tree"] #heaven-gate{filter:drop-shadow(0 0 22px #ffecad55)}
body[data-world="tree"] #heaven-gate:hover{filter:drop-shadow(0 0 35px #fff1b5aa)}
body[data-world="achievements"] #content{max-width:850px}
body[data-world="achievements"] .ach{border-radius:10px;transition:border-color .2s,translate .2s}
body[data-world="achievements"] .ach:hover{translate:0 -3px;border-color:#d4b56c}
body[data-world="factory"] #factory-viewport{box-shadow:0 25px 90px #0009;border-color:#6c7781}
body[data-world="factory"] .machinery-widget{transition:box-shadow .25s,background .25s;touch-action:none}
body[data-world="factory"] .machinery-widget:hover{box-shadow:inset 0 0 25px #f8c76013,0 4px 12px #0004}
body[data-world="factory"] #status-ticker{font-size:14px;line-height:1.5}
body[data-world="factory"] #bucket-station{cursor:pointer}
body[data-world="glue"] #sidebar{background:linear-gradient(135deg,#14191a,#0d1113)}
body[data-world="glue"] .tool-btn{border-radius:5px;margin-bottom:5px;min-height:35px}
body[data-world="glue"] #exec-btn{min-height:40px;box-shadow:0 0 25px #ff555518}
body[data-world="glue"] #gen-btn{right:18px;bottom:18px}
body[data-world="desktop"] .win{border-radius:9px 9px 4px 4px;overflow:hidden}
body[data-world="desktop"] #taskbar{backdrop-filter:blur(15px);box-shadow:0 -3px 18px #00294b40}
body[data-world="desktop"] .titlebar,body[data-world="desktop"] .resize-grip,body[data-world="desktop"] canvas,body[data-world="desktop"] .dicon{touch-action:none}
@media(max-width:700px){body[data-world="desktop"] .win{max-width:100vw;max-height:calc(100dvh - 32px)}body[data-world="desktop"] #draw-win{left:0!important}body[data-world="desktop"] .win-content{overflow:auto}body[data-world="desktop"] #cat-win{left:clamp(0px,20vw,100px)!important}body[data-world="glue"] #b-hint{font-size:10px}}
@media(pointer:coarse){body,button,a,[onclick]{cursor:auto!important}#cur{display:none!important}}
.world-toast{position:fixed;left:50%;bottom:70px;transform:translateX(-50%);z-index:1000;padding:12px 20px;border:1px solid #ffffff40;background:#102439ed;color:white;border-radius:12px;font:14px system-ui;pointer-events:none;animation:window-arrive .2s ease}
.spark-feedback{position:fixed;pointer-events:none;z-index:999;color:#ffdb7c;font:22px Georgia;animation:spark-away .8s ease-out forwards}
@keyframes spark-away{to{translate:var(--dx,0px) -65px;opacity:0;rotate:25deg}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
