:root{--bg:#f5f1f8;--surface:#fff;--text:#30253f;--muted:#6c5d7b;--accent:#923ba8;--soft:#eee3f3;--border:#d9cae2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px Arial,sans-serif;line-height:1.5}main{max-width:600px;margin:30px auto;padding:32px;background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:0 14px 45px #52306b0b}.brand{color:var(--accent);font-size:22px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.brand img{width:125px;height:70px;object-fit:contain}.eyebrow{font-size:12px;letter-spacing:1.4px;color:var(--muted);text-transform:uppercase}h1{font-size:32px;line-height:1.2;font-weight:500}h2{font-size:22px;font-weight:500}p{color:var(--muted)}.prize,.card{background:var(--soft);border-radius:16px;padding:20px;margin:20px 0}.prize strong{display:block;color:var(--accent);font-size:27px}label{display:block;margin-top:16px}input:not([type=checkbox]){display:block;width:100%;padding:14px;margin-top:6px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font:inherit}input:focus,button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.consent{display:flex;gap:10px;font-size:14px}.consent input{margin-top:6px;accent-color:var(--accent)}button,.button{display:inline-block;border:0;border-radius:10px;padding:14px 20px;background:var(--accent);color:white;font:inherit;cursor:pointer;text-decoration:none;margin:6px 6px 6px 0}button:disabled{opacity:.45;cursor:default}.secondary{background:var(--soft);color:var(--text)}.danger{background:#f9dfe6;color:#8a2944}.success{color:#32704e}.error{color:#9e2844}.muted{font-size:13px;color:var(--muted)}[hidden]{display:none!important}#message{white-space:pre-line}.admin{max-width:1150px}.row{display:flex;flex-wrap:wrap;gap:16px}.row>.card{flex:1;min-width:230px}.stat{font-size:40px;color:var(--accent)}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--border)}th{color:var(--accent)}#search{max-width:400px}.screen{max-width:1500px;min-height:calc(100svh - 32px);margin:16px auto;padding:24px 40px;background:transparent;border:0;box-shadow:none;text-align:center;display:flex;flex-direction:column;justify-content:center}.screen .brand{justify-content:center}.screen h1{font-size:clamp(30px,3.3vw,58px);margin:14px 0}.screen-layout{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:40px}.qr{width:min(260px,30vw);border-radius:16px;background:white;padding:12px}.screen .prize{font-size:18px;margin:10px 0}.screen .prize strong{font-size:32px}.link{color:var(--accent);overflow-wrap:anywhere}.screen #connection{min-height:24px;margin:8px}.phone-stage{height:220px;perspective:900px;display:flex;justify-content:center;align-items:center}.phone{width:95px;height:185px;position:relative;transform-style:preserve-3d;animation:phone-turn 14s linear infinite}.phone-front,.phone-back{position:absolute;inset:0;border-radius:20px;border:4px solid #bcc1cb;backface-visibility:hidden}.phone-back{background:linear-gradient(120deg,#f5f6f8,#b8bec8);transform:rotateY(180deg) translateZ(5px)}.phone-front{background:linear-gradient(150deg,#291d45,#b276c4);transform:translateZ(5px)}.phone-front:before{content:'';position:absolute;width:32px;height:8px;background:#171421;border-radius:8px;top:7px;left:27px}.camera{position:absolute;top:8px;left:6px;width:65px;height:65px;background:#cbd0d9;border-radius:16px}.lens{position:absolute;width:22px;height:22px;border:3px solid #7b8290;border-radius:50%;background:#20232e}.lens:nth-child(1){left:5px;top:5px}.lens:nth-child(2){right:5px;top:22px}.lens:nth-child(3){left:5px;bottom:5px}@keyframes phone-turn{from{transform:rotateZ(-10deg) rotateX(5deg) rotateY(0)}to{transform:rotateZ(-10deg) rotateX(5deg) rotateY(360deg)}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}@media(max-width:600px){main{margin:12px;padding:22px}h1{font-size:28px}.screen{padding:20px;min-height:auto}.screen-layout{grid-template-columns:1fr;gap:20px}.qr{width:220px}.admin{padding:16px}.phone-stage{height:200px}}@media(min-width:800px) and (max-height:800px){.screen{padding:12px 28px}.screen .eyebrow{margin:4px}.phone-stage{height:175px}.phone{height:155px;width:80px}.screen h1{margin:8px}.screen .qr{width:210px}.screen p{margin:8px}}.event-rule{font-size:13px;max-width:800px;margin:12px auto}.screen h1{max-width:1000px;margin-left:auto;margin-right:auto}.screen{min-height:0;margin:0 auto;padding:18px 32px}.screen .brand img{height:55px;width:110px}.screen .eyebrow{margin:5px 0}.screen h1{font-size:clamp(28px,3vw,46px);margin-top:10px;margin-bottom:10px}.screen #invitation{margin:6px 0 12px}.screen .phone-stage{height:205px}.screen .event-rule{margin:8px auto}.phone{width:104px;height:216px}.phone-back{border:0;border-radius:21px;background-color:#c7cbd2;background-image:url('/assets/iphone-silver-official.png');background-repeat:no-repeat;background-size:261px 309px;background-position:-42px -45px;overflow:hidden}.phone-back .camera{display:none}.phone-front{border:3px solid #c3c8d1;background:linear-gradient(155deg,#f8f8fa,#cbd0d9 55%,#eef0f4)}.phone-front:before{left:33px;top:7px;width:32px;height:9px}.phone-stage{height:250px!important}.phone-back{transform:rotateY(180deg) translateZ(5px)}.phone-edge{position:absolute;top:20px;width:10px;height:176px;background:linear-gradient(90deg,#9199a6,#eef0f4 45%,#a4acb9);backface-visibility:visible}.phone-edge-left{left:-5px;transform:rotateY(90deg)}.phone-edge-right{right:-5px;transform:rotateY(90deg)}.phone-edge-right:after{content:'';position:absolute;width:3px;height:27px;top:40px;left:3px;border-radius:2px;background:#7b8492}.screen .event-rule{width:100%;max-width:1050px;text-align:center;margin:8px auto!important;align-self:center}.phone-edge{top:0;height:216px;border-radius:5px}.phone-cap{position:absolute;left:0;width:104px;height:10px;border-radius:5px;background:linear-gradient(0deg,#9199a6,#eef0f4 45%,#a4acb9);backface-visibility:visible}.phone-cap-top{top:-5px;transform:rotateX(90deg)}.phone-cap-bottom{bottom:-5px;transform:rotateX(90deg)}.demo-banner{position:relative;z-index:10;text-align:center;padding:8px 12px;background:#fff0c2;color:#614600;font-weight:700;font-size:14px;}:root{--bg:#f9f3f5;--surface:#fff;--text:#35232b;--muted:#705660;--accent:#800020;--soft:#f5e8ed;--border:#dec3cc}body{background:#f8f5f6 url('/assets/forum-background.jpeg') center top / 100% auto no-repeat fixed;min-height:100svh;padding:32px 0 160px}main{background:rgba(255,255,255,.96);box-shadow:0 14px 45px #80002012}.language-switch{display:flex;justify-content:flex-end;gap:6px;margin-bottom:10px;position:relative;z-index:2}.language-switch button{margin:0;padding:7px 13px;font-size:14px;background:#fff;color:var(--accent);border:1px solid var(--border);border-radius:8px}.language-switch button[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.screen{max-width:1420px;width:92%;background:rgba(255,255,255,.35);border-radius:22px;padding:12px 30px 16px}.screen .language-switch{margin-bottom:0}.screen .brand img{height:45px}.screen .phone-stage{height:220px!important}.phone-back{background-color:#800020;background-blend-mode:multiply;border:2px solid #631027}.phone-front{border-color:#650c25;background:linear-gradient(155deg,#f7e5ec,#800020 55%,#3e0011)}.phone-edge,.phone-cap{background:linear-gradient(90deg,#4a0013,#c06e83 45%,#71021f)}.phone-edge-right:after{background:#4a0013}
@media(min-width:900px) and (min-aspect-ratio:14/9){body{background-size:100% 100svh;padding-top:4vh;padding-bottom:17vh}.screen{max-height:79vh;overflow:auto}.screen .phone-stage{height:205px!important}}
@media(max-width:700px){body{background-size:auto 100svh;padding:18px 0 100px;background-position:center top}.screen{width:calc(100% - 24px);padding:16px}.language-switch{flex-wrap:wrap}.screen .phone-stage{height:220px!important}.screen .qr{width:200px}.screen .event-rule{font-size:12px}}.screen .bilingual-label{display:inline-flex;flex-direction:column;gap:3px;max-width:100%;vertical-align:middle}.screen .bilingual-label>span[lang=ru]{font-size:.78em;opacity:.85}.screen h1{font-size:clamp(24px,2.5vw,38px);margin:6px auto;line-height:1.15}.screen .eyebrow{font-size:11px;margin:4px 0}.screen #invitation{font-size:15px;line-height:1.25;margin:6px 0 10px}.screen .prize{padding:12px;margin:8px 0}.screen .prize strong{font-size:28px}.screen .phone-stage{height:190px!important}.screen .qr{width:min(220px,28vw)}.screen #status,.screen #total,.screen #qr-note{line-height:1.25;margin:7px 0}.screen .event-rule{font-size:12px;line-height:1.25}.screen #connection:empty{min-height:0;margin:0}
@media(max-width:700px){.screen .qr{width:200px}.screen .phone-stage{height:185px!important}}
/* Three aligned visuals; footer of the supplied backdrop stays outside the content. */
.hall-screen{height:100dvh;min-height:0;padding:2dvh 2vw 15dvh;background-size:100% 100dvh;background-position:center top;overflow:hidden}
.hall-screen .screen{width:100%;max-width:none;height:100%;min-height:0;max-height:none;margin:0;padding:16px 32px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;overflow:visible;background:rgba(255,255,255,.90);border:1px solid #e8ccd6;border-radius:28px;--visual-size:min(27vw,38dvh);--phone-height:calc(var(--visual-size)*.91)}
.hall-screen .screen-header{min-width:0}
.hall-screen .screen .eyebrow{font-size:11px;letter-spacing:1.4px;margin:0 0 6px}
.hall-screen .screen h1{font-weight:700;font-size:clamp(22px,2.25vw,42px);line-height:1.15;max-width:1500px;color:#650c25;margin:0 auto 8px}
.hall-screen .screen h1 .bilingual-label{gap:6px}
.hall-screen .screen h1 .bilingual-label>span[lang=ru]{font-weight:400;font-size:.72em;color:#58434b;opacity:1}
.hall-screen .screen #invitation{font-size:clamp(12px,1vw,17px);line-height:1.25;margin:0 0 6px}
.hall-screen .screen #status{font-size:12px;margin:0;line-height:1.2}
.hall-screen .screen-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:24px;width:100%;max-width:none;margin:0;min-height:0}
.hall-screen #qr-panel,.hall-screen .logo-panel,.hall-screen .prize-panel{display:grid;grid-template-rows:minmax(0,1fr) 74px;min-width:0;min-height:0}
.hall-screen .qr-stage,.hall-screen .logo-stage,.hall-screen .screen .phone-stage{display:flex;align-items:center;justify-content:center;min-height:0;height:100%!important;width:100%;position:relative;top:auto;right:auto;margin:0;perspective:1200px}
.hall-screen .screen .qr,.hall-screen .event-logo{display:block;width:var(--visual-size);height:var(--visual-size);max-width:100%;max-height:100%;object-fit:contain;border-radius:18px;padding:0;background:#fff}
.hall-screen .event-logo{mix-blend-mode:multiply;border-radius:0}
.hall-screen .showcase-caption{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:0;text-align:center}
.hall-screen #qr-note{font-size:clamp(11px,.9vw,15px);line-height:1.25;margin:5px 0}
.hall-screen #url{font-size:clamp(10px,.8vw,14px);margin:0;line-height:1.2}
.hall-screen .logo-caption{font-size:clamp(18px,1.8vw,30px);font-weight:700;color:#800020;letter-spacing:.5px}
.hall-screen .screen .prize{width:100%;max-width:100%;margin:0;padding:6px 14px;line-height:1.15;border:1px solid #e8ccd6;background:linear-gradient(110deg,#fbf3f6,#f1dce5);border-radius:18px;font-size:12px}
.hall-screen .screen .prize strong{font-size:clamp(19px,1.7vw,29px);line-height:1.2;margin-top:5px}
.hall-screen .screen .phone{scale:1;width:calc(var(--phone-height)*104/216);height:var(--phone-height)}
.hall-screen .screen .phone-back{background-size:calc(var(--phone-height)*261/216) calc(var(--phone-height)*309/216);background-position:calc(var(--phone-height)*-42/216) calc(var(--phone-height)*-45/216);border-radius:calc(var(--phone-height)*.097)}
.hall-screen .phone-front{border-radius:calc(var(--phone-height)*.097)}
.hall-screen .phone-front:before{left:32%;top:3.3%;width:31%;height:4.2%}
.hall-screen .phone-edge{height:100%;top:0}
.hall-screen .phone-cap{width:100%}
.hall-screen .screen-footer{min-width:0}
.hall-screen .screen #total{display:block;width:max-content;max-width:100%;font-size:clamp(15px,1.2vw,22px);font-weight:700;color:#800020;padding:7px 30px;margin:0 auto 7px;border:1px solid #e8ccd6;border-radius:999px;background:#fff7fa;line-height:1.2}
.hall-screen .screen .event-rule{font-size:clamp(10px,.7vw,13px);line-height:1.25;width:100%;max-width:1500px;margin:0 auto!important}
.hall-screen .screen #connection:empty{margin:0;min-height:0}
@media(min-width:701px) and (max-height:800px){
 .hall-screen .screen{padding:10px 20px;gap:6px;--visual-size:min(27vw,35dvh)}
 .hall-screen .screen h1{font-size:clamp(21px,2.1vw,30px);margin-bottom:5px}
 .hall-screen .screen h1 .bilingual-label{gap:3px}
 .hall-screen .screen .eyebrow{font-size:9px;margin-bottom:4px}
 .hall-screen .screen #invitation{font-size:11px;margin-bottom:4px}
 .hall-screen .screen #status{font-size:10px}
 .hall-screen #qr-panel,.hall-screen .logo-panel,.hall-screen .prize-panel{grid-template-rows:minmax(0,1fr) 62px}
 .hall-screen #qr-note{font-size:10px;margin:3px 0}
 .hall-screen #url{font-size:10px}
 .hall-screen .screen .prize{font-size:10px;padding:5px 10px}
 .hall-screen .screen .prize strong{font-size:20px}
 .hall-screen .screen #total{font-size:14px;padding:5px 24px;margin-bottom:5px}
 .hall-screen .screen .event-rule{font-size:9px}
}
@media(max-width:700px){
 .hall-screen{height:auto;min-height:100dvh;overflow:auto;padding:12px 12px 110px;background-size:auto 100dvh}
 .hall-screen .screen{height:auto;display:block;padding:16px;--visual-size:220px}
 .hall-screen .screen-layout{grid-template-columns:1fr;margin:16px 0;gap:18px}
 .hall-screen #qr-panel,.hall-screen .logo-panel,.hall-screen .prize-panel{grid-template-rows:240px auto}
 .hall-screen .showcase-caption{min-height:64px}
}
