:root{--purple:#512774;--ink:#30223c;--muted:#80758a;--lime:#d9f479;--paper:#faf8fc}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:5px}button{cursor:pointer;border:0;border-radius:14px;padding:15px 24px;background:var(--purple);color:white;font-weight:650}button:hover{filter:brightness(1.12)}button:disabled{opacity:.5;cursor:wait}a{color:inherit}header{max-width:1400px;margin:auto;height:118px;display:flex;align-items:center;justify-content:space-between;padding:0 6%}header>a{width:190px;height:90px;overflow:hidden;position:relative}header img{position:absolute;width:210px;top:-59px;left:-10px}.edition{font-size:11px;letter-spacing:2px;font-weight:750}.edition i{color:#9c75ba;margin:0 14px}.quiet{background:transparent;color:var(--purple);padding:10px 14px}.hero{max-width:1260px;margin:32px auto 50px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:0 32px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:#80559e}.pill{display:inline-flex;border:1px solid #ddd1e5;padding:7px 13px;border-radius:100px;gap:8px}h1{font-size:clamp(44px,5.1vw,76px);line-height:1.06;letter-spacing:-3px;margin:23px 0}h1 em{font-style:normal;color:#8650ae}h2{font-size:34px;letter-spacing:-1.2px;line-height:1.15;margin:12px 0 20px}p.lead{color:var(--muted);font-size:18px;max-width:450px}.cta{display:flex;gap:15px;align-items:center;margin:28px 0}.cta button{padding:19px 28px}.note{font-size:12px;color:var(--muted)}.links{display:flex;gap:17px;flex-wrap:wrap;font-size:12px;margin-top:33px}.links a{text-decoration:none;border-bottom:1px solid #d5c6e1;padding-bottom:3px}.arena-art{height:480px;border-radius:38px;background:#ede4f4;position:relative;overflow:hidden;background-image:radial-gradient(#cbb4dd 1px,transparent 1px);background-size:22px 22px}.orbit{width:330px;height:330px;border:1px solid #cfb8de;border-radius:50%;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.orbit:after{content:'';position:absolute;inset:40px;border:1px solid #cfb8de;border-radius:50%}.art-title{position:absolute;top:28px;left:30px;font-size:11px;font-weight:700;letter-spacing:2px;color:#82579b}.floating{position:absolute;width:76px;height:76px;border-radius:24px;display:grid;place-items:center;font-size:38px;box-shadow:0 15px 28px #4a1e6b18;background:white;transform:rotate(-12deg)}.f1{left:18%;top:22%;color:#6a3a8a}.f2{right:15%;top:40%;background:var(--lime);transform:rotate(14deg)}.f3{left:19%;bottom:24%;background:#512774;color:white;font-size:30px}.f4{right:24%;top:12%;width:45px;height:45px;font-size:24px;background:#f4cdde}.catcher-art{position:absolute;bottom:47px;left:39%;width:145px;height:80px;background:var(--purple);border-radius:15px 15px 65px 65px;transform:rotate(-7deg);box-shadow:0 16px 0 #d3bddf}.catcher-art:before{content:'✦';color:var(--lime);font-size:38px;position:absolute;left:53px;top:5px}.score-tag{position:absolute;right:24px;bottom:25px;background:white;border-radius:14px;padding:12px 18px;font-size:12px;box-shadow:0 8px 30px #51277412}.score-tag b{color:var(--purple);font-size:22px;margin-left:15px}.steps{max-width:1196px;margin:0 auto 36px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e4dce9;padding-top:27px;gap:30px}.step{display:flex;gap:16px;font-size:13px}.step>span{color:#946dac;font-size:12px}.step b{display:block}.step p{margin:5px 0;color:var(--muted)}footer{max-width:1260px;padding:25px 32px;margin:auto;display:flex;justify-content:space-between;color:var(--muted);font-size:11px}#connection{color:#6c8653}.panel{max-width:760px;margin:25px auto 60px;background:white;border:1px solid #e8dfed;border-radius:28px;padding:40px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{font-size:13px;font-weight:600;display:block}input,select,textarea{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #dcd2e3;border-radius:10px;background:#fcfbfd;color:var(--ink)}.full{grid-column:1/-1}.check{display:flex;align-items:flex-start;gap:12px;margin:22px 0;font-weight:400}.check input{width:20px;flex-shrink:0;margin:4px 0}details{font-size:12px;color:var(--muted);margin:20px 0}.game-wrap{max-width:1100px;margin:10px auto;padding:0 24px}.hud{display:flex;justify-content:space-between;align-items:center;background:var(--purple);color:white;border-radius:20px 20px 0 0;padding:18px 28px}.hud b{font-size:28px}.hud small{display:block;font-size:10px;letter-spacing:2px;opacity:.65}.game-stage{position:relative;aspect-ratio:16/9;background:#ede4f4;border-radius:0 0 22px 22px;overflow:hidden}canvas#game{width:100%;height:100%;touch-action:none;display:block}video{position:absolute;width:155px;right:15px;bottom:15px;transform:scaleX(-1);border-radius:12px;opacity:.8}.game-help{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:12px}.result{text-align:center}.medal{font-size:55px}.big-score{font-size:88px;font-weight:800;line-height:1.2;color:var(--purple)}.stats{display:flex;justify-content:center;gap:35px;margin:25px 0}.stats b{display:block;font-size:24px}dialog{border:0;border-radius:25px;padding:35px;width:min(90vw,530px);box-shadow:0 20px 100px #30223c33}dialog::backdrop{background:#25133388;backdrop-filter:blur(5px)}.close{float:right}.rank-row{display:flex;gap:18px;padding:14px 0;border-bottom:1px solid #eee}.rank-row b:last-child{margin-left:auto}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#30223c;color:white;padding:12px 22px;border-radius:12px;display:none;z-index:20;max-width:90vw}.admin{max-width:1300px;margin:auto;padding:25px}.table-wrap{overflow:auto;background:white;border-radius:18px;margin:25px 0}table{border-collapse:collapse;width:100%;font-size:12px}td,th{padding:14px;text-align:left;border-bottom:1px solid #eee;white-space:nowrap}.badge{padding:4px 8px;background:#eee4f4;border-radius:6px}.admin button{padding:7px 10px;font-size:12px}.admin .stats{justify-content:flex-start}.error{color:#a52648} @media(min-width:1600px){.hero{margin-top:70px;max-width:1450px}.arena-art{height:580px}.steps{max-width:1386px}h1{font-size:88px}}@media(max-width:720px){header{height:90px;padding:0 20px}header>a{width:155px}header img{width:180px;top:-44px}.edition{display:none}.hero{grid-template-columns:1fr;margin-top:10px;gap:32px;padding:0 24px}h1{font-size:52px}.arena-art{height:340px}.steps{grid-template-columns:1fr;margin:0 24px;gap:15px}.panel{margin:12px;padding:25px}.form-grid{grid-template-columns:1fr}.game-stage{aspect-ratio:3/4}.hud{padding:14px}.hud b{font-size:22px}footer{gap:20px}.game-help{flex-wrap:wrap}.cta{flex-wrap:wrap}video{width:95px}}
.game-live>header,.game-live>footer{display:none}.immersive{max-width:1600px;margin:0 auto;background:#241035;color:white;min-height:100dvh;padding:12px}.live-hud{display:flex;align-items:center;justify-content:space-between;padding:8px 22px 18px;gap:20px}.live-hud small{display:block;font-size:10px;letter-spacing:2px;color:#ccb7dc}.live-hud b{font-size:30px}.immersive-stage{height:calc(100dvh - 190px);min-height:360px;position:relative;overflow:hidden;border-radius:24px;background:#512774}.immersive-stage canvas{width:100%;height:100%;display:block;touch-action:none}.immersive-stage video[hidden]{display:none}.ready-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center;background:#24103580;backdrop-filter:blur(2px)}.ready-overlay[hidden]{display:none}.ready-overlay h2{font-size:clamp(32px,5vw,66px);max-width:800px}.ready-overlay p{max-width:640px}.ready-overlay .eyebrow{color:#d9f479}.ready-overlay progress{accent-color:#d9f479;width:220px;height:12px;margin:20px}.ready-overlay button{background:#d9f479;color:#30223c}.live-controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:14px 0 5px}.live-controls button{font-size:12px;padding:8px 12px;background:#ffffff15}.live-controls button[aria-pressed=true]{background:#d9f479;color:#30223c}.tracking-status{text-align:center;font-size:12px;color:#d1bfdc;margin:10px}.live-notice{position:absolute;left:20px;bottom:15px;font-size:12px;max-width:80%;background:#241035aa;border-radius:10px;padding:4px 10px}.live-notice:empty{display:none}.combo-label{position:absolute;top:20px;left:20px;font-size:23px;font-weight:800;color:#d9f479;text-shadow:0 2px 10px #241035}.immersive dialog{color:#30223c;max-height:90vh;overflow:auto;width:min(95vw,700px)}.immersive:fullscreen{max-width:none;width:100vw;height:100dvh;overflow:auto}.immersive button:disabled{opacity:.4}@media(max-width:720px){.immersive-stage{height:calc(100dvh - 230px);min-height:340px}.live-hud{padding:8px;gap:12px;font-size:11px}.live-hud b{font-size:24px}.ready-overlay{padding:18px}.live-controls{gap:5px}.live-controls button{font-size:11px;padding:7px}.immersive{padding:8px}}

.live-brand{position:relative;width:180px;height:62px;overflow:hidden;flex-shrink:0}.live-brand img{position:absolute;width:180px;top:-60px;left:0;filter:brightness(0) invert(1)}.live-brand small{position:absolute;bottom:0;left:22px}@media(max-width:720px){.live-brand{width:112px;height:52px}.live-brand img{width:130px;top:-39px;left:-9px}.live-brand small{left:8px;font-size:8px}}

.sacrament-legend{display:flex;justify-content:center;gap:22px;margin:24px 0}.sacrament-legend figure{margin:0;text-align:center;font-size:12px;color:#705681}.sacrament-legend img{width:82px;height:82px;object-fit:contain}.floating img{width:95%;height:95%;object-fit:contain}.arena-art{background-image:linear-gradient(#51277435,#51277445),url('/assets/church.png');background-size:cover;background-position:center}.art-title{background:#fff9;padding:8px;border-radius:8px}.arena-art .orbit{display:none}.ready-overlay{backdrop-filter:none;background:linear-gradient(#241035b0,#24103538)}.ready-overlay p,.ready-overlay h2{text-shadow:0 2px 12px #241035}.ready-overlay h2{margin:12px 0}.ready-overlay .eyebrow{background:#2410359c;border-radius:20px;padding:8px 15px}

.live-brand{height:74px}.live-brand small{bottom:0}@media(max-width:720px){.live-brand{height:60px}}

.negative-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:18px 0}.negative-legend figure{margin:0;text-align:center}.negative-legend img{width:72px;height:72px;object-fit:contain;background:#fbeaf0;border:2px solid #dc6a90;border-radius:50%;padding:4px}.negative-legend figcaption{font-size:11px}@media(max-width:480px){.negative-legend{grid-template-columns:repeat(2,1fr)}}

.positive-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.positive-legend img{width:76px;height:76px;object-fit:contain;background:#f3f7e7;border:2px solid #b4d34c;border-radius:50%;padding:4px}.positive-legend figcaption{font-size:11px}@media(max-width:480px){.positive-legend{grid-template-columns:repeat(2,1fr)}}

/* Keep the live participant unobstructed while preparing the game. */
.ready-overlay.camera-preview{inset:12px 12px auto;min-height:0;padding:12px 18px;border-radius:18px;background:#241035b8;pointer-events:none}
.ready-overlay.camera-preview h2{font-size:clamp(22px,3vw,36px);margin:4px 0}
.ready-overlay.camera-preview p{font-size:13px;margin:4px 0}
.ready-overlay.camera-preview .eyebrow{display:none}
.ready-overlay.camera-preview progress{margin:8px 0 0;height:8px}
.ready-overlay.camera-preview button{pointer-events:auto}
