.reaction-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; flex: 1; }
.reaction-card, .score-card { padding: 22px; }
.reaction-card { display: flex; min-height: 510px; flex-direction: column; }
.test-topline, .score-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.attempt-label { color: var(--text-secondary); font-weight: 700; }
.attempt-count { padding: 5px 10px; border: 1px solid var(--color-border); border-radius: 999px; color: var(--text-secondary); font-family: var(--font-mono); font-size: .8rem; }
.reaction-pad { position: relative; isolation: isolate; display: flex; min-height: 365px; flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: 10px; margin-top: 18px; padding: 24px; overflow: hidden; border: 1px solid var(--color-border); border-radius: 18px; color: #fff; background: #273449; cursor: pointer; transition: background .16s ease, transform .12s ease, box-shadow .16s ease; }
.reaction-pad::before { content: ''; position: absolute; z-index: -1; width: 52%; aspect-ratio: 1; border: 2px solid rgba(255,255,255,.28); border-radius: 50%; opacity: .8; transition: transform .25s ease, opacity .2s ease; }
.reaction-pad:hover:not(:disabled) { transform: translateY(-1px); }
.reaction-pad:active { transform: scale(.995); }
.reaction-pad:focus-visible, .btn-icon:focus-visible, .btn:focus-visible, summary:focus-visible { outline: 3px solid var(--accent-amber); outline-offset: 4px; }
.reaction-pad strong { font-family: var(--font-display); font-size: clamp(1.75rem, 4vw, 2.8rem); letter-spacing: -.035em; }
.reaction-pad span:last-child { max-width: 29rem; color: rgba(255,255,255,.82); font-size: .98rem; }
.reaction-pad .material-symbols-outlined { font-size: 46px; }
.reaction-pad.is-waiting { background: #dc5a38; }
.reaction-pad.is-waiting::before { transform: scale(.72); opacity: .42; }
.reaction-pad.is-ready { background: #078a65; box-shadow: 0 0 0 8px rgba(16,185,129,.15), 0 0 48px rgba(16,185,129,.35); }
.reaction-pad.is-ready::before { animation: signalRing 1.1s ease-out infinite; }
.reaction-pad.is-false { background: #9d254a; }
@keyframes signalRing { from { transform: scale(.65); opacity: .8; } to { transform: scale(1.55); opacity: 0; } }
.run-note { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 15px; color: var(--text-muted); font-size: .84rem; text-align: center; }
.run-note .material-symbols-outlined { font-size: 18px; }
.score-card { min-height: 300px; }
.score-heading h2 { font-family: var(--font-display); font-size: 1.1rem; }
.attempt-list, .result-list { list-style: none; }
.attempt-list { display: grid; gap: 8px; margin-top: 18px; }
.attempt-list li, .result-list li { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--color-border-subtle); padding: 10px 2px; font-size: .9rem; }
.attempt-list strong, .result-list strong { font-family: var(--font-mono); color: var(--accent-blue); }
.empty-records { margin-top: 30px; color: var(--text-muted); font-size: .9rem; }
.false-starts { margin-top: 18px; padding: 10px 12px; border: 1px solid color-mix(in srgb, var(--accent-rose) 45%, transparent); border-radius: var(--radius-sm); color: var(--accent-rose); font-size: .84rem; }
.guide-content { width: min(100%, 960px); margin: 4px auto 8px; padding: clamp(24px, 5vw, 54px); }
.guide-intro { max-width: 720px; }
.guide-kicker { color: var(--accent-blue); font-family: var(--font-mono); font-size: .75rem; font-weight: 700; letter-spacing: .08em; }
.guide-content h2 { margin-top: 9px; font-family: var(--font-display); font-size: clamp(1.55rem, 3vw, 2.15rem); letter-spacing: -.035em; line-height: 1.2; }
.guide-content p { color: var(--text-secondary); line-height: 1.8; }
.guide-intro > p { margin-top: 15px; }
.guide-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 34px; margin-top: 35px; }
.guide-grid article { border-top: 2px solid var(--color-border); padding-top: 12px; }
.guide-grid h3, .faq h3, .modal-body h3 { margin-bottom: 8px; font-family: var(--font-display); font-size: 1.1rem; }
.guide-content code { color: var(--accent-purple); font-family: var(--font-mono); font-size: .88em; }
.faq { margin-top: 37px; padding-top: 24px; border-top: 1px solid var(--color-border); }
.faq details { border-bottom: 1px solid var(--color-border-subtle); padding: 13px 0; }
.faq summary { cursor: pointer; font-weight: 700; }
.faq details p { padding: 9px 0 2px; font-size: .94rem; }
.reaction-results { width: min(100%, 580px); }
.result-lead { margin-bottom: 18px; color: var(--text-secondary); }
.summary-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 24px; }
.summary-stats div { padding: 14px 9px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); text-align: center; }
.summary-stats span { display: block; color: var(--text-muted); font-size: .73rem; font-weight: 700; }
.summary-stats strong { display: block; margin-top: 4px; color: var(--accent-blue); font-family: var(--font-mono); font-size: 1.1rem; }
.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; }
@media (max-width: 840px) { .reaction-layout { grid-template-columns: 1fr; } .reaction-card { min-height: 460px; } .score-card { min-height: auto; } }
@media (max-width: 560px) { .reaction-card, .score-card { padding: 15px; } .reaction-card { min-height: 420px; } .reaction-pad { min-height: 300px; } .guide-grid { grid-template-columns: 1fr; gap: 24px; } .summary-stats { gap: 5px; } .summary-stats div { padding: 10px 4px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
/* Clear signal states; no colour animation during timed measurements. */
.reaction-layout { gap: 24px; }
.reaction-card { padding: 28px; }
.test-steps { display: flex; list-style: none; justify-content: space-between; gap: 12px; margin-top: 20px; color: var(--text-secondary); font-size: .8rem; font-weight: 700; }
.reaction-pad { min-height: 370px; background: #183b73; border: 0; border-radius: 24px; transition: none; touch-action: manipulation; user-select: none; }
.reaction-pad::before { display: none; }
.reaction-pad:hover:not(:disabled), .reaction-pad:active { transform: none; }
.reaction-pad.is-waiting { background: #8f3d11; }
.reaction-pad.is-ready { background: #05603f; box-shadow: none; }
.reaction-pad.is-false { background: #9f1239; }
.reaction-pad.is-complete { background: #183b73; }
.pad-symbol { display: grid; place-items: center; width: 64px; height: 64px; border: 1px solid #ffffff50; border-radius: 50%; font-size: 30px; margin-bottom: 10px; }
.pad-metric { font-family: var(--font-mono); font-weight: 800; font-size: clamp(2.5rem, 7vw, 4.5rem); letter-spacing: -.06em; line-height: 1.1; }
.pad-metric[hidden], .record-actions button[hidden] { display: none; }
.reaction-pad strong { font-size: clamp(1.6rem, 3vw, 2.6rem); }
.reaction-pad span:last-child { color: #fff; line-height: 1.6; }
.score-card { align-self: start; padding: 26px; }
.attempt-list li { padding: 17px 0; }
.attempt-list strong { font-size: 1.25rem; }
.record-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.record-actions .btn { min-height: 44px; flex: 1; }
.summary-stats div:nth-child(2) { border: 2px solid var(--accent-blue); background: color-mix(in srgb, var(--accent-blue) 8%, transparent); }
.summary-stats strong { font-size: clamp(1rem, 3vw, 1.5rem); }
@media (max-width: 840px) { .reaction-card { min-height: auto; } .score-card { align-self: stretch; } }
@media (max-width: 560px) { .reaction-card, .score-card { padding: 16px; } .test-steps { gap: 6px; font-size: .7rem; } .reaction-pad { min-height: 310px; padding: 22px 14px; margin-top: 14px; } .pad-symbol { width: 52px; height: 52px; font-size: 25px; } }
@media (max-height: 500px) and (orientation: landscape) { .reaction-pad { min-height: 210px; } .pad-symbol { display: none; } }
