:root{
  --ivory:#FBF9F4; --cream:#F2EDE3; --ink:#2E2620; --soft:#7A6A58;
  --line:#E3DCCE; --accent:#8A6F52; --deep:#5E4A36; --gold:#B08D3F;
  --warn:#B3271A; --warn-bg:#FBEDEB;
}
*{box-sizing:border-box}
body{margin:0;background:var(--ivory);color:var(--ink);
  font:16px/1.55 ui-sans-serif,-apple-system,"SF Pro Text",system-ui,sans-serif}
.wrap{max-width:640px;margin:0 auto;padding:48px 24px 80px}
.eyebrow{margin:0 0 10px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--soft)}
h1{font-family:"Hoefler Text","Iowan Old Style",Georgia,serif;font-weight:400;
  font-size:clamp(30px,5vw,42px);line-height:1.1;margin:0 0 12px;text-wrap:balance}
h2{font-family:"Hoefler Text",Georgia,serif;font-weight:400;font-size:24px;margin:36px 0 10px}
h3{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);margin:26px 0 8px}
.lede{margin:0 0 30px;color:var(--soft);max-width:56ch}
label{display:block;margin:18px 0 6px;font-size:12px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--soft)}
input{width:100%;padding:12px 14px;font:inherit;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:4px}
input:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
input[readonly]{background:var(--cream)}
.hint{margin:8px 0 0;font-size:13.5px;color:var(--soft)}
.hint.keep{margin-top:22px}
code{background:var(--cream);padding:1px 5px;border-radius:3px;font-size:.9em}
button{margin-top:24px;padding:12px 22px;font:inherit;cursor:pointer;color:var(--ivory);
  background:var(--accent);border:1px solid var(--accent);border-radius:4px}
button:hover{background:var(--deep);border-color:var(--deep)}
.copyrow{display:flex;gap:8px;align-items:stretch}
.copyrow button{margin:0;flex:0 0 auto}
.error{margin-top:22px;padding:12px 14px;border-radius:4px;
  background:var(--warn-bg);color:var(--warn);border:1px solid #E9C7C2}
.note{margin:0 0 18px;padding:12px 14px;border-radius:4px;background:var(--cream);
  border-left:3px solid var(--gold);font-size:14.5px;color:var(--ink)}
.note.warn{background:var(--warn-bg);border-left-color:var(--warn);color:var(--warn)}
iframe{width:100%;border:0;border-radius:10px;min-height:96px}
details{margin-top:22px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:4px}
summary{cursor:pointer;font-size:14px;color:var(--accent)}
details label:first-of-type{margin-top:14px}
input[type=file]{padding:10px;background:#fff}
.hint.rights{margin-top:22px;padding:10px 12px;background:var(--cream);border-radius:4px}
