@font-face{font-family:Inter;src:url("./assets/fonts/InterVariable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("./assets/fonts/SourceSerif4Variable-Roman.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
:root{--mpvpc-black:#0f0f0e;--mpvpc-graphite:#2a2826;--mpvpc-bone:#f2eee3;--mpvpc-bone-clear:#fbf9f3;--mpvpc-ember:#d97a1f;--mpvpc-ember-a11y:#a65300;--mpvpc-line:#ddd7c8;--mpvpc-muted:#888477;--sans:Inter,system-ui,sans-serif;--serif:"Source Serif 4",Georgia,serif}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--mpvpc-black);color:var(--mpvpc-bone);font-family:var(--sans)}
button,input,textarea{font:inherit}
button{min-height:48px;border:1px solid #55524a;border-radius:8px;background:#242321;color:var(--mpvpc-bone);padding:0 16px;font-weight:750;cursor:pointer}
button:hover{border-color:var(--mpvpc-ember)}
button:disabled{cursor:not-allowed;opacity:.42}
.primary-button,.participant-primary{background:var(--mpvpc-ember);border-color:var(--mpvpc-ember);color:var(--mpvpc-black)}
.prototype-banner{height:44px;display:flex;align-items:center;gap:14px;padding:0 18px;background:#221f1b;border-bottom:1px solid #453d33;font-size:12px;letter-spacing:.04em}
.prototype-banner strong{color:var(--mpvpc-ember)}
.prototype-banner span{color:#c8c0b2}
.prototype-banner .quiet-button{margin-left:auto;min-height:32px;height:32px;font-size:12px}
.review-shell{min-height:calc(100vh - 44px);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;padding:18px}
.review-shell.phone-hidden{grid-template-columns:minmax(0,1fr)}
.presenter-column{min-width:0}
.stage-shell{width:100%;background:#000;border:1px solid #3a3732;border-radius:10px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.stage{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#000}
.slide-media{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.slide-media[hidden],.poll-overlay[hidden],.comment-feed[hidden],.join-panel[hidden],.join-slide[hidden],.names-layer[hidden]{display:none}
.stage-meta{position:absolute;left:14px;bottom:10px;display:flex;gap:8px;align-items:center;padding:5px 8px;border-radius:5px;background:rgba(15,15,14,.76);font-size:10px;letter-spacing:.05em;opacity:.72}
.poll-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:5%;background:#0f0f0e}
.poll-panel{width:min(90%,1220px);padding:clamp(24px,4vw,64px);background:#151412;border:1px solid #403c36;border-top:8px solid var(--mpvpc-ember);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px 64px}
.poll-panel>.eyebrow,.poll-panel>h2{grid-column:1}
.poll-panel>.poll-bars,.poll-panel>p{grid-column:2}
.poll-panel h2{margin:10px 0 18px;font-size:clamp(18px,2vw,34px);line-height:1.08}
.eyebrow,.field-kind{font-size:11px;font-weight:850;letter-spacing:.22em;color:var(--mpvpc-ember)}
.poll-row{margin:10px 0}
.poll-row-label{display:flex;justify-content:space-between;gap:18px;font-size:14px}
.poll-track{height:10px;margin-top:5px;background:#383632;border-radius:99px;overflow:hidden}
.poll-track i{display:block;width:var(--value);height:100%;background:var(--mpvpc-ember);transition:width .55s ease}
.poll-panel p{margin:16px 0 0;color:#c9c2b6;font-size:12px}
.comment-feed{position:absolute;z-index:4;width:min(33%,520px);display:grid;gap:8px}
.anchor-top-right{top:5%;right:4%}.anchor-top-left{top:5%;left:4%}.anchor-bottom-right{right:4%;bottom:8%}.anchor-bottom-left{left:4%;bottom:8%}.anchor-top-center{top:3%;left:50%;transform:translateX(-50%)}
.live-comment{position:relative;padding:12px 38px 12px 14px;border:1px solid rgba(242,238,227,.28);border-left:4px solid var(--mpvpc-ember);background:#0f0f0e;color:#f2eee3;box-shadow:0 14px 34px rgba(0,0,0,.5);animation:comment-in .28s ease both,comment-out .4s ease var(--comment-exit-delay,9.6s) forwards}
.live-comment strong{display:block;color:var(--mpvpc-ember);font-size:12px}
.live-comment span{display:block;margin-top:3px;font-family:var(--serif);font-size:clamp(12px,1.2vw,20px);line-height:1.25}
.live-comment button{position:absolute;right:5px;top:5px;min-height:28px;width:28px;padding:0;border:0;background:transparent}
@keyframes comment-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes comment-out{to{opacity:0;transform:translateY(-6px)}}
.join-panel{position:absolute;right:4%;top:5%;z-index:5;width:min(42%,610px);display:flex;gap:16px;align-items:center;padding:16px;background:rgba(15,15,14,.94);border:1px solid rgba(217,122,31,.6);box-shadow:0 24px 60px rgba(0,0,0,.55)}
.join-panel img{width:34%;aspect-ratio:1;background:#fff}
.join-panel strong{display:block;margin:8px 0;font-size:clamp(15px,1.8vw,28px)}
.join-panel a{display:block;color:var(--mpvpc-bone);font-size:11px;word-break:break-all}
.join-slide{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);align-items:center;gap:6%;padding:5.5%;background:#0f0f0e}
.join-slide::before{content:"";position:absolute;left:0;top:0;width:30%;height:10px;background:var(--mpvpc-ember)}
.join-slide-copy h1{margin:18px 0;font-size:clamp(44px,6vw,96px);line-height:.94;letter-spacing:-.055em}
.join-slide-copy p{max-width:650px;margin:0 0 28px;font-family:var(--serif);font-size:clamp(22px,2.5vw,38px);line-height:1.3;color:#d4ccbd}
.join-slide-copy a{color:var(--mpvpc-bone);font-size:clamp(12px,1.1vw,18px);word-break:break-all}
.join-slide-qr-wrap{display:grid;place-items:center;padding:24px;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.join-slide-qr-wrap img{display:block;width:min(100%,620px);aspect-ratio:1}
.names-layer{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:7%;background:#0f0f0e}
.names-stage{width:min(92%,1300px)}
.names-stage h2{max-width:1100px;margin:18px 0 38px;font-family:var(--serif);font-size:clamp(36px,5vw,76px);font-weight:500;line-height:1.08}
.names-cloud{display:flex;flex-wrap:wrap;gap:12px}
.names-cloud span{padding:10px 16px;border:2px solid var(--mpvpc-ember);border-radius:999px;background:var(--mpvpc-bone);color:var(--mpvpc-black);font-family:var(--serif);font-size:clamp(18px,2vw,30px);animation:comment-in .28s ease both}
.names-cloud p{font-family:var(--serif);font-size:28px;color:#9a9387}
.presenter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 0}
.context-controls{display:flex;gap:8px;flex-wrap:wrap}.context-controls[hidden]{display:none}
.control-separator{width:1px;height:30px;background:#4b4841;margin:0 4px}
.keyboard-help{margin:0;color:#aaa399;font-size:12px}
.phone-column{min-width:0}
.phone-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;font-size:10px;letter-spacing:.12em;color:#bdb5a8}
.phone-label a{color:var(--mpvpc-ember);letter-spacing:0}
.phone-frame{width:100%;height:calc(100vh - 116px);min-height:620px;padding:10px;border:1px solid #45423c;border-radius:28px;background:#070707;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.phone-frame iframe{width:100%;height:100%;border:0;border-radius:20px;background:var(--mpvpc-bone-clear)}
.participant-page{min-height:100vh;background:var(--mpvpc-bone-clear);color:var(--mpvpc-graphite)}
.participant-shell{width:min(100%,560px);margin:auto;min-height:100vh;padding:24px 18px 32px}
.participant-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid var(--mpvpc-line)}
.wordmark{font-size:20px;font-weight:850;letter-spacing:-.04em}.wordmark span{color:var(--mpvpc-ember)}
.demo-chip{padding:5px 8px;border:1px solid #d9b78e;border-radius:99px;color:var(--mpvpc-ember-a11y);font-size:10px;font-weight:800}
.participant-context{padding:26px 0 18px}
.participant-context h1{margin:9px 0 7px;font-size:clamp(26px,7vw,40px);line-height:1;letter-spacing:-.04em}
.participant-context p{margin:0;font-family:var(--serif);font-size:18px;color:#5d594f}
.participant-card{padding:20px;border:1px solid var(--mpvpc-line);border-radius:12px;background:#fff;box-shadow:0 14px 42px rgba(42,40,38,.09)}
.participant-card[hidden]{display:none}
.waiting-card{display:grid;justify-items:center;text-align:center;padding:36px 22px}
.waiting-card .participant-note{margin:0}
.waiting-pulse{display:flex;gap:8px;margin-bottom:18px}
.waiting-pulse i{width:10px;height:10px;border-radius:50%;background:var(--mpvpc-ember);animation:waiting-pulse 1.2s ease-in-out infinite}
.waiting-pulse i:nth-child(2){animation-delay:.2s}.waiting-pulse i:nth-child(3){animation-delay:.4s}
@keyframes waiting-pulse{0%,80%,100%{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.waiting-pulse i{animation:none;opacity:.7}}
.participant-card h2{margin:10px 0 12px;font-size:24px;line-height:1.08}
.participant-note{margin:0 0 18px;font-family:var(--serif);color:#5d594f}
fieldset{display:grid;gap:10px;margin:16px 0;padding:0;border:0}
.poll-option{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 12px;border:1px solid var(--mpvpc-line);border-radius:8px;cursor:pointer}
.poll-option:has(input:checked){border-color:var(--mpvpc-ember);background:#fff7ee}
.poll-option input{width:22px;height:22px;accent-color:var(--mpvpc-ember)}
label{display:grid;gap:7px;margin-bottom:14px;font-size:13px;font-weight:750}
.name-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
input,textarea{width:100%;min-height:48px;padding:12px;border:1px solid #b9b1a4;border-radius:8px;background:#fff;color:var(--mpvpc-graphite);font-size:16px}
textarea{resize:vertical;min-height:100px}
input:focus,textarea:focus{outline:3px solid rgba(217,122,31,.22);border-color:var(--mpvpc-ember)}
.participant-primary{width:100%;min-height:54px;margin-top:4px;font-size:16px}
.participant-privacy{margin:22px 0 0;font-size:12px;line-height:1.45;color:#77726a}
.participant-privacy a{color:var(--mpvpc-ember-a11y)}
.review-card{margin-bottom:14px;border-top:4px solid var(--mpvpc-ember)}
.review-link{display:flex;align-items:center;justify-content:center;border-radius:8px;font-weight:750;text-decoration:none}
.review-link:focus-visible{outline:3px solid rgba(217,122,31,.35);outline-offset:2px}
.message-meta{display:flex;justify-content:flex-end;margin:-8px 0 8px;color:#777166;font-size:12px}
.form-status{min-height:21px;margin:13px 0 0;color:var(--mpvpc-ember-a11y);font-size:13px;font-weight:700}
.participant-shell footer{padding-top:20px;text-align:center;color:#777166;font-size:11px}
@media(max-width:1050px){.review-shell{grid-template-columns:1fr}.phone-column{max-width:420px}.phone-frame{height:740px}}
@media(max-width:900px){.poll-panel{grid-template-columns:1fr}.poll-panel>.eyebrow,.poll-panel>h2,.poll-panel>.poll-bars,.poll-panel>p{grid-column:1}.join-slide{grid-template-columns:1fr 1fr;gap:4%;padding:4%}.join-slide-copy p{font-size:20px}}
@media(max-width:560px){.participant-shell{padding:18px 14px 26px}.name-grid{grid-template-columns:1fr}.participant-card{padding:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Controle autenticado, saída limpa e participação por sessão (IMP-005). */
.presenter-page .prototype-banner{height:auto;min-height:56px;flex-wrap:wrap;padding:8px 18px}
.session-status{padding:6px 10px;border:1px solid #55524a;border-radius:99px;color:#c8c0b2}
.session-status[data-status="prepared"]{border-color:#8a6a3c;color:#f0d6b0}
.session-status[data-status="join_open"]{border-color:var(--mpvpc-ember);color:var(--mpvpc-bone);background:rgba(217,122,31,.16)}
.session-status[data-status="ended"]{border-color:#6b2424;color:#e9c2c2}
.session-actions{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.session-actions button{min-height:40px}
.quiet-link{color:var(--mpvpc-ember);font-size:13px;font-weight:700}
.phone-frame{position:relative}
.phone-note{position:absolute;inset:10px;display:grid;place-items:center;margin:0;padding:24px;border-radius:20px;background:var(--mpvpc-bone-clear);color:#5d594f;font-family:var(--serif);font-size:17px;text-align:center}
.phone-note[hidden]{display:none}
.login-gate{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px;background:var(--mpvpc-black)}
.login-gate[hidden]{display:none}
.login-card{width:min(100%,420px);display:grid;gap:14px;padding:28px;border:1px solid #403c36;border-top:6px solid var(--mpvpc-ember);border-radius:12px;background:#151412}
.login-card h1{margin:0;font-size:28px;line-height:1.1;letter-spacing:-.03em}
.login-card label{color:#c8c0b2}
.login-card input{background:#0f0f0e;border-color:#55524a;color:var(--mpvpc-bone)}
.login-card .form-status{color:#f0b27a}
.login-note{margin:0;color:#c8c0b2;font-size:15px;line-height:1.4}
.output-page{min-height:100vh;display:grid;place-items:center;background:#000;overflow:hidden}
.output-stage{position:relative;width:min(100vw,calc(100vh * 16 / 9));aspect-ratio:16/9;overflow:hidden;background:#000}
.output-page .live-comment button{display:none}
.output-stage{container-type:inline-size}
.fullscreen-toggle{position:fixed;right:20px;bottom:20px;z-index:30;display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 18px;border:1px solid rgba(242,238,227,.35);border-radius:999px;background:rgba(15,15,14,.82);color:var(--mpvpc-bone);font-family:var(--sans);font-size:15px;font-weight:750;box-shadow:0 10px 30px rgba(0,0,0,.45);transition:opacity .3s ease}
.fullscreen-toggle[hidden]{display:none}
.fullscreen-toggle:hover,.fullscreen-toggle:focus-visible{border-color:var(--mpvpc-ember);outline:none}
.fullscreen-toggle svg{width:20px;height:20px;fill:none;stroke:var(--mpvpc-ember);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.output-page.is-idle{cursor:none}
.output-page.is-idle .fullscreen-toggle:not(:focus-visible){opacity:0;pointer-events:none}
.output-waiting{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:2.2cqw;padding:6cqw;text-align:center;background:var(--mpvpc-black);color:var(--mpvpc-bone)}
.output-waiting[hidden]{display:none}
.output-waiting::before{content:"";position:absolute;left:0;top:0;width:30%;height:.6cqw;background:var(--mpvpc-ember)}
.output-waiting .eyebrow{font-size:1.2cqw}
.output-waiting h1{margin:0;max-width:24ch;font-size:4.4cqw;line-height:1.05;letter-spacing:-.04em}
.output-waiting .wordmark{font-size:1.8cqw;color:#bdb5a8}
.output-waiting .waiting-pulse{gap:.8cqw;margin:0}
.output-waiting .waiting-pulse i{width:1cqw;height:1cqw}
