/* contact-modal.css - styles for the contact door (BOOK1). Adapted from ~/dev/zaheermerali-build/shared/book-modal.css
   (20 Oct 2026); this repo owns its copy. Every size is 16px or more. Motion runs off body.reduced only. */
.cm{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .35s var(--exhale),visibility 0s linear .35s;}
.cm[data-open="true"]{opacity:1;visibility:visible;transition:opacity .35s var(--exhale),visibility 0s linear 0s;}
.cm-scrim{position:absolute;inset:0;background:rgba(var(--scrim),.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.cm-panel{--cm-track:rgba(246,240,226,.16);position:relative;z-index:1;width:100%;max-width:480px;max-height:min(680px,92vh);overflow-y:auto;display:flex;flex-direction:column;background:#16181d;color:var(--ink);border:1px solid rgba(246,240,226,.16);border-radius:var(--r-lg);box-shadow:0 40px 80px -30px rgba(0,0,0,.6);padding:clamp(24px,4vw,36px);transform:translateY(10px) scale(.98);transition:transform .4s var(--exhale);}
.cm[data-open="true"] .cm-panel{transform:none;}
.cm-x{all:unset;cursor:pointer;position:absolute;top:10px;right:10px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:var(--ink-soft);font-size:24px;line-height:1;}
.cm-x:hover{background:rgba(246,240,226,.1);color:var(--ink);}
.cm-head{display:flex;align-items:center;gap:12px;margin:0 0 22px;}
.cm-ring{--c1:var(--cm-track);--c2:var(--cm-track);--c3:var(--cm-track);--c4:var(--cm-track);width:34px;height:34px;flex:none;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 5deg,var(--c1) 5deg 85deg,transparent 85deg 95deg,var(--c2) 95deg 175deg,transparent 175deg 185deg,var(--c3) 185deg 265deg,transparent 265deg 275deg,var(--c4) 275deg 355deg,transparent 355deg 360deg);-webkit-mask:radial-gradient(closest-side,transparent 66%,#000 67%);mask:radial-gradient(closest-side,transparent 66%,#000 67%);transition:background .5s var(--exhale);}
.cm-label{font-family:var(--mono);font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
.cm-label b{color:var(--ink);font-weight:600;}
.cm-form{display:flex;flex-direction:column;flex:1;min-height:0;}
.cm-hp{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;}
.cm-step{animation:cm-in .4s var(--exhale);}
.cm-step[hidden]{display:none;}
@keyframes cm-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.cm-q{font-family:var(--serif);font-size:clamp(21px,2.6vw,25px);font-weight:500;line-height:1.4;color:var(--ink);margin:0 0 16px;}
.cm-step input[type=text],.cm-step input[type=email],.cm-step textarea{width:100%;font-family:var(--display);font-size:18px;line-height:1.5;color:var(--ink);background:rgba(246,240,226,.06);border:1px solid rgba(246,240,226,.28);border-radius:var(--r-md);padding:13px 15px;}
.cm-step textarea{min-height:140px;resize:vertical;}
.cm-step input:focus,.cm-step textarea:focus{outline:3px solid var(--accent);outline-offset:1px;}
.cm-note{margin:10px 0 0;font-size:16px;line-height:1.5;color:var(--ink-soft);}
.cm-err{margin:8px 0 0;font-family:var(--mono);font-size:16px;color:#f2a58f;min-height:1.4em;}
.cm-chips{display:flex;flex-direction:column;gap:10px;}
.cm-chip{all:unset;cursor:pointer;box-sizing:border-box;font-family:var(--serif);font-size:18px;color:var(--ink);border:1px solid rgba(246,240,226,.28);border-radius:var(--r-md);padding:13px 18px;min-height:44px;transition:background .25s,border-color .25s;}
.cm-chip:hover{border-color:var(--accent);}
.cm-chip[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent);}
.cm-chip:focus-visible,.cm-back:focus-visible,.cm-next:focus-visible,.cm-x:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
.cm-widget{margin:16px 0 0;}
.cm-status{font-size:16px;line-height:1.5;}
.cm-status:not(:empty){margin-top:14px;}
.cm-status[data-state=error]{color:#f2a58f;font-weight:600;}
.cm-status[data-state=ok]{font-size:21px;line-height:1.5;color:var(--ink);}
.cm-fine{display:none;margin-top:14px;font-size:16px;line-height:1.6;color:var(--ink-soft);}
.cm-form[data-done=true] .cm-step,.cm-form[data-done=true] .cm-nav,.cm-form[data-done=true] .cm-widget{display:none;}
.cm-nav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:20px;}
.cm-back,.cm-next{all:unset;cursor:pointer;font-family:var(--mono);font-size:16px;letter-spacing:.03em;color:var(--ink);box-sizing:border-box;min-height:44px;display:inline-flex;align-items:center;}
.cm-back{color:var(--ink-soft);padding:0 6px;}
.cm-back:hover{color:var(--ink);}
.cm-next{margin-left:auto;background:color-mix(in srgb,var(--accent) 16%,transparent);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);padding:0 24px;border-radius:var(--r-md);}
.cm-next:hover{background:color-mix(in srgb,var(--accent) 26%,transparent);}
.cm-back[hidden],.cm-next[hidden]{display:none !important;}
/* the fine print shows from the last question on, so it is read before sending */
.cm-form[data-last=true] .cm-fine,.cm-form[data-done=true] .cm-fine{display:block;}
body.cm-lock{overflow:hidden;}
@media (max-width:640px){
  .cm{padding:0;align-items:flex-end;}
  .cm-panel{max-width:none;max-height:90vh;border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:none;padding:20px 20px calc(20px + env(safe-area-inset-bottom));}
}
body.reduced .cm,body.reduced .cm-panel,body.reduced .cm-step,body.reduced .cm-ring,body.reduced .cm-chip{transition:none !important;animation:none !important;}
/* the Questions link on /contributors, and the landing no-JavaScript line */
.ask-wrap{text-align:center;max-width:34rem;margin:2.5rem auto 0;}
.ask-link{display:inline-block;font-family:var(--serif);font-size:19px;color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1.5px;text-underline-offset:5px;padding:8px 2px;}
html[data-surface="paper"] .ask-link{color:var(--pink);}
.ask-link:hover{text-decoration-color:var(--ink);}
.ask-link:focus-visible{outline:3px solid currentColor;outline-offset:2px;}
.cm-nojs{font-size:16px;margin:10px 0 0;}
