.gauge{width:100%;max-width:280px;margin:0 auto;position:relative}.gauge svg{width:100%;display:block}.gauge-track{fill:none;stroke:var(--rule);stroke-width:22px;stroke-linecap:butt}.gauge-band{fill:none;stroke-width:22px;stroke-linecap:butt;opacity:.9}.gauge-tick{stroke:var(--ink);stroke-width:2px;opacity:.35}.gauge-needle{transform-origin:150px 150px;transition:transform .9s cubic-bezier(.2,.9,.25,1.15)}.gauge-needle line{stroke:var(--ink);stroke-width:5px;stroke-linecap:round}.gauge-hub{fill:var(--ink)}.gauge-readout{justify-content:center;align-items:baseline;gap:10px;margin-top:2px;display:flex}.gauge-number{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:44px;font-weight:800;line-height:1;transition:color .4s}.gauge-word{color:var(--ink-soft);font-size:15px}.gauge-delta{font-family:var(--display);font-size:20px;font-weight:700;animation:.6s ease-out pop}.gauge-delta.down{color:var(--calm)}.gauge-delta.up{color:var(--hot)}@keyframes pop{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.rehearse{flex-direction:column;min-height:100dvh;display:flex}.dial-bar{z-index:2;background:var(--paper);border-bottom:1.5px solid var(--rule);position:sticky;top:0}.dial-inner{max-width:520px;padding:12px var(--gutter) 4px;margin:0 auto}.dial-meta{color:var(--ink-soft);justify-content:space-between;font-size:14px;display:flex}.dial-meta span:first-child{color:var(--ink);font-weight:600}.log{width:100%;max-width:520px;padding:20px var(--gutter) 12px;flex-direction:column;flex:1;gap:14px;margin:0 auto;display:flex}.turn{flex-direction:column;max-width:86%;display:flex}.turn.them{align-self:flex-start}.turn.you{align-self:flex-end;align-items:flex-end}.bubble{white-space:pre-wrap;border-radius:18px;margin:0;padding:12px 15px}.them .bubble{background:var(--card);border:1.5px solid var(--rule);border-bottom-left-radius:6px}.you .bubble{background:var(--ink);color:var(--paper);border-bottom-right-radius:6px}.verdict{align-items:baseline;gap:6px;margin:6px 2px 0;font-size:14px;display:flex}.verdict strong{font-family:var(--display)}.verdict.down strong{color:var(--calm)}.verdict.up strong{color:var(--hot)}.tip{border-left:3px solid var(--calm);text-align:left;background:#e2efec;border-radius:0 8px 8px 0;margin:6px 0 0;padding:8px 12px;font-size:14px}.typing{align-items:center;gap:5px;min-height:46px;display:flex}.typing span{background:var(--ink-soft);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite blink}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.error{color:var(--hot);align-items:center;gap:12px;font-size:15px;display:flex}.composer{background:var(--paper);border-top:1.5px solid var(--rule);position:sticky;bottom:0}.composer-inner{max-width:520px;padding:4px var(--gutter) calc(12px + env(safe-area-inset-bottom));margin:0 auto}.composer-row{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.score{border-bottom:1.5px solid var(--rule);align-items:baseline;gap:14px;margin-bottom:36px;padding-bottom:24px;display:flex}.score-number{font-family:var(--display);letter-spacing:-.03em;font-size:104px;font-weight:800;line-height:.9}.score-label{color:var(--ink-soft);max-width:10em}.debrief h2,.debrief h3{font-family:var(--display);margin:0 0 8px;font-weight:700}.debrief h2{font-size:22px}.debrief h3{font-size:16px}.debrief section{margin-bottom:32px}.debrief section p{margin:0}.reveal p{font-size:19px}.lines{gap:16px;display:grid}.quote blockquote{background:var(--card);border-left:4px solid;border-radius:12px;margin:0;padding:12px 15px}.quote.good blockquote{border-color:var(--calm)}.quote.bad blockquote{border-color:var(--hot)}.opening{background:var(--ink);color:var(--paper);border-radius:20px;padding:22px}.opening .opening-line{font-family:var(--display);margin:0 0 12px;font-size:22px;font-weight:500;line-height:1.25}.opening .secondary{border-color:var(--paper);color:var(--paper);margin-top:8px}.actions{gap:10px;display:grid}.safety{padding-top:64px}.log-end{scroll-margin-bottom:150px}
