:root{--ink:#161512;--paper:#f4f0e8;--card:#fffdf8;--acid:#d9ff3f;--line:#cfc8bb}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.45 Arial,sans-serif}
main{max-width:900px;margin:auto;padding:42px 20px 70px}
.eyebrow{font-size:.75rem;font-weight:bold;letter-spacing:.13em;margin:0 0 8px}
h1{font-size:clamp(3.5rem,11vw,7rem);line-height:.82;letter-spacing:-.08em;margin:0}
.intro{font-size:1.2rem;margin:20px 0 40px}
.card{background:var(--card);border:1px solid var(--ink);padding:24px;box-shadow:6px 6px 0 var(--ink);margin:22px 0}
h2,h3{letter-spacing:-.04em;line-height:1.05}
label{display:block;font-weight:bold;margin:16px 0}
input,textarea{display:block;width:100%;padding:12px;margin-top:6px;background:#fff;border:1px solid var(--ink);font:inherit}
textarea{min-height:90px}
button{background:var(--acid);border:1px solid var(--ink);padding:12px 18px;font-weight:bold;cursor:pointer;box-shadow:3px 3px 0 var(--ink)}
button:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink)}
button:disabled{opacity:.5;cursor:default;transform:none}
button.secondary{background:transparent;margin-top:24px}
button.text-link{background:transparent;border:none;box-shadow:none;text-decoration:underline;padding:4px 0;font-weight:bold}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:18px}
.tension{background:var(--card);border:1px solid var(--ink);padding:18px;display:flex;flex-direction:column}
.tension button{margin-top:auto;padding-top:14px}
.tension p{flex:1}
.hidden{display:none}
.meta{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
.invention h2{font-size:clamp(2rem,5vw,3.5rem);margin:.1em 0}
.invention .log{font-size:1.25rem;font-weight:bold}
details{margin-top:20px}
summary{cursor:pointer;font-weight:bold;font-size:1.1rem}
.invention-list{margin-top:20px}
.alternative{box-shadow:6px 6px 0 var(--ink)}
.hint{margin-top:28px;font-style:italic}
#status{min-height:1.5em;font-weight:bold;color:#752424}
#status.working{color:var(--ink);font-style:italic;font-weight:normal}
.custom-row{display:flex;gap:12px;margin-top:22px;align-items:stretch}
.custom-row input{margin-top:0;flex:1}
.custom-row button{white-space:nowrap}
#custom-message{margin-top:10px;font-weight:bold}
@media(max-width:520px){main{padding:25px 14px}.card{padding:18px}.custom-row{flex-direction:column}}
