* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: linear-gradient(120deg,#e8f5ec,#fff9eb); color: #142f31; font: 16px/1.75 system-ui,"Microsoft YaHei",sans-serif; }
main { width: min(520px, calc(100% - 32px)); margin: clamp(18px, 6vw, 56px) auto; padding: clamp(20px, 5vw, 36px); background: #fff; border: 1px solid #dce8df; border-radius: 22px; text-align: center; }
h1 { font-size: clamp(1.5rem,4vw,2rem); line-height: 1.25; overflow-wrap: anywhere; }
button { min-height: 48px; border: 1px solid #085b55; border-radius: 12px; background: #085b55; color: #fff; padding: .6em 1.15em; font: inherit; font-weight: 750; cursor: pointer; }
button:hover { background: #064944; }
button:disabled { opacity: .65; cursor: wait; }
a { color: #085b55; text-underline-offset: .22em; }
:focus-visible { outline: 3px solid #9e5900; outline-offset: 4px; }
img { display: block; margin: 24px auto; max-width: 100%; object-fit: contain; }
.hint { color: #385958; font-size: 14px; }
.error { color: #8a3527; }
