/* BidStroke — the decisive stroke.
   Light editorial register: ink on paper, high contrast, generous
   whitespace. Display type is a system serif set large — the editorial
   voice of the brand — over the house rules: hairline strokes only,
   outline buttons everywhere, no fill, no brand color; the only art is
   the pen-stroke motif drawn inline in the page's own ink. Motion is
   entry- or timer-driven only, never scroll-driven. Fully
   self-contained: no external fonts, scripts, or images. */

:root{
  --paper:#f6f3ec;                 /* the page */
  --paper2:#eee9dd;                /* alt band */
  --card:#fbf9f4;                  /* raised sheet */
  --ink:#16140f;                   /* the ink — copy is never any other color */
  --mut:rgba(22,20,15,.64);        /* muted copy */
  --line:rgba(22,20,15,.16);       /* hairline */
  --line2:rgba(22,20,15,.4);       /* control stroke */
  --dark:#16140f;                  /* dark band / footer */
  --dkline:rgba(246,243,236,.22);  /* hairline on dark */
  --dkmut:rgba(246,243,236,.68);   /* muted on dark */
  --s:#16140f;                     /* accent token — valued neutral (ink) */
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}

*{box-sizing:border-box;margin:0}
html{background:var(--paper);overscroll-behavior-y:none}
body{font:16px/1.6 var(--sans);color:var(--ink);background:var(--paper)}
img,svg{max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.wrap{max-width:1060px;margin:0 auto;padding:0 1.3rem;width:100%}
.wrap.narrow{max-width:820px}

.skip{position:absolute;left:-999px;top:10px;z-index:40}
.skip:focus{left:10px;background:var(--paper);color:var(--ink);padding:.55rem .9rem;border:1px solid var(--ink);border-radius:8px;text-decoration:none}

/* ---- Type — editorial serif display over sans body ---- */
h1{font-family:var(--serif);font-weight:400;letter-spacing:-.012em;line-height:1.04;font-size:clamp(2.9rem,7vw,5rem);max-width:16ch}
h2.st{font-family:var(--serif);font-weight:400;letter-spacing:-.008em;line-height:1.1;font-size:clamp(1.9rem,3.8vw,2.9rem);max-width:24ch}
h3{font-weight:600;font-size:.95rem}
.sub{margin-top:1rem;font-size:1.06rem;max-width:44rem;color:var(--mut)}
.k{display:block;font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}

/* Eyebrow chip */
.chip{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:999px;padding:.36rem .85rem;font-family:var(--mono);font-size:.64rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--ink);margin-bottom:1.4rem;background:var(--card)}
.chip svg{width:14px;height:14px;flex:none}

/* ---- Buttons — outline everywhere, no fill anywhere ---- */
.btn{display:inline-block;background:transparent;border:1px solid var(--line2);color:var(--ink);font-weight:500;font-size:.95rem;padding:.62rem 1.25rem;border-radius:8px;text-decoration:none;transition:background-color .2s;cursor:pointer;font-family:var(--sans)}
.btn:hover{background:rgba(22,20,15,.06)}
.btn.primary{border-color:var(--ink)}
.dark .btn,.ftr .btn{border-color:rgba(246,243,236,.55);color:#f6f3ec}
.dark .btn:hover,.ftr .btn:hover{background:rgba(246,243,236,.1)}
.acts{margin-top:1.8rem;display:flex;gap:.8rem;flex-wrap:wrap}
.risk{margin-top:.9rem;font-size:.8rem;color:var(--mut)}

/* ---- The stroke motif — used with restraint ---- */
.swash{display:block;width:min(46vw,340px);height:auto;color:var(--ink);margin-top:1.1rem}
.hero-stroke{position:absolute;right:-6%;top:8%;width:min(58vw,760px);color:var(--ink);opacity:.05;pointer-events:none}

/* ---- Header — fixed glass strip, hairline base, ink text ---- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.3rem;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.topbar{background:rgba(246,243,236,.92)}}
.topbar.scrolled{box-shadow:0 1px 14px rgba(22,20,15,.07)}
.topbar .mark{display:flex;align-items:center;gap:.55rem;font-family:var(--serif);font-weight:600;font-size:1.12rem;letter-spacing:.01em;text-decoration:none}
.topbar .mark svg{width:20px;height:20px}
.topbar nav{display:flex;align-items:center;gap:.35rem}
.topbar .nl{font-size:.92rem;text-decoration:none;opacity:.75;padding:.45rem .7rem;border-radius:8px}
.topbar .nl:hover{opacity:1}
.topbar .btn{padding:.45rem 1rem;font-size:.9rem}
[id]{scroll-margin-top:84px}

/* ---- Chapters ---- */
.ch{position:relative;display:flex;align-items:center;padding:6.5rem 0;overflow:hidden;background:var(--paper)}
.ch+.ch{border-top:1px solid var(--line)}
.ch.seam{border-top:0}
.ch.full{min-height:100svh}
.ch.alt{background:var(--paper2)}
.ch.dark{background:var(--dark);color:#f6f3ec}
.ch.dark .st,.ch.dark h3{color:#f6f3ec}
.ch.dark .sub,.ch.dark .k{color:var(--dkmut)}

/* Entry reveal — entry-driven only; instant without JS or under reduced motion */
html.js .rv{opacity:0;transform:translateY(10px);transition:opacity .45s ease var(--d,0s),transform .45s ease var(--d,0s)}
html.js .rv.in{opacity:1;transform:none}
html.reduce .rv{opacity:1;transform:none;transition:none}

.anim{animation-play-state:paused}
.ch.live .anim{animation-play-state:running}

/* ---- Hero ---- */
.hero{padding-bottom:9rem}
.hero .wrap{position:relative;z-index:1}
.hero .sub{font-size:1.12rem}

/* ---- Works-from belt at the hero's foot ---- */
.works{position:absolute;left:0;right:0;bottom:0;padding:0 0 1.2rem;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent)}
.works .wl{text-align:center;font-family:var(--mono);font-size:.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:.5;margin-bottom:.8rem}
.works .track{display:flex;width:max-content}
.works ul{display:flex;gap:3.2rem;list-style:none;padding:0;margin:0 3.2rem 0 0;flex:none}
.works li{display:flex;align-items:center;gap:.55rem;color:var(--ink);opacity:.8;font-weight:500;font-size:.93rem;white-space:nowrap}
.works li svg{width:20px;height:20px;flex:none;opacity:.85}
.works .track.anim{animation:belt 38s linear infinite;animation-play-state:paused}
.ch.live .works .track.anim{animation-play-state:running}
@keyframes belt{to{transform:translateX(-50%)}}
html.reduce .works .track{animation:none;justify-content:center;width:100%}
html.reduce .works ul[aria-hidden]{display:none}

/* ---- The line of work — four steps under one rule ---- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:2.8rem;border-top:1px solid var(--line)}
.step{padding:1.5rem 1.4rem 0 0}
.step+.step{border-left:1px solid var(--line);padding-left:1.4rem}
.step .no{font-family:var(--serif);font-size:2.1rem;line-height:1;display:block;margin-bottom:.6rem}
.step h3{margin-bottom:.35rem}
.step p{font-size:.9rem;color:var(--mut)}

/* ---- The four fees — the page's centerpiece ---- */
.skus{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:2.8rem}
.sku{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.4rem 1.35rem 1.35rem}
.sku .k{margin-bottom:.9rem}
.sku h3{font-size:1.02rem;line-height:1.3;min-height:2.6em}
.sku .price{font-family:var(--serif);font-weight:400;font-size:2.7rem;line-height:1;letter-spacing:-.01em;margin:.9rem 0 .2rem}
.sku .per{font-size:.76rem;color:var(--mut)}
.sku ul{list-style:none;padding:0;margin:1.1rem 0 1.3rem;flex:1}
.sku li{font-size:.86rem;color:var(--mut);padding:.5rem 0;border-top:1px solid var(--line)}
.sku li strong{color:var(--ink);font-weight:600}
.sku .btn{text-align:center;width:100%}
.sku-note{margin-top:2rem;font-size:.88rem;color:var(--mut);max-width:52rem}
.sku-note strong{color:var(--ink);font-weight:600}

/* ---- Gazette band — the proof, on the dark register ---- */
.gz-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center;margin-top:2.6rem}
.gz-copy p{color:var(--dkmut);font-size:.98rem;max-width:36rem}
.gz-copy p+p{margin-top:1rem}
.gz-copy strong{color:#f6f3ec;font-weight:600}
.gz-sheet{display:block;text-decoration:none;background:var(--card);color:var(--ink);border-radius:10px;padding:1.5rem 1.6rem 1.4rem;box-shadow:0 18px 50px rgba(0,0,0,.4);transition:transform .25s ease}
.gz-sheet:hover{transform:translateY(-3px)}
.gz-sheet .tag{display:inline-block;border:1px solid var(--line2);border-radius:4px;font-family:var(--mono);font-size:.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.28rem .55rem;margin-bottom:1rem}
.gz-sheet h3{font-family:var(--serif);font-weight:400;font-size:1.35rem;line-height:1.25}
.gz-sheet .meta{font-family:var(--mono);font-size:.7rem;color:var(--mut);margin-top:.5rem}
.gz-sheet .rows{margin-top:1.1rem;border-top:1px solid var(--line)}
.gz-sheet .row{display:grid;grid-template-columns:5.2rem 1fr;gap:.9rem;padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.78rem}
.gz-sheet .row span:first-child{font-family:var(--mono);color:var(--mut)}
.gz-sheet .open{display:inline-block;margin-top:1.1rem;font-size:.85rem;font-weight:500}

/* ---- Never — the straight lines ---- */
.nevers{margin-top:2.6rem;border-top:1px solid var(--line)}
.never{display:grid;grid-template-columns:2.4rem 15rem 1fr;gap:1.2rem;align-items:baseline;padding:1.05rem 0;border-bottom:1px solid var(--line)}
.never .x{font-family:var(--serif);font-size:1.15rem;line-height:1}
.never h3{font-size:.95rem}
.never p{font-size:.9rem;color:var(--mut)}

/* ---- FAQ ---- */
.faqs{margin-top:2.4rem;max-width:52rem}
.faqs details{border-top:1px solid var(--line)}
.faqs details:last-child{border-bottom:1px solid var(--line)}
.faqs summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1.05rem .2rem;font-weight:500;font-size:1rem}
.faqs summary::-webkit-details-marker{display:none}
.faqs summary::after{content:"+";font-family:var(--mono);color:var(--mut);flex:none}
.faqs details[open] summary::after{content:"−"}
.faqs details p{padding:0 .2rem 1.2rem;color:var(--mut);font-size:.94rem;max-width:46rem}
.faqs details p+p{margin-top:.6rem}

/* ---- Start band ---- */
.start{text-align:center;padding:7rem 0}
.start .st{margin:0 auto}
.start .acts{justify-content:center}

/* ---- Footer ---- */
.ftr{background:var(--dark);color:#f6f3ec;padding:4rem 0 2.2rem}
.fcols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem}
.brandline{display:flex;align-items:center;gap:.55rem;font-family:var(--serif);font-weight:600;font-size:1.1rem;margin-bottom:.8rem}
.brandline svg{width:20px;height:20px}
.fcols p{font-size:.88rem;color:var(--dkmut);max-width:30rem}
.fcols h4{font-family:var(--mono);font-size:.64rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dkmut);margin-bottom:.8rem}
.fcols ul{list-style:none;padding:0;margin:0}
.fcols li{margin:.45rem 0}
.fcols a{font-size:.9rem;text-decoration:none;opacity:.85}
.fcols a:hover{opacity:1;text-decoration:underline}
.fine{margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--dkline);font-size:.78rem;color:var(--dkmut)}
.fine+.fine{margin-top:.6rem;padding-top:0;border-top:0}

/* ---- Document pages (terms, privacy, gazette, unsubscribe) ---- */
main.doc{padding:8.5rem 0 5rem;min-height:70svh}
main.doc h1{font-size:clamp(2.2rem,5vw,3.2rem)}
main.doc .updated{font-family:var(--mono);font-size:.72rem;color:var(--mut);margin:.8rem 0 2.4rem}
main.doc h2{font-family:var(--serif);font-weight:400;font-size:1.45rem;margin:2.2rem 0 .6rem}
main.doc p,main.doc li{font-size:.96rem;color:var(--ink)}
main.doc p+p{margin-top:.7rem}
main.doc ul{padding-left:1.2rem;margin:.6rem 0}
main.doc li{margin:.35rem 0}
main.doc .lead{font-size:1.08rem;color:var(--mut);max-width:44rem}

/* Compact footer for satellite pages */
footer.mini{border-top:1px solid var(--line);padding:1.6rem 0 2rem;font-size:.82rem;color:var(--mut)}
footer.mini a{text-decoration:none}
footer.mini a:hover{text-decoration:underline}
footer.mini .fine{margin-top:.8rem;padding-top:0;border-top:0;color:var(--mut)}

/* ---- Gazette index entries ---- */
.gz-list{margin-top:2.4rem;display:grid;gap:1.1rem}
.gz-entry{display:block;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.3rem 1.4rem;transition:border-color .2s}
.gz-entry:hover{border-color:var(--line2)}
.gz-entry .top{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:baseline}
.gz-entry h2{font-family:var(--serif);font-weight:400;font-size:1.3rem;margin:0}
.gz-entry .tag{flex:none;border:1px solid var(--line2);border-radius:4px;font-family:var(--mono);font-size:.6rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.28rem .55rem}
.gz-entry .meta{font-family:var(--mono);font-size:.72rem;color:var(--mut);margin-top:.4rem}
.gz-entry p{font-size:.9rem;color:var(--mut);margin-top:.7rem;max-width:46rem}

/* ---- The synthetic banner — the label the sample must wear ---- */
.synth{border:1px solid var(--ink);border-radius:8px;background:var(--paper2);padding:.85rem 1.1rem;font-size:.86rem;margin:0 0 2.2rem;display:flex;gap:.8rem;align-items:baseline}
.synth .stamp{flex:none;font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;border:1.5px solid var(--ink);border-radius:4px;padding:.3rem .5rem}
.synth p{color:var(--ink)}

/* ---- The sample document sheet ---- */
.sheet{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:2.4rem 2.6rem;box-shadow:0 14px 40px rgba(22,20,15,.08)}
.sheet header.dochead{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;border-bottom:1px solid var(--ink);padding-bottom:1.2rem;margin-bottom:1.6rem}
.sheet .dochead h2{font-family:var(--serif);font-weight:400;font-size:1.6rem;line-height:1.2;margin:0;max-width:26ch}
.sheet .dochead .facts{font-family:var(--mono);font-size:.72rem;color:var(--mut);text-align:right;line-height:1.7}
.sheet h3.sect{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin:2.2rem 0 .8rem}
.sheet .prose{font-size:.92rem;max-width:56rem}
.sheet .prose+.prose{margin-top:.6rem}

.tscroll{overflow-x:auto;margin-top:.4rem}
table.matrix{border-collapse:collapse;width:100%;min-width:720px;font-size:.84rem}
table.matrix caption{text-align:left;font-family:var(--mono);font-size:.68rem;color:var(--mut);padding-bottom:.6rem}
table.matrix th{font-family:var(--mono);font-size:.64rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);text-align:left;padding:.55rem .8rem .55rem 0;border-bottom:1px solid var(--ink)}
table.matrix td{padding:.6rem .8rem .6rem 0;border-bottom:1px solid var(--line);vertical-align:top}
table.matrix td.ref{font-family:var(--mono);font-size:.76rem;white-space:nowrap}
table.matrix td.typ{font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--mut)}
table.matrix td.ans{white-space:nowrap;font-weight:500}
table.matrix td.note{color:var(--mut);min-width:14rem}

/* Annotated outline */
.outline{margin-top:.4rem;border-top:1px solid var(--ink)}
.oline{display:grid;grid-template-columns:1fr 1.1fr;gap:1.6rem;padding:.9rem 0;border-bottom:1px solid var(--line)}
.oline .h{font-size:.94rem;font-weight:600}
.oline .h .k{margin-bottom:.2rem}
.oline .h ul{list-style:none;padding:.35rem 0 0 .9rem;margin:0}
.oline .h li{font-weight:400;font-size:.86rem;color:var(--ink);margin:.2rem 0}
.oline .a{font-size:.86rem;color:var(--mut);border-left:1px solid var(--line2);padding-left:1rem}

/* ---- Forms (intake, unsubscribe) ---- */
form.stroke-form{margin-top:2.4rem}
form.stroke-form fieldset{border:1px solid var(--line);border-radius:12px;padding:1.5rem 1.6rem 1.7rem;margin:0 0 1.4rem;background:var(--card)}
form.stroke-form legend{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:0 .5rem}
form.stroke-form .fnote{font-size:.84rem;color:var(--mut);margin:-.3rem 0 1rem;max-width:44rem}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}
.frow.one{grid-template-columns:1fr}
.frow.three{grid-template-columns:1fr 1fr 1fr}
.fld{display:grid;gap:.35rem;min-width:0}
.fld label{font-size:.84rem;font-weight:600}
.fld .hint{font-size:.76rem;color:var(--mut);font-weight:400}
.fld input,.fld select,.fld textarea{width:100%;background:var(--paper);color:var(--ink);border:1px solid var(--line2);border-radius:8px;padding:.6rem .75rem;font:inherit;font-size:.94rem}
.fld textarea{min-height:6.5rem;resize:vertical}
.fld input:focus-visible,.fld select:focus-visible,.fld textarea:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1.4rem;margin-top:1rem}
.checks label,label.check{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;font-weight:400}
.checks input,label.check input{margin-top:.25rem;accent-color:var(--ink)}
.subblock{border-top:1px solid var(--line);margin-top:1.4rem;padding-top:1.2rem}
.subblock .k{margin-bottom:.2rem}
form.stroke-form .actions{margin-top:.4rem}
form.stroke-form button.btn{font-size:1rem;padding:.75rem 1.6rem}
.wire-note{font-size:.78rem;color:var(--mut);margin-top:.8rem}

/* ---- Responsive ---- */
@media (max-width:1080px){
  .skus{grid-template-columns:repeat(2,1fr)}
  .sku h3{min-height:0}
}
@media (max-width:880px){
  .steps{grid-template-columns:1fr 1fr}
  .step{padding-left:0;padding-right:1rem}
  .step+.step{border-left:0;padding-left:0}
  .step:nth-child(even){border-left:1px solid var(--line);padding-left:1.4rem}
  .gz-grid{grid-template-columns:1fr;gap:2.2rem}
  .fcols{grid-template-columns:1fr}
  .never{grid-template-columns:2rem 1fr}
  .never p{grid-column:2}
  .oline{grid-template-columns:1fr}
  .oline .a{border-left:0;padding-left:0;border-top:1px dashed var(--line2);padding-top:.6rem}
  .sheet{padding:1.6rem 1.3rem}
  .sheet .dochead .facts{text-align:left}
  .topbar .nl.demo{display:none}
}
@media (max-width:640px){
  .skus{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .step:nth-child(even){border-left:0;padding-left:0}
  .step+.step{border-top:1px solid var(--line);margin-top:.4rem;padding-top:1.2rem}
  .steps{border-top:1px solid var(--line)}
  .frow,.frow.three{grid-template-columns:1fr}
  .checks{grid-template-columns:1fr}
  .hero-stroke{display:none}
  .topbar{padding:.6rem .9rem}
  .topbar .nl{padding:.45rem .45rem}
}
