html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#0d0d0f;color:#fff;}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
#runtime-root{width:100vw;height:100vh;overflow:hidden;}
#piece-error{position:fixed;inset:auto 1rem 1rem 1rem;z-index:9999;padding:1rem;border:1px solid #fca5a5;background:#450a0a;color:#fee2e2;font:14px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;display:none;}
canvas{display:block;width:100%;height:100%;}
#piece-export-screenshot-shell{position:fixed;left:1rem;bottom:1rem;z-index:10000;display:flex;flex-direction:column;align-items:flex-start;gap:0.5rem;pointer-events:none;}
#piece-export-control-row{display:flex;align-items:center;gap:0.5rem;pointer-events:auto;}
#piece-export-screenshot-btn,#piece-export-fullscreen-btn{align-items:center;justify-content:center;width:3rem;height:3rem;border:1px solid rgba(255,255,255,0.22);border-radius:999px;background:rgba(10,12,20,0.72);color:#f6f2dd;box-shadow:0 12px 30px rgba(0,0,0,0.28);backdrop-filter:blur(10px);cursor:pointer;pointer-events:auto;}
#piece-export-screenshot-btn{display:none;}
#piece-export-fullscreen-btn{display:inline-flex;}
#piece-export-screenshot-btn:hover,#piece-export-fullscreen-btn:hover{background:rgba(21,26,40,0.88);}
#piece-export-screenshot-btn:focus-visible,#piece-export-fullscreen-btn:focus-visible{outline:2px solid #f6f2dd;outline-offset:2px;}
#piece-export-screenshot-btn[disabled],#piece-export-fullscreen-btn[disabled]{opacity:0.72;cursor:progress;}
#piece-export-screenshot-btn svg,#piece-export-fullscreen-btn svg{width:1.35rem;height:1.35rem;display:block;}
#piece-export-screenshot-btn svg{fill:currentColor;}
#piece-export-fullscreen-btn svg{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
#piece-export-screenshot-status{max-width:min(20rem,calc(100vw - 2rem));padding:0.45rem 0.7rem;border-radius:0.8rem;background:rgba(10,12,20,0.72);color:#f6f2dd;font:13px/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;pointer-events:auto;}
#piece-export-screenshot-status[hidden]{display:none;}
.piece-export-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.piece-export-fullscreen-active #runtime-root{width:100vw;height:100dvh;}
#piece-export-screenshot-btn{display:inline-flex;}

svg { display: block; width: 100%; height: 100%; }
body, html { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent; }

#sun {
  animation: pulse 4s ease-in-out infinite alternate;
}
#sunRays line {
  animation: rayPulse 3s ease-in-out infinite alternate;
  transform-origin: 400px 200px;
}
#sky {
  animation: skyGlow 8s ease-in-out infinite alternate;
}
#foreground {
  animation: shadowCreep 10s ease-in-out infinite alternate;
}
#shadowLines line {
  animation: shadowShift 5s ease-in-out infinite alternate;
}

@keyframes pulse {
  0% { r: 80; opacity: 0.9; }
  100% { r: 90; opacity: 1; }
}
@keyframes rayPulse {
  0% { stroke-opacity: 0.6; transform: scale(1); }
  100% { stroke-opacity: 1; transform: scale(1.1); }
}
@keyframes skyGlow {
  0% { opacity: 0.7; }
  100% { opacity: 0.9; }
}
@keyframes shadowCreep {
  0% { y: 400; height: 200; }
  100% { y: 420; height: 180; }
}
@keyframes shadowShift {
  0% { x1: 100; x2: 700; }
  100% { x1: 120; x2: 680; }
}
