:root{color-scheme:dark;--color-bg: #140f0b;--color-bg-elevated: #1d1610;--color-surface: rgb(29 22 16 / .9);--color-surface-raised: #2a2018;--color-surface-hover: rgb(255 255 255 / .06);--color-overlay: rgb(8 5 3 / .6);--color-border: rgb(217 180 90 / .24);--color-border-strong: rgb(217 180 90 / .55);--color-text: #f7efe0;--color-text-muted: #c4b49a;--color-text-subtle: #8f826f;--color-text-on-accent: #24160a;--color-accent: #d9b45a;--color-accent-strong: #f4d58d;--color-accent-soft: rgb(217 180 90 / .16);--color-success: #57d27a;--color-warning: #f0b45a;--color-danger: #ef6a5f;--color-focus: #ffe3a1;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-serif: "Iowan Old Style", "Palatino Linotype", Georgia, "Times New Roman", serif;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-md: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.25rem;--text-2xl: 1.75rem;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.65;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--tracking-caps: .06em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-full: 999px;--shadow-1: 0 2px 8px rgb(0 0 0 / .3);--shadow-2: 0 12px 40px rgb(0 0 0 / .45);--blur-surface: blur(8px);--duration-fast: .12s;--duration-base: .2s;--duration-slow: .32s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-exit: cubic-bezier(.3, 0, 1, 1);--z-hud: 10;--z-menu: 20;--z-sheet: 30;--z-dialog: 40;--z-toast: 50;--z-boot: 100;--touch-target: 2.75rem;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--edge: var(--space-2)}@media(min-width:40rem){:root{--edge: var(--space-3)}}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-base: 0ms;--duration-slow: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:100%;line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.icon{width:1.25em;height:1.25em;flex:none;stroke-width:1.75}.scene{position:fixed;inset:0;width:100%;height:100%;display:block}.boot{position:fixed;inset:0;z-index:var(--z-boot);display:grid;place-content:center;justify-items:center;gap:var(--space-6);background:radial-gradient(ellipse at 50% 35%,#3a2616,var(--color-bg) 70%);transition:opacity var(--duration-slow) var(--ease-exit)}.boot.is-hidden{opacity:0;pointer-events:none}.boot__mark{width:4.5rem;height:4.5rem;color:var(--color-accent)}.boot__progress{width:2rem;height:2rem;border-radius:var(--radius-full);border:2px solid var(--color-accent-soft);border-top-color:var(--color-accent);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.surface{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);backdrop-filter:var(--blur-surface);-webkit-backdrop-filter:var(--blur-surface)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch-target);padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-tight);transition:background-color var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),opacity var(--duration-fast)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;pointer-events:none}.btn--primary{background:linear-gradient(180deg,var(--color-accent-strong),var(--color-accent));color:var(--color-text-on-accent);box-shadow:0 6px 18px #d9b45a4d}.btn--secondary{background:var(--color-surface-raised);border:1px solid var(--color-border)}.btn--ghost{color:var(--color-accent-strong)}.btn--ghost:hover,.btn--secondary:hover{background:var(--color-surface-hover)}.btn--danger{color:var(--color-danger)}.btn--block{width:100%}.btn--small{min-height:2.25rem;padding:0 var(--space-3);font-size:var(--text-sm)}.btn--icon{width:var(--touch-target);padding:0;border-radius:var(--radius-md);color:var(--color-text)}.btn--icon:hover{background:var(--color-surface-hover)}.field{display:grid;gap:var(--space-2)}.field__label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted)}.field__hint{font-size:var(--text-xs);color:var(--color-text-subtle);line-height:var(--leading-normal)}.field__error{font-size:var(--text-xs);color:var(--color-danger)}.input{width:100%;min-height:var(--touch-target);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:#0000004d;font-size:1rem;user-select:text;-webkit-user-select:text;transition:border-color var(--duration-fast)}.input:focus{outline:none;border-color:var(--color-border-strong)}.input[aria-invalid=true]{border-color:var(--color-danger)}textarea.input{min-height:6rem;resize:vertical}select.input{appearance:none;padding-right:var(--space-8);background-image:linear-gradient(45deg,transparent 50%,var(--color-text-muted) 50%),linear-gradient(135deg,var(--color-text-muted) 50%,transparent 50%);background-position:calc(100% - 1.15rem) 50%,calc(100% - .8rem) 50%;background-size:.35rem .35rem;background-repeat:no-repeat}.checkbox{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal)}.checkbox input{width:1.25rem;height:1.25rem;margin:.1rem 0 0;accent-color:var(--color-accent);flex:none}.link{color:var(--color-accent-strong);text-decoration:underline;text-underline-offset:2px;font-weight:var(--weight-medium)}.segmented{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-md);background:#0000004d;border:1px solid var(--color-border)}.segmented__option{min-height:2.5rem;border-radius:var(--radius-sm);font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-text-muted);transition:background-color var(--duration-fast)}.segmented__option[aria-checked=true]{background:var(--color-accent);color:var(--color-text-on-accent);font-weight:var(--weight-semibold)}.setting{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid rgb(255 255 255 / .06)}.setting__text{display:grid;gap:var(--space-1)}.setting__hint{font-size:var(--text-xs);color:var(--color-text-subtle)}.switch{position:relative;width:3rem;height:1.75rem;flex:none;appearance:none;margin:0;border-radius:var(--radius-full);background:#4a4038;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard)}.switch:after{content:"";position:absolute;top:.1875rem;left:.1875rem;width:1.375rem;height:1.375rem;border-radius:var(--radius-full);background:#fff;box-shadow:var(--shadow-1);transition:transform var(--duration-base) var(--ease-standard)}.switch:checked{background:var(--color-accent)}.switch:checked:after{transform:translate(1.25rem)}.sheet,.dialog{padding:0;border:1px solid var(--color-border);background:var(--color-bg-elevated);color:var(--color-text);box-shadow:var(--shadow-2)}.sheet::backdrop,.dialog::backdrop{background:var(--color-overlay)}.sheet{width:min(40rem,calc(100% - 2 * var(--edge)));max-height:calc(100% - var(--safe-top) - var(--safe-bottom) - 2 * var(--edge));border-radius:var(--radius-xl);overflow:hidden}.sheet[open]{display:flex;flex-direction:column;animation:rise var(--duration-slow) var(--ease-standard)}.sheet__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-5);border-bottom:1px solid var(--color-border)}.sheet__title{margin:0;font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-accent-strong)}.sheet__body:focus{outline:none}.sheet__body{padding:var(--space-4) var(--space-5) var(--space-6);overflow-y:auto;touch-action:pan-y;font-size:var(--text-md);line-height:var(--leading-relaxed);user-select:text;-webkit-user-select:text}@media(max-width:40rem){.sheet{width:100%;max-width:none;margin:auto 0 0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-bottom:0;max-height:calc(100% - var(--safe-top) - var(--space-6));padding-bottom:var(--safe-bottom)}}.dialog{width:min(22rem,calc(100% - 2 * var(--space-6)));border-radius:var(--radius-xl)}.dialog[open]{animation:pop var(--duration-base) var(--ease-standard)}.dialog__body{padding:var(--space-6) var(--space-5) var(--space-4);text-align:center}.dialog__icon{width:2.5rem;height:2.5rem;margin-bottom:var(--space-3);color:var(--color-accent)}.dialog__title{margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.dialog__text{margin:0;font-size:var(--text-md);color:var(--color-text-muted);line-height:var(--leading-normal)}.dialog__actions{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-4)}.dialog__actions .btn{flex:1}@keyframes rise{0%{transform:translateY(1.5rem);opacity:0}}@keyframes pop{0%{transform:scale(.95);opacity:0}}.toast-region{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 13rem);z-index:var(--z-toast);transform:translate(-50%);width:max-content;max-width:calc(100% - 2 * var(--space-4));pointer-events:none}.toast{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:#140d08f0;border:1px solid var(--color-border);box-shadow:var(--shadow-1);font-size:var(--text-sm);text-align:center;opacity:0;transform:translateY(.5rem);transition:opacity var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard)}.toast.is-visible{opacity:1;transform:none}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:var(--space-2) 0 var(--space-4)}.button-row{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.button-row .btn{flex:1}.section-title{margin:var(--space-5) 0 var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-accent)}.section-title:first-child{margin-top:0}.text-muted{color:var(--color-text-muted);font-size:var(--text-sm)}.scripture{font-family:var(--font-serif);font-size:var(--text-lg)}.paragraph{margin:0 0 var(--space-3)}.list{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.list__button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--touch-target);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-hover);text-align:left}.list__button:hover{background:#ffffff17}.entry{padding:var(--space-3) 0;border-bottom:1px solid rgb(255 255 255 / .06)}.entry__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-subtle)}.entry__actions{display:flex;gap:var(--space-1)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin-bottom:var(--space-4)}.stats__item{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-2);border-radius:var(--radius-md);background:var(--color-surface-hover);text-align:center;font-size:var(--text-xs);color:var(--color-text-muted)}.stats__value{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-accent-strong);line-height:1}.celebration{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-2) 0;text-align:center}.celebration__icon{width:3rem;height:3rem;color:var(--color-accent)}.celebration__headline{margin:0;font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-accent-strong)}.room{display:grid;gap:var(--space-4)}.room__line{display:grid;gap:var(--space-1)}.room__speaker{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-accent)}.room__text{margin:0;font-family:var(--font-serif);font-size:var(--text-lg);line-height:var(--leading-relaxed)}.room__answer{margin:0;padding:var(--space-3);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent-soft);font-family:var(--font-serif)}.room__choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:var(--space-3)}.room__choice{display:grid;justify-items:start;gap:var(--space-1);min-height:var(--touch-target);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-raised);color:var(--color-text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-standard)}.room__choice:hover{border-color:var(--color-border-strong)}.room__choice:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.room__choice .icon{width:1.75rem;height:1.75rem;color:var(--color-accent)}.room__choice strong{font-size:var(--text-md)}.room__choice span{font-size:var(--text-sm);color:var(--color-text-muted)}.room__examination{margin:0;padding-left:var(--space-5);display:grid;gap:var(--space-1);color:var(--color-text-muted)}.room__note{margin:0;font-size:var(--text-sm);color:var(--color-text-subtle)}.room__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.field__optional{font-weight:var(--weight-regular);color:var(--color-text-subtle)}.onboarding{position:fixed;inset:0;z-index:var(--z-sheet);display:flex;overflow-y:auto;padding:calc(var(--safe-top) + var(--space-4)) var(--space-4) calc(var(--safe-bottom) + var(--space-4));background:radial-gradient(ellipse at 50% 15%,#5a3a1ed9,#0e0a07f7 70%);touch-action:pan-y}.onboarding__card{width:min(28rem,100%);margin:auto;padding:var(--space-6) var(--space-5);display:grid;gap:var(--space-4);box-shadow:var(--shadow-2)}.onboarding__header{display:grid;justify-items:center;gap:var(--space-2);text-align:center}.onboarding__mark{width:3rem;height:3rem;color:var(--color-accent)}.onboarding__title{margin:0;font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--color-accent-strong);line-height:var(--leading-tight)}.onboarding__tagline{margin:0;font-size:var(--text-md);color:var(--color-text-muted)}.onboarding__note{font-size:var(--text-sm);color:var(--color-text-muted)}.onboarding__note summary{cursor:pointer;color:var(--color-accent-strong);font-weight:var(--weight-medium);min-height:var(--touch-target);display:flex;align-items:center}.onboarding__note p{margin:0 0 var(--space-2)}.hud{position:fixed;inset:0;z-index:var(--z-hud);pointer-events:none}.hud>*{pointer-events:auto}.topbar{position:absolute;top:calc(var(--safe-top) + var(--edge));left:calc(var(--safe-left) + var(--edge));right:calc(var(--safe-right) + var(--edge));display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-4);font-size:var(--text-sm)}.topbar__parish{display:grid;min-width:0;line-height:var(--leading-tight)}.topbar__name{font-weight:var(--weight-semibold);color:var(--color-accent-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar__clock{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.topbar__schedule{flex:1;display:grid;text-align:center;line-height:var(--leading-tight);font-size:var(--text-xs);color:var(--color-text-muted)}.topbar__schedule strong{font-size:var(--text-sm);color:var(--color-text);font-weight:var(--weight-semibold)}.presence{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.presence__dot{width:.5rem;height:.5rem;border-radius:var(--radius-full);background:var(--color-text-subtle)}.presence__dot[data-state=online]{background:var(--color-success);box-shadow:0 0 6px var(--color-success)}.presence__dot[data-state=connecting]{background:var(--color-warning)}.liturgy{position:absolute;top:calc(var(--safe-top) + var(--edge) + 3.75rem);left:50%;transform:translate(-50%);width:min(45rem,calc(100% - 2 * var(--edge) - var(--safe-left) - var(--safe-right)));padding:var(--space-3) var(--space-4) var(--space-3)}.liturgy__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.liturgy__segment{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-accent)}.liturgy__posture{margin-left:auto;flex:none;white-space:nowrap;font-size:var(--text-xs);color:var(--color-text-muted)}.liturgy__toggle{width:2rem;min-height:2rem;color:var(--color-text-muted)}.liturgy__speaker{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted)}.liturgy__speaker[data-speaker=people]{color:var(--color-accent-strong);font-weight:var(--weight-semibold)}.liturgy__text{margin-top:var(--space-1);max-height:24vh;overflow-y:auto;font-family:var(--font-serif);font-size:var(--text-lg);line-height:var(--leading-normal);touch-action:pan-y}.liturgy__text[data-speaker=cue]{font-style:italic;color:var(--color-text-muted)}.liturgy.is-collapsed .liturgy__speaker,.liturgy.is-collapsed .liturgy__text{display:none}.liturgy__invitation{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-accent-soft);color:var(--color-accent-strong);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.progress{height:3px;margin-top:var(--space-2);border-radius:var(--radius-full);background:#ffffff1a;overflow:hidden}.progress__bar{height:100%;width:100%;transform-origin:left;transform:scaleX(0);background:var(--color-accent);transition:transform 1s linear}.menu{position:absolute;top:calc(var(--safe-top) + var(--edge) + 3.5rem);right:calc(var(--safe-right) + var(--edge));z-index:var(--z-menu);display:grid;min-width:15rem;padding:var(--space-1);box-shadow:var(--shadow-2)}.menu__item{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-target);padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-md);text-align:left}.menu__item:hover,.menu__item:focus-visible{background:var(--color-surface-hover)}.menu__item .icon{color:var(--color-accent)}.menu__divider{height:1px;margin:var(--space-1) var(--space-2);background:var(--color-border)}.joystick{position:absolute;left:calc(var(--safe-left) + var(--space-5));bottom:calc(var(--safe-bottom) + var(--space-5));width:7rem;height:7rem;border-radius:var(--radius-full);background:#00000040;border:2px solid rgb(255 255 255 / .16);touch-action:none}.joystick__knob{position:absolute;inset:50% auto auto 50%;width:3rem;height:3rem;margin:-1.5rem 0 0 -1.5rem;border-radius:var(--radius-full);background:#f4d58d8c;border:2px solid rgb(255 255 255 / .4)}@media(hover:hover)and (pointer:fine){.joystick{display:none}}.actions{position:absolute;right:calc(var(--safe-right) + var(--edge));bottom:calc(var(--safe-bottom) + var(--edge));display:grid;justify-items:end;gap:var(--space-2)}.actions__postures{width:auto}.actions__postures .segmented__option{min-height:2.25rem;padding:0 var(--space-3);font-size:var(--text-sm)}.actions__gestures{display:grid;grid-template-columns:repeat(3,3.75rem);gap:var(--space-2)}.gesture-button{display:grid;justify-items:center;align-content:center;gap:.125rem;height:3.5rem;border-radius:var(--radius-md);font-size:var(--text-2xs);font-weight:var(--weight-medium);transition:transform var(--duration-fast) var(--ease-standard)}.gesture-button .icon{width:1.375rem;height:1.375rem;color:var(--color-accent-strong)}.gesture-button:active{transform:scale(.94)}.gesture-button[data-invited=true]{border-color:var(--color-accent-strong);animation:invite 1.1s var(--ease-standard) infinite}@keyframes invite{50%{box-shadow:0 0 0 .5rem #f4d58d00}0%,to{box-shadow:0 0 #f4d58db3}}@media(max-width:40rem){.topbar{gap:var(--space-2);padding-left:var(--space-3)}.liturgy{top:calc(var(--safe-top) + var(--edge) + 3.5rem);padding:var(--space-2) var(--space-3)}.liturgy__text{font-size:var(--text-md);max-height:20vh}.joystick{width:6.5rem;height:6.5rem}.actions__gestures{grid-template-columns:repeat(3,3.375rem)}.gesture-button{height:3.25rem}}@media(max-height:30rem){.liturgy{left:calc(var(--safe-left) + var(--edge));transform:none;width:min(32rem,calc(100% - 21rem))}.liturgy__text{max-height:28vh}.joystick{width:6rem;height:6rem}}.queue-chip{position:absolute;top:calc(var(--safe-top) + var(--edge) + 3.75rem);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-2);width:max-content;max-width:calc(100% - 2 * var(--edge) - var(--safe-left) - var(--safe-right));padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);font-size:var(--text-sm)}.queue-chip>.icon{flex:none;color:var(--color-accent)}.queue-chip__text{min-width:0}.queue-chip .btn{flex:none}.liturgy:not([hidden])~.queue-chip{display:none}.next-mass{display:grid;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-accent-soft)}.next-mass__info{display:grid;gap:.125rem;text-align:center}.next-mass__title{font-family:var(--font-serif);font-size:var(--text-lg)}.next-mass__detail{color:var(--color-text-muted);font-size:var(--text-sm)}.next-mass__join{min-height:3.25rem;font-size:var(--text-md)}.next-mass__consent{font-size:var(--text-sm)}.character{display:grid;gap:var(--space-3)}.character__stage{position:relative;border-radius:var(--radius-lg);background:radial-gradient(ellipse at 50% 35%,#ffecc82e,#00000040 75%);border:1px solid var(--color-border);overflow:hidden}.character__preview{display:block;width:100%;height:13rem;touch-action:none;cursor:grab}.character__random{position:absolute;right:var(--space-2);bottom:var(--space-2)}.character__rows{display:grid;gap:var(--space-3)}.character__row{display:grid;gap:var(--space-1)}.character__label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-caps)}.swatches,.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.swatch{width:2.25rem;height:2.25rem;border-radius:var(--radius-full);background:var(--swatch);border:2px solid rgb(255 255 255 / .25);box-shadow:inset 0 0 0 1px #00000040;transition:transform var(--duration-fast) var(--ease-standard)}.swatch[aria-checked=true]{border-color:var(--color-accent-strong);box-shadow:0 0 0 3px var(--color-accent-soft),inset 0 0 0 1px #00000040;transform:scale(1.08)}.chip{min-height:2.25rem;padding:0 var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border-strong);font-size:var(--text-sm);color:var(--color-text)}.chip[aria-checked=true]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent);font-weight:var(--weight-semibold)}.interact{position:absolute;left:50%;bottom:calc(var(--safe-bottom) + var(--edge));transform:translate(-50%);width:min(24rem,calc(100% - 2 * var(--edge) - var(--safe-left) - var(--safe-right)));padding:var(--space-3);display:grid;gap:var(--space-2);pointer-events:auto;animation:interact-in var(--duration-base) var(--ease-standard)}.interact__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.interact__title{flex:1;font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.interact__actions{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.interact__action{display:grid;justify-items:center;gap:.125rem;min-height:var(--touch-target);padding:var(--space-2) var(--space-1);border-radius:var(--radius-md);background:var(--color-surface-raised);font-size:var(--text-2xs);font-weight:var(--weight-medium);transition:transform var(--duration-fast) var(--ease-standard)}.interact__action .icon{width:1.375rem;height:1.375rem;color:var(--color-accent-strong)}.interact__action:active{transform:scale(.94)}.hud--interacting .joystick,.hud--interacting .actions{display:none}@keyframes interact-in{0%{opacity:0;transform:translate(-50%,.5rem)}}.live-bar{position:absolute;bottom:calc(var(--safe-bottom) + var(--edge) + 11rem);right:calc(var(--safe-right) + var(--edge));display:flex;align-items:center;gap:var(--space-2);pointer-events:auto}.hud--clean .live-bar{bottom:calc(var(--safe-bottom) + var(--edge))}.live-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:.25rem var(--space-2);border-radius:var(--radius-sm);background:#e0243a;color:#fff;font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-caps)}.live-badge__dot{width:.5rem;height:.5rem;border-radius:var(--radius-full);background:#fff;animation:live-pulse 1.4s ease-in-out infinite}@keyframes live-pulse{50%{opacity:.3}}.hud--clean .menu,.hud--clean .joystick,.hud--clean .actions,.hud--clean .queue-chip,.hud--clean .interact,.hud--clean .topbar .btn--icon{display:none}.hud--clean .live-bar__end{opacity:.35}.hud--clean .live-bar__end:hover,.hud--clean .live-bar__end:focus-visible{opacity:1}.sheet__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4)}@media(prefers-reduced-motion:reduce){.interact,.live-badge__dot{animation:none}}.world-fade{position:fixed;inset:0;z-index:var(--z-toast);background:var(--color-bg);opacity:0;pointer-events:none;transition:opacity var(--duration-slow) var(--ease-standard)}.world-fade.is-visible{opacity:1}.led-layer{position:fixed!important;inset:0;overflow:hidden;pointer-events:none;background:#000}.led-layer__frame,.led-layer__video,.led-layer__frame iframe{width:100%;height:100%;border:0;pointer-events:none}.prompt-chip{z-index:1}.prompt-chip>.icon{color:var(--color-accent-strong)}.prompt-chip .btn{white-space:nowrap}.now-playing{position:absolute;top:calc(var(--safe-top) + var(--edge) + 3.75rem);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-2);width:min(26rem,calc(100% - 2 * var(--edge) - var(--safe-left) - var(--safe-right)));padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3)}.prompt-chip:not([hidden])~.now-playing{top:calc(var(--safe-top) + var(--edge) + 7.25rem)}.now-playing>.icon{flex:none;color:var(--color-accent-strong)}.now-playing__text{flex:1;display:grid;min-width:0;min-height:var(--touch-target);align-content:center;text-align:left;line-height:var(--leading-tight)}.now-playing__title,.now-playing__by{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-playing__title{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.now-playing__by{font-size:var(--text-xs);color:var(--color-text-muted)}.now-playing[data-muted=true] .now-playing__sound{color:var(--color-text-on-accent);background:var(--color-accent);animation:invite 1.1s var(--ease-standard) infinite}.now-playing__hint{position:absolute;top:calc(var(--safe-top) + var(--edge) + 7.5rem);left:50%;transform:translate(-50%);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill, 999px);color:var(--color-text-on-accent);background:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;animation:invite 1.1s var(--ease-standard) infinite}.date-card{position:absolute;left:50%;bottom:calc(var(--safe-bottom, 0px) + 13rem);z-index:2;transform:translate(-50%);display:grid;gap:var(--space-2);width:min(26rem,calc(100% - 2 * var(--edge) - var(--safe-left) - var(--safe-right)));padding:var(--space-3)}.date-card__text{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--leading-tight)}.date-card__text>.icon{flex:none;color:var(--color-accent-strong)}.date-card__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.interact__action--invite .icon{color:var(--color-accent-strong)}.world-list,.song-queue{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.world-list__item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-target);padding:var(--space-3);text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised)}.world-list__item:disabled{opacity:.6}.world-list__item:not(:disabled):hover{border-color:var(--color-border-strong)}.world-list__item>.icon{flex:none;color:var(--color-accent-strong)}.world-list__text{flex:1;display:grid;min-width:0;line-height:var(--leading-tight)}.world-list__text span{font-size:var(--text-xs);color:var(--color-text-muted)}.world-list__count{flex:none;font-size:var(--text-sm);color:var(--color-text-muted)}.song-form{display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.song-form .input{flex:1;min-width:0}.song-find{display:flex;flex-wrap:wrap;gap:var(--space-2)}.song-find a{color:inherit;text-decoration:none}.song-results{display:grid;gap:var(--space-2);margin-top:var(--space-3);max-height:38vh;overflow-y:auto}.song-results:empty{display:none}.song-list{display:grid;gap:var(--space-2);margin-top:var(--space-3)}.song{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-raised)}.song--current{border:1px solid var(--color-border-strong)}.song>.icon{flex:none;color:var(--color-accent-strong)}.song .btn{flex:none}.song__text{flex:1;display:grid;min-width:0;line-height:var(--leading-tight)}.song__text strong{font-size:var(--text-sm);overflow-wrap:anywhere}.song__text span{font-size:var(--text-xs);color:var(--color-text-muted)}@media(min-width:56rem){.now-playing,.prompt-chip:not([hidden])~.now-playing{top:calc(var(--safe-top) + var(--edge) + 3.75rem);left:calc(var(--safe-left) + var(--edge));transform:none;width:19rem}}
