/* Decorative layers stay inside the measured arena; seat targets and dock remain untouched. */
body[data-room-view="room"]{--realm-light:231,192,114;--realm-ink:45,32,17}
body[data-room-view="room"][data-arena="silver"]{--realm-light:160,216,245;--realm-ink:19,35,57}
body[data-room-view="room"][data-arena="elite"]{--realm-light:255,192,93;--realm-ink:60,29,12}
body[data-room-view="room"][data-arena="amethyst"]{--realm-light:200,164,255;--realm-ink:43,22,65}
body[data-room-view="room"] #arena{isolation:isolate;background:radial-gradient(ellipse at 50% 50%,rgba(var(--realm-light),.09),transparent 64%);border-radius:48% 48% 20% 20%}
body[data-room-view="room"] #arena .stage{overflow:hidden;pointer-events:none}
body[data-room-view="room"] #arena .stage-rings{display:block!important;position:absolute;inset:17% 17% 15%;border:1px solid rgba(var(--realm-light),.55);border-radius:50%;transform:perspective(600px) rotateX(23deg);opacity:.8;box-shadow:0 0 0 7px rgba(var(--realm-light),.035),0 0 0 8px rgba(var(--realm-light),.16),inset 0 0 35px rgba(var(--realm-light),.06),0 0 35px rgba(var(--realm-light),.06)}
body[data-room-view="room"] #arena .stage-rings:before{content:'';position:absolute;inset:-12%;border-radius:50%;border:1px dashed rgba(var(--realm-light),.2);animation:sanctum-orbit 65s linear infinite}
body[data-room-view="room"] #arena .stage-rings:after{content:'';position:absolute;inset:9%;border:1px solid rgba(var(--realm-light),.14);border-radius:50%;background:conic-gradient(from 0deg,transparent,rgba(var(--realm-light),.07),transparent 35%,transparent 70%,rgba(var(--realm-light),.06),transparent);animation:sanctum-orbit 45s linear infinite reverse}
body[data-room-view="room"] #arena .mascot:before{content:'';position:absolute;z-index:-1;left:-12%;right:-12%;bottom:0;height:20%;border-radius:50%;background:radial-gradient(ellipse,rgba(var(--realm-light),.18),rgba(var(--realm-ink),.65) 54%,transparent 72%);border-bottom:2px solid rgba(var(--realm-light),.45);box-shadow:0 8px 18px #0007;pointer-events:none}
body[data-room-view="room"] #arena .seat{clip-path:none;border-radius:50% 50% 9px 9px;background:rgba(var(--realm-light),.22);filter:none;box-shadow:0 3px 8px #0005;transition:background .25s,box-shadow .25s}
body[data-room-view="room"] #arena .seat:before{clip-path:none;border-radius:inherit;background:linear-gradient(145deg,#20252bf2,#0b1016f5)}
body[data-room-view="room"] #arena .seat.taken{background:rgba(var(--realm-light),.85);box-shadow:0 0 12px rgba(var(--realm-light),.13),0 3px 8px #0006}
body[data-room-view="room"] #arena .seat.taken:before{background:radial-gradient(ellipse at 50% 0,rgba(var(--realm-light),.3),rgba(var(--realm-ink),.95) 85%)}
body[data-room-view="room"] #arena .seat.taken .no,body[data-room-view="room"] #arena .seat.taken svg{color:rgb(var(--realm-light));fill:rgb(var(--realm-light))}
body[data-room-view="room"] #arena .seat.self{outline:1px solid #fff0c6;outline-offset:2px;box-shadow:0 0 17px rgba(var(--realm-light),.45)}
body[data-room-view="room"] .hall-crown .room-heading{font-size:20px;letter-spacing:6px;text-shadow:0 2px 15px rgba(var(--realm-light),.22)}
body[data-room-view="room"] .gather-core{border-radius:8px 20px;border-color:rgba(var(--realm-light),.35);background:linear-gradient(115deg,rgba(var(--realm-ink),.85),#101419db)}
body[data-room-view="room"] .entry-panel .btn-primary{box-shadow:inset 0 1px #fff6,0 4px 18px rgba(var(--realm-light),.16);letter-spacing:3px}
@keyframes sanctum-orbit{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){body[data-room-view="room"] #arena .stage-rings:before,body[data-room-view="room"] #arena .stage-rings:after{animation:none}}
body[data-motion="off"] #arena .stage-rings:before,body[data-motion="off"] #arena .stage-rings:after{animation:none}
/* Reserved dialogue lane: never overlays a seat, even while welcoming a new realm. */
body[data-room-view="room"] #guardian-dialogue{height:34px;min-height:34px;position:relative;flex:none;order:5;display:flex;align-items:center;justify-content:center;z-index:3}
body[data-room-view="room"] #guardian-dialogue .guardian-feedback{position:static;transform:none;max-width:100%;width:100%;margin:0;padding:4px 10px;box-sizing:border-box;border:0;border-left:2px solid rgba(var(--realm-light),.6);border-radius:0;background:linear-gradient(90deg,rgba(var(--realm-light),.07),transparent);font-size:10px;line-height:13px;color:rgb(var(--realm-light));box-shadow:none;max-height:34px;overflow:hidden;text-align:center}
body[data-room-view="room"] #guardian-dialogue .guardian-feedback[data-active="true"]{transform:none}
.withdrawal-identity{padding:12px 14px;border:1px solid #c5ab6c55;border-radius:12px;background:#171c20;display:grid;gap:7px;margin:8px 0;font-size:12px}
.withdrawal-identity code{overflow-wrap:anywhere;color:#e2c88e;font-size:11px}.withdrawal-identity small{color:#acb5ba}
body[data-room-view="room"] #participation-mode{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:8px;align-items:center;min-height:30px;margin:0;padding:2px 6px;font-variant-numeric:tabular-nums}
.btc-height-readout{display:flex;gap:6px;align-items:center;text-decoration:none;color:#e5cc94;min-width:0}.btc-height-readout small{font-size:9px;letter-spacing:1px;border:1px solid #bea76e44;border-radius:4px;padding:2px 4px}.btc-height-readout b{font:500 12px ui-monospace,monospace}.btc-estimate{display:flex;gap:7px;justify-content:flex-end;align-items:center;white-space:nowrap}.btc-estimate small{font-size:8px;color:#b9b5a6}.btc-estimate b{font:500 11px ui-monospace,monospace;color:#e3d1a7}
@media(max-width:350px){body[data-room-view="room"] #participation-mode{gap:4px;padding-inline:0}.btc-height-readout{gap:4px}.btc-height-readout b{font-size:11px}.btc-estimate{gap:4px}.btc-estimate small{font-size:7px}.btc-estimate b{font-size:10px}}

/* Explicit block-height label, with the full height on a separate line. */
body[data-room-view="room"] #participation-mode{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);min-height:36px;padding-block:3px}
.btc-height-readout{display:grid;gap:2px;align-content:center}.btc-height-readout small{border:0;padding:0;letter-spacing:.3px;font-size:9px;line-height:12px;white-space:nowrap}.btc-height-readout b{font-size:15px;line-height:17px;white-space:nowrap;overflow:visible}.btc-estimate{display:grid;gap:2px;justify-content:end;text-align:right}.btc-estimate small{font-size:9px;line-height:12px}.btc-estimate b{font-size:13px;line-height:17px}
@media(max-width:350px){.btc-height-readout small,.btc-estimate small{font-size:8px}.btc-height-readout b{font-size:14px}.btc-estimate b{font-size:12px}}
.live-room-progress{font-size:10px;line-height:15px;color:#e3ce95;text-decoration:none;text-align:center;max-width:100%;padding:3px 8px;border-bottom:1px solid #c1ac6a44}
/* Read-only waiting-state art preview. No game, wallet or ledger actions. */
.waiting-preview-controls{order:5;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;padding:2px 0;z-index:4}.waiting-preview-controls small{width:100%;text-align:center;font-size:8px;color:#b7ac91;line-height:12px;letter-spacing:1px}.waiting-preview-controls button{min-height:25px;padding:3px 12px;border:1px solid #b69f6155;border-radius:5px;background:#11181cdd;color:#b5b5ae;font-size:10px}.waiting-preview-controls button[aria-pressed="true"]{color:#f1d79c;border-color:#e1bd74;background:#68503155}.waiting-narrative{display:grid;gap:2px;text-align:center;font-size:10px;line-height:14px;color:rgb(var(--realm-light));max-width:100%}.witness-runes{display:flex;gap:12px;justify-content:center}.witness-runes i{font-style:normal;color:#777e7c;font-size:13px}.witness-runes .lit{color:rgb(var(--realm-light));text-shadow:0 0 8px rgba(var(--realm-light),.6)}
body:is([data-witness-preview="sealed"],[data-arena-witness="sealed"]) #arena .stage-rings{animation:sealed-light 1.4s ease-out 1}body:is([data-witness-preview="sealed"],[data-arena-witness="sealed"]) #arena .seat.taken{animation:sealed-seat .9s ease-out both;animation-delay:var(--seat-delay)}
body:is([data-witness-preview="waiting"],[data-arena-witness="waiting"]) #arena .stage-rings:before{border-style:solid;border-top-color:rgb(var(--realm-light));border-right-color:transparent;animation:sanctum-orbit 32s linear infinite}
body:is([data-witness-preview="confirming"],[data-arena-witness="confirming"]) #arena .stage-rings{border-color:rgba(var(--realm-light),.85)}body[data-witness-preview="confirming"] .witness-runes .lit{animation:rune-breathe 3s ease-in-out infinite}
@keyframes sealed-light{0%{opacity:.1;transform:perspective(600px) rotateX(23deg) scale(1.12)}75%{opacity:1}100%{opacity:.8;transform:perspective(600px) rotateX(23deg) scale(1)}}
@keyframes sealed-seat{0%{opacity:.45}55%{opacity:1;filter:brightness(1.5)}100%{opacity:1;filter:brightness(1)}}
@keyframes rune-breathe{0%,100%{opacity:.6}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){body[data-witness-preview] #arena .stage-rings,body[data-witness-preview] #arena .stage-rings:before,body[data-witness-preview] #arena .seat.taken,body[data-witness-preview] .witness-runes .lit{animation:none!important}}
body[data-motion="off"][data-witness-preview] #arena .stage-rings,body[data-motion="off"][data-witness-preview] #arena .stage-rings:before,body[data-motion="off"][data-witness-preview] #arena .seat.taken,body[data-motion="off"][data-witness-preview] .witness-runes .lit{animation:none!important}
/* Seat seals and lucky clovers occupy the existing person-icon area, never the seat number. */
body:is([data-witness-preview="sealed"],[data-arena-witness="sealed"]) #arena .seat svg,body:is([data-witness-preview="waiting"],[data-arena-witness="waiting"]) #arena .seat svg{opacity:0}
body:is([data-witness-preview="sealed"],[data-arena-witness="sealed"]) #arena .seat:after,body:is([data-witness-preview="waiting"],[data-arena-witness="waiting"]) #arena .seat:after{content:'';position:absolute;left:50%;bottom:12%;width:34%;height:34%;background:rgb(var(--realm-light));transform:translateX(-50%);pointer-events:none;mask-size:contain;mask-position:center;mask-repeat:no-repeat}
body:is([data-witness-preview="sealed"],[data-arena-witness="sealed"]) #arena .seat:after{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M6 10V7a6 6 0 0 1 12 0v3h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2Zm3 0h6V7a3 3 0 0 0-6 0Zm2 5v4h2v-4Z'/%3E%3C/svg%3E");animation:seat-lock-in .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--seat-delay)}
body:is([data-witness-preview="waiting"],[data-arena-witness="waiting"]) #arena .seat:after{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M11 11C1 13 0 6 4 3c4-3 8 2 7 8Zm2 0C11 1 18 0 21 4c3 4-2 8-8 7Zm0 2c10-2 11 5 7 8-4 3-8-2-7-8Zm-2 0c2 10-5 11-8 7-3-4 2-8 8-7Zm1-2 2 2-2 2-2-2Z'/%3E%3C/svg%3E");animation:lucky-seat-glimmer 4.8s ease-in-out infinite;animation-delay:calc(var(--seat-delay)*3)}
@keyframes seat-lock-in{0%{opacity:0;transform:translate(-50%,-4px) scale(1.25)}70%{opacity:1;transform:translate(-50%,1px) scale(.92)}100%{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes lucky-seat-glimmer{0%,65%,100%{opacity:.55;transform:translate(-50%,0) scale(.95)}35%{opacity:1;transform:translate(-50%,-1px) scale(1.08)}}
/* Three carved witness seals, joined by a light channel. */
body[data-witness-preview="confirming"] #guardian-dialogue{height:58px;min-height:58px}
body[data-witness-preview="confirming"] .waiting-narrative>span:first-child{display:none}
.witness-runes{gap:28px;align-items:center;height:56px;position:relative;isolation:isolate}
.witness-runes:before{content:'';position:absolute;z-index:-1;left:20px;right:20px;top:23px;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--realm-light),.55),transparent)}
.witness-sigil{position:relative;display:grid;justify-items:center;width:46px;height:55px;color:#777d89}
.witness-sigil svg{width:46px;height:46px;stroke:currentColor;stroke-width:1;overflow:visible}
.witness-sigil .rune-inner{opacity:.45;stroke-width:.7}.witness-sigil .rune-glyph{stroke-width:2;opacity:.65}.rune-ordinal{font:8px/9px Georgia,serif;letter-spacing:2px;opacity:.65}
.witness-sigil.lit{color:rgb(var(--realm-light));background:radial-gradient(circle at 50% 42%,rgba(var(--realm-light),.2),transparent 66%)}
.witness-sigil.lit .rune-glyph{opacity:1;filter:drop-shadow(0 0 3px rgba(var(--realm-light),.65))}.witness-sigil.lit .rune-inner{opacity:.85}.witness-sigil.lit .rune-orbit{transform-origin:32px 32px;animation:rune-carved-orbit 32s linear infinite}.witness-sigil.lit .rune-ordinal{opacity:1}
.witness-sigil.lit:after{content:'✦';position:absolute;right:-4px;top:0;font-size:9px;color:rgb(var(--realm-light));animation:rune-spark 3.2s ease-in-out infinite;pointer-events:none}
@keyframes rune-carved-orbit{to{transform:rotate(360deg)}}@keyframes rune-spark{0%,100%{opacity:.15;transform:scale(.65)}50%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){body[data-witness-preview] #arena .seat:after,.witness-sigil.lit .rune-orbit,.witness-sigil.lit:after{animation:none!important}}
body[data-motion="off"] #arena .seat:after,body[data-motion="off"] .witness-sigil.lit .rune-orbit,body[data-motion="off"] .witness-sigil.lit:after{animation:none!important}

body[data-witness-preview] .mine,body[data-witness-preview] .arena-caption{display:none!important}
body[data-witness-preview] #join-btn{font-size:clamp(14px,4vw,20px);letter-spacing:1px;white-space:nowrap}
body:is([data-witness-preview="sealed"],[data-arena-witness="sealed"]) #arena .seat:after,body:is([data-witness-preview="waiting"],[data-arena-witness="waiting"]) #arena .seat:after{width:40%;height:40%;bottom:8%}
/* A sealed seat is visibly unavailable throughout all three witness stages. */
body[data-room-view="room"] #arena .seat:disabled{opacity:1;cursor:default;pointer-events:none}
body[data-arena-witness="confirming"] #arena .seat svg{opacity:0}
body[data-arena-witness="confirming"] #arena .seat:after{content:'';position:absolute;left:50%;bottom:8%;width:40%;height:40%;transform:translateX(-50%);background:rgb(var(--realm-light));mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M6 10V7a6 6 0 0 1 12 0v3h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2Zm3 0h6V7a3 3 0 0 0-6 0Z'/%3E%3C/svg%3E") center/contain no-repeat;animation:witness-seat-pulse 4.2s ease-in-out infinite;animation-delay:var(--seat-delay);pointer-events:none}
@keyframes witness-seat-pulse{0%,70%,100%{opacity:.55}35%{opacity:1}}
@media(prefers-reduced-motion:reduce){body[data-arena-witness="confirming"] #arena .seat:after{animation:none}}
body[data-motion="off"][data-arena-witness="confirming"] #arena .seat:after{animation:none}
body[data-arena-witness="confirming"]:not([data-witness-preview]) #guardian-dialogue{height:58px;min-height:58px}
body[data-arena-witness="confirming"] .live-room-progress{border:0;padding:0;line-height:0;display:block}

/* The same hall stays mounted as the three witnesses hand off to the reveal. */
body[data-witness-transition="converge"] .witness-sigil.lit{animation:witness-converge 1s cubic-bezier(.22,.61,.36,1) both}
body[data-witness-transition="converge"] .witness-sigil:nth-child(1){--rune-travel:34px}
body[data-witness-transition="converge"] .witness-sigil:nth-child(2){--rune-travel:0px}
body[data-witness-transition="converge"] .witness-sigil:nth-child(3){--rune-travel:-34px}
body[data-witness-transition="reveal"] #guardian-dialogue{pointer-events:none}
.waiting-preview-controls{flex-wrap:wrap}
.waiting-preview-controls [data-outcome]{color:var(--gold,#f0ce85)}
@keyframes witness-converge{0%,30%{transform:translateX(0) scale(1);filter:drop-shadow(0 0 5px currentColor)}70%{transform:translateX(var(--rune-travel)) scale(1.12);filter:drop-shadow(0 0 15px currentColor)}100%{transform:translate(var(--rune-travel),24px) scale(.3);opacity:0}}
@media(prefers-reduced-motion:reduce){body[data-witness-transition="converge"] .witness-sigil.lit{animation:none}}
/* Keep animated canvas descendants contained beneath dialogue and modal layers. */
.app{isolation:isolate}
#arena{z-index:0}
#guardian-dialogue{isolation:isolate;z-index:5!important}
#sheet.sheet-backdrop{isolation:isolate;z-index:1000}
body[data-modal-open="true"] #mascot{visibility:hidden}
body[data-modal-open="true"] #guardian-dialogue{visibility:hidden}
body[data-arena-witness="confirming"] #guardian-dialogue{height:58px;min-height:58px}
body[data-arena-witness="confirming"] .live-room-progress{padding:0;border:0}
body[data-arena-witness="confirming"] #mascot{isolation:isolate}
body[data-modal-open="true"] :is(#mascot,#guardian-cover),body[data-modal-open="true"] :is(#mascot,#guardian-cover) *{visibility:hidden!important}
/* Dialogue is below the arena; witness runes exclusively occupy the upper lane. */
body[data-room-view="room"] .arena-footer{height:36px;min-height:36px;flex:none;isolation:isolate}
.arena-footer .guardian-feedback{position:absolute;inset:0 82px 0 0;left:0;top:0;width:auto;max-width:none;max-height:36px;transform:none;display:flex;align-items:center;justify-content:center;padding:2px 8px;border:0;border-left:2px solid rgba(var(--realm-light,231,192,114),.6);border-radius:6px;background:#151b20;color:rgb(var(--realm-light,231,192,114));font-size:11px;line-height:16px;box-sizing:border-box;box-shadow:none;overflow:hidden;text-align:left;z-index:2}
.arena-footer .guardian-feedback[data-active="true"]{transform:none}
.arena-footer[data-speaking="true"] :is(.remaining,.live-dot){visibility:hidden}
body[data-modal-open="true"] .arena-footer .guardian-feedback{visibility:hidden!important}
/* Personal seat uses one consistent accent across all four realms. */
body[data-room-view] #arena .seat.self{background:#85f5df;outline:1px solid #b9fff0;outline-offset:2px;box-shadow:0 0 12px #48eac655,0 3px 8px #0006}
body[data-room-view] #arena .seat.self:before{background:radial-gradient(ellipse at 50% 0,#27665c,#102e30 85%)}
body[data-room-view] #arena .seat.self .no,body[data-room-view] #arena .seat.self svg{color:#cafff2;fill:#cafff2}
body[data-room-view] #arena .seat.self:after{background:#b9fff0!important}
body[data-room-view] #arena .seat.self .badge{background:#a5ffdf;color:#103d36;border:1px solid #d4fff2;font-weight:700}
/* Pending receipt: recurring light, never a fabricated completion countdown. */
body[data-arena-finalizing="true"] .witness-runes:after{content:'';position:absolute;left:0;top:23px;width:22px;height:2px;background:linear-gradient(90deg,transparent,rgb(var(--realm-light)),transparent);box-shadow:0 0 9px rgba(var(--realm-light),.7);pointer-events:none;animation:receipt-thread 3.4s ease-in-out infinite}
body[data-arena-finalizing="true"] .witness-sigil.lit .rune-orbit{animation-duration:12s}
body[data-arena-finalizing="true"] #arena .stage-rings:after{background:conic-gradient(transparent 65%,rgba(var(--realm-light),.04) 77%,rgba(var(--realm-light),.22) 93%,transparent);animation:sanctum-orbit 14s linear infinite}
body[data-arena-finalizing="true"] #arena .stage-rings:before{animation:receipt-breathe 3.4s ease-in-out infinite;border-style:solid}
@keyframes receipt-thread{0%{transform:translateX(0);opacity:0}20%{opacity:1}80%{opacity:1}100%{transform:translateX(160px);opacity:0}}
@keyframes receipt-breathe{0%,100%{opacity:.3}50%{opacity:.9}}
@media(prefers-reduced-motion:reduce){body[data-arena-finalizing="true"] .witness-runes:after,body[data-arena-finalizing="true"] #arena .stage-rings:before,body[data-arena-finalizing="true"] #arena .stage-rings:after{animation:none}}
body[data-motion="off"][data-arena-finalizing="true"] .witness-runes:after,body[data-motion="off"][data-arena-finalizing="true"] #arena .stage-rings:before,body[data-motion="off"][data-arena-finalizing="true"] #arena .stage-rings:after{animation:none}
.join-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.join-mode-switch button{padding:13px 10px;border-radius:12px;border:1px solid #bba16a55;background:#141b21;color:#d0c9b7;font:inherit}
.join-mode-switch button[aria-pressed="true"]{background:linear-gradient(135deg,#514025,#302519);border-color:#f1ce80;color:#fff0be;box-shadow:inset 0 0 18px #dfb55715}
.join-quota{font-size:12px;color:#d8c38c;margin:0;text-align:center}
.auto-join-options{padding:12px;border:1px solid #d1ba7240;border-radius:12px;background:#10171c}
.auto-join-options label{display:grid;grid-template-columns:1fr 80px;gap:10px;align-items:center;font-size:13px}
.auto-join-options input{width:100%;min-height:38px;padding:7px;box-sizing:border-box}
.join-confirm .note{font-size:11px;line-height:1.6}
.sheet:has(.join-confirm-footer){display:flex;flex-direction:column;max-height:calc(100dvh - 18px);overflow:hidden;padding-bottom:max(12px,env(safe-area-inset-bottom))}
.sheet:has(.join-confirm-footer)>.sheet-head{flex-shrink:0}
.sheet:has(.join-confirm-footer)>#sheet-body{min-height:0;overflow:auto;overscroll-behavior:contain}
.join-confirm-footer{flex:none;padding-top:10px;border-top:1px solid #bda15b33;background:#1a201e}
.join-confirm-footer .btn-primary{width:100%;min-height:52px}
.join-confirm-footer .err:empty{display:none}
