.sand-root, .sand-root * { box-sizing: border-box; margin: 0; padding: 0; }
.sand-root { position: absolute; left: 0; top: 0; width: 670px; height: 528px; transform-origin: 0 0; overflow: hidden; background: #222; font-family: "Segoe UI", Verdana, Arial, sans-serif; user-select: none; -webkit-user-select: none; touch-action: none; }
.sand-root .collapsed { display: none !important; }
.sand-root #LayoutRoot { position: relative; width: 670px; height: 528px; overflow: hidden; }
.sand-root #GameCanvas, .sand-root #GameFront { position: absolute; left: 0; top: 0; width: 670px; height: 528px; }
.sand-root #LevelContainer { position: relative; overflow: hidden; width: 528px; height: 528px; cursor: default; }
.sand-root .sand-side { position: absolute; left: 528px; top: 0; width: 142px; height: 528px; background: #f0f0f0; }
.sand-root #ElementBuildItemsPanel { position: relative; width: 100%; height: 100%; }
.sand-root .sand-toolbottom { position: absolute; left: 0; bottom: 0; }
.sand-root .sand-time { position: absolute; left: 0; bottom: 56px; width: 100%; text-align: center; font-size: 34px; line-height: 1; color: #fff; text-shadow: 0 0 6px rgba(0,0,0,.6); pointer-events: none; }
.sand-root .sand-end { color: #ff0; }
.sand-root .sand-ui { --sgp-accent: #ffcc29; --sgp-accent-2: #ffae1a; --sgp-accent-ink: #2b1700; --sgp-line: rgba(255,255,255,.12); --sgp-text: #e8ecf8; position: absolute; left: 0; right: 0; bottom: 10px; display: flex; justify-content: center; z-index: 3; font: 800 14px/1 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; }
.sand-root .sand-ui .sgp-btn { min-width: 118px; padding: 0 .9em; font-family: inherit; }
.sand-root .sand-ui .sgp-i { width: 1.2em; height: 1.2em; fill: currentColor; }
.sand-root #mainMenu { position: absolute; top: 3px; left: 24px; width: 24px; height: 24px; opacity: .6; cursor: pointer; z-index: 5; }
.sand-root #score { position: absolute; top: 3px; right: 166px; font-size: 16px; color: #ff0; text-shadow: 0 0 2px rgba(0,0,0,.9); z-index: 5; pointer-events: none; }
.sand-root #score span:first-child { color: #fff; }
.sand-root .sand-frontback { position: absolute; left: 0; top: 0; }
.sand-root #highscoresTableContainerBack { position: absolute; left: 85px; top: 210px; width: 500px; height: 208px; border: 1px solid rgba(102,102,102,.267); background: rgba(136,136,136,.125); border-radius: 4px; box-shadow: 1px 1px 3px rgba(0,0,0,.3); pointer-events: none; }
.sand-root #DemoContainer { position: absolute; left: 0; top: 0; width: 670px; height: 528px; pointer-events: none; }
.sand-root #LogoTopImage { position: absolute; left: 58px; top: 82px; }
.sand-root #LogoBottomImage { position: absolute; left: 306px; top: 82px; }
.sand-root #highscoresTableContainerCanvas { position: absolute; top: 210px; left: 50%; transform: translateX(-50%); width: 500px; height: 206px; }
.sand-root #contestContainer { position: absolute; left: 0; top: 0; width: 500px; height: 206px; visibility: hidden; }
.sand-root #welcomeTextCanvas { position: absolute; left: 0; top: 0; pointer-events: none; }
.sand-root #vectorlightLink { position: absolute; bottom: 15px; left: 10px; display: block; width: 103px; height: 16px; }
.sand-root .tool-back { position: absolute; left: 0; top: 0; width: 71px; height: 86px; }
.sand-root .tool-icon { pointer-events: none; }
.sand-root .tool-target, .sand-root .tool-selected { position: absolute; left: 0; top: 0; width: 71px; height: 86px; pointer-events: none; }
.sand-root .preview { position: absolute; pointer-events: none; z-index: 5; }
.sand-root .sand-rotate { display: none; position: absolute; inset: 0; z-index: 50; background: rgba(0,0,0,.85); align-items: center; justify-content: center; padding: 40px; color: #fff; font-size: 28px; text-align: center; }
@media (pointer:coarse) and (orientation:portrait) { .sand-root .sand-rotate { display: flex; } }
.sgp .sgp-card.sand-start { background: none; -webkit-backdrop-filter: none; backdrop-filter: none; border: 0; box-shadow: none; padding: 0; min-width: 0; overflow: visible; }
.sgp .sgp-card.sand-start .sgp-btns { gap: .8em; }
.sgp .sand-goal { font-weight: 700; }
.sgp .sand-best { color: var(--sgp-accent); }
.sgp .sand-music.sand-on::before { content: "\266A"; }
.sgp .sand-music:not(.sand-on)::before { content: "\266A"; opacity: .45; text-decoration: line-through; }
.sgp .sgp-card.sand-start .sgp-btn:not(.sgp-primary) { background: rgba(21,29,58,.88); border-color: rgba(255,255,255,.25); }
