/* ============ FOOTER + CAPTURE HELPERS + HOUSE RULES + BOOT ============ */

/* ================= FOOTER ================= */
.tail{padding:6rem clamp(1.4rem,8vw,8rem) 3rem;border-top:1px solid var(--hairline);position:relative;z-index:2}
.tail .h{font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;color:var(--cream-faint);
  text-transform:uppercase;margin-bottom:1.4rem;display:flex;align-items:center;gap:.7rem}
.tail .h .rec{color:var(--alert);animation:blinkstep 2.2s step-end infinite}
/* two columns, two rows: the mark beside the board, the log beside work-with-us */
.tail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem clamp(2rem,5vw,5rem);align-items:start}

/* the mark and its one line */
.tail-mark{display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;padding-top:.2rem;min-width:0}
.lockup{display:inline-flex;align-items:baseline;gap:.7rem;text-decoration:none}
.lockup img{height:clamp(44px,5vw,64px);width:auto}
.lockup-product{font-family:var(--mono);font-size:clamp(11px,1.2vw,14px);letter-spacing:.35em;
  font-weight:700;color:var(--amber);text-transform:uppercase}
.markwave{width:min(360px,100%);height:64px;display:block}
.tail-copy{color:var(--cream-dim);font-size:1.05rem}
.tail-copy a{color:var(--cream);text-decoration:none;border-bottom:1px solid var(--cream-faint)}
.tail-copy a:hover{color:var(--amber);border-color:var(--amber)}

/* the log — a running tape, oldest first, parked on the newest line */
.tail .logbox{margin:0;max-width:none;min-width:0}
.tail .log{max-height:15.5rem;overflow-y:auto;padding-right:.8rem;scrollbar-width:thin;
  scrollbar-color:rgba(237,231,214,.16) transparent;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 2.6rem);mask-image:linear-gradient(to bottom,transparent 0,#000 2.6rem)}
.tail .log.at-top{-webkit-mask-image:none;mask-image:none}
.tail .log:focus-visible{outline:1px solid var(--amber);outline-offset:6px}
.tail .log li{font-size:.62rem}
.tail .log li .t{width:7.4ch}

/* work with us */
.tail .work{min-width:0}
.work-list{max-width:none}
.work-list li .lamp{animation:blinkstep 2.4s step-end infinite}
.work-list li:nth-child(2) .lamp{animation-delay:.8s}
.work-list li:nth-child(3) .lamp{animation-delay:1.6s}

/* status board — three disks */
.board{display:grid;grid-template-columns:repeat(3,minmax(0,200px));gap:clamp(1rem,2vw,1.6rem)}
.board .disk-label{padding:6% 7%;gap:.35rem;top:35%}
.board .disk-logo{height:15px}
.board .align-text{font-size:.62rem}
.board .disk-name{font-size:.88rem}
.board .disk-role{font-size:.44rem;letter-spacing:.14em}
.board .stage{font-size:.4rem;padding:1px 5px;align-self:flex-start}
.board .exp{display:grid;gap:.18rem;margin-top:.1rem}
.board .exp-row{display:flex;justify-content:space-between;gap:.5rem;font-family:var(--mono);font-size:.42rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.board .exp-row span:last-child{color:var(--ink-soft)}
@media(max-width:560px){
  .board{grid-template-columns:repeat(2,minmax(0,200px))}
  .board .disk:nth-child(3){display:none}
}

/* apparatus list (text rows with a lamp and a stage tag) — used on product pages */
.apparatus-list{list-style:none;display:grid;max-width:46ch}
.apparatus-list li{display:grid;grid-template-columns:12px 1fr auto;grid-template-areas:"lamp name stage" ". desc desc";
  column-gap:.8rem;row-gap:.15rem;align-items:baseline;padding:.65rem 0;border-bottom:1px dashed rgba(237,231,214,.08);
  font-family:var(--mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-dim)}
.apparatus-list .lamp{grid-area:lamp;align-self:center;width:.4rem;height:.4rem;color:var(--cream-faint);box-shadow:none}
.apparatus-list li[data-stage="live"] .lamp{color:var(--signal);box-shadow:0 0 6px var(--signal)}
.apparatus-list li[data-stage="beta"] .lamp{color:var(--amber);box-shadow:0 0 6px var(--amber)}
.ap-name{grid-area:name;color:var(--cream);text-decoration:none;transition:color .3s}
a.ap-name:hover{color:var(--amber)}
.ap-stage{grid-area:stage;font-size:.44rem;letter-spacing:.16em;color:var(--cream-faint);
  border:1px solid var(--hairline);border-radius:3px;padding:2px 6px;justify-self:end}
.apparatus-list li[data-stage="live"] .ap-stage{color:var(--signal);border-color:rgba(79,224,138,.3)}
.apparatus-list li[data-stage="beta"] .ap-stage{color:var(--amber);border-color:rgba(224,122,40,.35)}
.ap-desc{grid-area:desc;font-size:.5rem;letter-spacing:.1em;color:var(--cream-faint);line-height:1.7;text-transform:none;
  font-family:var(--serif);font-size:.86rem;letter-spacing:0}

/* research capture (Substack) */
.research-capture{max-width:520px;margin-top:1.4rem}
.research-capture[hidden]{display:none}
.rc-row{display:grid;grid-template-columns:1fr auto;gap:.6rem;align-items:stretch}
.rc-row .btn{padding:.7rem 1.1rem}
.cf-err{font-family:var(--mono);font-size:.55rem;letter-spacing:.14em;color:var(--alert);
  text-transform:uppercase;margin-top:.5rem;min-height:1em}
.rc-hint{margin-top:.8rem}
.rc-hint a{color:var(--cream-dim)}

/* works-order prefix chip on the Go Analog form */
.cf-prefix{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:-.2rem 0 .6rem;
  font-family:var(--mono);font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--amber)}
.cf-prefix[hidden]{display:none}
.cf-prefix .lamp{color:var(--amber)}
.cf-prefix .cf-clear{background:none;border:1px solid var(--cream-faint);border-radius:4px;color:var(--cream-faint);
  font:inherit;letter-spacing:inherit;padding:.15rem .5rem;cursor:pointer}
.cf-prefix .cf-clear:hover{color:var(--cream);border-color:var(--cream-dim)}

/* factory → form CTA */
.works-cta{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.works-cta .hint{margin-top:0}

/* fine print — everything on one baseline, including the toggle */
.fine{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:5rem;
  padding-top:1.6rem;border-top:1px solid var(--hairline);
  font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-faint)}
.fine a{color:inherit;text-decoration:none}
.fine-nav{display:inline-flex;flex-wrap:wrap;gap:.2rem .5rem;align-items:center}
.fine a:hover{color:var(--cream)}
.fine .agents{color:var(--signal-dim);display:inline-flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.fine .agents a:hover{color:var(--signal)}

/* human/machine toggle */
.hm-toggle{background:none;border:1px solid var(--cream-faint);border-radius:6px;
  color:var(--cream-faint);font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;
  text-transform:uppercase;padding:.35rem .7rem;cursor:pointer;line-height:1.2}
.hm-toggle:hover{border-color:var(--signal);color:var(--signal)}
.machine-pane{display:none;margin-top:2rem;border:1px solid var(--signal-dim);border-radius:8px;
  padding:1.6rem;position:relative;overflow:hidden}
.machine-pane.show{display:block}
.machine-pane pre{font-family:var(--crtfont);font-size:1.05rem;line-height:1.5;color:var(--phosphor);
  white-space:pre-wrap;text-shadow:0 0 6px rgba(74,222,128,.4);position:relative;z-index:2}

@media(max-width:820px){.tail-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.tail{border-top:0;padding-top:3.2rem}}
@media(max-width:560px){.rc-row{grid-template-columns:1fr}}

/* ---- house rules ----
   No italics anywhere: emphasis is amber, never slanted.
   Body emphasis is not bold: <b> in running copy reads in full cream at the same weight. */
em,i,.brandplate,.handheld .brand,.tape-label,.cc-label,.disk-name,
.frame h1 em,.frame h2 em,.inst h3 em,#works .works-head h2 em{font-style:normal!important}

/* without JavaScript nothing waits to be revealed */
html:not(.js) .reveal{opacity:1;transform:none}

/* ---- boot overlay ---- */
#boot{position:fixed;inset:0;z-index:90;background:var(--void);display:none;
  flex-direction:column;align-items:center;justify-content:center;gap:2rem;cursor:pointer}
html.js #boot.live{display:flex}
#boot .bt-label{font-family:var(--mono);font-size:.6rem;letter-spacing:.3em;color:var(--cream-faint);text-transform:uppercase}
#boot .bt-sweep{width:min(420px,70vw);height:1px;background:var(--cream);transform:scaleX(0);
  transform-origin:left;animation:bt-sweep .7s .15s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes bt-sweep{to{transform:scaleX(1)}}
#boot .bt-msg{font-family:var(--mono);font-size:.62rem;letter-spacing:.26em;color:var(--signal);
  text-transform:uppercase;opacity:0;animation:bt-msg .3s .85s steps(2) forwards;
  text-shadow:0 0 8px rgba(74,222,128,.5)}
@keyframes bt-msg{to{opacity:1}}
#boot.done{transition:opacity .3s;opacity:0;pointer-events:none}

@media (prefers-reduced-motion: reduce){
  html.js #boot.live{display:none}
}
