/* Hallmark · pre-emit critique: P4 H5 E4 S5 R4 V4
   macrostructure: Workbench · genre: atmospheric · theme: custom — orange / teal / indigo
   Audience: Eurovision friends/fans · Use: watch, chat, predict · Tone: colorful private concert lounge
   Enrichment: Tier A CSS stage · Navigation: N1, two in-room destinations · Footer: colophon
   Motion: control feedback, message fade · User-requested transparent chat overlay. */
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/space-grotesk-700.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:'DM Sans';src:url('fonts/dm-sans-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'DM Sans';src:url('fonts/dm-sans-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'DM Sans';src:url('fonts/dm-sans-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:'DM Sans';src:url('fonts/dm-sans-700.ttf') format('truetype');font-weight:700;font-display:swap}
:root{color-scheme:dark;--font-display:'Space Grotesk',sans-serif;--font-body:'DM Sans',sans-serif;--color-paper:oklch(18% .014 275);--color-paper-2:oklch(22% .022 275);--color-paper-3:oklch(27% .032 275);--color-input:oklch(16.5% .016 275);--color-ink:oklch(95% .023 85);--color-muted:oklch(77% .018 275);--color-faint:oklch(70% .022 275);--color-input-rule:oklch(56% .036 275);--color-rule:oklch(36% .035 275);--color-accent:oklch(78% .165 58);--color-accent-soft:oklch(28% .054 48);--color-accent-ink:oklch(19% .025 50);--color-green:oklch(79% .115 185);--color-error:oklch(80% .12 25);--color-stage:oklch(23% .047 275);--color-beam:oklch(78% .16 58 / .18);--color-glow:oklch(76% .17 58 / .23);--color-scrim:oklch(10% .015 275 / .90);--color-overlay:oklch(16% .023 275 / .80);--color-transparent:transparent;--shadow:0 24px 80px oklch(10% .005 80 / .3);--color-teal:oklch(80% .115 185);--color-teal-soft:oklch(27% .045 190);--color-teal-rule:oklch(43% .075 190);--color-indigo:oklch(78% .115 285);--color-indigo-soft:oklch(28% .065 285);--color-indigo-rule:oklch(46% .09 285);--color-stage-warm:oklch(26% .05 48);--color-indigo-glow:oklch(55% .15 285 / .15);--color-teal-glow:oklch(68% .12 185 / .08);--radius:14px;--ease:cubic-bezier(.2,.7,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px;overflow-x:clip}body{margin:0;background:var(--color-paper);color:var(--color-ink);font:14px/1.5 var(--font-body);overflow-x:clip}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:var(--color-transparent)}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}a,button{white-space:nowrap}button{cursor:pointer}button:disabled,input:disabled,select:disabled,fieldset:disabled{cursor:not-allowed}button:disabled{opacity:.5}button:active:not(:disabled){transform:translateY(1px)}button[aria-busy=true]{opacity:.65;cursor:wait}button,select,input,a{transition:background .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);font-style:normal;font-weight:500;letter-spacing:-.04em;overflow-wrap:anywhere;min-width:0}svg{flex-shrink:0}button svg{vertical-align:middle}input,select{width:100%;min-width:0;min-height:46px;border:1px solid var(--color-rule);border-radius:7px;padding:11px 13px;background:var(--color-input);color:var(--color-ink);font-size:14px}input::placeholder{color:var(--color-muted)}input:focus,select:focus{border-color:var(--color-accent)}input[aria-invalid=true],select[aria-invalid=true]{border-color:var(--color-error)}label{display:block;font-weight:500;margin:15px 0 8px}fieldset{padding:0;margin:0;border:0;min-width:0}select{cursor:pointer;padding-right:24px;text-overflow:ellipsis}option:disabled{color:var(--color-faint)}[hidden]{display:none!important}.shell{max-width:1536px;padding:0 20px;margin:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:20px;top:-70px;z-index:100;padding:15px;background:var(--color-accent);color:var(--color-accent-ink)}.skip-link:focus{top:10px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:88px;border-bottom:1px solid var(--color-rule)}.wordmark{display:flex;align-items:center;font:600 24px var(--font-display);letter-spacing:-1.1px}.brand-dot{color:var(--color-accent)}.brand-icon{display:none}.masthead nav{display:none;gap:24px;align-items:center;align-self:stretch}.masthead nav a{display:flex;align-items:center;gap:8px;color:var(--color-muted);font-size:13px;border-bottom:2px solid var(--color-transparent);padding:0 3px}.masthead nav .nav-active{color:var(--color-ink);border-color:var(--color-accent)}.small-count{font-size:10px;border:1px solid var(--color-rule);padding:0 5px;border-radius:4px}.header-end{display:flex;align-items:center;gap:24px}.edition{font-size:10px;letter-spacing:1.7px;color:var(--color-muted)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:7px;color:var(--color-muted);background:var(--color-transparent);flex-shrink:0}.event-heading{display:flex;flex-direction:column;gap:24px;padding:36px 0 28px}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:600;color:var(--color-muted);display:block;line-height:1.5}.event-heading .eyebrow{display:flex;align-items:center;gap:8px}.tiny-star{color:var(--color-accent);font-size:17px;line-height:1}h1{font-size:clamp(39px,5vw,64px);line-height:1.15;margin:10px 0 8px;letter-spacing:-3px}h1>span{font-weight:400;color:var(--color-accent)}.event-heading p{font-size:13px;color:var(--color-muted)}.event-ticket{display:flex;align-items:center;gap:15px}.ticket-day{font:400 49px/.95 var(--font-display);letter-spacing:-3px;border-right:1px solid var(--color-rule);padding-right:17px;color:var(--color-accent)}.event-ticket>div{display:flex;flex-direction:column;gap:3px;font-size:9px;letter-spacing:1.1px}.event-ticket strong{font-weight:500;color:var(--color-ink)}.event-ticket span:not(.ticket-day){color:var(--color-muted)}.event-ticket .local-time{letter-spacing:0;color:var(--color-faint);font-size:10px}.watch-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.stage-column{min-width:0}.stage{position:relative;aspect-ratio:16/10;background:var(--color-stage);border-radius:var(--radius);overflow:hidden;isolation:isolate}.stage-idle{position:absolute;inset:0;overflow:hidden}.stage-art{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 35%,var(--color-glow),var(--color-transparent) 65%);overflow:hidden;z-index:-1}.beam{position:absolute;top:-60%;left:28%;width:14%;height:170%;background:linear-gradient(var(--color-beam),var(--color-transparent));transform:rotate(35deg);filter:blur(5px)}.beam-two{left:67%;transform:rotate(-32deg);width:22%}.stage-orbit{position:absolute;width:63%;aspect-ratio:1;top:2%;left:54%;border:1px solid var(--color-rule);border-radius:50%;opacity:.5;transform:rotate(-28deg) scaleX(.5)}.orbit-two{width:48%;top:15%;left:61%;transform:rotate(25deg) scaleX(.6)}.stage-floor{position:absolute;left:-20%;right:-20%;bottom:-53%;height:70%;border:1px solid var(--color-rule);border-radius:50%;transform:rotate(-8deg);opacity:.4}.stage-star{position:absolute;right:13%;top:24%;font:400 clamp(80px,15vw,220px) var(--font-display);color:var(--color-accent);opacity:.8;transform:rotate(12deg)}.stage-top,.stage-bottom{position:absolute;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between}.stage-top{top:18px}.stage-badge{display:inline-flex;align-items:center;gap:7px;font-size:8px;letter-spacing:1px;padding:6px 9px;border:1px solid var(--color-rule);border-radius:30px}.status-dot{display:inline-block;width:6px;height:6px;flex-shrink:0;background:var(--color-muted);border-radius:50%}.stage-corner{font-size:9px;letter-spacing:2px;color:var(--color-muted)}.stage-copy{position:absolute;left:23px;top:34%;max-width:75%}.stage-copy .eyebrow{font-size:7px}.stage-copy h2{font-size:clamp(25px,3.4vw,46px);letter-spacing:-1.6px;margin:6px 0 7px;line-height:1.12}.stage-copy p{font-size:11px;color:var(--color-muted);line-height:1.6;max-width:36ch}.stage-date{display:none;align-items:center;gap:12px;font-size:9px;letter-spacing:2px;margin-top:28px}.stage-date-rule{height:1px;width:30px;background:var(--color-rule)}.stage-bottom{bottom:16px;font-size:6px;letter-spacing:1px;color:var(--color-muted)}#video-mount{position:absolute;inset:0;z-index:2}#video-mount:empty{display:none}#video-mount iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-overlay{position:absolute;z-index:3;right:15px;bottom:65px;width:min(45%,340px);display:flex;flex-direction:column;gap:5px;pointer-events:none;max-height:44%;overflow:hidden;mask-image:linear-gradient(var(--color-transparent),var(--color-ink) 20%)}.overlay-message{padding:8px 12px;border-radius:8px;background:var(--color-overlay);font-size:12px;overflow-wrap:anywhere;animation:message-in .18s var(--ease)}.overlay-message strong{color:var(--color-accent);margin-right:6px;font-size:11px}.stage-toolbar{min-height:58px;display:flex;justify-content:space-between;gap:8px;align-items:center;padding:0 1px;border-bottom:1px solid var(--color-rule)}.live-status{display:flex;align-items:center;gap:7px;color:var(--color-muted);font-size:10px}.live-status .on{background:var(--color-green)}.stage-actions{display:flex;align-items:center;gap:5px}.quiet-button{border:0;background:var(--color-transparent);color:var(--color-muted);display:flex;gap:6px;align-items:center;padding:7px 4px;min-height:44px;font-size:10px}.quiet-button svg{width:15px}.mini-switch{display:inline-block;width:24px;height:14px;border-radius:20px;background:var(--color-rule);position:relative;margin-left:2px}.mini-switch:after{content:'';position:absolute;width:8px;height:8px;background:var(--color-muted);border-radius:50%;left:3px;top:3px}.quiet-button[aria-pressed=true] .mini-switch{background:var(--color-accent)}.quiet-button[aria-pressed=true] .mini-switch:after{left:13px;background:var(--color-accent-ink)}.stage-actions>.icon-button{width:30px}.room-caption{display:flex;align-items:center;gap:10px;min-height:70px}.little-orbit{font-size:24px;color:var(--color-accent)}.room-caption p{font-size:10px;color:var(--color-muted);flex:1}.room-caption p strong{display:block;font-weight:400;color:var(--color-ink)}.text-button{border:0;background:var(--color-transparent);padding:8px 0;min-height:44px;color:var(--color-muted);font-size:10px;display:inline-flex;align-items:center;gap:7px}.text-button svg{width:14px}.chat-panel{border:1px solid var(--color-rule);background:var(--color-paper-2);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;height:490px;min-width:0}.panel-heading{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:21px 20px 17px}.panel-heading h2{font-size:18px;letter-spacing:-.7px}.online-label{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--color-muted);white-space:nowrap}.online-label .status-dot{background:var(--color-green);width:5px;height:5px}.chat-intro{display:flex;align-items:center;gap:12px;padding:11px 20px;background:var(--color-paper-3);font-size:10px;color:var(--color-muted)}.chat-intro strong{font-weight:400;color:var(--color-ink)}.chat-intro-star{color:var(--color-accent);font-size:24px}.chat-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 18px;scrollbar-width:thin;scrollbar-color:var(--color-rule) var(--color-transparent)}.empty-chat{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--color-muted);font-size:11px;gap:10px}.empty-chat>span{font-size:30px;color:var(--color-faint)}.chat-message{display:flex;gap:9px;padding-bottom:16px;animation:message-in .18s var(--ease)}.avatar{display:flex;align-items:center;justify-content:center;width:29px;height:29px;flex-shrink:0;font:500 12px var(--font-display);border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent)}.chat-message:nth-child(even) .avatar{background:var(--color-paper-3);color:var(--color-muted)}.message-content{min-width:0;flex:1}.message-meta{display:flex;align-items:center;gap:8px}.message-meta strong{font-weight:500;font-size:11px;overflow-wrap:anywhere}.message-meta time{color:var(--color-faint);font-size:9px;white-space:nowrap}.message-content p{font-size:12px;line-height:1.6;color:var(--color-ink);overflow-wrap:anywhere;white-space:pre-wrap;margin-top:3px}.delete-message{font-size:10px;min-height:24px;padding:1px 3px;color:var(--color-error);background:var(--color-transparent);border:0;margin-left:auto}.chat-compose{padding:10px 16px 14px;border-top:1px solid var(--color-rule)}.chat-identity{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--color-muted);margin-bottom:9px}.small-avatar{height:19px;width:19px;font-size:9px}.chat-identity>.text-button{margin-left:auto;min-height:24px;font-size:9px}.message-input{display:flex;border:1px solid var(--color-rule);border-radius:8px;padding:3px;background:var(--color-input)}.message-input input{border:0;background:var(--color-transparent);font-size:11px;padding:8px;min-height:36px}.send-button{border:0;width:36px;flex-shrink:0;border-radius:6px;background:var(--color-accent);color:var(--color-accent-ink)}.chat-fineprint{font-size:9px;color:var(--color-faint);margin-top:9px}.field-error{color:var(--color-error);font-size:12px;margin-top:8px;line-height:1.6;overflow-wrap:anywhere}.field-error:empty{display:none}.predictions-section{padding:44px 0 0}.section-heading{display:flex;flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:23px}.section-heading h2{font-size:clamp(26px,2.6vw,34px);letter-spacing:-1.15px;line-height:1.2;margin:8px 0}.section-heading p{color:var(--color-muted);font-size:12px}.pill{display:flex;align-items:center;gap:7px;white-space:nowrap;padding:7px 11px;border:1px solid var(--color-rule);border-radius:30px;color:var(--color-muted);font-size:10px}.pill .status-dot{background:var(--color-green);width:5px;height:5px}.pill.locked .status-dot{background:var(--color-accent)}.prediction-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.prediction-form{min-width:0}.podium-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.podium-pick{border-radius:10px;background:var(--color-paper-2);padding:19px;min-width:0;border:1px solid var(--color-rule)}.winner-pick{background:var(--color-accent-soft);border-color:var(--color-accent)}.pick-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.place-number{font:400 38px/1 var(--font-display);letter-spacing:-2px;color:var(--color-muted)}.winner-pick .place-number{color:var(--color-accent)}.pick-symbol{font-size:24px;color:var(--color-faint)}.winner-pick .pick-symbol{color:var(--color-accent)}.podium-pick label{font:500 17px var(--font-display);letter-spacing:-.6px;margin:0 0 4px}.pick-helper{display:block;color:var(--color-muted);font-size:10px}.podium-pick select{margin:21px 0 8px;font-size:11px}.pick-song{display:block;min-height:16px;color:var(--color-muted);font-size:9px;overflow-wrap:anywhere}.wildcard-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:12px}.wildcard{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;background:var(--color-paper-2);border-radius:10px;padding:16px}.wildcard-symbol{font-size:25px;color:var(--color-muted)}.wildcard-symbol.flag{font-size:24px}.wildcard label{margin:0 0 3px;font-size:12px}.wildcard select{grid-column:1/-1;font-size:11px;min-height:41px}.prediction-save{display:flex;flex-direction:column;gap:18px;padding:21px 0 0}.prediction-save p{font-size:12px}.prediction-save span{font-size:10px;color:var(--color-muted)}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:46px;border:1px solid var(--color-accent);padding:11px 18px;border-radius:7px;background:var(--color-accent);color:var(--color-accent-ink);font-size:12px;font-weight:600;text-align:center}.primary-button svg{width:17px}.success-message{font-size:12px;color:var(--color-green);margin-top:10px}.room-pulse{background:var(--color-paper-2);border-radius:10px;padding:25px;display:flex;flex-direction:column;min-height:300px}.room-pulse .eyebrow{font-size:8px}.room-pulse h3{font-size:24px;margin:8px 0;letter-spacing:-.8px}.room-pulse>p{color:var(--color-muted);font-size:11px}.room-favorites{flex:1;padding:24px 0;display:flex;flex-direction:column;gap:16px}.pulse-empty{display:flex;gap:16px;align-items:center;margin:auto 0;color:var(--color-faint);font-size:11px}.pulse-empty>span{font:300 40px var(--font-display)}.ballot-count{border-top:1px solid var(--color-rule);display:flex;align-items:center;gap:10px;padding-top:16px}.ballot-count strong{font:400 25px var(--font-display)}.ballot-count>span{font-size:10px;color:var(--color-muted)}.favorite-top{display:flex;align-items:center;justify-content:space-between;font-size:11px}.favorite-top span{color:var(--color-muted)}.favorite-bar{height:3px;background:var(--color-rule);margin-top:8px;border-radius:3px;overflow:hidden}.favorite-fill{height:100%;background:var(--color-accent);width:var(--share)}.lineup-section{padding:50px 0}.muted-label{font-size:9px;letter-spacing:1px;color:var(--color-muted)}.lineup-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0 27px}.artist-row{display:flex;align-items:center;gap:13px;border-top:1px solid var(--color-rule);padding:21px 0;min-width:0}.running-number{color:var(--color-faint);font-size:10px}.country-flag{font-size:25px}.artist-info{flex:1;min-width:0}.artist-country{display:block;font-size:9px;color:var(--color-muted);letter-spacing:.4px}.artist-info h3{font-size:16px;margin:2px 0;letter-spacing:-.5px}.artist-info p{font-size:10px;color:var(--color-muted)}.artist-note{font-size:20px;color:var(--color-faint)}.host-label{font-size:7px;color:var(--color-accent);margin-left:5px}.lineup-source{border-top:1px solid var(--color-rule);padding:22px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;white-space:normal}.lineup-source>span:first-child{font-size:9px;color:var(--color-muted);line-height:1.3}.lineup-source strong{font:400 22px var(--font-display);color:var(--color-accent);letter-spacing:-1px}.lineup-source>span:last-child{font-size:10px;color:var(--color-muted)}.footer{border-top:1px solid var(--color-rule);padding:26px 0 30px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.small-wordmark{font-size:18px}.footer p{font-size:11px;color:var(--color-muted)}.footer>span{font-size:9px;color:var(--color-faint)}.notice{padding:12px 16px;margin:0 0 20px;border:1px solid var(--color-rule);border-radius:8px;background:var(--color-paper-2);color:var(--color-muted);font-size:12px}.notice a{color:var(--color-accent);white-space:normal}.error-notice{border-color:var(--color-error);color:var(--color-error)}dialog{color:var(--color-ink);border:1px solid var(--color-rule);background:var(--color-paper-2);border-radius:18px;box-shadow:var(--shadow);padding:0;max-height:calc(100dvh - 32px);overscroll-behavior:contain}dialog::backdrop{background:var(--color-scrim);backdrop-filter:blur(8px)}.entry-dialog{width:min(880px,calc(100% - 32px));margin:auto}.entry-dialog[open]{display:grid;grid-template-columns:minmax(0,1fr)}.entry-dialog[open]:not(:modal){position:fixed;inset:0;z-index:20;box-shadow:0 0 0 100vmax var(--color-scrim)}.entry-art{display:none}.entry-content{padding:30px 25px}.entry-content>.eyebrow{color:var(--color-accent);font-size:8px}.entry-content h2{font-size:36px;line-height:1.08;letter-spacing:-1.8px;margin:16px 0}.entry-content>p{color:var(--color-muted);font-size:12px;margin-bottom:24px}.entry-content label{font-size:12px}.entry-content input{margin-bottom:4px}.full-width{width:100%}.entry-content form>.primary-button{margin-top:20px}.entry-content .entry-fineprint{font-size:9px;line-height:1.7;text-align:center;margin:17px 0 0}.input-help{font-size:10px;color:var(--color-muted);margin-top:5px}.preview-link{display:block;text-align:center;color:var(--color-muted);font-size:12px;padding:15px 0;white-space:normal}.simple-dialog{width:min(440px,calc(100% - 32px));padding:30px}.simple-dialog h2{font-size:30px;margin:13px 0}.simple-dialog p{font-size:12px;color:var(--color-muted);margin-bottom:16px}.simple-dialog>.primary-button{margin-top:16px}.simple-dialog label{font-size:11px}.dialog-close{position:absolute;right:8px;top:8px;font-size:23px}.simple-dialog .eyebrow{font-size:8px;margin-top:20px}.simple-dialog #invite-status{margin-top:10px;color:var(--color-green)}.theater .watch-grid{grid-template-columns:minmax(0,1fr)}.theater .chat-panel{height:380px}.theater .stage{aspect-ratio:16/9}.admin-shell{max-width:1040px;margin:auto;padding:0 20px}.admin-heading{padding:40px 0 25px}.admin-heading h1{font-size:40px;letter-spacing:-1.8px;margin:10px 0}.admin-heading p{color:var(--color-muted);font-size:13px}.admin-login{width:min(430px,100%);margin:35px auto 70px;padding:28px;background:var(--color-paper-2);border-radius:14px}.admin-login h2{font-size:28px;margin:10px 0}.admin-login p{color:var(--color-muted);font-size:12px}.admin-login button{margin-top:22px}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.admin-card{padding:24px;background:var(--color-paper-2);border-radius:12px;margin-bottom:20px}.admin-card h2{font-size:22px;letter-spacing:-.8px;margin-bottom:7px}.admin-card>p,.admin-card .input-help{font-size:11px;color:var(--color-muted)}.admin-card label{font-size:12px}.admin-card input{font-size:13px}.admin-switch{display:flex;gap:20px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-rule);padding:16px 0}.admin-switch:last-child{border:0;padding-bottom:0}.admin-switch label{margin:0;cursor:pointer}.admin-switch strong{display:block;font-size:12px;font-weight:500}.admin-switch span{display:block;color:var(--color-muted);font-size:10px;margin-top:3px;max-width:40ch}.admin-switch input{appearance:none;width:40px;height:23px;min-height:23px;padding:0;border-radius:20px;position:relative;flex-shrink:0;background:var(--color-rule);border:0;cursor:pointer}.admin-switch input:after{content:'';position:absolute;width:15px;height:15px;left:4px;top:4px;background:var(--color-muted);border-radius:50%}.admin-switch input:checked{background:var(--color-accent)}.admin-switch input:checked:after{left:21px;background:var(--color-accent-ink)}.admin-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:0 0 25px}.secondary-button{background:var(--color-paper-3);border:1px solid var(--color-rule);border-radius:7px;color:var(--color-ink);font-size:12px;padding:11px 16px;min-height:44px}.danger-button{color:var(--color-error);margin-top:16px}.setup-list{padding-left:20px;color:var(--color-muted);font-size:12px;line-height:1.8}.setup-list li{margin:10px 0}code{font-size:.9em;color:var(--color-accent);overflow-wrap:anywhere}.admin-header-end{display:flex;gap:12px;align-items:center}.admin-header-end .text-button{font-size:11px}.check-label{display:flex;gap:10px;align-items:center}.check-label input{width:16px;min-height:16px;flex-shrink:0}.check-label span{font-size:11px;color:var(--color-muted)}.install-card{max-width:620px;margin:10px auto 70px}.install-card h2{font-size:28px;margin:10px 0}.install-card>.primary-button{margin-top:20px}.setup-message{margin-top:20px}.admin-header-end a{font-size:12px}.entry-content .preview-link{margin-bottom:0}@keyframes message-in{from{opacity:0}to{opacity:1}}
.video-consent{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:var(--color-stage)}.video-consent h2{font-size:clamp(21px,3vw,36px);letter-spacing:-1px}.video-consent p{font-size:11px;color:var(--color-muted);max-width:48ch;margin:12px 0 20px}.video-consent .preview-link{padding-bottom:0;font-size:10px}.video-consent .primary-button{font-size:11px;min-height:42px}.install-card form>.primary-button{margin-top:24px}
@media(hover:hover){button:hover:not(:disabled),.icon-button:hover{color:var(--color-ink);background:var(--color-paper-3)}.primary-button:hover:not(:disabled){background:var(--color-ink);border-color:var(--color-ink);color:var(--color-accent-ink)}a:hover{color:var(--color-accent)}.send-button:hover:not(:disabled){background:var(--color-ink);color:var(--color-accent-ink)}}
@media(min-width:375px){.stage-copy{left:25px}.stage-copy h2{font-size:29px}.stage{aspect-ratio:16/9}.stage-copy .eyebrow{font-size:8px}.stage-copy p{font-size:12px}.live-status,.quiet-button{font-size:11px}.stage-actions{gap:8px}}
@media(min-width:640px){.shell{padding:0 32px}.brand-icon{display:inline-flex;align-items:center;justify-content:center;background:var(--color-accent);color:var(--color-accent-ink);font-size:20px;height:31px;width:34px;border-radius:9px;letter-spacing:-4px;margin-right:10px;padding-right:4px}.brand-icon span{font-size:21px;transform:translateY(-2px)}.masthead nav{display:flex}.edition{display:none}.event-heading{flex-direction:row;align-items:center;justify-content:space-between;padding:38px 0 30px}.event-heading .eyebrow{font-size:9px}.event-ticket{gap:13px}.ticket-day{font-size:50px}.event-ticket>div{font-size:9px}.stage-top,.stage-bottom{left:30px;right:30px}.stage-top{top:24px}.stage-copy{left:39px;top:33%}.stage-copy h2{font-size:44px}.stage-copy .eyebrow{font-size:9px}.stage-copy p{font-size:13px}.stage-date{display:flex}.stage-bottom{bottom:23px;font-size:8px}.stage-badge{font-size:9px;padding:7px 10px}.stage-star{font-size:170px}.stage-corner{font-size:10px}.room-caption p{font-size:12px}.room-caption p strong{display:inline}.room-caption .text-button{font-size:11px}.stage-toolbar{min-height:57px}.stage-actions>.icon-button{width:44px}.podium-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.podium-pick{padding:18px 14px}.podium-pick label{font-size:16px}.wildcard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prediction-save{flex-direction:row;align-items:center;justify-content:space-between}.prediction-save span{font-size:10px}.primary-button{font-size:12px}.lineup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading{flex-direction:row;align-items:center;justify-content:space-between;gap:25px}.footer{flex-direction:row;align-items:center;gap:24px}.footer>span{margin-left:auto;max-width:180px}.footer p{max-width:200px}.entry-dialog[open]{grid-template-columns:.85fr 1fr}.entry-art{display:flex;position:relative;overflow:hidden;background:var(--color-accent-soft);padding:35px;flex-direction:column;justify-content:space-between;min-height:520px}.entry-art .eyebrow{font-size:8px;color:var(--color-accent)}.entry-star{font-size:200px;position:absolute;right:10px;top:70px;color:var(--color-accent);line-height:1;transform:rotate(10deg);opacity:.8}.entry-event{font:400 37px/1.1 var(--font-display);letter-spacing:-1.8px;position:relative;margin-top:220px}.entry-event>span{color:var(--color-accent)}.entry-content{padding:40px}.entry-content h2{font-size:40px}.admin-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.admin-shell{padding:0 30px}}
@media(min-width:1024px){.shell{padding:0 45px}.masthead{min-height:91px}.wordmark{font-size:25px}.masthead nav{gap:32px}.edition{display:inline}.event-heading{padding:42px 0 32px}h1{font-size:62px;margin:8px 0 8px}.event-heading p{font-size:13px}.event-ticket{gap:19px}.ticket-day{font-size:57px}.event-ticket>div{font-size:10px;gap:4px}.watch-grid{grid-template-columns:minmax(0,1fr) 310px;gap:22px}.stage{aspect-ratio:16/9}.chat-panel{height:100%;max-height:580px;min-height:455px}.stage-copy{left:37px;top:31%}.stage-copy h2{font-size:clamp(32px,3.4vw,48px)}.stage-copy p{font-size:12px}.stage-date{margin-top:23px}.stage-star{font-size:clamp(120px,15vw,200px)}.stage-top,.stage-bottom{left:27px;right:27px}.stage-badge{font-size:8px}.stage-bottom{font-size:7px}.predictions-section{padding-top:36px}.prediction-layout{grid-template-columns:minmax(0,1fr) 270px;gap:26px}.section-heading h2{font-size:31px}.podium-pick{padding:20px}.podium-pick label{font-size:17px}.wildcard{grid-template-columns:24px minmax(0,1fr);gap:10px}.wildcard label{font-size:11px}.room-pulse{padding:26px}.lineup-section{padding-top:53px}.lineup-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}.lineup-source{flex-direction:column;align-items:flex-start;justify-content:center;padding-left:28px}.lineup-source>span:first-child{font-size:9px}.lineup-source br{display:none}.lineup-source strong{font-size:24px}.footer>span{max-width:none}.footer p{max-width:none}.panel-heading{padding:22px 19px 17px}.panel-heading h2{font-size:18px}.chat-messages{padding:20px 18px}.theater .chat-panel{height:420px}.theater .stage-copy h2{font-size:56px}}
@media(min-width:1280px){.shell{padding:0 56px}.watch-grid{grid-template-columns:minmax(0,1fr) 334px;gap:26px}.prediction-layout{grid-template-columns:minmax(0,1fr) 300px;gap:32px}.event-heading{padding:45px 0 35px}.stage-copy{left:48px}.stage-copy p{font-size:14px}.stage-date{margin-top:30px}.stage-top,.stage-bottom{left:30px;right:30px}.stage-bottom{font-size:8px}.stage-copy h2{font-size:47px}.chat-panel{min-height:490px}.wildcard{grid-template-columns:25px minmax(0,1fr) 115px}.wildcard select{grid-column:auto}.wildcard label{font-size:11px}.wildcard .pick-helper{font-size:9px}.philippines-pick{grid-template-columns:25px minmax(0,1fr) 85px}.event-ticket{padding-right:10px}}
@media(max-width:639px){.section-heading{align-items:flex-start;flex-direction:column}.section-heading .muted-label{font-size:8px}.event-heading .eyebrow{letter-spacing:1.1px}.entry-content h2{font-size:34px}.video-overlay{width:65%;right:10px;bottom:45px}.overlay-message{font-size:10px;padding:5px 8px}.overlay-message strong{font-size:9px}.room-caption{gap:7px}.room-caption .text-button{font-size:9px}.room-caption p{font-size:9px}.stage-toolbar .live-status{font-size:9px}.quiet-button{font-size:9px;gap:4px}.quiet-button svg{display:none}}
.country-flag img{display:block;width:29px;height:22px;object-fit:contain;border-radius:2px}.wildcard-symbol.flag img{display:block;width:26px;height:20px;object-fit:contain;border-radius:2px}.inline-flag{width:17px;height:13px;object-fit:contain;vertical-align:-2px;margin-right:7px;border-radius:1px}.chat-identity>.text-button{min-height:44px;padding-inline:6px}.delete-message{min-height:44px}.send-button{min-width:44px;min-height:44px}.stage-actions>.icon-button{min-width:44px}.favorite-top strong{font-weight:500}
@media(max-width:639px){input,select,.message-input input,.podium-pick select,.wildcard select{font-size:16px}.podium-pick .pick-helper,.wildcard .pick-helper{font-size:11px}.pick-song{font-size:11px}.chat-panel{height:490px}.chat-fineprint{font-size:10px}.quiet-button .mini-switch{margin-left:0}.stage-copy{max-width:85%}}
@media(max-width:639px){.admin-shell .masthead{flex-wrap:wrap;padding:18px 0;gap:12px}.admin-header-end{width:100%;justify-content:space-between}.admin-header-end .text-button{font-size:12px}.admin-card input{font-size:16px}.admin-card .admin-switch input{font-size:14px}}
input,select,.message-input{border-color:var(--color-input-rule)}.message-input input{border:0}.admin-switch input{border:0}.message-input input{min-height:44px}input:disabled,select:disabled{opacity:.6}.simple-dialog #invite-status{min-height:18px}.field-error{min-height:18px}
@media(max-width:639px){.video-consent{padding:12px}.video-consent h2{font-size:20px}.video-consent p{font-size:10px;line-height:1.4;margin:8px 0 12px;max-width:45ch}.video-consent .primary-button{min-height:40px;padding:8px 14px}.video-consent .preview-link{padding:8px 0 0;font-size:10px}}
@media(max-width:374px){.edition{display:none}}
.lineup-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;background:var(--color-paper-2);border-radius:9px;max-width:440px;margin-bottom:16px}.lineup-tab{min-width:0;min-height:44px;padding:10px 8px;border:1px solid var(--color-transparent);border-radius:6px;background:var(--color-transparent);color:var(--color-muted);font-size:10px;font-weight:500}.lineup-tab[aria-selected=true]{background:var(--color-paper-3);color:var(--color-accent);border-color:var(--color-rule)}.lineup-view-note{font-size:12px;color:var(--color-muted);margin:0 0 16px;max-width:70ch}.artist-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.artist-tag{display:inline-flex;align-items:center;border:1px solid var(--color-rule);border-radius:5px;padding:3px 8px;color:var(--color-accent);background:var(--color-accent-soft);font-size:11px;line-height:1.5}.lineup-empty{padding:28px;background:var(--color-paper-2);border-radius:10px;margin-bottom:20px}.lineup-empty h3{font-size:24px;margin-bottom:8px}.lineup-empty p{color:var(--color-muted);font-size:13px;max-width:60ch;margin-bottom:20px}.lineup-empty a{display:inline-flex;align-items:center}.running-number{flex-shrink:0}#lineup-panel:focus-visible{outline-offset:6px}
@media(min-width:640px){.lineup-tab{font-size:12px;padding:10px 16px}}
.wordmark{gap:10px;letter-spacing:-.6px;flex-shrink:0}.brand-logo{width:52px;height:52px;object-fit:contain;flex-shrink:0}.brand-name{font:600 25px/1.05 var(--font-display);letter-spacing:-.8px}.brand-name>span{display:block;font:400 12px/1.5 var(--font-body);letter-spacing:2.2px;margin-top:3px;color:var(--color-muted)}.small-wordmark .brand-logo{width:36px;height:36px}.small-wordmark .brand-name{font-size:19px}.small-wordmark .brand-name>span{font-size:10px;letter-spacing:1.6px;margin-top:1px}.youtube-fallback{display:flex;align-items:center;width:fit-content;min-height:44px;font-size:11px;color:var(--color-muted);white-space:normal}.ph-votes-panel{padding:24px;background:var(--color-paper-2);border-radius:10px;margin:0 0 24px}.ph-votes-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.ph-votes-heading img{object-fit:contain;flex-shrink:0}.ph-votes-heading h3{font-size:21px;letter-spacing:-.6px}.ph-votes-heading p{font-size:12px;color:var(--color-muted);margin-top:5px}.ph-position-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ph-position-count{padding:12px 8px;background:var(--color-paper-3);border-radius:6px;text-align:center;min-width:0}.ph-position-count>span{display:block;font-size:11px;color:var(--color-muted)}.ph-position-count>strong{display:block;font:500 25px/1.2 var(--font-display);color:var(--color-accent);margin:5px 0}.artist-tags{gap:5px}.artist-tag{padding:3px 7px}
@media(max-width:639px){.brand-logo{width:44px;height:44px}.brand-name{font-size:23px}.brand-name>span{font-size:10px;letter-spacing:1.8px}.ph-votes-panel{padding:16px}.ph-votes-heading{align-items:flex-start}.ph-votes-heading h3{font-size:19px}.ph-votes-heading p{font-size:11px}.footer .wordmark{margin-bottom:4px}}
@media(min-width:640px){.ph-position-counts{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(min-width:1024px){.ph-position-counts{grid-template-columns:repeat(11,minmax(0,1fr))}}
.entry-art.entry-flyer{display:flex;min-width:0;min-height:0;justify-content:center;align-items:center;gap:0;padding:0;background:var(--color-paper);white-space:normal}.entry-flyer img{display:block;width:100%;height:auto;max-height:200px;object-fit:contain}.flyer-caption{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;padding:8px 12px;font-size:11px;color:var(--color-muted);white-space:nowrap}.entry-flyer:focus-visible{outline-offset:-4px}.entry-dialog{overflow-y:auto}
@media(max-width:639px){.entry-art.entry-flyer{flex-direction:row;padding:12px;gap:12px}.entry-flyer img{width:42%;max-height:180px;flex-shrink:0}.entry-flyer .flyer-caption{width:auto;flex:1;white-space:normal;text-align:center}}
@media(min-width:640px){.entry-flyer img{max-height:none}.entry-dialog[open]{grid-template-columns:minmax(0,.85fr) minmax(0,1fr)}.entry-dialog .entry-content{align-self:center}}
/* Flyer-inspired color roles: orange = stage/actions, teal = conversation,
   indigo = predictions. Three accents are explicitly requested by the owner. */
body{background:radial-gradient(ellipse at 95% 0,var(--color-indigo-glow),var(--color-transparent) 42%),radial-gradient(ellipse at 0 40%,var(--color-teal-glow),var(--color-transparent) 35%),var(--color-paper)}
.masthead{border-bottom-color:var(--color-indigo-rule)}.edition{color:var(--color-indigo);background:var(--color-indigo-soft);padding:6px 10px;border-radius:5px;white-space:nowrap}.brand-name>span{color:var(--color-teal)}.masthead nav a:not(.nav-active):hover{color:var(--color-teal)}.event-heading .eyebrow{color:var(--color-teal)}.event-ticket{padding:16px 20px;border:1px solid var(--color-indigo-rule);border-radius:12px;background:var(--color-indigo-soft)}.event-ticket .local-time{color:var(--color-teal)}
.stage{background:linear-gradient(125deg,var(--color-stage-warm),var(--color-stage));border:1px solid var(--color-rule);box-shadow:var(--shadow)}.stage-art{background:radial-gradient(ellipse at 70% 35%,var(--color-glow),var(--color-transparent) 65%)}.stage-mascot{position:absolute;right:7%;top:20%;width:34%;height:66%;object-fit:contain;opacity:.92}.stage-copy{max-width:55%}.stage-copy>.eyebrow{color:var(--color-teal)}.stage-badge{color:var(--color-teal);border-color:var(--color-teal-rule);background:var(--color-teal-soft)}.stage-corner{color:var(--color-indigo)}.stage-orbit{border-color:var(--color-indigo-rule)}.stage-bottom>span:last-child{color:var(--color-teal)}
.chat-panel{border-color:var(--color-teal-rule)}.panel-heading{background:var(--color-teal-soft)}.panel-heading h2{color:var(--color-teal)}.chat-intro{background:var(--color-indigo-soft)}.chat-intro-star{color:var(--color-indigo)}.avatar{background:var(--color-teal-soft);color:var(--color-teal)}.chat-message:nth-child(even) .avatar{background:var(--color-indigo-soft);color:var(--color-indigo)}.empty-chat>span{color:var(--color-teal)}.chat-compose{border-top-color:var(--color-teal-rule)}.online-label{color:var(--color-teal)}
.podium-pick:nth-child(2){background:var(--color-teal-soft);border-color:var(--color-teal-rule)}.podium-pick:nth-child(2) .place-number,.podium-pick:nth-child(2) .pick-symbol{color:var(--color-teal)}.podium-pick:nth-child(3){background:var(--color-indigo-soft);border-color:var(--color-indigo-rule)}.podium-pick:nth-child(3) .place-number,.podium-pick:nth-child(3) .pick-symbol{color:var(--color-indigo)}.wildcard:not(.philippines-pick){background:var(--color-indigo-soft)}.wildcard:not(.philippines-pick) .wildcard-symbol{color:var(--color-indigo)}.philippines-pick{background:var(--color-accent-soft)}.room-pulse{background:var(--color-indigo-soft);border:1px solid var(--color-indigo-rule)}.room-pulse>.eyebrow{color:var(--color-indigo)}.room-favorites>div:nth-child(2) .favorite-fill{background:var(--color-teal)}.room-favorites>div:nth-child(3) .favorite-fill{background:var(--color-indigo)}.pill{border-color:var(--color-teal-rule);background:var(--color-teal-soft);color:var(--color-teal)}.pill.locked{border-color:var(--color-input-rule);background:var(--color-accent-soft);color:var(--color-accent)}
.lineup-tabs{border:1px solid var(--color-rule)}.lineup-tab[aria-selected=true]{background:var(--color-accent-soft);color:var(--color-accent)}.lineup-tab[data-lineup-view=votes][aria-selected=true]{background:var(--color-teal-soft);border-color:var(--color-teal-rule);color:var(--color-teal)}.lineup-tab[data-lineup-view=predictions][aria-selected=true]{background:var(--color-indigo-soft);border-color:var(--color-indigo-rule);color:var(--color-indigo)}.artist-tag:nth-child(2){background:var(--color-teal-soft);border-color:var(--color-teal-rule);color:var(--color-teal)}.artist-tag:nth-child(3){background:var(--color-indigo-soft);border-color:var(--color-indigo-rule);color:var(--color-indigo)}.artist-tag:nth-child(4){background:var(--color-paper-3);color:var(--color-muted)}.artist-row:nth-child(3n+2) .artist-note{color:var(--color-teal)}.artist-row:nth-child(3n) .artist-note{color:var(--color-indigo)}.artist-country{color:var(--color-muted)}.ph-votes-panel{border:1px solid var(--color-accent);background:var(--color-accent-soft)}.ph-position-count{background:var(--color-paper-2)}.ph-position-count:nth-child(3n+2)>strong{color:var(--color-teal)}.ph-position-count:nth-child(3n)>strong{color:var(--color-indigo)}
.entry-dialog{border-color:var(--color-indigo-rule);background:var(--color-paper-2)}.entry-content>.eyebrow{color:var(--color-teal)}.entry-content{background:radial-gradient(ellipse at 100% 100%,var(--color-indigo-glow),var(--color-transparent) 70%)}.flyer-caption{background:var(--color-indigo-soft);color:var(--color-indigo)}.admin-card{border:1px solid var(--color-rule)}.admin-card>.eyebrow{color:var(--color-teal)}.admin-login{border:1px solid var(--color-indigo-rule);background:var(--color-indigo-soft)}#chat_on:checked,#overlay_on:checked{background:var(--color-teal)}#votes_open:checked{background:var(--color-indigo)}.footer{border-top-color:var(--color-indigo-rule)}.notice{background:var(--color-indigo-soft);border-color:var(--color-indigo-rule)}
@media(max-width:639px){.event-ticket{align-self:flex-start;padding:12px 16px}.stage-mascot{right:3%;top:29%;width:29%;height:55%;opacity:.8}.stage-copy{max-width:65%;left:20px}.stage-copy h2{font-size:clamp(22px,6.6vw,29px)}.stage-copy p{font-size:10px;max-width:26ch}.stage-copy p br{display:none}.stage-copy>.eyebrow{font-size:7px}.stage-copy{top:31%}.entry-content{background:var(--color-paper-2)}}
@media(max-width:639px){.edition{display:none}}
.entry-dialog{background:radial-gradient(ellipse at 100% 100%,var(--color-indigo-glow),var(--color-transparent) 70%),var(--color-paper-2)}.entry-content{background:var(--color-transparent)}
.lineup-source strong{margin-left:.2em}.master-party-card{border-color:var(--color-accent);background:var(--color-accent-soft)}.master-party-card>.eyebrow{color:var(--color-accent)}.master-party-card .admin-switch{margin:8px 0 12px}.master-party-card #party-state-label{color:var(--color-ink);font-size:13px}#party_on:checked{background:var(--color-teal)}
.closed-room{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px;gap:24px}.closed-mascot{width:clamp(130px,22vw,220px);height:auto}.closed-room .brand-name{font-size:24px}.closed-room h1{font-size:clamp(33px,5vw,64px);line-height:1.1;letter-spacing:-1.8px;max-width:14ch;margin:8px 0}.closed-decoration{color:var(--color-teal);font-size:26px;letter-spacing:10px}.closed-admin-link{position:fixed;bottom:18px;right:22px;min-height:44px;display:flex;align-items:center;font-size:11px;color:var(--color-muted)}
.scoring-rules{margin:32px 0 0;padding:24px;background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:12px}.scoring-heading h2{font-size:25px;margin:8px 0;letter-spacing:-.8px}.scoring-heading p{color:var(--color-muted);font-size:12px}.scoring-list{margin:20px 0;display:grid;grid-template-columns:minmax(0,1fr);gap:8px 24px}.scoring-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--color-rule)}.scoring-list dt{font-size:12px;color:var(--color-ink)}.scoring-list dd{margin:0;flex-shrink:0;color:var(--color-accent);font-size:13px;font-weight:600;white-space:nowrap}.scoring-list>div:nth-child(2) dd,.scoring-list>div:nth-child(5) dd{color:var(--color-teal)}.scoring-list>div:nth-child(3) dd,.scoring-list>div:nth-child(4) dd{color:var(--color-indigo)}.scoring-note{font-size:11px;color:var(--color-muted);line-height:1.7;max-width:90ch}
@media(min-width:768px){.scoring-rules{padding:28px}.scoring-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@font-face{font-family:'Watchparty Emoji';src:url('fonts/Noto-COLRv1.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--font-emoji:'Watchparty Emoji','Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;--font-chat:'DM Sans','Watchparty Emoji','Apple Color Emoji','Segoe UI Emoji',sans-serif}
.message-content p,.overlay-message,.message-input input{font-family:var(--font-chat)}
.emoji-toggle{display:flex;align-items:center;justify-content:center;flex-shrink:0;min-width:44px;min-height:44px;padding:0;border:0;border-radius:6px;background:var(--color-transparent);color:var(--color-teal)}.emoji-toggle svg{width:22px;height:22px}.emoji-dialog{width:min(480px,calc(100% - 32px));height:min(660px,calc(100dvh - 32px));padding:20px;overflow:hidden}.emoji-dialog[open]{display:flex;flex-direction:column}.emoji-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.emoji-heading h2{font-size:25px;letter-spacing:-.8px}.emoji-heading .icon-button{font-size:26px}.emoji-dialog label{font-size:11px;margin:0 0 6px}.emoji-dialog input,.emoji-dialog select{font-size:14px;min-height:44px}.emoji-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 0}.emoji-filters>div{min-width:0}.emoji-status{color:var(--color-muted);font-size:11px;min-height:18px;margin:12px 0 8px}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;flex:1;min-height:100px;align-content:start;overflow-y:auto;overscroll-behavior:contain;padding:4px;scrollbar-width:thin;scrollbar-color:var(--color-indigo-rule) var(--color-transparent)}.emoji-choice{display:flex;justify-content:center;align-items:center;min-width:0;min-height:44px;padding:4px;background:var(--color-paper-3);border:1px solid var(--color-transparent);border-radius:6px;color:var(--color-ink);font:26px/1 var(--font-emoji)}.emoji-choice:focus-visible{outline-offset:-2px;border-color:var(--color-accent)}.emoji-help{font-size:10px;color:var(--color-muted);line-height:1.6;margin-top:10px}.emoji-dialog>.secondary-button{margin-top:10px;flex-shrink:0}.emoji-dialog #emoji-error{font-size:11px;margin:0 0 8px}.emoji-dialog #emoji-error[hidden]{display:none}
@media(max-width:639px){.emoji-dialog{padding:16px}.emoji-heading h2{font-size:22px}.emoji-dialog input,.emoji-dialog select{font-size:16px}.emoji-filters{gap:8px}}
@media(hover:hover){.emoji-choice:hover{background:var(--color-teal-soft);border-color:var(--color-teal-rule)}}
.emoji-dialog{overflow-y:auto;overflow-x:clip}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
