:root{--bg: #141118;--panel: #2a2230;--accent: #d6b66e;--danger: #ff6b6b;--text: #f5efe2;--ok: #70f2a2;--axel-image: none;--rp200-image: url(/assets/aw-rp200.png);--church-people-image: none}*{box-sizing:border-box}html,body{margin:0;background:radial-gradient(circle at 30% 10%,#34253f,var(--bg));color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}html.eurovision-mode body{background:radial-gradient(circle at 12% 12%,#ff42b833 0,#ff42b833 18%,#0000 52%),radial-gradient(circle at 88% 14%,#4b6dff33 0,#4b6dff33 20%,#0000 52%),radial-gradient(circle at 50% 86%,#ffd34a22 0,#ffd34a22 20%,#0000 56%),linear-gradient(130deg,#140f2b,#271844 40%,#18213f 70%,#40153d);animation:euro-bg-shift 8s linear infinite}.app{max-width:920px;margin:0 auto;padding:12px}html.eurovision-mode .app{filter:saturate(1.12)}.hud{background:color-mix(in oklab,var(--panel),black 12%);border:1px solid #59456a;border-radius:14px;padding:12px 14px}.top-hud{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.top-hud h1{margin:0;font-size:1.15rem}.status{margin:0;color:#f1e1c4}.stage-wrapper{position:relative;width:100%;aspect-ratio:2048 / 1228;border:2px solid #3c4454;border-radius:16px;overflow:hidden;background:linear-gradient(#0002,#0000003d),radial-gradient(circle at 50% 55%,#ffffff10,#0000 45%),var(--rp200-image);background-color:#111722;background-size:cover,cover,contain;background-position:center,center,center;background-repeat:no-repeat;--screen-x: 29.3%;--screen-y: 9.8%;--screen-w: 41.1%;--screen-h: 43.8%}html.eurovision-mode .stage-wrapper{border-color:#ff77d9;box-shadow:0 0 22px #ff5dd388,0 0 34px #63a2ff66}.stage-wrapper.has-rp200-photo{background-size:cover,cover,contain}.stage{position:absolute;left:var(--screen-x);top:var(--screen-y);width:var(--screen-w);height:var(--screen-h);border-radius:6px;overflow:hidden;box-shadow:0 0 0 2px #0a0f16,inset 0 0 0 2px #1f2b37}.stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:0 solid transparent;pointer-events:none;z-index:12}.stage-wrapper.danger-frame .stage{box-shadow:0 0 0 2px #0a0f16,inset 0 0 0 2px #1f2b37}.stage-wrapper.danger-frame .stage:after{border:10px solid #ff2d2d}html.eurovision-mode .stage-wrapper.danger-frame .stage:after{border-color:#ff3d71;box-shadow:0 0 0 2px #ff3d71cc inset,0 0 16px #ff3d71aa}.scene{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:top left;transition:filter .12s linear;background:radial-gradient(circle at 20% 0%,#f9e8b04d 0,#0000 27%),radial-gradient(circle at 80% 5%,#f2dca04d 0,#0000 24%),repeating-linear-gradient(90deg,#3d2f2f 0,#3d2f2f 95px,#4b3939 95px,#4b3939 130px,#342a2a 130px,#342a2a 160px),linear-gradient(180deg,#6f5f69 0,#6f5f69 35%,#32262d 35%,#32262d 60%,#1a171d 60%);background-size:auto,auto,auto,auto}.scene:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--church-people-image) center / cover no-repeat;pointer-events:none;opacity:0;z-index:3}.scene.has-church-people-layer:after{opacity:0}.scene.has-church-photo{background:linear-gradient(#0003,#0000004d),var(--church-image),linear-gradient(180deg,#6f5f69 0,#6f5f69 35%,#32262d 35%,#32262d 60%,#1a171d 60%);background-size:cover,cover,auto;background-position:center,center,center}.person{position:absolute;width:32px;height:60px;border-radius:16px 16px 10px 10px;border:1px solid rgb(0 0 0 / .35);z-index:2}.person.crowd-photo{width:54px;height:96px;border:none;border-radius:0;background:var(--person-image) center bottom / contain no-repeat;filter:drop-shadow(0 2px 1px rgb(0 0 0 / .35))}.person.crowd-photo:before,.person.crowd-photo:after{display:none}.person:before{content:"";position:absolute;top:-15px;left:7px;width:18px;height:18px;border-radius:50%;background:#f1c9a8;border:1px solid rgb(0 0 0 / .25)}.person.axel{background:repeating-linear-gradient(45deg,#ffdf54,#ffdf54 6px,#333 6px,#333 12px);box-shadow:0 0 0 2px #0009,0 0 16px 1px #ffe77a88}html.axel-photo-ready .person.axel{background:var(--axel-image) center / cover no-repeat;border-color:#d8c08a;box-shadow:0 0 0 1px #0008}html.axel-photo-ready .person.axel:before,html.axel-photo-ready .person.axel:after{display:none}.person.axel:after{content:"📷";position:absolute;right:-12px;top:22px;font-size:18px}.focus-reticle{pointer-events:none;position:absolute;left:calc(var(--screen-x) + (var(--screen-w) / 2));top:calc(var(--screen-y) + (var(--screen-h) / 2));width:120px;height:120px;transform:translate(-50%,-50%);border-radius:50%;border:2px dashed #d8e7ff;box-shadow:0 0 0 999vmax #00000063 inset,0 0 0 2px #0008}.controls-hud{margin-top:12px;display:flex;justify-content:space-between;align-items:center;gap:16px}.controls-hud{display:none}.left-controls,.right-controls{display:flex;align-items:center;gap:12px}.right-controls{flex-wrap:wrap;justify-content:flex-end}.joystick-base{width:340px;height:200px;border-radius:16px;background:linear-gradient(145deg,#7e90a8,#4f5c6f 60%,#3d4655);border:2px solid #c8d2de;box-shadow:inset 0 0 22px #0008,0 6px 16px #0007;position:relative;touch-action:none;overflow:hidden}.joystick-base.overlay-rp200-joystick{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none;border-radius:0;background:transparent;box-shadow:none;z-index:4}.auto-axel-btn{position:absolute;left:8.5%;top:85.1%;width:7.8%;height:6.4%;border-radius:6px;border:2px solid #212734;background:linear-gradient(180deg,#f6b53f,#d18117);color:#181818;font-weight:800;font-size:clamp(8px,.7vw,12px);letter-spacing:.02em;cursor:pointer;z-index:8;box-shadow:0 1px #fff7,inset 0 -2px #0004}.auto-axel-btn:active{transform:translateY(1px)}.power-reset-btn{position:absolute;left:11.35%;top:14.75%;width:4.1%;height:6.3%;border-radius:4px;border:none;background:transparent;color:transparent;cursor:pointer;z-index:30;pointer-events:auto}.power-reset-btn:hover{box-shadow:0 0 0 1px #7fffd34d inset}.power-reset-btn:active{box-shadow:0 0 0 2px #7fffd380 inset}.eurovision-panel{position:absolute;right:2.2%;top:8.8%;width:min(240px,26%);max-height:42%;overflow:auto;background:linear-gradient(180deg,#121923f2,#0f151ff0);border:1px solid #eec35a;border-radius:8px;padding:8px 10px;z-index:16;box-shadow:0 6px 16px #0009}.eurovision-panel.is-hidden{display:none}.eurovision-panel h4{margin:0 0 8px;font-size:clamp(10px,.8vw,13px);color:#f7c869;text-transform:uppercase;letter-spacing:.04em}.eurovision-panel ol{margin:0;padding-left:0;list-style:none;display:grid;gap:6px}.eurovision-panel li{font-size:clamp(9px,.73vw,12px);color:#f5f1e4}.eurovision-panel .shot-item{display:grid;gap:4px;padding:2px 0}.eurovision-panel .shot-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.eurovision-panel .shot-bar{width:100%;height:6px;border-radius:6px;background:#291f28;border:1px solid #0006;overflow:hidden}.eurovision-panel .shot-bar span{display:block;height:100%;min-width:2px;background:linear-gradient(90deg,#ff1515,#ff5454);box-shadow:0 0 8px #ff4d4daa}.eurovision-panel .shot-bar-live{margin-top:1px}.eurovision-panel .shot-bar-countdown{margin-bottom:1px}.eurovision-panel strong{color:#ffdf92;font-weight:800}html.eurovision-mode .eurovision-panel{border:1px solid #ff79df;background:linear-gradient(180deg,#30183bcf,#161938e6),radial-gradient(circle at 16% 0%,#ff5ad333,#0000 42%),radial-gradient(circle at 100% 100%,#4f8dff2e,#0000 45%);box-shadow:0 0 15px #ff7cde66,0 0 22px #4f9dff55}html.eurovision-mode .eurovision-panel li{text-shadow:0 0 7px #ffffff24}.eurovision-mode-title{display:none;margin-top:12px;position:relative;text-align:center;font-size:clamp(18px,2.2vw,30px);font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#ffdc70;text-shadow:0 0 10px #ff4fd2aa,0 0 20px #5da6ff99;animation:euro-title-pulse 1.1s ease-in-out infinite alternate;line-height:1.1;padding:2px 14px;width:fit-content;margin-left:auto;margin-right:auto;z-index:0}.eurovision-mode-title:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;background:linear-gradient(90deg,#ff3d71c4,#4f8dffc2 55%,#ff3dd0c4);box-shadow:0 0 14px #ff4fd2a8,0 0 18px #4f9dffa6;z-index:-1}.eurovision-mode-title.is-visible{display:block}@keyframes euro-bg-shift{0%{filter:hue-rotate(0deg)}50%{filter:hue-rotate(18deg)}to{filter:hue-rotate(0deg)}}@keyframes euro-title-pulse{0%{transform:scale(1);opacity:.9}to{transform:scale(1.03);opacity:1}}.level-overlay{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:min(560px,72%);background:linear-gradient(180deg,#1e2a39f7,#121923f2);border:2px solid #f7c869;border-radius:12px;padding:14px 16px;color:#f5f1e4;z-index:20;box-shadow:0 12px 26px #0009}.level-overlay h3{margin:0 0 8px;font-size:clamp(14px,1.2vw,20px)}.level-overlay p{margin:0;font-size:clamp(11px,.9vw,15px);line-height:1.45;white-space:pre-line}.level-overlay-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;margin-top:12px}.level-overlay-col{min-width:0}.level-overlay-col h4{margin:0 0 6px;font-size:clamp(11px,.95vw,15px);color:#f7c869}.level-overlay-list{margin:0;font-size:clamp(10px,.86vw,14px);line-height:1.45;white-space:pre-line}.level-overlay-actions{margin-top:12px;display:flex;gap:8px;justify-content:flex-end}.level-overlay-actions button{border:1px solid #5f6f88;border-radius:8px;background:linear-gradient(180deg,#31455f,#1e2f45);color:#f7f9ff;padding:8px 12px;font-weight:700;cursor:pointer}.level-overlay-actions button:disabled{opacity:.55;cursor:default}.level-overlay-actions .primary-action{margin-left:44px;transform:translate(60px)}.joystick-knob{width:42px;height:42px;border-radius:50%;position:absolute;left:0;top:0;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%,#edf2f8,#9eaabd 65%,#7b8799);border:2px solid #cfd8e3;box-shadow:inset 0 0 6px #0007,0 0 0 2px #0008}.joystick-label{display:none}.focus-btn{border:1px solid #4d607c;background:linear-gradient(180deg,#2d4367,#1b2f4d);color:#e8f1ff;border-radius:10px;padding:12px 16px;font-weight:700;cursor:pointer}.focus-btn:active,.focus-btn.is-active{background:linear-gradient(180deg,#3f5f91,#294062)}.upload-panel{display:none}.upload-title{font-size:.78rem;color:#efddbc;font-weight:700}.upload-row input[type=file]{display:none}.upload-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:8px;border:1px solid #7f6791;background:#32273d;color:#f6ebd8;cursor:pointer;font-size:.78rem;white-space:nowrap}.upload-btn:hover{background:#403050}.win{color:var(--ok)}.fail{color:var(--danger)}@media (max-width: 740px){.controls-hud{flex-direction:column;align-items:stretch}.left-controls,.right-controls{justify-content:center}.joystick-base{width:300px;height:176px}}
