@layer reset,base,paper,components;@layer reset{*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,p,figure,dl,dd,ul{margin:0}ul{padding:0;list-style:none}button,input,table{font:inherit;color:inherit}img{max-width:100%;display:block}}@layer base{:root{--counter: #b5b5b5;--counter-deep: #9b9b9b;--paper: #f4f4f4;--ink: #131313;--ink-soft: #6a6a6a;--ink-faint: #a2a2a2;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Cascadia Mono", "Roboto Mono", "DejaVu Sans Mono", monospace;--tooth: 13px;--pad: 1.6rem}@media(prefers-color-scheme:dark){:root{--counter: #0f0f0f;--counter-deep: #060606;--paper: #d2d2d2;--ink: #121212;--ink-soft: #565656;--ink-faint: #888888}}body{margin:0;min-height:100dvh;background-color:var(--counter);background-image:radial-gradient(ellipse at 50% 0%,var(--counter) 0%,var(--counter-deep) 78%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E");color:var(--ink);font-family:var(--mono);font-size:14px;line-height:1.5;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1,h2,h3{font-size:1rem;font-weight:700;letter-spacing:.02em}a{color:inherit}}@layer paper{.counter{min-height:100dvh;display:flex;justify-content:center;align-items:flex-start;padding:clamp(.5rem,3vw,2.25rem) .75rem 3.5rem}.receipt{position:relative;width:100%;max-width:26rem;background:var(--paper);color:var(--ink);padding:1.9rem var(--pad) 1.6rem;filter:drop-shadow(0 1px 1px rgb(0 0 0 / .3)) drop-shadow(0 16px 24px rgb(0 0 0 / .34));animation:feed .62s cubic-bezier(.22,.61,.36,1) backwards}.receipt:before,.receipt:after{content:"";position:absolute;left:0;right:0;height:calc(var(--tooth) / 2);background:var(--paper);-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-size:var(--tooth) 100%;mask-size:var(--tooth) 100%}.receipt:before{top:calc(var(--tooth) / -2 + 1px);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='6' preserveAspectRatio='none'%3E%3Cpolygon points='0,6 6,0 12,6' fill='%23000'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='6' preserveAspectRatio='none'%3E%3Cpolygon points='0,6 6,0 12,6' fill='%23000'/%3E%3C/svg%3E")}.receipt:after{bottom:calc(var(--tooth) / -2 + 1px);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='6' preserveAspectRatio='none'%3E%3Cpolygon points='0,0 6,6 12,0' fill='%23000'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='6' preserveAspectRatio='none'%3E%3Cpolygon points='0,0 6,6 12,0' fill='%23000'/%3E%3C/svg%3E")}@keyframes feed{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}.print>*{animation:land .24s ease-out both;animation-delay:calc(var(--i, 0) * 32ms + .14s)}@keyframes land{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.receipt,.print>*{animation:none}}}@layer components{.brand{display:block;text-decoration:none;text-align:center;font-size:1.3rem;font-weight:700;letter-spacing:.4em;text-indent:.4em;text-transform:uppercase}.brand-sub{text-align:center;color:var(--ink-soft);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;margin-top:.35rem}.rule{height:0;border-top:1px dashed var(--ink-faint);margin:.85rem 0}.rule--solid{border-top-style:solid;border-color:var(--ink)}.rule--double{height:4px;background:transparent;border:none;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin:.7rem 0}.rule--tight{margin:.5rem 0}.center{text-align:center}.caps{text-transform:uppercase;letter-spacing:.1em}.muted{color:var(--ink-soft)}.tiny{font-size:.72rem}.lede{color:var(--ink-soft);text-wrap:pretty}.kv{display:flex;align-items:baseline;gap:.5ch;padding:.1rem 0}.kv__label{white-space:nowrap}.kv__dots{flex:1;border-bottom:1px dotted var(--ink-faint);transform:translateY(-.28em);min-width:1ch}.kv__value{white-space:nowrap}.kv--strong{font-weight:700}.meta{display:flex;justify-content:space-between;gap:1ch;color:var(--ink-soft);font-size:.76rem}.stamp{border:3px double var(--ink);color:var(--ink);padding:0;margin:.85rem 0;font-size:.76rem;line-height:1.45;transform:rotate(-1.2deg);text-wrap:pretty;overflow:hidden}.stamp>:not(.stamp__title){display:block}.stamp__title{display:block;background:var(--ink);color:var(--paper);font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:.18rem .6rem;margin-bottom:.4rem}.stamp{padding-bottom:.5rem}.stamp>*:not(.stamp__title),.stamp{padding-inline:0}.stamp__title+*{padding-inline:.7rem}.stamp--note{border:1px dashed var(--ink-faint);color:var(--ink-soft);transform:rotate(.4deg)}.stamp--note .stamp__title{background:none;color:var(--ink-soft);padding-inline:.7rem}.btn{display:block;width:100%;padding:.6rem .9rem;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-weight:700;letter-spacing:.16em;text-transform:uppercase;text-align:center;text-decoration:none;cursor:pointer;transition:transform 80ms ease}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:progress}.btn--ghost{background:transparent;color:var(--ink);border-style:dashed;font-weight:400}.btn--ghost:hover{border-style:solid}.btn--inline{display:inline-block;width:auto;padding:.26rem .55rem;font-size:.7rem;letter-spacing:.1em}.btn-row{display:flex;flex-direction:column;gap:.5rem;margin-top:.9rem}.btn-row--h{flex-direction:row;justify-content:flex-end;margin-top:.5rem}.linkish{background:none;border:none;padding:0;font:inherit;color:var(--ink-soft);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.scanbox{display:block;border:1px dashed var(--ink);padding:2.4rem 1rem;text-align:center;cursor:pointer;transition:background .12s ease}.scanbox:hover,.scanbox--active{background:#0000000b}.scanbox__mark{font-size:1.5rem;letter-spacing:.28em;text-indent:.28em;display:block}.scanbox__label{display:block;margin-top:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.scanbox__actions{display:flex;gap:.5rem;justify-content:center;margin-top:1rem}.scanbox__actions .btn{min-width:7rem}.scanbox__hint{display:block;margin-top:.35rem;color:var(--ink-soft);font-size:.72rem}.shot{border:1px solid var(--ink-faint);margin-top:.85rem}.shot img{width:100%;filter:grayscale(1) contrast(1.28)}.reject{background:var(--ink);color:var(--paper);padding:1rem .75rem;text-align:center;transform:rotate(-1.5deg);margin-bottom:1.1rem}.reject__title{font-size:1.55rem;font-weight:700;line-height:1.1;letter-spacing:.08em;text-transform:uppercase}.reject__why{font-size:.82rem;margin-top:.45rem;text-wrap:pretty}.scanning{position:relative;overflow:hidden;border:1px solid var(--ink-faint)}.scanning img{width:100%;filter:grayscale(1) contrast(1.2) opacity(.5)}.scanning:after{content:"";position:absolute;inset-inline:0;height:2px;background:var(--ink);box-shadow:0 0 14px 3px #00000052;animation:head 1.6s ease-in-out infinite}@keyframes head{0%,to{top:2%}50%{top:96%}}@media(prefers-reduced-motion:reduce){.scanning:after{animation:none;top:50%}}.readout{display:grid;grid-template-columns:1fr 1fr;gap:.1rem 1ch;font-size:.72rem;color:var(--ink-soft);margin:.5rem 0}.readout b{color:var(--ink);font-weight:400}details>summary{cursor:pointer;color:var(--ink-soft);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;margin-top:.85rem}.calcmode{display:block;width:100%;background:none;border:none;padding:.15rem 0;text-align:center;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer}.calcmode[aria-pressed=true]{color:var(--ink);font-weight:700}.lines{display:flex;flex-direction:column}.line{border:none;background:none;padding:.32rem .4rem;margin-inline:-.4rem;width:calc(100% + .8rem);text-align:left;cursor:pointer;display:block;transition:background 90ms ease,color 90ms ease}.line:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.line[aria-pressed=true]{background:var(--ink);color:var(--paper)}.line[aria-pressed=true] .kv__dots{border-bottom-color:#ffffff61}.line[aria-pressed=true] .line__sub{color:#ffffffb3}.line__top{display:flex;align-items:baseline;gap:.5ch}.line__box{flex:none;font-weight:700}.line__qty{flex:none;opacity:.6}.line__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase}.line__price{flex:none;font-weight:700}.line__sub{display:flex;align-items:center;gap:.6ch;flex-wrap:wrap;padding-left:4ch;margin-top:.08rem;font-size:.7rem;color:var(--ink-soft);min-height:1.05rem}.who{border:1px solid currentColor;padding:0 .35ch;letter-spacing:.06em}.who--me{background:currentColor}.who--me>span{color:var(--paper)}.line[aria-pressed=true] .who--me>span{color:var(--ink)}.stepper{display:inline-flex;align-items:center;gap:.5ch}.stepper>span{min-width:3ch;text-align:center}.stepper button{border:1px solid currentColor;background:none;cursor:pointer;width:1.6em;height:1.6em;line-height:1;padding:0;font-weight:700}.past{display:flex;align-items:center;gap:.5ch;border-bottom:1px dotted var(--rule, var(--ink-faint))}.past__link{flex:1;min-width:0;display:block;padding:.45rem 0;text-decoration:none}.past__link:hover .line__name{text-decoration:underline;text-underline-offset:3px}.past__meta{display:block;font-size:.7rem;color:var(--ink-soft)}.ledger{width:100%;border-collapse:collapse;table-layout:fixed}.ledger th{font-weight:400;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);text-align:left;padding-bottom:.3rem;border-bottom:1px dashed var(--ink-faint)}.ledger th.num,.ledger td.num{text-align:right}.ledger td+td,.ledger th+th{padding-left:1.2ch}.ledger td{padding:.04rem 0;vertical-align:middle}.ledger .col-qty{width:4ch}.ledger .col-num{width:8ch}.ledger .col-x{width:3.5ch}.ledger td.col-x,.ledger th.col-x{padding-left:.6ch;text-align:right}@media(max-width:25rem){.ledger .col-each{display:none}}.cell{width:100%;background:none;border:none;border-bottom:1px solid transparent;padding:.16rem .1rem;text-transform:uppercase}.cell:hover{border-bottom-color:var(--ink-faint)}.cell:focus{outline:none;border-bottom-color:var(--ink);background:#0000000d}.cell--num{text-align:right;text-transform:none;padding-inline:0}.field{display:block;margin-bottom:.45rem}.field>span{display:block;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.kill{border:none;background:none;cursor:pointer;color:var(--ink-faint);padding:0;line-height:1}.kill:hover{color:var(--ink);font-weight:700}.total{display:flex;justify-content:space-between;align-items:baseline;gap:1ch;font-size:1.45rem;font-weight:700;letter-spacing:.03em}.total__label{font-size:.76rem;letter-spacing:.18em}.tally{position:sticky;bottom:0;background:var(--paper);padding-top:.5rem;margin-top:.4rem}.naming{display:flex;gap:.5ch;margin-top:.55rem}.naming input{flex:1;min-width:0;background:none;border:none;border-bottom:1px solid var(--ink);padding:.3rem .2rem;text-transform:uppercase}.naming input:focus{outline:none;background:#0000000d}.foot{margin-top:1.1rem}.thanks{text-align:center;letter-spacing:.2em;text-transform:uppercase;font-size:.74rem}.barcode{height:40px;margin:.75rem auto .3rem;width:min(100%,15rem);background-image:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 5px,var(--ink) 5px 6px,transparent 6px 10px,var(--ink) 10px 13px,transparent 13px 14px,var(--ink) 14px 15px,transparent 15px 19px,var(--ink) 19px 21px,transparent 21px 24px)}.contact a{text-decoration:none;border-bottom:1px dotted var(--ink-faint)}.contact{display:inline-flex;gap:.8ch;align-items:baseline;flex-wrap:wrap;justify-content:center}.contact>[aria-hidden]{color:var(--ink-faint)}.barnum{text-align:center;letter-spacing:.45em;text-indent:.45em;font-size:.66rem;color:var(--ink-soft)}.status{display:inline-flex;align-items:center;gap:.5ch}.status:before{content:"";width:5px;height:5px;background:currentColor;border-radius:50%;opacity:.35}.status--on:before{opacity:1;animation:blip 2.2s ease-out infinite}@keyframes blip{0%,60%,to{opacity:1}30%{opacity:.2}}.photo{margin-top:.75rem;border:1px solid var(--ink-faint)}.photo img{width:100%;max-height:62vh;object-fit:contain;filter:grayscale(1) contrast(1.15)}}
