/* vibecoder.dad | buy/counter.css
   The pay counter and the help pages. Same shop as the shelf: cream counter, kraft boxes,
   ink sign board, red price tags, stencil lettering. The new object here is the key tag. */
:root{
  --cream:#f1ebdf; --cream-2:#e7dfcd; --kraft:#d7c29b; --kraft-2:#c9b183; --kraft-3:#a98d5e;
  --ink:#1c1a17; --ink-2:#3b362f; --mute:#6c6456; --white:#fffdf8;
  --red:#c4321c; --red-2:#9f2412; --green:#2f6b4f; --gold:#e8c25a;
  --stencil:'Big Shoulders Stencil Display','Big Shoulders Stencil',Impact,'Arial Narrow',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --gutter:16px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{background:var(--cream);font-size:16px;color-scheme:light}
html.big{font-size:19px}
body{font-family:var(--sans);line-height:1.5;color:var(--ink);background:var(--cream);min-height:100vh;display:flex;flex-direction:column}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
[hidden]{display:none !important}
.wrap{max-width:1080px;margin:0 auto;padding:0 var(--gutter)}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}
html.still *{animation:none !important;transition:none !important}

/* ---- the soon strip ---- */
.soon{background:var(--kraft);border-bottom:2px solid var(--kraft-3);font-size:.92rem}
.soon .wrap{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding-top:9px;padding-bottom:9px}
.soon__stamp{font-family:var(--stencil);font-weight:900;font-size:1.05rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red);border:2px solid var(--red);padding:0 7px;border-radius:2px;transform:rotate(-3deg);background:rgba(255,253,248,.7);flex:0 0 auto}
.soon__text{flex:1 1 260px}
.soon a{font-weight:600}

/* ---- the sign ---- */
.sign{background:var(--ink);color:var(--cream);border-bottom:6px solid var(--red)}
.sign .wrap{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-top:16px;padding-bottom:14px}
.sign__name{font-family:var(--stencil);font-weight:900;font-size:clamp(1.9rem,6vw,2.8rem);line-height:.9;text-transform:uppercase;letter-spacing:.02em;text-decoration:none}
.sign__name b{color:var(--gold);font-weight:900}
.sign__back{font-family:var(--mono);font-size:.82rem;font-weight:600;color:#d9d0bd;text-decoration:none;border-bottom:1px solid #6c6456;padding-bottom:2px;white-space:nowrap}
.sign__back:hover{color:var(--cream)}

/* ---- page ---- */
main{flex:1 0 auto}
.page{padding-top:22px;padding-bottom:56px}
.page > * + *{margin-top:22px}
.h-stencil{font-family:var(--stencil);font-weight:900;text-transform:uppercase;letter-spacing:.03em;line-height:.95}
h1.h-stencil{font-size:clamp(2rem,6vw,3rem)}
h2.h-stencil{font-size:clamp(1.5rem,4vw,2rem)}
.lede{font-size:1.05rem;color:var(--ink-2);max-width:62ch;margin-top:8px}
.small{font-size:.88rem}
.muted{color:var(--mute)}
.mono{font-family:var(--mono)}

/* ---- the part on the counter ---- */
.part{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:center;background:var(--kraft);border-radius:6px;padding:10px;box-shadow:0 1px 0 var(--kraft-3),0 8px 18px -12px rgba(28,26,23,.5);position:relative}
.part__window{aspect-ratio:16/10;background:#efe6d2;border-radius:4px;overflow:hidden;box-shadow:inset 0 0 0 2px var(--kraft-2);display:flex;align-items:center;justify-content:center}
.part__window img{width:100%;height:100%;object-fit:cover;object-position:top}
.part__blank{font-family:var(--stencil);font-weight:900;font-size:2.6rem;color:var(--kraft-3)}
.part__label{background:var(--white);border:1px solid #e6dcc5;border-radius:3px;padding:14px 16px;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:6px}
.part__name{font-family:var(--stencil);font-weight:900;font-size:clamp(1.7rem,5vw,2.4rem);text-transform:uppercase;line-height:.95;letter-spacing:.02em;padding-right:90px}
.part__what{color:var(--ink-2);font-size:.98rem;max-width:60ch}
.part__deal{font-family:var(--mono);font-size:.8rem;font-weight:600;color:var(--ink-2)}
.ptag{position:absolute;top:-10px;right:14px;background:var(--white);color:var(--red);font-family:var(--stencil);font-weight:900;font-size:1.35rem;letter-spacing:.05em;text-transform:uppercase;padding:7px 12px 7px 25px;border:2px solid var(--ink);border-radius:3px 3px 3px 10px;transform:rotate(5deg);transform-origin:top right;box-shadow:2px 3px 0 rgba(28,26,23,.25);line-height:1;z-index:2}
.ptag::before{content:'';position:absolute;left:8px;top:50%;width:9px;height:9px;border-radius:50%;background:var(--kraft);box-shadow:inset 0 0 0 2px var(--ink);transform:translateY(-50%)}
@media (max-width:640px){.part{grid-template-columns:1fr}.part__name{padding-right:70px}}

/* ---- the ways (each one boxed like a part, with its own spec panel) ---- */
.ways{display:grid;grid-template-columns:1fr;gap:18px;margin-top:12px}
@media (min-width:640px){.ways{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){body.counter .wrap{max-width:1200px}.ways{grid-template-columns:repeat(4,minmax(0,1fr))}}
.wayshead{font-family:var(--mono);font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-top:22px;padding-bottom:6px;border-bottom:2px solid var(--ink)}
.way{position:relative;background:var(--kraft);border-radius:6px;padding:10px 10px 12px;box-shadow:0 1px 0 var(--kraft-3),0 8px 18px -12px rgba(28,26,23,.5);display:flex;flex-direction:column}
.way__label{background:var(--white);border:1px solid #e6dcc5;border-radius:3px;padding:14px 14px 12px;flex:1;display:flex;flex-direction:column}
.way__num{font-family:var(--mono);font-size:.74rem;font-weight:600;color:var(--mute);letter-spacing:.06em}
.way__name{font-family:var(--stencil);font-weight:900;font-size:1.65rem;text-transform:uppercase;line-height:1;letter-spacing:.02em;margin:2px 0 8px}
.way__line{font-size:.95rem;color:var(--ink-2);margin-bottom:12px;flex:1}
.panel{list-style:none;margin:0 0 12px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);padding:5px 0 4px;font-family:var(--mono);font-size:.74rem;letter-spacing:.02em}
.panel li{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px dotted #cfc3aa}
.panel li:last-child{border-bottom:0}
.panel b{font-weight:600;color:var(--mute);text-transform:uppercase;flex:0 0 auto}
.panel span{font-weight:600;color:var(--ink);text-align:right}
.stamp{position:absolute;left:14px;top:-9px;font-family:var(--stencil);font-weight:900;font-size:.95rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);border:2px solid var(--green);padding:1px 7px;border-radius:2px;transform:rotate(-4deg);background:var(--white);z-index:2}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:6px 16px;border:2px solid var(--ink);border-radius:4px;font-family:var(--stencil);font-weight:900;font-size:1.25rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;background:var(--ink);color:var(--cream);text-align:center}
.btn:hover{background:#000}
.btn--red{background:var(--red);border-color:var(--red)}
.btn--red:hover{background:var(--red-2);border-color:var(--red-2)}
.btn--line{background:transparent;color:var(--ink)}
.btn--line:hover{background:var(--white)}
.btn--wide{width:100%}
.btn[disabled]{opacity:.45;pointer-events:none}
.acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.link{background:none;border:0;padding:4px 0;font-weight:600;text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.link:hover{color:var(--red)}

/* ---- a step ---- */
.step{background:var(--white);border:2px solid var(--ink);border-radius:6px;padding:20px 18px 22px;box-shadow:4px 4px 0 var(--kraft-3)}
.step > * + *{margin-top:16px}
.step__top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.step__back{font-family:var(--mono);font-size:.82rem;font-weight:600;background:none;border:0;text-decoration:underline;text-underline-offset:3px}
.step__count{font-family:var(--mono);font-size:.78rem;color:var(--mute)}
.step p{max-width:62ch}
.picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.pick{min-height:64px;border:2px solid var(--ink);border-radius:4px;background:var(--cream);padding:8px 10px;font-family:var(--stencil);font-weight:900;font-size:1.45rem;letter-spacing:.04em;text-transform:uppercase;line-height:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.pick small{font-family:var(--mono);font-size:.7rem;font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--mute)}
.pick:hover{background:var(--white)}
.pick.on{background:var(--ink);color:var(--cream)}
.pick.on small{color:#d9d0bd}
.jobs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.job{border:2px solid var(--ink);border-radius:4px;background:var(--cream);padding:12px;text-align:left;display:flex;flex-direction:column;gap:4px}
.job b{font-family:var(--stencil);font-weight:900;font-size:1.35rem;text-transform:uppercase;letter-spacing:.03em;line-height:1}
.job span{font-size:.9rem;color:var(--ink-2)}
.job.on{background:var(--ink);color:var(--cream)}
.job.on span{color:#d9d0bd}
.check{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px dashed var(--kraft-3);border-radius:4px;background:var(--cream)}
.check input{width:22px;height:22px;flex:0 0 auto;margin-top:1px;accent-color:var(--ink)}
.field{display:block}
.field span{display:block;font-family:var(--mono);font-size:.76rem;font-weight:600;color:var(--ink-2);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.field input,.field textarea,.field select{width:100%;min-height:46px;border:2px solid var(--ink);border-radius:4px;background:var(--white);padding:10px 12px;font-size:16px;font-family:var(--sans)}
.field textarea{min-height:96px;resize:vertical}
.note{font-family:var(--mono);font-size:.8rem;color:var(--mute);border-left:3px solid var(--kraft-3);padding:4px 0 4px 10px}
.tip{background:var(--cream);border:1px solid var(--kraft-2);border-radius:4px;padding:12px 14px;font-size:.92rem}
.tip b{font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);display:block;margin-bottom:2px}

/* the order slip (mail) */
.slip{background:var(--white);border:2px dashed var(--ink);border-radius:4px;padding:16px;font-family:var(--mono);font-size:.9rem}
.slip h3{font-family:var(--stencil);font-weight:900;font-size:1.5rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}
.slip dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px}
.slip dt{font-weight:600;color:var(--mute);text-transform:uppercase;font-size:.74rem;padding-top:3px}
.slip dd{border-bottom:1px solid var(--ink);min-height:1.6em}

/* the spare-key board */
.board{background-color:var(--cream-2);background-image:radial-gradient(#cbbd9f 1.4px,transparent 1.5px);background-size:22px 22px;background-position:11px 11px;border:2px solid var(--ink);border-radius:4px;padding:22px 14px 18px;display:flex;flex-wrap:wrap;gap:22px;justify-content:center}

/* ---- the key tag ---- */
.keytag{position:relative;display:inline-flex;flex-direction:column;justify-content:center;gap:4px;min-width:280px;max-width:100%;background:var(--kraft);border:2px solid var(--kraft-3);border-radius:10px 34px 34px 10px;padding:16px 22px 16px 70px;box-shadow:3px 4px 0 rgba(28,26,23,.2);transform:rotate(-2deg);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.keytag::before{content:'';position:absolute;left:20px;top:50%;width:26px;height:26px;margin-top:-13px;border-radius:50%;background:var(--cream);box-shadow:0 0 0 5px #b89c6b,0 0 0 7px var(--kraft-3)}
.keytag__string{position:absolute;left:-46px;top:50%;width:80px;height:60px;margin-top:-48px;pointer-events:none}
.keytag__part{font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.keytag__code{font-family:var(--mono);font-weight:600;font-size:clamp(1.15rem,4.4vw,1.75rem);letter-spacing:.04em;line-height:1.15;color:var(--ink);word-break:break-word}
.keytag__fine{font-family:var(--mono);font-size:.68rem;color:var(--ink-2)}
.keytag__sample{position:absolute;right:16px;top:-11px;font-family:var(--stencil);font-weight:900;font-size:.95rem;letter-spacing:.12em;color:var(--red);border:2px solid var(--red);background:var(--white);padding:0 6px;border-radius:2px;transform:rotate(4deg)}
.keytag.small{min-width:0;width:100%;padding:12px 14px 12px 54px;transform:none;border-radius:8px 26px 26px 8px}
.keytag.small::before{left:14px;width:20px;height:20px;margin-top:-10px;box-shadow:0 0 0 4px #b89c6b,0 0 0 6px var(--kraft-3)}
.keytag.small .keytag__code{font-size:1.2rem}
button.keytag{border:2px solid var(--kraft-3);text-align:left;cursor:pointer}
button.keytag:hover{transform:rotate(-2deg) translateY(-2px)}
.keyhang{display:flex;flex-direction:column;align-items:center}
.keyhang::before{content:'';width:12px;height:12px;border-radius:50%;background:var(--ink);margin-bottom:4px}

/* how-to steps */
.howto{list-style:none;counter-reset:s;display:grid;gap:10px}
.howto li{counter-increment:s;display:flex;gap:12px;align-items:flex-start;background:var(--white);border:1px solid #e6dcc5;border-radius:4px;padding:12px}
.howto li::before{content:counter(s);flex:0 0 34px;height:34px;border-radius:50%;background:var(--ink);color:var(--cream);font-family:var(--stencil);font-weight:900;font-size:1.3rem;display:flex;align-items:center;justify-content:center}

/* ---- sheets (preview stop, gear) ---- */
.sheet{position:fixed;inset:0;z-index:40;display:none;align-items:flex-end;justify-content:center;background:rgba(28,26,23,.5)}
.sheet.on{display:flex}
.sheet__box{background:var(--cream);border:2px solid var(--ink);border-radius:8px 8px 0 0;padding:18px 18px 28px;width:min(540px,100%);max-height:88vh;overflow:auto}
.sheet__box > * + *{margin-top:12px}
.sheet__box h2{font-family:var(--stencil);font-weight:900;font-size:1.7rem;letter-spacing:.04em;text-transform:uppercase;line-height:1}
.sheet__box h3{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-top:16px}
.sheet__box ul.spec{list-style:none;font-family:var(--mono);font-size:.82rem}
.sheet__box ul.spec li{padding:5px 0;border-bottom:1px dotted var(--kraft-2);display:flex;justify-content:space-between;gap:10px}
.sheet__box ul.spec li span:last-child{color:var(--mute);text-align:right}
.sheet__box ul.spec a{color:var(--ink)}
.sheet__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed var(--kraft-2);font-weight:600}
.tog{min-width:72px;min-height:36px;border-radius:999px;border:2px solid var(--ink);background:transparent;font-family:var(--mono);font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.tog.on{background:var(--green);border-color:var(--green);color:#fff}
.stop{display:flex;flex-direction:column;gap:12px}
.stop__where{display:flex;gap:12px;align-items:center;padding:12px;border:2px solid var(--ink);border-radius:4px;background:var(--white)}
.stop__where b{font-family:var(--stencil);font-weight:900;font-size:1.3rem;text-transform:uppercase;letter-spacing:.03em;line-height:1;display:block}
.stop__where span{font-size:.9rem;color:var(--ink-2)}
.stop__arrow{flex:0 0 40px;height:40px;border-radius:50%;background:var(--ink);color:var(--cream);display:flex;align-items:center;justify-content:center}
.stop__arrow svg{width:20px;height:20px}

/* ---- gear ---- */
.gear{position:fixed;right:14px;bottom:14px;width:48px;height:48px;border-radius:50%;background:var(--ink);color:var(--cream);border:2px solid var(--cream);box-shadow:0 6px 18px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;z-index:30}
.gear svg{width:24px;height:24px;fill:currentColor}

/* ---- crew mode ---- */
.crewbar{position:fixed;left:14px;bottom:14px;z-index:30;display:flex;align-items:center;gap:10px;background:var(--gold);color:var(--ink);border:2px solid var(--ink);border-radius:999px;padding:6px 8px 6px 14px;box-shadow:0 6px 18px rgba(0,0,0,.25);font-family:var(--mono);font-size:.8rem;font-weight:600;max-width:calc(100% - 90px)}
.crewbar a{background:var(--ink);color:var(--gold);text-decoration:none;border-radius:999px;padding:6px 12px;font-family:var(--stencil);font-weight:900;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.vote{border-top:2px dashed var(--ink);margin-top:12px;padding-top:10px;display:flex;flex-direction:column;gap:8px}
.vote__q{font-family:var(--mono);font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.vote__row{display:flex;gap:6px}
.vote__row button{flex:1;min-height:38px;border:2px solid var(--ink);background:var(--white);border-radius:4px;font-family:var(--stencil);font-weight:900;font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase}
.vote__row button.on[data-v="keep"]{background:var(--green);border-color:var(--green);color:#fff}
.vote__row button.on[data-v="maybe"]{background:var(--gold)}
.vote__row button.on[data-v="cut"]{background:var(--red);border-color:var(--red);color:#fff}
.vote textarea{width:100%;min-height:54px;border:1px solid var(--kraft-3);border-radius:4px;padding:8px;font-size:16px;font-family:var(--sans);resize:vertical;background:var(--white)}
body.crew main{padding-bottom:70px}

/* ---- help pages: a sheet of paper on the counter ---- */
.doc{background:var(--white);border:1px solid #e6dcc5;border-radius:4px;box-shadow:0 1px 0 var(--kraft-3),0 10px 24px -16px rgba(28,26,23,.5);padding:26px 22px 30px;max-width:780px}
.doc > * + *{margin-top:14px}
.doc h1{font-family:var(--stencil);font-weight:900;font-size:clamp(2rem,6vw,2.9rem);text-transform:uppercase;line-height:.95;letter-spacing:.02em}
.doc h2{font-family:var(--stencil);font-weight:900;font-size:1.55rem;text-transform:uppercase;letter-spacing:.03em;line-height:1;margin-top:28px;padding-top:12px;border-top:2px solid var(--ink)}
.doc h3{font-size:1.02rem;margin-top:18px}
.doc p,.doc li{max-width:66ch}
.doc ul,.doc ol{padding-left:1.3rem}
.doc li + li{margin-top:6px}
.doc .stamped{font-family:var(--mono);font-size:.8rem;color:var(--mute)}
.doc .short{background:var(--cream);border:1px solid var(--kraft-2);border-radius:4px;padding:12px 14px}
.doc .short b{font-family:var(--mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);display:block;margin-bottom:4px}
.doc details{border-bottom:1px dashed var(--kraft-2);padding:10px 0}
.doc summary{cursor:pointer;font-weight:700;list-style:none}
.doc summary::-webkit-details-marker{display:none}
.doc summary::before{content:'+';display:inline-block;width:1.2em;font-family:var(--mono);color:var(--red)}
.doc details[open] summary::before{content:'-'}
.doc details > p{margin-top:8px;padding-left:1.2em}
.contacts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.contact{border:2px solid var(--ink);border-radius:4px;padding:14px;background:var(--cream)}
.contact b{font-family:var(--stencil);font-weight:900;font-size:1.3rem;text-transform:uppercase;letter-spacing:.03em;display:block;line-height:1;margin-bottom:6px}
.contact a{font-family:var(--mono);font-weight:600;word-break:break-all}

/* ---- footer ---- */
footer{background:var(--ink);color:#cfc7b6;margin-top:auto}
footer .wrap{padding-top:24px;padding-bottom:84px;display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start}
.foot__made{font-family:var(--stencil);font-weight:900;font-size:1.5rem;letter-spacing:.04em;text-transform:uppercase;color:var(--cream);line-height:1}
.foot__fine{font-family:var(--mono);font-size:.78rem;margin-top:10px;max-width:60ch}
.foot__links{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:.85rem}
.foot__links a{color:var(--cream)}
@media (max-width:640px){footer .wrap{grid-template-columns:1fr}}

/* ---- print: the paper path ---- */
@media print{
  html,body{background:#fff}
  .soon,.sign,.gear,.crewbar,footer,.noprint,.step__top,.acts,.vote{display:none !important}
  .step{border:0;box-shadow:none;padding:0}
  .doc{border:0;box-shadow:none;padding:0;max-width:none}
  .keytag{transform:none}
  a{text-decoration:none}
}
