Pattern catalog · 6 of 6 loaded
v1.0Spring 2026Internal reference
Web Build Templates
Pattern Reference

Contact library

6 contact patterns
v1.0 · Spring 2026
Live

Six contact-page patterns — from the conversational chat flow to the no-form one-input. The form factor sets the tone of the relationship.

How to use this: The contact page sets expectations for what working together will feel like. A 12-field form says "we have a process." A single email field says "just write." Match the form factor to the relationship you want.

Most service businesses default to "form + details" — that's fine when done well. But for high-touch work, a calendar booking or letter-from-founder converts better and feels human.

01

Calendar Booking

Functional

The calendar IS the page. No form, no questions — pick a slot. For sales calls, consults, services where speed-to-meeting matters.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600&family=Geist+Mono:wght@400&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Geist',sans-serif;background:#fafafa;color:#101010;line-height:1.5}
.s{padding:40px 32px;display:grid;grid-template-columns:1fr 1.4fr;gap:48px;max-width:1100px;margin:0 auto}
.l{display:flex;flex-direction:column;gap:18px;padding-top:8px}
.k{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#666}
.h{font-size:36px;font-weight:600;letter-spacing:-.02em;line-height:1.05}
.who{display:flex;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid #eee}
.av{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#7e3aff,#ff3a8c);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600}
.who b{display:block;font-weight:600;font-size:15px}.who span{font-size:13px;color:#666}
.ml{display:flex;flex-direction:column;gap:12px;font-size:14px;color:#333}
.ml b{font-weight:600;color:#101010}
.d{font-size:14px;line-height:1.55;color:#444;padding-top:14px;border-top:1px solid #eee}
.cal{background:#fff;border:1px solid #eaeaea;border-radius:14px;overflow:hidden}
.ch{padding:18px 20px;border-bottom:1px solid #eaeaea;display:flex;justify-content:space-between;align-items:center}
.ch h3{font-size:16px;font-weight:600}
.cn{display:flex;gap:12px;align-items:center}
.cn button{width:32px;height:32px;background:transparent;border:1px solid #eaeaea;border-radius:8px;color:#666;cursor:pointer}
.cn .m{font-size:14px;font-weight:500;min-width:120px;text-align:center}
.g{display:grid;grid-template-columns:repeat(7,1fr);padding:14px 12px}
.g .dw{padding:6px;text-align:center;font-size:11px;color:#666;font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.g .d{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;border-radius:50%;color:#101010;font-weight:500;border:none;padding:0}
.g .d.muted{color:#ccc;cursor:default}.g .d.un{color:#bbb;cursor:default;text-decoration:line-through}
.g .d:hover:not(.muted):not(.un){background:#f0f0f0}
.g .d.sel{background:#101010;color:#fff}
.t{padding:0 20px 20px}
.t h4{font-size:13px;font-weight:600;margin-bottom:10px}
.tg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tg button{padding:11px;background:#fff;border:1px solid #eaeaea;color:#101010;font-family:inherit;font-size:13px;font-weight:500;border-radius:8px;cursor:pointer}
.tg button:hover{border-color:#101010}.tg button.sel{background:#101010;color:#fff;border-color:#101010}
.tz{font-size:12px;color:#666;text-align:right;margin-top:10px}
@media(max-width:880px){.s{grid-template-columns:1fr;padding:24px 16px}}</style></head><body><section class="s">
<div class="l"><div class="k">15-min intro call</div><h1 class="h">Find a time that works.</h1>
<div class="who"><div class="av">A</div><div><b>Anna Liang</b><span>Founding partner</span></div></div>
<div class="ml"><div>⏱ <b>15 minutes</b> · Zoom (link sent on confirmation)</div><div>📅 Mon–Thu, 10am–4pm ET</div><div>$ Free, no pitch</div></div>
<p class="d">Tell me what you're working on, what you've tried, where you're stuck. I'll tell you whether what we do is the right fit. If not, I'll point you somewhere better.</p></div>
<div class="cal"><div class="ch"><h3>Pick a day &amp; time</h3><div class="cn"><button>‹</button><span class="m">May 2026</span><button>›</button></div></div>
<div class="g"><div class="dw">M</div><div class="dw">T</div><div class="dw">W</div><div class="dw">T</div><div class="dw">F</div><div class="dw">S</div><div class="dw">S</div>
<button class="d muted">28</button><button class="d muted">29</button><button class="d muted">30</button><button class="d un">1</button><button class="d un">2</button><button class="d muted">3</button><button class="d muted">4</button>
<button class="d">5</button><button class="d">6</button><button class="d">7</button><button class="d">8</button><button class="d">9</button><button class="d muted">10</button><button class="d muted">11</button>
<button class="d">12</button><button class="d sel">13</button><button class="d">14</button><button class="d">15</button><button class="d">16</button><button class="d muted">17</button><button class="d muted">18</button>
<button class="d">19</button><button class="d">20</button><button class="d un">21</button><button class="d">22</button><button class="d">23</button><button class="d muted">24</button><button class="d muted">25</button>
<button class="d">26</button><button class="d">27</button><button class="d">28</button><button class="d">29</button><button class="d">30</button><button class="d muted">31</button><button class="d muted">1</button></div>
<div class="t"><h4>Tuesday, May 13 · ET</h4><div class="tg"><button>10:00am</button><button class="sel">10:30am</button><button>11:00am</button><button>1:30pm</button><button>2:00pm</button><button>3:30pm</button></div><div class="tz">All times in ET · change timezone</div></div></div>
</section></body></html>
02

One Input

Minimal

Just an email field. No name, no message, no dropdowns. Maximum reduction. For brands where the goal is to start a conversation.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300;1,300&family=Manrope:wght@300;400;500&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Manrope',sans-serif;background:#f1ebe3;color:#3a2f26;font-weight:300;line-height:1.6}
.s{min-height:540px;padding:56px 40px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:32px;max-width:780px;margin:0 auto}
.sym{width:56px;height:56px;border:1px solid #3a2f26;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Cormorant',serif;font-style:italic;font-size:24px}
.k{font-size:12px;letter-spacing:.3em;text-transform:uppercase;opacity:.6}
.h{font-family:'Cormorant',serif;font-weight:300;font-size:clamp(36px,5.4vw,68px);line-height:1.08;letter-spacing:-.005em}
.h em{font-style:italic;color:#9b7e63}
.r{display:flex;width:100%;max-width:480px;border-bottom:1px solid #3a2f26;padding-bottom:6px;align-items:center}
.r input{flex:1;padding:12px 0;background:transparent;border:none;outline:none;font-family:'Cormorant',serif;font-size:24px;font-style:italic;color:#3a2f26;font-weight:300}
.r input::placeholder{color:#a89c8a}
.r button{padding:10px 0 10px 18px;background:transparent;border:none;font-family:'Cormorant',serif;font-style:italic;font-size:22px;color:#9b7e63;cursor:pointer}
.r button:hover{color:#3a2f26}
.n{font-family:'Cormorant',serif;font-style:italic;font-size:16px;color:#5e5045;max-width:42ch;line-height:1.5}
.al{font-size:13px;color:#5e5045;text-decoration:none;border-bottom:1px solid #9b7e63;padding-bottom:2px}
.f{margin-top:24px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.5}
@media(max-width:780px){.s{padding:48px 24px}}</style></head><body><section class="s">
<div class="sym">·</div><div class="k">When you're ready</div>
<h1 class="h">Leave a note. <em>I'll write back.</em></h1>
<form class="r" onsubmit="return false"><input type="email" placeholder="your@email"><button>→</button></form>
<p class="n">No newsletter, no funnel, no automation. Just an email back from me, usually within a day or two.</p>
<a href="#" class="al">Or, if you'd rather book a 15-min call</a>
<div class="f">— Petal &amp; Slow · Porto, Portugal</div></section></body></html>
03

Letter from Founder

Editorial

Long-form prose explaining how to reach you, what to expect, what kinds of questions get fast vs slow responses. Human, considered.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;1,400&family=Inter:wght@400;500&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'EB Garamond',serif;background:#fcfaf5;color:#1a1612;line-height:1.65;font-size:18px}
.s{padding:56px 48px 40px;max-width:680px;margin:0 auto}
.dl{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#7a6f5f;margin-bottom:32px;display:flex;align-items:center;gap:10px}
.dl::after{content:"";flex:1;height:1px;background:#d4cabb;max-width:200px}
.h{font-style:italic;font-size:36px;font-weight:400;letter-spacing:-.005em;margin-bottom:14px;line-height:1.15}
.k{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#9c4a2c;margin-bottom:8px}
.b p{font-size:18px;line-height:1.65;margin-bottom:18px}
.b p:first-of-type::first-letter{font-size:3.4em;font-weight:500;float:left;line-height:.85;margin:.05em .1em 0 -.04em;color:#9c4a2c}
.b em{font-style:italic;color:#9c4a2c}
.opt{margin:24px 0;padding:24px 28px;background:#f5efe1;border-left:3px solid #9c4a2c;display:flex;flex-direction:column;gap:14px}
.o{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:baseline}
.o .l{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7a6f5f;font-weight:600}
.o a{color:#1a1612;text-decoration:none;border-bottom:2px solid #9c4a2c;font-style:italic;font-size:21px}
.o p{font-size:14px;color:#7a6f5f;font-family:'Inter',sans-serif;font-style:normal;line-height:1.5;font-weight:400;margin-top:4px}
.sg{margin-top:32px;display:flex;align-items:center;gap:18px;font-family:'Inter',sans-serif;font-size:13px;color:#7a6f5f}
.sg .n{font-style:italic;font-size:24px;color:#1a1612;font-family:'EB Garamond',serif}
.f{margin-top:36px;padding:18px 0;border-top:1px solid #d4cabb;display:flex;justify-content:space-between;font-family:'Inter',sans-serif;font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#9b8e7c}
@media(max-width:780px){.s{padding:32px 24px}.o{grid-template-columns:1fr;gap:6px}}</style></head><body><section class="s">
<div class="dl">A note · Spring 2026</div><div class="k">Three ways to reach me</div>
<h1 class="h">If you'd like to <em>say hello</em> or <em>start something</em>.</h1>
<div class="b"><p>Thank you for finding your way here. I read everything myself, which is the good news and the bad news. The good news is that you'll get me, not a routing system. The bad news is that I sometimes take three or four days to reply during weeks when the workshop is busy. <em>Below is a quick guide</em> to which channel works best for what.</p>
<p>If you're considering commissioning a piece, the email below is best — share what you're imagining, your timing, and a budget range. If you're an existing client, I always answer faster on a thread we've already started than at a fresh email.</p></div>
<div class="opt"><div class="o"><span class="l">Commissions</span><div><a>dean@hollowco.com</a><p>For new pieces and custom work. Reply within 4 days.</p></div></div>
<div class="o"><span class="l">Existing</span><div><a>Reply to your last email</a><p>Same-day response, usually before 6pm ET.</p></div></div>
<div class="o"><span class="l">Visits / chat</span><div><a>(207) 555 — 1842</a><p>Workshop visits by appointment, Tuesdays.</p></div></div></div>
<div class="sg"><span class="n">— Dean Hollow</span><span>founder, occasional writer, mostly a maker</span></div>
<div class="f"><div>Camden, Maine · Est. 2019</div><div>Mon–Fri</div></div></section></body></html>
04

Team Cards

Card-based

Each team member gets a contact card — name, role, direct email. No central form. For agencies, professional services, anywhere clients should reach specific people.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,600;12..96,800&family=Geist+Mono:wght@400&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Bricolage Grotesque',sans-serif;background:#ebe8e1;color:#1a1a1a;line-height:1.5}
.s{padding:56px 36px;display:flex;flex-direction:column;gap:36px;max-width:1100px;margin:0 auto}
.hd{max-width:600px}
.k{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#ff6b35;margin-bottom:12px}
.h{font-size:48px;font-weight:800;letter-spacing:-.025em;line-height:1.05}
.h em{font-style:italic;color:#ff6b35;font-weight:600}
.sb{font-size:16px;color:#5a5346;line-height:1.55;margin-top:14px;max-width:50ch}
.cs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}
.c{background:#fff;border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:14px}
.c.dk{background:#1a1a1a;color:#fff}
.c.ac{background:#ff6b35;color:#fff}
.ct{display:flex;align-items:center;gap:14px}
.av{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#5d6b3f,#ff6b35);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:22px}
.c.dk .av{background:linear-gradient(135deg,#ff6b35,#ffaa3a);color:#1a1a1a}
.c.ac .av{background:#1a1a1a;color:#fff}
.w b{display:block;font-size:18px;font-weight:700;letter-spacing:-.01em}
.w span{font-size:12px;color:#666;font-family:'Geist Mono',monospace;letter-spacing:.04em;text-transform:uppercase}
.c.dk .w span{color:#999}.c.ac .w span{color:rgba(255,255,255,.85)}
.bio{font-size:14px;line-height:1.55;color:#5a5346}
.c.dk .bio{color:#bbb}.c.ac .bio{color:rgba(255,255,255,.92)}
.hl{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:14px;border-top:1px dashed rgba(0,0,0,.15)}
.c.dk .hl{border-color:rgba(255,255,255,.15)}.c.ac .hl{border-color:rgba(255,255,255,.25)}
.hd-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-family:'Geist Mono',monospace}
.hd-row .l{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#999}
.c.dk .hd-row .l{color:#777}.c.ac .hd-row .l{color:rgba(255,255,255,.7)}
.hd-row a{color:#1a1a1a;text-decoration:none;border-bottom:1px solid #ff6b35}
.c.dk .hd-row a{color:#fff;border-color:#ff6b35}.c.ac .hd-row a{color:#fff;border-color:#1a1a1a}
@media(max-width:880px){.cs{grid-template-columns:1fr}.s{padding:32px 16px}.h{font-size:32px}}</style></head><body><section class="s">
<header class="hd"><div class="k">— Get in touch with the right person</div><h1 class="h">Who do you <em>actually</em> need to reach?</h1><p class="sb">No central inbox. Every project starts with a real person. Pick whoever's work overlaps with yours.</p></header>
<div class="cs">
<div class="c"><div class="ct"><div class="av">JR</div><div class="w"><b>Janelle Reyes</b><span>Partner, Strategy</span></div></div><p class="bio">Leads positioning, naming, brand voice. New project inquiries and existing strategic work.</p><div class="hl"><div class="hd-row"><span class="l">Email</span><a>janelle@field.studio</a></div><div class="hd-row"><span class="l">Cal</span><a>/janelle-reyes</a></div></div></div>
<div class="c dk"><div class="ct"><div class="av">RC</div><div class="w"><b>Reid Cao</b><span>Partner, Design</span></div></div><p class="bio">Heads identity, type systems, the visual side. Best for design-led conversations.</p><div class="hl"><div class="hd-row"><span class="l">Email</span><a>reid@field.studio</a></div><div class="hd-row"><span class="l">Read.cv</span><a>/reid-cao</a></div></div></div>
<div class="c ac"><div class="ct"><div class="av">MO</div><div class="w"><b>Mira Okafor</b><span>Studio Manager</span></div></div><p class="bio">Scheduling, contracts, project ops. For existing clients coordinating something — Mira.</p><div class="hl"><div class="hd-row"><span class="l">Email</span><a>mira@field.studio</a></div><div class="hd-row"><span class="l">Phone</span><a>(510) 555-1492</a></div></div></div>
</div></section></body></html>
05

Form + Details

Functional

Classic two-column: form on one side, address/hours/map on the other. Done well — distinctive type, considered hierarchy. The default that doesn't feel default.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Inter',sans-serif;background:#0a2540;color:#faf7f2;line-height:1.5;min-height:100vh}
.s{padding:48px 40px;display:grid;grid-template-columns:1fr 1fr;gap:48px;max-width:1200px;margin:0 auto;align-items:start}
.l{padding-top:8px}
.k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#b08a3e;font-weight:500;margin-bottom:14px;display:flex;align-items:center;gap:12px}
.k::before{content:"";width:32px;height:1px;background:#b08a3e}
.h{font-family:'Fraunces',serif;font-weight:400;font-size:48px;letter-spacing:-.02em;line-height:1.05;margin-bottom:18px}
.h em{font-style:italic;color:#b08a3e}
.sb{font-size:16px;color:#b8b0a3;line-height:1.55;margin-bottom:32px;max-width:42ch}
.deet{display:flex;flex-direction:column;gap:24px;padding:24px 0;border-top:1px solid rgba(176,138,62,.3);border-bottom:1px solid rgba(176,138,62,.3)}
.dr{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:baseline}
.dr .lb{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#b08a3e;font-weight:600}
.dr b{font-family:'Fraunces',serif;font-weight:400;font-size:20px;font-style:italic}
.dr a{color:#faf7f2;text-decoration:none;border-bottom:1px solid #b08a3e;padding-bottom:1px}
.dr a:hover{color:#b08a3e}
.dr p{font-size:14px;color:#b8b0a3;line-height:1.5;margin-top:2px}
.f{background:#faf7f2;border-radius:14px;padding:32px;color:#0a2540}
.f h3{font-family:'Fraunces',serif;font-size:24px;font-weight:600;letter-spacing:-.01em;margin-bottom:6px}
.f .sub{font-size:13px;color:#5a6e7e;margin-bottom:22px}
.fld{margin-bottom:14px}
.fld label{display:block;font-size:12px;font-weight:600;color:#0a2540;margin-bottom:6px;letter-spacing:.04em;text-transform:uppercase}
.fld input,.fld textarea,.fld select{width:100%;padding:12px 14px;border:1px solid #d4d0c5;border-radius:8px;font-family:inherit;font-size:14px;background:#fff;color:#0a2540}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:none;border-color:#0a2540}
.fld textarea{min-height:80px;resize:vertical;font-family:inherit}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn{width:100%;padding:14px;background:#0a2540;color:#faf7f2;border:none;font-family:inherit;font-weight:600;font-size:14px;border-radius:8px;cursor:pointer;letter-spacing:.04em;text-transform:uppercase;margin-top:8px}
.btn:hover{background:#b08a3e}
.note{margin-top:14px;font-size:12px;color:#5a6e7e;text-align:center;font-style:italic;font-family:'Fraunces',serif}
@media(max-width:880px){.s{grid-template-columns:1fr;padding:32px 20px}.dr{grid-template-columns:1fr;gap:4px}}</style></head><body><section class="s">
<div class="l"><div class="k">Get in touch</div><h1 class="h">When you're <em>ready</em>, we are.</h1><p class="sb">Most contracts start with a quick call. Send a note below or call directly — both reach me, both work.</p>
<div class="deet">
<div class="dr"><span class="lb">Email</span><div><a>rose@bayareatm.com</a><p>Replied within one business day.</p></div></div>
<div class="dr"><span class="lb">Phone</span><div><b>(727) 222 — 1659</b><p>Mon–Fri 9–5 ET. Voicemail returned same-day.</p></div></div>
<div class="dr"><span class="lb">Service area</span><div><b>Tampa Bay</b><p>Pinellas, Hillsborough, Pasco, Manatee counties.</p></div></div>
</div></div>
<form class="f"><h3>Send a note</h3><p class="sub">Just the basics. We'll reply with a few questions.</p>
<div class="row"><div class="fld"><label>Your name</label><input value=""></div><div class="fld"><label>Email</label><input value=""></div></div>
<div class="row"><div class="fld"><label>Phone</label><input value=""></div><div class="fld"><label>You are…</label><select><option>An agent</option><option>A buyer/seller</option><option>Other</option></select></div></div>
<div class="fld"><label>How can we help?</label><textarea placeholder="A few words about what's on your mind…"></textarea></div>
<button class="btn">Send →</button>
<div class="note">"We respond within one business day, every time."</div>
</form></section></body></html>
06

Conversation Flow

Conversational

Page reads like a chat thread. One field at a time, gentle pacing, conversational microcopy. For services where rapport matters: therapy, coaching, intake.

Source HTML
<!doctype html><html><head><meta charset="utf-8"><link href="https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300;0,6..72,500;1,6..72,400&family=Inter:wght@400;500&display=swap" rel="stylesheet">
<style>*{box-sizing:border-box;margin:0;padding:0}body{font-family:'Inter',sans-serif;background:#fdf8f0;color:#2a2520;line-height:1.55}
.s{padding:48px 32px;max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:24px}
.k{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#c9956a;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:12px}
.k::before{content:"";width:32px;height:1px;background:#c9956a}
.h{font-family:'Newsreader',serif;font-weight:300;font-size:44px;line-height:1.1;letter-spacing:-.015em}
.h em{font-style:italic;color:#c9956a}
.thr{display:flex;flex-direction:column;gap:16px;padding:20px 0}
.m{display:flex;gap:12px;align-items:flex-end;animation:in .4s ease-out backwards}
.m.t{align-self:flex-start;max-width:80%}
.m.y{align-self:flex-end;max-width:80%;flex-direction:row-reverse}
.av{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:'Newsreader',serif;font-style:italic;color:#fff;font-size:18px;background:linear-gradient(135deg,#c9956a,#e8c89f)}
.m.y .av{background:#2a2520;color:#fdf8f0}
.bb{background:#fff;padding:14px 18px;border-radius:18px 18px 18px 4px;font-size:15px;line-height:1.5;border:1px solid #e8d9bd}
.m.y .bb{background:#2a2520;color:#fdf8f0;border-radius:18px 18px 4px 18px;border-color:#2a2520}
.bb b{font-weight:600}
.ib{background:#fff;border:1.5px solid #c9956a;border-radius:18px 18px 4px 18px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:0 4px 16px -4px rgba(201,149,106,.3)}
.ib input,.ib textarea{width:100%;border:none;outline:none;font-family:inherit;font-size:15px;background:transparent;color:#2a2520;resize:none}
.ib textarea{min-height:60px}
.ib input::placeholder,.ib textarea::placeholder{color:#a89c87;font-style:italic}
.ib .r{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;letter-spacing:.05em;color:#86796a;text-transform:uppercase}
.sb{padding:8px 14px;background:#c9956a;color:#fff;border:none;font-family:inherit;font-weight:500;font-size:13px;border-radius:999px;cursor:pointer;letter-spacing:.04em}
.sb:hover{background:#2a2520}
.tp{display:flex;gap:4px;align-items:center;padding:14px 18px;background:#fff;border:1px solid #e8d9bd;border-radius:18px 18px 18px 4px;width:fit-content}
.tp span{width:6px;height:6px;background:#c9956a;border-radius:50%;animation:t 1.4s ease-in-out infinite}
.tp span:nth-child(2){animation-delay:.2s}.tp span:nth-child(3){animation-delay:.4s}
@keyframes t{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}
@keyframes in{from{opacity:0;transform:translateY(8px)}}
.n{margin-top:8px;font-size:13px;color:#86796a;text-align:center;font-style:italic;font-family:'Newsreader',serif}
@media(max-width:780px){.s{padding:24px 16px}}</style></head><body><section class="s">
<div><div class="k">Let's talk</div><h1 class="h">Hi. I'm <em>Marin</em>.</h1></div>
<div class="thr">
<div class="m t"><div class="av">M</div><div class="bb">Welcome — glad you're here. <b>Three quick questions, then we'll set up a free 20-min call.</b></div></div>
<div class="m t" style="animation-delay:.2s"><div class="av">M</div><div class="bb">First — what should I call you?</div></div>
<div class="m y" style="animation-delay:.4s"><div class="av">D</div><div class="ib"><input placeholder="Just a first name is fine"><div class="r"><span>Step 1 of 3</span><button class="sb">Next →</button></div></div></div>
<div class="m t" style="animation-delay:.6s"><div class="av">M</div><div class="bb">And what's bringing you here? <b>You don't need to have it figured out</b> — a sentence or two is plenty.</div></div>
<div class="m y" style="animation-delay:.8s"><div class="av">D</div><div class="ib"><textarea placeholder="A few words about what's been on your mind…"></textarea><div class="r"><span>Step 2 of 3 · Confidential</span><button class="sb">Next →</button></div></div></div>
<div class="m t" style="animation-delay:1s"><div class="av">M</div><div class="bb">Last one. Where can I reach you?</div></div>
<div class="m y" style="animation-delay:1.2s"><div class="av">D</div><div class="ib"><input placeholder="Email or phone, your call"><div class="r"><span>Step 3 of 3</span><button class="sb">Send →</button></div></div></div>
<div class="m t" style="animation-delay:1.4s"><div class="tp"><span></span><span></span><span></span></div></div>
</div>
<p class="n">"I read every message myself, usually within a day."</p>
</section></body></html>
Copied