@import"https://fonts.googleapis.com/css?family=Press+Start+2P";body{margin:0;display:flex;font-family:"Press Start 2P",cursive}#controls{position:absolute;bottom:20px;min-width:100%;display:flex;align-items:flex-end;justify-content:center}#controls div{display:grid;grid-template-columns:50px 50px 50px;gap:10px}#controls button{width:100%;height:40px;background-color:#fff;border:1px solid lightgray;box-shadow:3px 5px #000000bf;cursor:pointer;outline:none}#controls button:first-of-type{grid-column:1 / -1}#score{position:absolute;bottom:20px;left:20px;line-height:1.4;font-size:1.3em;color:#fff}#result-container{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;visibility:hidden;min-width:100%;min-height:100%}#result-container #result{display:flex;flex-direction:column;align-items:center;background-color:#fff;padding:20px}#result-container button{background-color:red;padding:20px 50px;font-family:inherit;font-size:inherit;cursor:pointer}#loader{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1a1a1a;color:#fff;font-family:sans-serif;z-index:9999}.spinner{border:6px solid rgba(255,255,255,.2);border-top:6px solid #fff;border-radius:50%;width:60px;height:60px;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}:root{--hud-bg: rgba(15, 18, 26, .62);--hud-border: rgba(255, 255, 255, .12);--hud-line: rgba(255, 255, 255, .18);--hud-shadow: 0 18px 40px rgba(0, 0, 0, .45);--hud-radius: 14px;--hud-header-size: clamp(18px, 2.2vw, 28px);--hud-text-size: clamp(12px, 1.4vw, 16px)}.hud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;pointer-events:none;font-family:"Press Start 2P",cursive}.panel{position:fixed;width:min(520px,42vw);color:#fff;background:var(--hud-bg);border:1px solid var(--hud-border);border-radius:var(--hud-radius);box-shadow:var(--hud-shadow);overflow:hidden;backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);pointer-events:auto}.panel--settings{left:12px;top:12px;width:min(520px,46vw)}.panel--stats{left:12px;bottom:12px;width:min(520px,46vw)}.panel__header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px 10px;list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--hud-header-size)}.panel__header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--hud-line),transparent 60%),linear-gradient(0deg,#ffffff0f,#fff0)}.panel__title{letter-spacing:1px}.panel__icons{display:flex;align-items:center;gap:10px}.i-gear,.i-bars{width:24px;height:24px;fill:currentColor;opacity:.85}.chevron{display:inline-block;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.7;margin-left:4px;transition:transform .2s ease}.panel:not([open]) .chevron{transform:rotate(-135deg)}.panel__body{overflow:hidden;max-height:70vh;transition:max-height .25s ease;padding:12px 16px 16px;font-size:var(--hud-text-size);line-height:1.6}.panel__body>*:not(:last-child){margin-bottom:20px}.panel:not([open]) .panel__body{max-height:0;padding-top:0;padding-bottom:0}.row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;margin:10px 0}.row input[type=range]{width:220px}.row input[type=checkbox]{transform:scale(1.2);accent-color:#4ade80}.panel__body--stats{padding-top:10px}.stats{display:grid;grid-template-columns:1fr auto;gap:10px 16px;margin:0}.stat{display:contents}.stat dt{opacity:.95}.stat dd{margin:0;font-weight:700}@media (max-width: 740px){.panel{width:92vw}.panel--settings{left:4vw;right:4vw;top:10px}.panel--stats{left:4vw;right:4vw;bottom:10px}.row input[type=range]{width:50vw}}.hud-stack{position:fixed;top:12px;left:12px;display:grid;gap:12px;pointer-events:none;--hud-scale: .6;transform:scale(var(--hud-scale));transform-origin:top left}.hud-stack .panel{position:static;pointer-events:auto}.hud-stack .panel--settings,.hud-stack .panel--stats{left:auto;top:auto;bottom:auto}.row--range{grid-template-columns:1fr minmax(180px,260px) auto}.row--range output{padding:4px 8px;min-width:64px;text-align:right;border:1px solid var(--hud-border);border-radius:8px;background:#ffffff14;font-variant-numeric:tabular-nums}.fab{position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);right:calc(env(safe-area-inset-right,0px) + 8px);height:48px;width:48px;display:grid;place-items:center;color:#fff;background:var(--hud-bg);border:1px solid var(--hud-border);border-radius:12px;box-shadow:var(--hud-shadow);backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);cursor:pointer;pointer-events:auto}.fab .i{width:28px;height:28px;fill:currentColor}.fab .i-play,.fab.is-paused .i-pause{display:none}.fab.is-paused .i-play{display:block}.fab--restart{top:calc(env(safe-area-inset-top,0px) + 60px);right:calc(env(safe-area-inset-right,0px) + 8px)}.fab .i-restart{width:24px;height:24px}.row--modes{grid-template-columns:auto auto auto;gap:10px 12px;margin-top:6px}.row--modes legend{grid-column:1 / -1;margin:0 0 2px;padding:0;font-size:var(--hud-text-size)}.mode{position:relative;display:inline-block;cursor:pointer}.mode input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none}.mode .dot{width:34px;height:34px;display:grid;place-items:center;border-radius:999px;border:1px solid var(--hud-border);background:#ffffff0f;box-shadow:inset 0 0 #0000;-webkit-user-select:none;user-select:none}.mode input:checked+.dot{background:#ffffff29;box-shadow:inset 0 0 0 6px #4ade808c;border-color:#ffffff59}@media (max-width: 740px){.fab{width:42px;height:42px;top:10px;right:10px}.mode .dot{width:30px;height:30px}}.row--radioList{display:block;margin-top:8px;padding:0;border:none}.row--radioList legend{margin:0 0 6px}.radio{display:flex;align-items:center;gap:10px;margin:6px 0;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.radio input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none}.radio__dot{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.35);background:#ffffff0f;box-shadow:inset 0 0 #4ade80b3;transition:box-shadow .15s ease,border-color .15s ease,background .15s ease}.radio input:checked+.radio__dot{box-shadow:inset 0 0 0 7px #4ade80b3;border-color:#ffffffbf;background:#ffffff1f}.radio__label{opacity:.95}.panel--camera{width:min(520px,46vw)}.panel__body--camera{padding-top:10px}.row select{padding:4px 8px;min-width:180px;border-radius:8px;border:1px solid var(--hud-border);background:#00000042;color:#fff;font-family:inherit;font-size:var(--hud-text-size);outline:none}#camManualRow,#camSpeedRow,#camContinuousRow{display:none}#camContinuous{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:34px;height:18px;border-radius:999px;background:#0f172ae6;border:1px solid rgba(148,163,253,.55);position:relative;cursor:pointer;outline:none;box-shadow:0 0 4px #0f172a;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}#camContinuous:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:999px;background:#94a3fd;box-shadow:0 0 4px #4f46e5e6;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}#camContinuous:checked{background:#16a34a40;border-color:#4ade80e6;box-shadow:0 0 10px #16a34a80}#camContinuous:checked:after{transform:translate(14px);background:#bbf7d0;box-shadow:0 0 6px #16a34ae6}#camPath{padding:8px 14px 7px;min-height:34px;line-height:1.4}.cam-preview{display:none;justify-content:center;align-items:center;margin:6px 0 4px;opacity:.9}.cam-preview svg{width:130px;height:70px}.cam-preview .axis{stroke:#ffffff61;stroke-width:1.2}.cam-preview .path{fill:none;stroke-width:1.6;opacity:.15;transition:opacity .18s ease,stroke-width .18s ease}.cam-preview .path--xy{stroke:#4ade80db}.cam-preview .path--xyz{stroke:#38bdf8e6}.cam-preview[data-path=xyOrbit] .path--xy,.cam-preview[data-path=xyzOrbit] .path--xyz{opacity:1;stroke-width:2.2}.cam-preview[data-path=none] .path{opacity:.08}#tiltShiftOverlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:950}#tiltShiftOverlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;backdrop-filter:blur(var(--ts-blur, 8px));-webkit-backdrop-filter:blur(var(--ts-blur, 8px));opacity:var(--ts-opacity, 1);-webkit-mask-image:var(--ts-mask, radial-gradient(circle at 50% 55%, transparent 38%, black 60%));mask-image:var(--ts-mask, radial-gradient(circle at 50% 55%, transparent 38%, black 60%));transform:rotate(var(--ts-angle, 0deg));transform-origin:center}#tiltShiftOverlay[data-mode=corners]:before{-webkit-mask-image:radial-gradient(ellipse at var(--ts-cx, 50%) var(--ts-cy, 55%),transparent var(--ts-band, 38%),black calc(var(--ts-band, 38%) + var(--ts-falloff, 18%)));mask-image:radial-gradient(ellipse at var(--ts-cx, 50%) var(--ts-cy, 55%),transparent var(--ts-band, 38%),black calc(var(--ts-band, 38%) + var(--ts-falloff, 18%)))}#tiltShiftOverlay[data-mode=band]:before{-webkit-mask-image:linear-gradient(to bottom,black 0%,transparent var(--ts-bandStart, 40%),transparent var(--ts-bandEnd, 60%),black 100%);mask-image:linear-gradient(to bottom,black 0%,transparent var(--ts-bandStart, 40%),transparent var(--ts-bandEnd, 60%),black 100%)}.menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .18s ease}.menu.is-open{pointer-events:auto;opacity:1}.menu__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#060a1259;backdrop-filter:blur(10px) saturate(130%);-webkit-backdrop-filter:blur(10px) saturate(130%)}.menu__content{position:relative;width:min(720px,92vw);padding:clamp(18px,4vw,28px);border-radius:16px;border:1px solid var(--hud-border);background:#111729b8;box-shadow:0 20px 60px #0000008c;color:#fff;text-align:center;transform:translateY(6px) scale(.985);opacity:0;animation:menuIn .22s ease forwards}@keyframes menuIn{to{transform:translateY(0) scale(1);opacity:1}}.menu__title{margin:0 0 18px;font-size:clamp(24px,4vw,38px);letter-spacing:.5px}.menu__buttons{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin:8px 0 12px}.menu .i{width:26px;height:26px;fill:currentColor;opacity:.95}.btn{display:inline-grid;place-items:center;gap:8px;padding:12px 18px;min-height:44px;border-radius:12px;border:1px solid var(--hud-border);background:#ffffff14;color:#fff;font:inherit;cursor:pointer;transition:transform .06s ease,background .16s ease,border-color .16s ease}.btn:hover{background:#ffffff1f;border-color:#ffffff47}.btn:active{transform:translateY(1px)}.btn--primary{min-width:180px;font-size:clamp(14px,1.8vw,18px);background:linear-gradient(180deg,#4ade80b3,#22c55e8c);border-color:#ffffff59;box-shadow:inset 0 0 0 1px #ffffff26}.btn--icon{width:56px;height:56px;padding:0;background:#ffffff1a;border-radius:14px}.btn--ghost{background:transparent}.menu__info{text-align:left;margin:8px auto 6px;padding:10px 12px;border-radius:10px;border:1px solid var(--hud-border);background:#ffffff0f;line-height:1.6}.menu__made{margin:14px 0 0;font-size:clamp(11px,1.4vw,13px);opacity:.85;white-space:nowrap}.menu__content{background:none!important;border:none!important;box-shadow:none!important;padding:clamp(20px,6vh,36px) 0!important;min-height:100vh!important}.menu__backdrop{background:#060a1238!important;backdrop-filter:blur(12px) saturate(120%)!important;-webkit-backdrop-filter:blur(12px) saturate(120%)!important}.menu__title{margin:0 0 22px!important;font-size:clamp(28px,5vw,44px)!important;letter-spacing:.02em!important;text-shadow:0 1px 0 rgba(0,0,0,.25)!important;transform:translateY(-15%)!important}.menu__buttons{display:grid!important;grid-template-columns:repeat(3,minmax(72px,1fr))!important;justify-items:center!important;align-items:center!important;gap:clamp(12px,3vw,28px)!important;margin-bottom:10px!important}.menu .btn{padding:12px 18px!important;border-radius:12px!important;border:1px solid rgba(255,255,255,.22)!important;background:#ffffff0f!important;box-shadow:none!important;transition:transform .06s ease,background .16s ease,border-color .16s ease!important}.menu .btn:hover{background:#ffffff1f!important;border-color:#ffffff52!important}.menu .btn:active{transform:translateY(1px)!important}.menu .btn--icon{width:56px!important;height:56px!important;display:grid!important;place-items:center!important;border-radius:14px!important}.menu .btn--icon .i{width:26px!important;height:26px!important;display:block!important;margin:0!important}.menu .btn--start{padding:14px 28px!important;min-width:220px!important;border-radius:999px!important;border:1px solid rgba(255,255,255,.28)!important;background:#ffffff1a!important;font-size:clamp(14px,1.8vw,18px)!important;letter-spacing:.02em!important}.menu .btn--start:hover{background:#ffffff29!important}.menu .btn--start:active{transform:translateY(1px)!important}.menu__made{position:absolute;bottom:6vw;left:50%;transform:translate(-50%);margin:0;font-size:clamp(11px,1.4vw,13px);opacity:1}.menu__made a{color:#4ade80;text-decoration:none;transition:color .2s}.menu__made a:hover{color:#86efac}.menu.menu--bare .menu__content{background:none;border:0;box-shadow:none;padding:clamp(12px,3vw,18px)}.net{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .18s ease}.net:not(.is-hidden){pointer-events:auto;opacity:1}.net__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#080a108c;backdrop-filter:blur(6px) saturate(120%);-webkit-backdrop-filter:blur(6px) saturate(120%)}.net__content{position:relative;width:min(560px,90vw);padding:18px 18px 14px;border-radius:14px;border:1px solid var(--hud-border);background:#141826e6;color:#fff;box-shadow:0 18px 46px #0009;transform:translateY(4px);animation:netIn .2s ease forwards}@keyframes netIn{to{transform:translateY(0)}}.net__head{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin-bottom:6px}.i-warn{width:26px;height:26px;fill:#fbbf24}.net__actions{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}.pbtn{--px: 4px;--bg: #69d1ff;--border: #ffffff;--shadow: #1e40af;--inner: rgba(255, 255, 255, .35);position:relative;border:0;border-radius:0;background:var(--bg);color:#0f172a;font:inherit;padding:12px 22px;min-height:48px;cursor:pointer;image-rendering:pixelated;box-shadow:0 var(--px) 0 0 var(--shadow),0 0 0 var(--px) var(--border) inset;transition:transform .05s ease,box-shadow .05s ease,filter .12s ease}.pbtn:hover{filter:brightness(1.05)}.pbtn:active{transform:translateY(var(--px));box-shadow:0 0 0 0 var(--shadow),0 0 0 var(--px) var(--border) inset}.pbtn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(var(--border),var(--border)) top left / var(--px) var(--px),linear-gradient(var(--border),var(--border)) top right/ var(--px) var(--px),linear-gradient(var(--border),var(--border)) bottom left/ var(--px) var(--px),linear-gradient(var(--border),var(--border)) bottom right/var(--px) var(--px);background-repeat:no-repeat;pointer-events:none}.pbtn--start{--bg: #34d399;--shadow: #065f46;color:#062e26;padding:14px 28px;font-size:clamp(14px,1.8vw,20px)}.pbtn--icon{width:64px;height:56px;padding:0}.menu__buttons .pbtn--icon{display:grid;place-items:center}.menu__buttons .pbtn--icon .i{width:28px;height:28px;display:block}@media (max-width: 740px){.pbtn--icon{width:56px;height:48px}.pbtn--start{font-size:14px;padding:12px 22px}}#startMenu .menu__content{display:flex;flex-direction:column;min-height:100svh!important}#startMenu .menu__buttons{margin:150px;justify-content:center;justify-items:center}#startMenu .menu__title{transform:none!important;margin-bottom:16px!important}#startMenu .menu__content{display:flex!important;flex-direction:column;align-items:center;justify-content:center;min-height:100svh!important;padding:0!important;position:relative}#startMenu .menu__title{margin:0 0 40px!important;transform:none!important}#startMenu .menu__buttons{margin:0!important;display:grid!important;grid-template-columns:repeat(3,minmax(72px,1fr))!important;gap:18px!important;justify-items:center;align-items:center}#startMenu .menu__made{position:absolute;bottom:6vh;left:50%;transform:translate(-50%)}.tl-static-inputs{display:grid;grid-template-columns:repeat(3,minmax(70px,1fr));gap:6px;font-size:var(--hud-text-size)}.tl-static-inputs label{display:flex;align-items:center;gap:4px}.tl-static-inputs input[type=number]{width:70px;padding:3px 6px;border-radius:6px;border:1px solid var(--hud-border);background:#00000042;color:#fff;font-family:inherit;font-size:.9em}.tl-static-inputs,.spawn-inputs{display:grid;gap:6px;font-size:var(--hud-text-size)}.tl-static-inputs label,.spawn-inputs label{display:flex;align-items:center;gap:4px}.tl-static-inputs input[type=number],.spawn-inputs input[type=number]{width:70px;padding:3px 6px;border-radius:6px;border:1px solid var(--hud-border);background:#00000042;color:#fff;font-family:inherit;font-size:.9em}.row--spawn{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.spawn-inputs{display:grid;grid-template-columns:repeat(4,minmax(72px,1fr));gap:6px;font-size:var(--hud-text-size)}.spawn-inputs label{display:flex;align-items:center;gap:4px;white-space:nowrap}.spawn-inputs input[type=number]{width:3.5em;padding:3px 6px;border-radius:6px;border:1px solid var(--hud-border);background:#00000042;color:#fff;font-family:inherit;font-size:.9em;text-align:right}@media (max-width: 740px){.spawn-inputs{grid-template-columns:repeat(2,minmax(72px,1fr))}}.tl-static-inputs input[type=number],.spawn-inputs input[type=number]{width:72px;padding:3px 6px;border-radius:6px;border:1px solid var(--hud-border);background:#00000042;color:#fff;font-family:inherit;font-size:.9em;text-align:right}#tlStaticRow{grid-template-columns:1fr;align-items:flex-start}.tl-static-inputs{grid-template-columns:repeat(3,minmax(70px,1fr))}.spawn-inputs{grid-template-columns:repeat(4,minmax(70px,1fr))}.tl-static-inputs input[type=number],.spawn-inputs input[type=number]{width:72px;padding:3px 6px;border-radius:6px;border:1px solid var(--hud-border);background:#00000042;color:#fff;font-family:inherit;font-size:.9em;text-align:left}.row--spawn{grid-template-columns:1fr;align-items:flex-start}.tl-static-inputs,.spawn-inputs{display:grid;gap:10px;font-size:var(--hud-text-size)}.tl-static-inputs{grid-template-columns:repeat(3,auto)}.spawn-inputs{grid-template-columns:repeat(4,auto)}.tl-static-inputs label,.spawn-inputs label{display:flex;align-items:center;gap:6px;white-space:nowrap}.tl-static-inputs input[type=number],.spawn-inputs input[type=number]{width:80px;box-sizing:border-box;padding:3px 6px;border-radius:6px;border:1px solid var(--hud-border);background:#00000042;color:#fff;font-family:inherit;font-size:.9em;text-align:left}
