:root { color-scheme: dark; font: 16px/1.5 system-ui, sans-serif; background: #101719; color: #e8f0ed; }
* { box-sizing: border-box; }
body { margin: 0; padding: 2rem 1rem; }
main { max-width: 42rem; margin: auto; }
header, section, details { background: #192326; border: 1px solid #334346; border-radius: 1rem; padding: 1.25rem; margin: 1rem 0; }
h1, h2 { line-height: 1.15; }
h1 { font-size: clamp(2rem, 8vw, 3.5rem); margin: .25rem 0; }
h2 { font-size: 1.25rem; }
.eyebrow { color: #8fc6a8; letter-spacing: .12em; font-size: .75rem; }
label { display: grid; gap: .35rem; margin: .8rem 0; }
input, button, summary { font: inherit; }
input { width: 100%; background: #0d1416; color: inherit; border: 1px solid #526366; border-radius: .5rem; padding: .7rem; }
button { border: 0; border-radius: .5rem; padding: .7rem 1rem; background: #8fc6a8; color: #102018; font-weight: 700; cursor: pointer; margin: .25rem .25rem .25rem 0; }
button:disabled { background: #53605c; color: #e8f0ed; cursor: not-allowed; }
button:hover:not(:disabled) { background: #b0ddc4; }
button:focus-visible, summary:focus-visible, input:focus-visible { outline: 3px solid #d2ab55; outline-offset: 3px; }
input::placeholder { color: #b6c9c1; }
::selection { color: #102018; background: #b0ddc4; }
#message, .notice { padding: .8rem; border: 1px solid #8fc6a8; background: #192326; overflow-wrap: anywhere; }
[hidden] { display: none !important; }
.play { border-color: #756637; }
@media (max-width: 30rem) { body { padding: 1rem .65rem; } header, section, details { padding: 1rem; } }
