/* ReplyBanana demo page. Layout and copy: output/02-wireframe-A.html (variant A, frozen).
   Colours and type: stages/10-UI-UX/output/brand-spec.md. */
:root{--ink:#111214;--mut:#5f636a;--paper:#fff;--card:#fff;--line:#d3d6db;--soft:#f2f4f6;--green:#37D931;--on-green:#0B1A0A;--green-soft:#e3f9e2;--band:#111214;--on-band:#fff;--accent:#37D931;
  --font:'Archivo','Helvetica Neue',Helvetica,Arial,sans-serif;--display:var(--font);--mono:ui-monospace,'SF Mono',Menlo,monospace;
  --id-bg:#E4E9FF;--id-ink:#1F3AB8;--del-bg:#FDE3E2;--del-ink:#9B1C1C;--gen-bg:#FFF0C4;--gen-ink:#6E4600;--r:2px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.5 var(--font);-webkit-tap-highlight-color:transparent}
.in{max-width:1120px;margin:0 auto;padding:0 16px}
@media(min-width:700px){.in{padding:0 32px}}
section,header,footer{padding:48px 0}
h1,h2,h3{margin:0 0 .35em;line-height:1.08;letter-spacing:-.022em;text-wrap:balance;font-family:var(--display);font-weight:600}
h1{font-size:clamp(34px,4.4vw,56px);font-weight:700}
h2{font-size:clamp(26px,3.4vw,40px)}
p{margin:0 0 1em;max-width:58ch}
.lead{font-size:18px}
.mut{color:var(--mut);font-size:14px;margin-top:8px}
button{font:inherit;color:inherit}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--olive);color:#364149;border:0;padding:10px 22px;border-radius:6px;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer}
.btn:hover{filter:brightness(1.05)}
.btn:disabled{opacity:.55;cursor:default}
.btn-light{background:#fff}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.btn-wide{display:flex;width:100%}
.lnk{display:inline-flex;align-items:center;min-height:44px;padding:0;background:none;border:0;color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
a{color:inherit}
:focus-visible{outline:2px solid var(--slate);outline-offset:2px}
.lockup{display:inline-flex;align-items:center;gap:10px;font:600 22px/1 var(--display);letter-spacing:-.022em}
.mark{flex:none;display:block}
.tk{font-family:var(--mono);font-size:.86em;background:var(--olive-soft);color:var(--ink);border-radius:3px;padding:0 4px;white-space:nowrap}
.nm{background:var(--olive-soft);border-bottom:2px solid var(--olive);padding:0 2px}
.chip{font-style:normal;font-size:13px;background:var(--soft);border:1px solid var(--line);border-radius:99px;padding:2px 9px;white-space:nowrap}

/* hero */
header{padding:32px 0 40px}
.hA h1{max-width:20ch;margin-top:24px}
.hA .row{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:20px}

/* demo: the operator's layout, email on top, the six steps below */
#demo{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:36px}
.dN{max-width:980px}
.sl{font-size:15px;margin-bottom:8px}
.dN .top{display:grid;gap:18px;margin-top:14px}
@media(min-width:820px){.dN .top{grid-template-columns:1fr 1.2fr;align-items:start}}
.dN .top>*{min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chp{flex:none;min-height:44px;font-size:14px;border:1px solid var(--line);border-radius:99px;padding:6px 14px;background:var(--paper);cursor:pointer}
.chp.on{border-color:var(--olive);background:var(--olive-soft)}
.ta{border:1px solid var(--line);border-radius:8px;padding:4px 12px 8px;background:var(--card)}
.from{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;color:var(--mut)}
.from input{flex:1;min-width:0;min-height:44px;border:0;border-bottom:1px solid var(--soft);background:transparent;color:var(--mut);font:inherit;font-size:16px;padding:4px 0}
.ta textarea{display:block;width:100%;border:0;padding:8px 0 0;font:16px/1.5 var(--font);color:var(--ink);background:transparent;height:132px;resize:vertical}
.ta textarea:focus,.from input:focus{outline:none}
.ta:focus-within{border-color:var(--olive)}
@media(min-width:700px){.ta textarea,.from input{font-size:14px}}
.go{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 8px}.go .mut{margin:0}
.steps{border-top:1px solid var(--line);margin-top:22px;padding-top:6px}
.stp{position:relative;margin-top:26px}
.sb{margin:12px 0 0 36px}
.rail{position:absolute;left:12px;top:30px;bottom:-26px;border-left:2px dashed var(--line)}
.stp:last-child .rail{display:none}
@media(max-width:600px){.sb{margin-left:0}.rail{display:none}}
.ph{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.ph h3{font-size:19px;margin:0}.ph .ex{font-size:16px}
.num{font-size:12px;font-weight:700;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:var(--card);flex:none}
.txt{font-size:15px;line-height:1.6}
.sb>.txt,.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px}
.two{display:grid;gap:14px}@media(min-width:760px){.two{grid-template-columns:1fr 1fr}}.two>*{min-width:0}
.safe{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 14px;font-size:14px}
.safe>div{display:grid;grid-template-columns:96px 1fr auto;gap:8px;padding:6px 0;border-bottom:1px solid var(--soft);align-items:baseline}
.safe>div>span{min-width:0;overflow-wrap:anywhere}
.safe .mut{margin:0;font-size:13px}.safe>p.mut{margin:8px 0 2px}
.tops{display:flex;flex-wrap:wrap;gap:6px}
.tops .chp{min-height:0;cursor:default;font:13px/1.4 var(--mono);padding:4px 10px;color:var(--mut)}
.tops .chp.on{color:var(--ink)}
.route{margin-top:12px;font-size:15px}
.bar{display:block;height:8px;background:var(--soft);border-radius:4px}.bar>i{display:block;height:100%;background:var(--olive);border-radius:4px}
.bar-in{display:inline-block;width:90px;vertical-align:middle}
blockquote{margin:8px 0;padding:10px 14px;border-left:3px solid var(--olive);background:var(--paper);font-size:15px}
.rl{margin:6px 0;padding:6px 12px;border-left:3px solid var(--green);background:var(--soft);font-size:15px}
.cns{display:grid;gap:10px}@media(min-width:760px){.cns{grid-template-columns:1fr 1fr}}
.cn{border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--card)}.cn.off{background:var(--paper);border-style:dashed}
.cnh{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.cnh b{font-size:15px}.cnh .mut{margin:0}
.lr{display:grid;grid-template-columns:72px 1fr;gap:2px 10px;padding:6px 0;border-top:1px solid var(--soft);font-size:14px;align-items:baseline}.lk{color:var(--mut)}.lr .mk{grid-column:2}
.mk{font-style:normal;font-size:11.5px;justify-self:start;border-radius:99px;padding:1px 8px}
.mk-s{background:var(--olive);color:#364149}.mk-k{border:1.5px dashed var(--olive);color:var(--ink)}
.rev{display:flex;gap:10px;margin-top:14px;align-items:center;flex-wrap:wrap;font-size:15px}
.rev .dr{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border:1.5px solid var(--olive);border-radius:4px;padding:2px 8px}
.note{margin-top:22px}
.stp:not(.open) .sb{display:none}
.out{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px;font-size:15px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.safe table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}
.safe td{padding:6px 4px;border-bottom:1px solid var(--soft);overflow-wrap:anywhere;vertical-align:baseline}
.safe td:first-child{font-family:var(--mono);font-size:12px}
.safe td:last-child{display:none}
.rch{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.sb .txt{white-space:pre-wrap}
.fwd .sl,.sum .sl{font-weight:600}
/* the token tint, copied from stages/22-pii-redactor-demo/page/style.css (tests/test_seams_page.py) */
mark{border-radius:var(--r);padding:.05em .3em;color:inherit;background:transparent}
mark.t{font-family:var(--mono);font-size:.86em;font-weight:500}
mark.blk{background:var(--ink);color:var(--ink);border-radius:var(--r);padding:.05em .3em;letter-spacing:.02em}
.out.typing::after{content:"▍";color:var(--accent);animation:blink 1s steps(2) infinite}
@keyframes blink{to{opacity:0}}
mark.r{box-shadow:inset 0 -2px 0 currentColor;background:transparent}
.t-id,mark.r.t-id{background:var(--id-bg);color:var(--id-ink)}
.t-del,mark.r.t-del{background:var(--del-bg);color:var(--del-ink)}
.t-gen,mark.r.t-gen{background:var(--gen-bg);color:var(--gen-ink)}
mark.r{background:transparent!important}
.tier{display:inline-block;padding:2px 5px;border-radius:var(--r);font-size:10.5px;font-weight:600;white-space:nowrap}

/* proof */
.pA .tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:20px 0 16px}
@media(min-width:800px){.pA .tiles{grid-template-columns:repeat(3,1fr)}}
.pA .tl{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px}
.pA .tl b{display:block;font:700 34px/1.2 var(--display);letter-spacing:-.02em}
.pA .tl span{color:var(--mut)}
.pA .last{font-size:18px;font-weight:600;margin:0}

/* knows */
#knows{padding-top:8px}
.kA{border-top:1px solid var(--line);padding-top:32px}.kA p{margin:0 0 10px}
#kb{margin-top:16px}#kb .grp{margin-bottom:18px}#kb h3{font-size:1.15rem}
#kb details{border-top:1px solid var(--line)}#kb summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-family:var(--mono);font-size:14px}
#kb pre{margin:0 0 14px;padding:14px;max-height:60vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:6px;font:13px/1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}

/* end + footer */
#end{background:var(--band);color:var(--on-band)}
.eA h2{max-width:22ch}
.eA .ctas{margin-top:22px}
footer{padding:28px 0}
.ft{display:flex;flex-direction:column;gap:2px;color:var(--mut);font-size:14px}
.ft a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink)}
.ft .lnk{font-weight:400}

@media(min-width:900px){section,footer{padding-top:64px;padding-bottom:64px}#demo{padding-top:36px}#knows{padding-top:8px}footer{padding:28px 0}}

/* modal (stage 22's contact modal) */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px}
.modal[hidden]{display:none}
.backdrop{position:absolute;inset:0;background:rgba(54,65,73,.62);backdrop-filter:blur(3px)}
.panel{position:relative;width:min(520px,100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;background:var(--card);border-radius:10px;padding:32px 28px;box-shadow:0 30px 60px rgba(20,26,30,.35)}
@media (min-width:600px){.panel{padding:40px}}
.x{position:absolute;top:14px;right:14px;width:44px;height:44px;border:0;background:transparent;cursor:pointer;color:var(--mut);display:grid;place-items:center}
.x:hover{color:var(--ink)}
.panel h2{font-size:1.6rem;margin-bottom:6px}
.panel .lead{font-size:14.5px;margin-bottom:22px}
.field{display:grid;margin-bottom:18px}
.field span{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.field span i{font-style:normal;font-weight:400;color:var(--mut);margin-left:6px}
.field input,.field textarea{border:0;border-bottom:2px solid var(--line);padding:10px 0;font:16px/1.4 var(--font);color:var(--ink);background:transparent;min-height:44px;border-radius:0}
.field textarea{resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--olive)}
#ts{margin:6px 0 20px}
#ts[hidden]{display:none}
#dts:empty{display:none}
.err{font-size:13.5px;color:#b3261e;margin-bottom:12px}
.done{text-align:center;padding:16px 0 4px}
.done svg{margin:0 auto 18px}
.done p{font-size:1.15rem;font-weight:600;line-height:1.4;margin:0 auto 24px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---- Seismisk look (seismisk.com devices: Archivo 800, one green, square corners,
   1.5px ink lines, 3px green rule, hard green offset shadow). Two stroke weights: 1.5px and 3px. ---- */
h1,h2,h3{font-weight:800;letter-spacing:-.03em}
h1{font-size:clamp(40px,6vw,80px);line-height:.98;max-width:16ch}
h2{font-size:clamp(30px,4vw,48px);line-height:1.04}
.ph h3{font-size:20px;letter-spacing:-.015em}
.lead{font-size:19px;color:var(--mut)}
.lockup{font:800 20px/1 var(--font);letter-spacing:-.01em;text-decoration:none;color:var(--ink)}
.btn{background:var(--green);color:var(--on-green);border-radius:0;font-weight:800;font-size:17px;padding:14px 26px;min-height:48px}
.btn:hover{filter:brightness(.95)}
.btn-light{background:var(--green)}
.lnk{text-decoration-color:var(--green);text-decoration-thickness:3px;text-underline-offset:4px;font-weight:700}
.lnk:hover{text-decoration-color:var(--ink)}
:focus-visible{outline:2px solid var(--green)}
.tk{background:var(--green-soft);border-radius:0;font-family:var(--font);font-weight:600;font-size:.9em}
.nm{background:var(--green-soft);border-bottom:3px solid var(--green)}
#demo{background:var(--soft);border:0}
#demo h2,#proof h2,#knows h2{position:relative;padding-top:18px}
#demo h2::before,#proof h2::before,#knows h2::before{content:"";position:absolute;top:0;left:0;width:52px;height:3px;background:var(--green)}
.box{background:#fff;border:1.5px solid var(--ink);box-shadow:10px 10px 0 var(--green);padding:20px;margin:22px 10px 0 0}
@media(min-width:820px){.box{padding:28px}}
.chp{border-radius:0;border:1.5px solid var(--line);background:#fff;font-weight:500}
.chp:hover{border-color:var(--ink)}
.chp.on{border-color:var(--ink);background:var(--green);color:var(--on-green)}
.ta{border-radius:0;border:1.5px solid var(--line)}
.ta:focus-within{border-color:var(--ink)}
.from{font-family:var(--font);font-size:13px}
.steps{border-top:1.5px solid var(--ink)}
.num{border-radius:0;width:28px;height:28px;background:var(--ink);color:#fff;font:800 15px/1 var(--font)}
.stp.open .num{background:var(--green);color:var(--on-green)}
.rail{left:13px;border-left:1.5px solid var(--line)}
.sb>.txt,.card,.safe,.out,.cn{border-radius:0;border:1.5px solid var(--line)}
.tops .chp{font:500 13px/1.4 var(--font);border-width:1.5px}
.tops .chp.on{background:var(--green);color:var(--on-green);border-color:var(--ink)}
.bar,.bar>i{border-radius:0}.bar>i{background:var(--green)}
blockquote{border-left:3px solid var(--green);background:var(--soft)}
.cn.off{border-style:dashed;background:var(--soft);color:var(--mut)}
.mk{border-radius:0;font-weight:600}
.mk-s{background:var(--green);color:var(--on-green)}.mk-k{border:1.5px dashed var(--ink)}
.rev .dr{text-transform:none;letter-spacing:0;font-size:13px;font-weight:800;border:1.5px solid var(--ink);border-radius:0;background:var(--green);color:var(--on-green)}
.pA .tl{border-radius:0;border:1.5px solid var(--ink);box-shadow:6px 6px 0 var(--green)}
.pA .tl b{font:800 44px/1.05 var(--font);letter-spacing:-.04em}
#kb pre,#kb summary{font-family:var(--font)}
#kb pre{border-radius:0;border:1.5px solid var(--line)}
#kb details{border-top:1.5px solid var(--line)}
.kA{border-top:0}
#end h2{color:#fff}
#end .btn,#end .btn-light{background:var(--green);color:var(--on-green)}
.ft a{text-decoration-color:var(--green)}
.panel{border-radius:0;border:1.5px solid var(--ink);box-shadow:10px 10px 0 var(--green)}
.backdrop{background:rgba(17,18,20,.6)}
.field input:focus,.field textarea:focus{border-bottom-color:var(--green)}
.pA .tl b{font-size:clamp(30px,8vw,44px);white-space:nowrap}
/* Fit (P07): the wordmark is a 44px tap target without moving the hero; the headline and lead run
   wider so Draft reply stays in the first screen at 1440x900. */
.lockup{min-height:44px;margin:-12px 0}
.hA h1{font-size:clamp(40px,5vw,64px);max-width:none}
.hA .lead{max-width:52em}
/* scroll choreography prototype (operator, 2026-10-27): each step fades in once, when scrolled to */
.tops .chp{transition:background .4s,color .4s,border-color .4s}
.sb .pre,.sb.pre{opacity:0}
.sb,.sb .route,.sb .rch{transition:opacity .4s}
.stp{scroll-margin-top:40px}

/* ReplyBanana mark inline before the name in the hero (operator, 2026-10-27) */
.rbn{white-space:nowrap}
.hmark{display:inline-block;width:.9em;height:.9em;vertical-align:-.08em;margin-right:.08em}
