/* Session UI: quiet decisions, loud consequences. */
a.brand{min-width:44px;min-height:44px;color:var(--ink);text-decoration:none;border-radius:12px;touch-action:manipulation}a.brand:focus-visible{outline:3px solid #9a73ff;outline-offset:4px}
[hidden]{display:none!important}button:focus-visible,textarea:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #9a73ff;outline-offset:4px}
button:disabled{cursor:wait;opacity:.55}.sound{font-size:11px;white-space:nowrap}.modal-open{overflow:hidden}.top-actions{flex-wrap:wrap;justify-content:flex-end}
.choice-prompt{font-size:12px;font-weight:850;color:var(--muted);margin:0 0 12px}.choices{display:grid;gap:11px}.choice{display:flex;gap:13px;align-items:flex-start;width:100%;padding:16px 18px;border:2px solid var(--ink);border-radius:17px;background:#fff;text-align:left;font-family:inherit;font-weight:750;font-size:15px;line-height:1.55;color:var(--ink);box-shadow:3px 3px 0 #e2d4f5;transition:transform .14s,background .14s}.choice:hover{background:#f3edff;transform:translateY(-2px)}.choice:active{transform:translate(2px,2px);box-shadow:none}.choice-letter{flex:0 0 25px;height:25px;border-radius:8px;display:grid;place-items:center;color:var(--purple);background:#eee7ff;font-size:12px;font-weight:950}.choice>span:last-child{font-size:15px;line-height:1.55;font-weight:750}.custom-choice{width:100%;background:none;border:1.5px dashed #b5a4ce;border-radius:15px;padding:15px;margin-top:13px;font-size:14px;font-weight:850;color:var(--purple)}.custom-choice:hover{background:#f7f0ff}.text-button{border:0;background:transparent;color:var(--purple);padding:10px 0;font-family:inherit;font-weight:800;font-size:12px;line-height:1.5;text-decoration:underline;text-underline-offset:4px;text-align:left}.text-button:disabled{opacity:.5}.hint-wrap{margin-top:9px}.hint-wrap p{margin:4px 0 0;border-radius:13px;background:#f2edff;padding:12px 14px;font-size:13px;line-height:1.6;color:#645672}.stage-card.judged #writingWrap,.stage-card.judged #choicesWrap{display:none}.stage-title:focus,.results h2:focus{outline:none}
.npc-reply{background:#25212a;color:#fff;border:2px solid #25212a;border-radius:18px 18px 18px 4px;margin:18px 0 12px;padding:16px 18px;box-shadow:4px 4px 0 #bda9f9}.npc-reply span{font-size:10px;letter-spacing:1px;color:#cbbaf1;font-weight:900}.npc-reply p{margin:7px 0 0;font-size:20px;line-height:1.4;font-weight:850}.result-panel.negative .npc-reply{box-shadow:4px 4px 0 #ff8faf}.result-panel.positive .npc-reply{box-shadow:4px 4px 0 #8addaf}.judge-details{margin:14px 0 0;text-align:left}.judge-details summary{font-size:12px;color:#74677f;font-weight:750;cursor:pointer;padding:8px 0}.judge-details .metrics{margin-top:8px}.judge-note{font-size:11px;color:#7b6c83;line-height:1.6}.next-row{gap:16px;justify-content:space-between;align-items:center;flex-wrap:wrap}.next-row .secondary{margin-left:auto}
.result-scope{color:var(--purple);font-size:12px;font-weight:950;letter-spacing:1.5px;margin-bottom:16px}.results h2{font-size:clamp(30px,6vw,46px);overflow-wrap:anywhere}.result-copy{font-size:14px}.final-card{margin-bottom:18px}.final-label{font-size:12px;letter-spacing:1px;color:#806e8d}.final-note{font-size:18px;color:var(--ink);font-weight:800;line-height:1.55}.round-log{grid-template-columns:repeat(3,1fr)}.round-log i{height:15px;font-size:10px}.snapshot-tabs{display:flex;justify-content:center;gap:8px;margin:0 0 12px}.snapshot-tabs:empty{display:none}.snapshot-tab{border:1.5px solid #cdbdde;background:#fff;border-radius:99px;font-size:12px;font-weight:850;padding:9px 15px;color:var(--purple)}.snapshot-tab[aria-pressed=true]{background:var(--purple);border-color:var(--purple);color:#fff}
.spotlight-card{text-align:left;max-width:650px;margin:0 auto 23px;padding:23px;border:2px solid var(--ink);border-radius:24px;background:#fffdf9;box-shadow:5px 5px 0 #d6c5f5;overflow-wrap:anywhere}.spotlight-card[data-tone=negative]{box-shadow:5px 5px 0 #ffb6c9}.spotlight-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:10px;letter-spacing:1px;font-weight:950;color:var(--purple)}.spotlight-top select{min-width:0;max-width:100%;background:#f5eeff;border:1px solid #d6c5f5;border-radius:9px;padding:7px;color:#635273;font-size:11px}.spotlight-question{font-size:21px;line-height:1.45;font-weight:900;margin:19px 0}.quote-label{font-size:10px;font-weight:900;color:#8a7d90;letter-spacing:1px;margin-top:18px}.spotlight-answer{font-size:15px;line-height:1.6;margin:7px 0 16px}.spotlight-reaction{background:#25212a;color:#fff;font-size:19px;font-weight:850;line-height:1.5;border-radius:14px;padding:14px 16px;margin:8px 0 0}.bonus-panel{max-width:650px;margin:24px auto 0;border-top:1.5px dashed #d5c5dd;padding-top:21px}.bonus-panel .secondary{background:#ffdc7d}.bonus-panel p{font-size:12px;color:#817188;line-height:1.6;margin:12px 0 0}.challenge-pending{max-width:600px;margin:16px auto;font-size:13px;line-height:1.5;color:#766084}#finalJudgment{max-width:650px;margin:0 auto 18px}.result-actions .primary{font-size:16px}
.share-modal{width:min(520px,100%)}.share-preview{padding:18px;background:#fff8ef;border:1.5px solid #d8c9e4;border-radius:18px;margin-top:14px;overflow-wrap:anywhere}.share-preview p{color:var(--ink);margin:8px 0 0;font-size:14px;line-height:1.6}.share-preview .quote-label:first-child{margin-top:0}.share-preview .preview-question{font-size:18px;font-weight:900}.share-preview .preview-reaction{font-weight:850;color:#af2c54}.include-answer{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.5;margin:15px 0;color:#695c70}.include-answer input{accent-color:var(--purple);width:17px;height:17px;flex-shrink:0;margin:1px 0}.share-link .secondary{width:auto;margin-top:0;min-height:42px;padding:9px 13px}.qr-box:empty{display:none}.qr-box{min-height:0}.qr-box svg{width:150px}.share-score{margin-top:10px}
.impact-fx{position:fixed;inset:0;z-index:25;pointer-events:none;display:none;align-items:center;justify-content:center;flex-direction:column;gap:8px;overflow:hidden}.impact-fx.active{display:flex;animation:impact-veil 1s both;background:radial-gradient(ellipse at center,#fff8ef00 28%,#ff6f9a30)}.impact-fx.positive{background:radial-gradient(ellipse at center,#fff8ef00 28%,#a58bff35)}.impact-fx b{font-size:clamp(70px,14vw,135px);animation:impact-icon .8s cubic-bezier(.16,1,.3,1) both;filter:drop-shadow(5px 8px 0 #25212a25)}.impact-fx span{max-width:90vw;text-align:center;font-size:clamp(21px,5vw,40px);font-weight:950;letter-spacing:-1px;background:#25212a;color:#fff8ef;padding:13px 24px;border:3px solid #fff8ef;border-radius:14px;box-shadow:7px 7px 0 #ef476f;transform:rotate(-5deg);animation:impact-stamp .9s both}.impact-fx.positive span{box-shadow:7px 7px 0 #6b4df6}.fx span{font-size:30px;animation-duration:1.25s}.big-hit{animation:big-hit .5s ease both}.big-save{animation:big-save .45s ease both}.ending-enter .result-emoji{animation:ending-pop .65s cubic-bezier(.15,1.5,.4,1) both}.ending-enter .final-card{animation:ending-card .5s .12s both}
@keyframes impact-veil{0%{opacity:0}10%,60%{opacity:1}100%{opacity:0}}@keyframes impact-icon{0%{transform:scale(2.2) rotate(-24deg);opacity:0}25%{transform:scale(1.05) rotate(8deg);opacity:1}75%{opacity:1}100%{transform:scale(.85) rotate(-5deg);opacity:0}}@keyframes impact-stamp{0%{transform:scale(2) rotate(-16deg);opacity:0}20%,65%{transform:scale(1) rotate(-5deg);opacity:1}100%{transform:translateY(25px) rotate(-3deg);opacity:0}}@keyframes big-hit{10%{transform:translate(-10px,2px) rotate(-1deg)}25%{transform:translate(9px,-2px) rotate(.7deg)}45%{transform:translate(-6px,0)}70%{transform:translate(3px,0)}}@keyframes big-save{40%{transform:translateY(-6px) scale(1.01)}}@keyframes ending-pop{from{transform:scale(.4) rotate(-16deg);opacity:0}to{transform:scale(1);opacity:1}}@keyframes ending-card{from{transform:translateY(15px);opacity:.3}to{transform:translateY(0);opacity:1}}
@media(max-width:680px){.topbar{gap:8px}.top-actions{gap:6px}.sound{font-size:10px;padding:8px}.brand small{font-size:7px}.choice{padding:14px 12px;gap:10px}.choice>span:last-child{font-size:14px}.stage-card{padding:23px 19px}.npc-reply p{font-size:18px}.next-row .text-button{font-size:11px}.spotlight-card{padding:18px}.spotlight-question{font-size:19px}.result-actions{gap:10px}.result-actions button{width:100%}.bonus-panel .secondary{width:100%}.results{padding-top:22px}.final-note{font-size:16px}.modal-bg{padding:13px}.modal{padding:20px;max-height:calc(100dvh - 26px)}.hp-delta{font-size:27px}.event-title{font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.impact-fx,.fx{display:none!important}}
/* One linear round: reply, visible scores, next. */
.custom-label{font-size:12px;font-weight:800;color:var(--muted);margin:24px 0 8px}.judge-scores .metrics{margin:18px 0}.metric strong small{display:inline;font-size:12px;font-weight:600;margin-left:3px;color:var(--muted)}.next-row .secondary{width:100%;min-height:58px;background:var(--yellow)}.moment-link{display:block;margin:10px auto 0;padding:5px 8px;font-size:11px;color:#867a90;text-decoration:none;opacity:.8}.moment-link:hover{text-decoration:underline;opacity:1}.result-actions{align-items:center}.result-actions .text-button{width:auto;font-size:12px;padding:12px}.share-modal>#downloadBtn,.share-modal>#closeShare{display:inline-block;margin:16px 16px 0 0;font-size:12px}.result-panel .event-title{max-width:300px}.share-preview .metric strong{font-size:24px}.share-preview .metrics{gap:8px}.share-preview .metric{padding:10px}.result-panel .next-row{position:static}.result-panel .impact{margin-top:12px}.result-panel{margin-top:16px}.results .round-log{margin-top:20px}.choices-wrap{margin-bottom:16px}

/* Preserve the page width while a dialog locks background scrolling. */
html{scrollbar-gutter:stable}.modal{overscroll-behavior:contain}.modal h3:focus{outline:none}
