/* ---------- Start a project form ----------
   Opens from any link or button with data-open-form. The form itself is built in project-form.js. */
.pf{position:fixed;inset:0 0 0 auto;margin:0;width:min(680px,100vw);height:100%;max-height:none;max-width:none;border:0;padding:0;background:var(--page);color:var(--forest);font-family:var(--head);overflow:hidden;box-shadow:-24px 0 60px rgba(var(--tint),.25)}
.pf::backdrop{background:rgba(var(--tint),.55);backdrop-filter:blur(2px)}
.pf[open]{animation:pf-in .45s cubic-bezier(.2,.7,.2,1)}
@keyframes pf-in{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.pf-scroll{height:100%;overflow-y:auto;padding:clamp(28px,4vw,48px) clamp(22px,4vw,52px) 48px}
.pf-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.pf h2{font-size:clamp(40px,5vw,64px);font-weight:800;letter-spacing:-0.05em;line-height:.94;margin-top:14px}
.pf-intro{margin-top:16px;font-size:18px;line-height:1.45;max-width:480px}
.pf-close{flex-shrink:0;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--forest);background:none;color:var(--forest);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}
.pf-close:hover{background:var(--forest);color:var(--page)}
.pf form{margin-top:36px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}
.pf .full{grid-column:1/-1}
.pf label,.pf legend{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;padding:0}
.pf label i,.pf legend i{font-style:normal;opacity:.6;text-transform:none;letter-spacing:0}
.pf fieldset{border:0;margin:0;padding:0;min-width:0}
.pf input[type=text],.pf input[type=email],.pf input[type=tel],.pf input[type=url],.pf select,.pf textarea{width:100%;font:inherit;font-size:17px;color:var(--forest);background:#fff;border:1.5px solid rgba(var(--tint),.22);border-radius:6px;padding:13px 14px;transition:border-color .2s,box-shadow .2s}
.pf textarea{min-height:120px;resize:vertical}
.pf select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--forest) 50%),linear-gradient(135deg,var(--forest) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.pf input:focus,.pf select:focus,.pf textarea:focus{outline:none;border-color:var(--forest);box-shadow:0 0 0 3px var(--lav)}
.pf .chips{display:flex;flex-wrap:wrap;gap:10px}
.pf .chips label{margin:0;font-family:var(--head);font-size:16px;letter-spacing:0;text-transform:none;position:relative}
.pf .chips input{position:absolute;opacity:0;width:1px;height:1px}
.pf .chips span{display:inline-block;padding:10px 16px;border-radius:999px;border:1.5px solid rgba(var(--tint),.25);background:#fff;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.pf .chips input:checked+span{background:var(--forest);border-color:var(--forest);color:var(--page)}
.pf .chips input:focus-visible+span{box-shadow:0 0 0 3px var(--wisteria)}
.pf .send{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:8px;flex-wrap:wrap}
.pf .send button{font:inherit;font-weight:700;font-size:18px;padding:18px 34px;border:0;border-radius:4px;background:var(--forest);color:var(--page);cursor:pointer;transition:background .25s,color .25s}
.pf .send button:hover{background:var(--wisteria);color:var(--pine)}
.pf .send p{font-size:15px;opacity:.75;white-space:nowrap}
@media (max-width:600px){.pf .send p{white-space:normal}}
.pf .err{grid-column:1/-1;color:#8A2A2A;font-size:15px;display:none}
.pf .err.on{display:block}
.pf-done{display:none;margin-top:48px}
.pf-done h3{font-size:clamp(36px,4.4vw,56px);font-weight:800;letter-spacing:-0.05em;line-height:.94}
.pf-done p{margin-top:16px;font-size:19px;max-width:440px}
.pf.sent form{display:none}
.pf.sent .pf-done{display:block;margin:auto 0;padding-bottom:10vh}
.pf.sent .pf-top>div{display:none}
.pf.sent .pf-top{justify-content:flex-end}
.pf.sent .pf-scroll{display:flex;flex-direction:column;min-height:100%}
@media (max-width:600px){.pf form{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.pf[open]{animation:none}}
