:root{--sky-top:#7cc8f2;--sky-bottom:#bfe6fb;--grass:#5cbf47;--grass-dark:#3f9a32;--grass-deep:#2f6b27;--stripe:#ffffff0f;--flag:#e8443a;--flag-dark:#a92a22;--sand:#f3e2ac;--card:#fffdf6;--card-edge:#e9e1c9;--text:#24401f;--muted:#6b8064;--white:#fff;--outline:#1f4a1a;--ui-font:"Fredoka", "Baloo 2", "Nunito", system-ui, sans-serif}@media (prefers-color-scheme:dark){:root{--sky-top:#16243d;--sky-bottom:#24395a;--grass:#4aa83b;--grass-dark:#317a27;--grass-deep:#1c4417;--stripe:#ffffff0a;--card:#1d2a22;--card-edge:#2c3d31;--text:#e6f2df;--muted:#9bb194;--outline:#0f2a0c}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:500 15px/1.4 var(--ui-font);color:var(--text);background:repeating-linear-gradient(90deg, var(--stripe) 0 48px, transparent 48px 96px), var(--grass-dark);grid-template-rows:auto 1fr;grid-template-columns:1fr 280px;display:grid}.hud-text,h1{color:var(--white);text-shadow:0 2px 0 var(--outline), 2px 0 0 var(--outline), -2px 0 0 var(--outline), 0 -2px 0 var(--outline), 1.5px 1.5px 0 var(--outline), -1.5px 1.5px 0 var(--outline), 1.5px -1.5px 0 var(--outline), -1.5px -1.5px 0 var(--outline), 0 4px 0 #00000040}header{background:linear-gradient(180deg, var(--sky-top), var(--sky-bottom));border-bottom:5px solid var(--grass-deep);box-shadow:inset 0 -6px 0 var(--grass);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:12px 18px;padding:10px 16px;display:flex}.brand{align-items:center;gap:6px;display:flex}.flag{transform-origin:14px 34px;width:40px;height:40px;animation:2.4s ease-in-out infinite wave}@keyframes wave{50%{transform:rotate(-4deg)}}h1{letter-spacing:.3px;margin:0;font-size:26px;font-weight:700}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn{font:600 15px/1 var(--ui-font);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;padding:8px 18px;transition:transform 80ms,box-shadow 80ms,filter .15s;display:inline-flex}.btn-primary{color:var(--white);background:linear-gradient(180deg, #6fd358, var(--grass));border:3px solid var(--grass-deep);box-shadow:0 4px 0 var(--grass-deep), inset 0 2px 0 #ffffff73;text-shadow:0 2px 0 var(--grass-deep)}.btn-secondary{color:var(--grass-deep);background:var(--white);border:3px solid var(--grass-deep);box-shadow:0 4px 0 var(--grass-deep)}.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}.btn:active{box-shadow:0 1px 0 var(--grass-deep);transform:translateY(3px)}.btn:focus-visible,.pill-select:focus-visible{outline:3px dashed var(--flag);outline-offset:3px}.pill-select{border:3px solid var(--grass-deep);box-shadow:0 4px 0 var(--grass-deep);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232f6b27' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E") right 14px center / 12px no-repeat, var(--white);color:var(--grass-deep);font:600 15px/1 var(--ui-font);appearance:none;cursor:pointer;border-radius:999px;padding:8px 36px 8px 16px}.pill-select:disabled{opacity:.55;cursor:default}.bubble{color:var(--grass-deep);white-space:nowrap;text-overflow:ellipsis;background:#ffffffd9;border-radius:14px;max-width:min(460px,100%);padding:6px 14px;font-size:14px;position:relative;overflow:hidden;box-shadow:0 3px #0000001f}.bubble.error{color:var(--flag-dark);background:#ffe1dd}#viewport{border:5px solid var(--grass-deep);background:linear-gradient(180deg, var(--sky-top), var(--sky-bottom));border-radius:22px;min-height:0;margin:12px 0 12px 12px;position:relative;overflow:hidden;box-shadow:0 6px #0003}#viewport canvas{display:block}.empty{text-align:center;color:var(--grass-deep);place-content:center;justify-items:center;padding:24px;display:grid;position:absolute;inset:0}.empty h2{color:var(--white);text-shadow:0 3px 0 var(--outline), 2px 0 0 var(--outline), -2px 0 0 var(--outline), 0 -2px 0 var(--outline);margin:14px 0 4px;font-size:30px}.empty p{background:#ffffffd9;border-radius:14px;max-width:320px;margin:0;padding:8px 16px}.ball{border:4px solid var(--grass-deep);background:radial-gradient(circle at 30% 28%,#fff 0 18%,#0000 19%),radial-gradient(circle,#00000017 18%,#0000 20%) 0 0/12px 12px,#f7f7f2;border-radius:50%;width:72px;height:72px;animation:1.6s cubic-bezier(.3,0,.4,1) infinite bounce;box-shadow:0 10px 0 -2px #0000002e}@keyframes bounce{0%,to{transform:translateY(0)}45%{transform:translateY(-22px)}}@media (prefers-reduced-motion:reduce){.ball,.flag{animation:none}}#info{background:var(--card);border:4px solid var(--card-edge);border-radius:22px;margin:12px;padding:16px 18px;overflow:auto;box-shadow:0 6px #0003}#info h2{margin:0 0 4px;font-size:22px;font-weight:700}#info h3{color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin:16px 0 8px;font-size:15px}.hint{color:var(--muted);margin:0}.tags{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.tag{color:var(--white);background:var(--grass-dark);border-radius:999px;padding:3px 12px;font-size:13px;font-weight:600}.tag.par{background:var(--flag)}.stats{gap:6px;display:grid}.stat{background:#5cbf471f;border-radius:12px;justify-content:space-between;padding:6px 12px;display:flex}.stat span:first-child{color:var(--muted)}.stat span:last-child{font-weight:600}.legend{grid-template-columns:1fr 1fr;gap:6px;display:grid}.legend div{align-items:center;gap:8px;font-size:14px;display:flex}.legend i{border:2px solid #00000040;border-radius:50%;width:16px;height:16px}@media (width<=760px){body{grid-template-rows:auto 1fr auto;grid-template-columns:1fr}#viewport{min-height:55vh;margin:12px 12px 0}#info{max-height:40vh}}[hidden]{display:none!important}.btn.small{padding:6px 12px;font-size:14px}.btn[disabled]{opacity:.5;pointer-events:none}button.btn{font-family:var(--ui-font)}.toolbar{z-index:2;background:#ffffffd9;border-radius:999px;flex-wrap:wrap;gap:6px;max-width:calc(100% - 170px);padding:6px;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 4px #00000026}.tool{color:var(--grass-deep);font:600 14px/1 var(--ui-font);cursor:pointer;background:0 0;border:3px solid #0000;border-radius:999px;padding:6px 14px}.tool:hover{background:#5cbf4726}.tool.active{color:var(--white);background:var(--grass);border-color:var(--grass-deep);text-shadow:0 2px 0 var(--grass-deep)}.drop{z-index:3;border:5px dashed var(--white);color:var(--white);font:700 26px var(--ui-font);text-shadow:0 3px 0 var(--outline);pointer-events:none;background:#2f6b278c;border-radius:18px;place-content:center;display:grid;position:absolute;inset:10px}.tabs{background:#5cbf4726;border-radius:999px;flex-wrap:wrap;gap:4px;margin:-4px -4px 12px;padding:4px;display:flex}.tab{color:var(--muted);font:600 13px/1 var(--ui-font);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:auto;padding:6px 8px}.tab.active{background:var(--grass);color:var(--white);text-shadow:0 2px 0 var(--grass-deep)}.field{gap:2px;margin-bottom:8px;display:grid}.field label{color:var(--muted);font-size:13px}.field input,.field select,.field textarea,.material select{border:2px solid var(--card-edge);background:var(--white);color:#24401f;width:100%;font:500 14px var(--ui-font);border-radius:10px;padding:6px 10px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--grass);outline:none}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 12px;display:flex}.check{cursor:pointer;align-items:center;gap:6px;font-size:14px;display:inline-flex}.materials{gap:6px;display:grid}.material{cursor:pointer;border:2px solid #0000;border-radius:12px;grid-template-columns:28px 1fr 118px auto;align-items:center;gap:8px;padding:4px 6px;display:grid}.material:hover{background:#5cbf471a}.material.selected{background:#f5c40026;border-color:#f5c400}.thumb{width:28px;height:28px;image-rendering:pixelated;background-size:cover;border:2px solid #0003;border-radius:8px}.mat-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.material select{padding:4px 6px;font-size:13px}.problems{color:var(--flag-dark);background:#ffe1dd;border-radius:12px;margin:8px 0 12px;padding:8px 12px 8px 28px;font-size:14px}.warnings{color:#6b5200;background:#fff3c4;border-radius:12px;margin:8px 0 12px;padding:8px 12px 8px 28px;font-size:14px}.ok{color:var(--grass-deep);background:#5cbf472e;border-radius:12px;margin:8px 0 12px;padding:8px 12px;font-weight:600}.row.tight{margin:0}.row.tight input[type=number]{width:80px}.objects{gap:6px;margin-top:8px;display:grid}.object{cursor:pointer;border:2px solid #0000;border-radius:12px;grid-template-columns:20px 1fr 118px 24px;align-items:center;gap:6px;padding:4px 6px;display:grid}.object:hover{background:#5cbf471a}.object.selected{background:#f5c40026;border-color:#f5c400}.object select{border:2px solid var(--card-edge);background:var(--white);color:#24401f;font:500 13px var(--ui-font);border-radius:10px;padding:4px 6px}.icon-btn{width:24px;height:24px;color:var(--flag-dark);font:700 16px/1 var(--ui-font);cursor:pointer;background:#e8443a26;border:none;border-radius:50%}.btn.active-mode{background:var(--grass);color:var(--white);text-shadow:0 2px 0 var(--grass-deep)}.pov{z-index:2;aspect-ratio:16/9;border:4px solid var(--white);width:min(38%,520px);max-width:calc(100% - 24px);box-shadow:0 0 0 3px var(--grass-deep), 0 6px 0 #00000040;pointer-events:none;border-radius:14px;position:absolute;bottom:12px;right:12px}.pov-bar{pointer-events:auto;align-items:center;gap:4px;display:flex;position:absolute;top:6px;left:6px;right:6px}.pov-title{color:var(--grass-deep);font:600 13px var(--ui-font);background:#ffffffd9;border-radius:999px;margin-right:auto;padding:2px 10px}.pov-btn,.pov-show{border:2px solid var(--grass-deep);background:var(--white);min-width:26px;height:26px;color:var(--grass-deep);font:700 14px/1 var(--ui-font);cursor:pointer;border-radius:999px;padding:0 8px}.pov-show{z-index:2;height:32px;padding:0 14px;position:absolute;bottom:12px;right:12px}@media (width<=760px){.pov{width:55%}}.btn.icon{padding:6px 10px;font-size:18px}.palette{flex-wrap:wrap;gap:6px;display:flex}.card{background:#f5c40014;border:3px solid #f5c400;border-radius:14px;margin:12px 0;padding:10px 12px}.card .check{margin:6px 0;display:flex}.obj-kind{color:var(--muted);white-space:nowrap;font-size:12px}.object{grid-template-columns:20px 1fr auto 24px}.swatches{grid-template-columns:1fr 1fr;gap:6px;display:grid}.swatch{color:var(--text);font:500 13px var(--ui-font);cursor:pointer;background:#5cbf471a;border:3px solid #0000;border-radius:12px;align-items:center;gap:8px;padding:6px 8px;display:flex}.swatch.active{border-color:var(--grass-deep);background:#5cbf4740}.swatch i{border:2px solid #00000040;border-radius:50%;width:16px;height:16px}.field input[type=range]{accent-color:var(--grass);background:0 0;border:none;padding:0}.tool.brush:not(.active){color:#8a5a00}.dialog-backdrop{z-index:5;background:#14281273;place-items:center;display:grid;position:absolute;inset:0}.dialog{border:4px solid var(--card-edge);background:var(--card);max-width:460px;color:var(--text);border-radius:22px;padding:20px 22px;box-shadow:0 8px #0003}.dialog h2{margin:0 0 6px}.size-choices{gap:8px;margin:12px 0;display:flex}.size-choices .btn{flex-direction:column;flex:1;line-height:1.3}.choice-group{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.choice{border:3px solid var(--card-edge);background:var(--white);color:#24401f;font:600 14px/1.3 var(--ui-font);cursor:pointer;border-radius:14px;flex:auto;padding:8px 12px}.choice-group.models{flex-flow:column;max-height:50vh;overflow:hidden auto}.choice-group.models .choice{text-align:left;flex:none}.choice small{color:#6b8064;font-weight:500}.choice.active{border-color:var(--grass-deep);box-shadow:0 3px 0 var(--grass-deep);background:#e5f6dc}.small-select{padding:6px 32px 6px 12px;font-size:14px}.restore{justify-items:center;gap:6px;margin-top:14px;display:grid}.restore span{background:#ffffffd9;border-radius:10px;padding:2px 10px;font-size:13px}.material .climb{white-space:nowrap;cursor:pointer;align-items:center;gap:3px;font-size:12px;display:flex}.song{grid-template-columns:1fr auto auto auto;align-items:center;gap:6px;margin-bottom:6px;display:grid}.mat-look{background:#f5c4001f;border-radius:12px;margin:2px 0 10px 36px;padding:8px 10px}.mat-look .choice-group{margin:0 0 8px}.mat-look .choice{padding:5px 8px;font-size:13px}.look-slider,.song-volume{font:600 13px var(--ui-font);grid-column:1/-1;grid-template-columns:auto 1fr 3.2em;align-items:center;gap:8px;display:grid}.whats-new{z-index:20;border:4px solid var(--card-edge);background:var(--card);width:min(420px,100vw - 32px);max-height:min(70vh,560px);color:var(--text);border-radius:22px;padding:16px 18px;position:fixed;bottom:16px;left:16px;overflow-y:auto;box-shadow:0 8px #0003}.whats-new h2{margin:0 0 4px}.whats-new h3{color:#6b8064;margin:8px 0 4px;font-size:13px}.whats-new ul{margin:0 0 12px;padding-left:18px}.whats-new li{margin-bottom:6px;line-height:1.35}.fly-btn{z-index:2;border:3px solid var(--grass-deep);background:var(--white);color:var(--grass-deep);font:700 14px/1 var(--ui-font);cursor:pointer;border-radius:999px;padding:8px 16px;position:absolute;top:12px;right:12px;box-shadow:0 4px #00000026}.fly-btn.active{background:var(--grass);color:var(--white);text-shadow:0 2px 0 var(--grass-deep)}.fly-hint{z-index:2;max-width:min(420px,100% - 24px);color:var(--grass-deep);font:500 13px/1.4 var(--ui-font);pointer-events:none;background:#ffffffe6;border-radius:14px;padding:6px 12px;position:absolute;bottom:12px;left:12px}.slider-row{grid-template-columns:1fr 4.6em auto;align-items:center;gap:8px;display:grid}.slider-row input[type=range]{width:100%;accent-color:var(--grass-deep)}.slider-row .slider-num{width:100%;min-width:0;padding:4px 6px;font-size:13px}.slider-unit{color:var(--muted);font-size:13px}.slider-note{margin:2px 0 0}.slider-note .bad{color:var(--flag-dark)}.controls{border-collapse:collapse;width:100%;font-size:14px}.controls th{text-align:left;white-space:nowrap;vertical-align:top;color:var(--grass-deep);padding:5px 12px 5px 0}.controls td{padding:5px 0}.item-weights{grid-template-columns:1fr;gap:4px 10px;margin:6px 0;display:grid}.item-weight{color:var(--muted);grid-template-columns:7.5em 1fr 2.6em;align-items:center;gap:4px;font-size:13px;display:grid}.item-weight.on{color:#24401f;font-weight:600}.item-weight input{width:100%;min-width:0;accent-color:var(--grass-dark)}.item-weight small{color:var(--muted)}.pov-resize{background:var(--white);border:3px solid var(--grass-deep);cursor:nwse-resize;pointer-events:auto;z-index:3;border-radius:10px 0;width:18px;height:18px;position:absolute;top:-4px;left:-4px}body.page{height:auto;min-height:100%;display:block}.page-main{max-width:760px;margin:0 auto;padding:20px 16px 48px}.panel{border:4px solid var(--card-edge);background:var(--card);color:var(--text);border-radius:22px;margin:0 0 18px;padding:18px 22px;box-shadow:0 8px #0003}.panel h2{margin:0 0 8px}.panel a:not(.btn){color:var(--grass-deep);font-weight:600}.panel code{background:var(--card-edge);overflow-wrap:anywhere;border-radius:6px;padding:1px 6px}.panel li{margin:4px 0}.page-hero{text-align:center}.btn.big{padding:14px 30px;font-size:20px;text-decoration:none}a.btn{text-decoration:none}.muted{color:var(--muted)}.tags{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.tags li{border:2px solid var(--grass);border-radius:999px;margin:0;padding:4px 12px;font-size:14px}.version h3{margin:14px 0 2px}.version ul{margin:0}@media (prefers-color-scheme:dark){.panel a:not(.btn){color:var(--grass)}}#mod-link{gap:6px;position:relative}#mod-link small{opacity:.7;font-size:12px}#mod-link .mod-new{background:var(--flag);color:var(--white);box-shadow:0 2px 0 var(--flag-dark);border-radius:999px;padding:3px 8px;font-size:12px;animation:1.6s ease-in-out infinite mod-new}@keyframes mod-new{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.15)rotate(-4deg)}}@media (prefers-reduced-motion:reduce){#mod-link .mod-new{animation:none}}.choice-group.models .choice.all{margin-bottom:6px;font-weight:700}.tool-group{color:var(--muted);font:700 11px/1 var(--ui-font);letter-spacing:.06em;text-transform:uppercase;border-left:2px solid #2f6b2740;align-self:center;margin-left:6px;padding-left:10px}
