/* AI Chat Front Desk - the ticket-printer world. Tokens first; everything else uses them. */
@font-face{font-family:'Doto';src:url(/fonts/doto.woff2) format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'Schibsted Grotesk';src:url(/fonts/schibsted.woff2) format('woff2');font-weight:400 900;font-display:swap}
@font-face{font-family:'Sometype Mono';src:url(/fonts/sometype.woff2) format('woff2');font-weight:400 700;font-display:swap}
:root{
  --steel:#dddee0;--steel-2:#cfd2d6;--steel-3:#b8bcc2;--steel-ink:#3c4048;
  --paper:#fcfcfa;--paper-2:#f2f2ee;--ink:#16171a;--ink-2:#41444c;--fade:#5c6069;
  --ribbon:#c41d2b;--ribbon-2:#a3131f;--ok:#1d6b45;--ok-bg:#e1efe6;--warn-bg:#fbf1d3;
  --dot:'Doto',ui-monospace,monospace;--rond:'ROND' 100;--tape:'Sometype Mono',ui-monospace,Menlo,Consolas,monospace;--ui:'Schibsted Grotesk',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --r:6px;--shadow-paper:0 1px 0 rgba(255,255,255,.7) inset,0 22px 34px -14px rgba(22,23,26,.42),0 4px 10px rgba(22,23,26,.14);
  --wrap:1220px;--gut:clamp(16px,4vw,40px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:17px/1.6 var(--ui);color:var(--ink);background:var(--steel) url(/steel.webp) repeat;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--ribbon);color:#fff}
a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--ribbon)}
:focus-visible{outline:3px solid var(--ribbon);outline-offset:2px;border-radius:3px}
img{max-width:100%;display:block}
h1,h2,h3{line-height:1.08;margin:0 0 .5em;text-wrap:balance;letter-spacing:-.01em}
h1{font:900 clamp(2.4rem,3.7vw,4.1rem)/1.04 var(--dot);letter-spacing:-.03em}
h2{font:900 clamp(2rem,3.6vw,3.3rem)/1.02 var(--dot);letter-spacing:-.015em}
h3{font:700 1.2rem/1.25 var(--ui)}
p{margin:0 0 1em;max-width:68ch}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.small{font-size:.86rem;color:var(--ink-2)}
.dotface{font-family:var(--dot);font-weight:900;letter-spacing:-.01em}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;z-index:50}.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:var(--steel-3);border-radius:8px;border:3px solid var(--steel)}::-webkit-scrollbar-track{background:transparent}

/* buttons & fields: register keys - square-ish, printed labels */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:var(--r);border:0;font:700 1rem/1 var(--ui);cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .12s ease,background .15s ease,box-shadow .15s ease}
.btn:active{transform:translateY(1px)}
.btn.sm{min-height:40px;padding:0 16px;font-size:.92rem}
.btn-red{background:var(--ribbon);color:#fff;box-shadow:0 3px 6px -1px rgba(163,19,31,.45),0 8px 18px -8px rgba(196,29,43,.55)}
.btn-red:hover{background:var(--ribbon-2);color:#fff}
.btn-ink{background:var(--ink);color:#fff;box-shadow:0 3px 6px -1px rgba(22,23,26,.35)}.btn-ink:hover{background:#2b2d33;color:#fff}
.btn-line{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.btn-line:hover{background:#fff;color:var(--ink)}
.btn-quiet{background:transparent;color:var(--ink-2);min-height:40px;padding:0 10px}.btn-quiet:hover{color:var(--ink);background:rgba(22,23,26,.06)}
.btn[disabled]{opacity:.55;cursor:default}
.ic{width:20px;height:20px;flex:none}
label{font-weight:600;font-size:.95rem}
.field{display:grid;gap:6px;margin:0 0 16px}
.field small{font-weight:400;color:var(--fade);font-size:.85rem}
input[type=text],input[type=email],input[type=url],input[type=tel],input[type=number],input:not([type]),textarea,select{font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1.5px solid var(--steel-3);border-radius:var(--r);padding:11px 13px;width:100%;transition:border-color .15s,box-shadow .15s}
textarea{min-height:110px;resize:vertical;line-height:1.5}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(196,29,43,.22)}
input::placeholder,textarea::placeholder{color:#7a7e87}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--ribbon);flex:none}
.flash{background:var(--ok-bg);color:var(--ok);border-radius:var(--r);padding:11px 14px;margin:0 0 18px;font-weight:600}
.flash.err{background:#fde7e7;color:#8e1720}

/* top bar */
.top{position:relative;z-index:3}
.topin{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px}
.mark{text-decoration:none;font-size:1.55rem;color:var(--ink)}
.links{display:flex;align-items:center;gap:26px}.links a:not(.btn){text-decoration:none;font-weight:500;color:var(--ink-2)}.links a:not(.btn):hover{color:var(--ink)}

/* ---- paper objects ---- */
.paper{background:var(--paper);box-shadow:var(--shadow-paper);position:relative}
.torn{--tooth:9px;-webkit-mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/calc(var(--tooth)*2) 100%;mask:conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) 50%/calc(var(--tooth)*2) 100%;padding-bottom:calc(var(--tooth) + 18px)}
.rule{border:0;border-top:1.5px dashed #9a9ea6;margin:12px 0}
.rail{position:relative;z-index:2;height:auto;width:100%;user-select:none;pointer-events:none;filter:drop-shadow(0 6px 6px rgba(22,23,26,.22))}
.tape{font-family:var(--tape);font-size:.95rem;line-height:1.5}
.red{color:var(--ribbon)}

/* ---- hero ---- */
.hero{padding:clamp(4px,1vw,16px) 0 56px}
.heroin{display:grid;grid-template-columns:minmax(0,57fr) minmax(0,43fr);gap:clamp(24px,4vw,64px);align-items:start}
.pitch{padding-top:clamp(12px,3.4vh,48px)}
.pitch h1{margin-bottom:18px}
.lede{font-size:1.14rem;line-height:1.55;color:var(--ink-2);max-width:36rem;margin-bottom:22px}
.try{display:grid;gap:8px;max-width:36rem}
.tryrow{display:flex;gap:10px}
.tryrow input{flex:1;min-height:54px;font-size:1.08rem;background:var(--paper)}
.tryrow .btn{min-height:54px;font-size:1.04rem}
.trynote{font-size:.9rem;color:var(--ink-2);margin:4px 0 0}
.trynote b{color:var(--ink)}
.tryerr{color:var(--ribbon-2);font-weight:600;font-size:.95rem;min-height:1.2em;margin:0}
.tryerr:empty{display:none}

.printer{position:relative;max-width:620px;margin-left:auto;width:100%}
.printer .rail{width:100%}
.roll{margin:-26px auto 0;width:min(440px,88%);padding:34px 26px 24px;transform-origin:top center}
.roll .rhead{font:900 1.06rem/1.2 var(--dot);letter-spacing:.02em;text-transform:uppercase;margin:0 0 4px}
.roll .rsub{font:400 .78rem/1.4 var(--tape);color:var(--fade);margin:0;text-transform:uppercase;letter-spacing:.06em}
.feed{max-height:min(40vh,400px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#b8bcc2 transparent;padding-right:4px}
.feed::-webkit-scrollbar{width:6px}.feed::-webkit-scrollbar-thumb{background:#b8bcc2;border:0;border-radius:3px}
.ln{font:400 .93rem/1.5 var(--tape);margin:0 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}
.ln .who{display:block;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fade)}
.ln.v .who::after{content:''}
.ln.lead{color:var(--ribbon);font-weight:600}
.ln.sys{color:var(--fade);font-size:.82rem}
.ln a{color:inherit}
.src{display:block;font-size:.74rem;color:var(--fade);margin-top:3px}
.chipsr{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}
.chipsr button{font:400 .82rem/1.2 var(--tape);background:transparent;border:1.3px dashed var(--ink-2);color:var(--ink);border-radius:3px;padding:7px 9px;cursor:pointer;text-align:left}
.chipsr button:hover{border-style:solid;border-color:var(--ribbon);color:var(--ribbon)}
.askrow{display:flex;align-items:center;gap:8px;border-top:1.5px dashed #9a9ea6;margin:6px -6px 0;padding:12px 6px 4px;position:relative}
.askrow::before,.askrow::after{content:'';position:absolute;top:-8px;width:16px;height:16px;border-radius:50%;background:var(--steel);box-shadow:inset 0 2px 3px rgba(22,23,26,.25)}.askrow::before{left:-28px}.askrow::after{right:-28px}
.askrow input{flex:1;border:0;background:transparent;font:400 .95rem var(--tape);padding:8px 2px;box-shadow:none}
.askrow input:focus{box-shadow:none;outline:none}
.askrow:focus-within{border-top-style:solid;border-top-color:var(--ink)}
.askrow button{border:0;background:var(--ink);color:#fff;border-radius:4px;width:40px;height:40px;cursor:pointer;display:grid;place-items:center;flex:none}
.askrow button:hover{background:var(--ribbon)}
.printing .ln:last-child{animation:feed .5s cubic-bezier(.2,.8,.2,1)}
@keyframes feed{from{opacity:0;transform:translateY(-6px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
.cursor::after{content:'\2588';animation:blink 1s steps(1) infinite;color:var(--ink-2)}
@keyframes blink{50%{opacity:0}}
.keep{display:grid;gap:8px;margin:6px 0 12px;padding:12px;border:1.5px solid var(--ribbon);border-radius:4px}
.keep p{margin:0;font:600 .9rem/1.4 var(--tape);color:var(--ribbon)}
.leadform{display:grid;gap:7px;margin:4px 0 12px}
.leadform input{font:400 .9rem var(--tape);padding:9px 10px;background:#fff}
.leadform .btn{min-height:42px;font-size:.92rem}
.samplecap{font:400 .74rem/1.4 var(--tape);color:var(--steel-ink);text-align:center;margin:12px auto 0;max-width:440px}

/* ---- sections ---- */
.sec{padding:clamp(56px,8vw,110px) 0}
.sec.paperband{background:var(--paper);box-shadow:0 -1px 0 var(--steel-3),0 1px 0 var(--steel-3)}
.sechead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(20px,4vw,60px);align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.sechead p{font-size:1.1rem;color:var(--ink-2);margin:0}

/* ticket rail section */
.railrow{position:relative}
.tickets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(10px,1.6vw,22px);margin:-30px clamp(8px,2vw,30px) 0;align-items:start}
.ticket{padding:46px 15px 30px;font:400 .8rem/1.45 var(--tape)}
.clamp{position:relative}.clamp::before{content:'';position:absolute;top:-16px;left:50%;width:76px;height:58px;transform:translateX(-50%);background:url(/clip.webp) center/contain no-repeat;filter:drop-shadow(0 3px 3px rgba(22,23,26,.3));z-index:3}
.ticket .tk{display:block;font:900 .82rem/1.2 var(--dot);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}
.ticket p{margin:0 0 8px;max-width:none}.ticket .who{display:block;color:var(--fade);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}
.ticket .stamp{color:var(--ribbon);font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-top:1.5px dashed #9a9ea6;padding-top:8px;margin-top:4px}
.tkw:nth-child(2){margin-top:14px}.tkw:nth-child(3){margin-top:4px}.tkw:nth-child(4){margin-top:22px}.tkw:nth-child(5){margin-top:8px}
.examplecap{font:400 .78rem var(--tape);color:var(--steel-ink);margin-top:18px}

/* how it works: an itemised receipt */
.how{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start}
.itemised{padding:30px 28px 30px;font:400 1rem/1.5 var(--tape);max-width:520px}
.item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;padding:10px 0}
.item b{font-weight:600}.item .dots{border-bottom:2px dotted #9a9ea6;transform:translateY(-4px)}
.item small{grid-column:1/-1;color:var(--fade);font-size:.86rem;margin-top:-4px}
.total{display:flex;justify-content:space-between;font:900 1.35rem var(--dot);padding:14px 0 6px;border-top:2px solid var(--ink);margin-top:8px}
.howtext h3{font-size:1.35rem;margin-top:26px}
.howtext ul{padding-left:1.1em;margin:0 0 1em}.howtext li{margin:0 0 .45em}

/* owner gets: email + live reply */
.gets{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4vw,56px);align-items:start}
.mailframe{width:100%;height:640px;border:0;background:var(--steel);border-radius:4px;box-shadow:var(--shadow-paper)}
.mailcap{font:400 .78rem var(--tape);color:var(--steel-ink);margin-top:10px}
.points{display:grid;gap:22px}
.point{display:grid;grid-template-columns:44px 1fr;gap:14px}
.point .pi{width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center}
.point h3{margin:4px 0 4px}.point p{margin:0;color:var(--ink-2)}

/* install strip */
.codeline{display:flex;gap:10px;align-items:stretch;background:var(--ink);color:#e9eaee;border-radius:var(--r);padding:8px 8px 8px 18px;font:400 .92rem/1.5 var(--tape);overflow:hidden}
.codeline code{flex:1;align-self:center;overflow-x:auto;white-space:nowrap;padding:8px 0}
.codeline .btn{background:#fff;color:var(--ink);min-height:42px}
.platforms{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.platforms a{display:inline-flex;align-items:center;gap:8px;background:var(--paper);border-radius:var(--r);padding:10px 14px;text-decoration:none;font-weight:600;box-shadow:0 1px 0 var(--steel-3)}
.platforms a:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}

/* pricing: a price list */
.prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,26px);align-items:start}
.plan{padding:28px 24px 30px;display:flex;flex-direction:column;gap:6px}
.plan.feat{outline:2px solid var(--ink);outline-offset:-2px}
.plan .pname{font:900 1.5rem var(--dot);text-transform:uppercase;letter-spacing:.03em;margin:0}
.plan .pblurb{font-size:.95rem;color:var(--ink-2);margin:0 0 6px}
.plan .pp{font:900 3.4rem/1 var(--dot);margin:6px 0 0}.plan .pp small{font:600 1rem var(--ui);color:var(--ink-2)}
.plan .py{font:400 .82rem var(--tape);color:var(--fade);margin:0 0 10px}
.plan ul{list-style:none;padding:0;margin:8px 0 16px;font:400 .92rem/1.45 var(--tape)}
.plan li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px dashed #b5b9bf}
.plan li span:last-child{text-align:right;font-weight:600}
.plan .btn{width:100%;margin-bottom:6px}
.plan .flag{position:absolute;top:-1px;right:18px;background:var(--ink);color:#fff;font:700 .72rem/1 var(--ui);letter-spacing:.08em;text-transform:uppercase;padding:7px 9px;border-radius:0 0 4px 4px}
.toggle{display:inline-flex;background:var(--paper);border-radius:999px;padding:4px;box-shadow:inset 0 0 0 1px var(--steel-3);margin-bottom:24px}
.toggle button{border:0;background:none;font:600 .95rem var(--ui);padding:9px 16px;border-radius:999px;cursor:pointer;color:var(--ink-2)}
.toggle button[aria-pressed=true]{background:var(--ink);color:#fff}
.trialbar{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between;background:var(--paper);border-radius:var(--r);padding:18px 22px;margin-top:28px;box-shadow:0 1px 0 var(--steel-3)}
.trialbar p{margin:0}

/* faq */
.faq{max-width:860px}
.faq details{border-top:1.5px dashed #9a9ea6;padding:4px 0}
.faq details:last-child{border-bottom:1.5px dashed #9a9ea6}
.faq summary{cursor:pointer;font-weight:700;font-size:1.08rem;padding:16px 36px 16px 0;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:6px;top:10px;font:900 1.6rem var(--dot)}
.faq details[open] summary::after{content:'\2212'}
.faq details p{color:var(--ink-2)}

.closer{text-align:left}
.closer .try{margin-top:24px}

/* prose (legal, help, blog, install guides) */
.doc{max-width:820px;padding:30px clamp(20px,4vw,48px) 48px;margin:12px auto 70px}
.doc h1{font-size:clamp(2.2rem,4.6vw,3.6rem)}
.doc h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-top:1.6em}
.doc li{margin:0 0 .5em}
.doc pre{background:var(--ink);color:#e9eaee;padding:14px 16px;border-radius:var(--r);overflow-x:auto;font:400 .88rem/1.5 var(--tape)}
.doc code{font-family:var(--tape);font-size:.92em}
.doc table{border-collapse:collapse;width:100%;font-size:.95rem}.doc td,.doc th{border-bottom:1px dashed #b5b9bf;padding:8px 6px;text-align:left}
.steps{counter-reset:s;padding:0;list-style:none}.steps li{counter-increment:s;position:relative;padding-left:44px;margin:0 0 16px}
.steps li::before{content:counter(s);position:absolute;left:0;top:-2px;width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font:700 .9rem var(--ui)}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}.tabs a{padding:8px 13px;border-radius:999px;background:var(--paper-2);text-decoration:none;font-weight:600;font-size:.93rem}.tabs a[aria-current=page]{background:var(--ink);color:#fff}

/* login */
.authbox{max-width:480px;margin:30px auto 90px;padding:34px 30px 34px}
.authbox h1{font-size:clamp(2rem,4vw,2.8rem)}
.devlink{word-break:break-all;font:400 .82rem var(--tape);background:var(--warn-bg);padding:10px;border-radius:4px}

/* footer */
.foot{background:var(--ink);color:#c9ccd2;padding:48px 0 40px;margin-top:0}
.footin{display:grid;grid-template-columns:1.2fr 1fr;gap:20px 48px}
.foot a{color:#e7e9ed}.foot a:hover{color:#fff}
.foot nav{display:flex;flex-wrap:wrap;gap:10px 22px;align-content:start}
.foot .small{color:var(--steel-3)}.fmark{font-size:1.3rem;color:#fff;margin:0 0 6px}
.legal{grid-column:1/-1;border-top:1px solid #33363d;padding-top:18px;margin:6px 0 0}

/* =================== APP =================== */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.side{background:transparent;padding:22px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:6px;overflow-y:auto}
.side .mark{font-size:1.06rem;padding:2px 10px 14px;white-space:nowrap}
.side nav{display:grid;gap:2px}
.side nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--r);text-decoration:none;color:var(--ink-2);font-weight:600;font-size:.97rem}
.side nav a:hover{background:rgba(22,23,26,.06);color:var(--ink)}
.side nav a[aria-current=page]{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px rgba(22,23,26,.12)}.side nav a[aria-current=page] .ic{color:var(--ribbon)}
.side nav a .count{margin-left:auto;background:var(--ribbon);color:#fff;border-radius:999px;font:700 .72rem/1 var(--ui);padding:4px 7px}
.side .botpick{margin:0 4px 12px}.side .botpick select{font-size:.9rem;padding:8px 10px;background:var(--paper)}
.side .meter{margin:auto 6px 0;padding:14px 12px;background:var(--paper);border-radius:var(--r);font-size:.84rem;box-shadow:0 1px 0 var(--steel-3)}
.meter .bar{height:8px;background:var(--steel-2);border-radius:4px;overflow:hidden;margin:8px 0 6px}.meter .bar i{display:block;height:100%;background:var(--ink)}
.meter .bar.hot i{background:var(--ribbon)}
.meter a{font-weight:700}
.mainpane{background:var(--paper-2);min-height:100vh;padding:28px clamp(18px,3vw,44px) 60px;box-shadow:-1px 0 0 var(--steel-3)}
.pagehead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:22px}
.pagehead h1{font-size:clamp(2rem,3.4vw,2.9rem);margin:0}
.pagehead p{margin:6px 0 0;color:var(--ink-2)}
.panel{background:#fff;border:1px solid #dfe1e5;border-radius:8px;padding:20px 22px;margin:0 0 22px}
.panel h2{font:700 1.15rem/1.3 var(--ui);letter-spacing:0;margin:0 0 4px}
.panel .sub{color:var(--fade);font-size:.92rem;margin:0 0 14px}
.grid2{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:22px;align-items:start}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.steelband{background:var(--steel) url(/steel.webp);border-radius:8px;padding:0 0 22px;margin:0 0 22px;box-shadow:inset 0 0 0 1px var(--steel-3)}
.railbar{height:62px;background:url(/rail-l.webp) left top/auto 100% no-repeat,url(/rail-r.webp) right top/auto 100% no-repeat,url(/rail-mid.webp) 0 0/auto 100% repeat-x;background-origin:content-box;padding:0 2px;filter:drop-shadow(0 5px 5px rgba(22,23,26,.2));position:relative;z-index:2}
.steelband .railbar{margin:0 8px}
.steelband h2{font:700 1.15rem var(--ui);letter-spacing:0;margin:0;padding:16px 20px 0}
.ltickets{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,290px));justify-content:space-evenly;gap:18px;margin:-14px 22px 0;position:relative;z-index:1}
.lt{padding:38px 16px 30px 72px;min-height:170px;font:400 .86rem/1.5 var(--tape);text-decoration:none;color:var(--ink);display:block}
.lt:hover{color:var(--ink);transform:translateY(2px)}
.lt .new{position:absolute;left:12px;top:38px;bottom:34px;width:46px;display:flex;align-items:center;justify-content:center;border:2.5px solid var(--ribbon);border-radius:4px;color:var(--ribbon);font:900 2.05rem/1 var(--dot);letter-spacing:.02em;writing-mode:vertical-rl;transform:rotate(180deg)}
.lt .what{display:block;font:600 .74rem var(--tape);letter-spacing:.1em;text-transform:uppercase;color:var(--ribbon)}
.lt dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:8px 0 0}.lt dt{color:var(--fade)}.lt dd{margin:0;overflow-wrap:anywhere}
.emptyrail{margin:-4px 22px 0;padding:18px 20px;background:var(--paper);border-radius:4px;font:400 .92rem var(--tape);color:var(--ink-2)}
.zrep{padding:24px 22px 26px;margin:0 0 22px}
.perf{-webkit-mask:radial-gradient(circle 5px at 50% 0,#0000 98%,#000) 0 0/16px 100% repeat-x;mask:radial-gradient(circle 5px at 50% 0,#0000 98%,#000) 0 0/16px 100% repeat-x}
.zwrap{filter:drop-shadow(0 12px 14px rgba(22,23,26,.2))}
.zrep .zt{max-width:none;display:flex;justify-content:space-between;font:900 1.05rem var(--dot);letter-spacing:.06em;text-transform:uppercase;border-bottom:1.5px dashed #9a9ea6;padding-bottom:10px;margin:0 0 6px}
.znums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.znums div{padding:14px 10px 10px;border-right:1.5px dashed #c2c5ca;text-align:center}.znums div:last-child{border-right:0}
.znums b{display:block;font:900 clamp(2.6rem,4.4vw,3.9rem)/1 var(--dot);margin-bottom:4px}
.znums span{font:600 .78rem/1.3 var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--fade)}
.list{list-style:none;padding:0;margin:0}
.list li{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #eceef1}
.list li:last-child{border-bottom:0}
.list .q{font-weight:600;overflow-wrap:anywhere}.list .meta{color:var(--fade);font-size:.86rem;white-space:nowrap}
.tag{display:inline-block;font:700 .7rem/1 var(--ui);letter-spacing:.06em;text-transform:uppercase;padding:5px 7px;border-radius:4px;background:var(--paper-2);color:var(--ink-2)}
.tag.red{background:#fbe3e5;color:var(--ribbon-2)}.tag.ok{background:var(--ok-bg);color:var(--ok)}.tag.ink{background:var(--ink);color:#fff}
table.data{width:100%;border-collapse:collapse;font-size:.94rem}
table.data th{text-align:left;font:600 .76rem var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--fade);padding:8px 10px;border-bottom:1.5px solid var(--ink)}
table.data td{padding:12px 10px;border-bottom:1px solid #eceef1;vertical-align:top}
table.data tr:hover td{background:#fafafa}
.num{font-variant-numeric:tabular-nums}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.filters a{padding:7px 13px;border-radius:999px;background:var(--paper-2);text-decoration:none;font-weight:600;font-size:.9rem;color:var(--ink-2)}.filters a[aria-current=true]{background:var(--ink);color:#fff}
.empty{padding:28px;text-align:left;background:var(--paper-2);border-radius:8px;color:var(--ink-2)}
.empty h3{color:var(--ink)}
.checklist{list-style:none;padding:0;margin:0;display:grid;gap:4px}
.setupstrip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;background:#fff;border:1px solid #dfe1e5;border-radius:8px;padding:12px 16px;margin:0 0 22px}.setupstrip b{margin-right:4px}.setupstrip .st{display:inline-flex;align-items:center;gap:6px;font-size:.92rem;color:var(--fade)}.setupstrip .st.done{color:var(--ok)}.setupstrip .st .ic{width:16px;height:16px}
.checklist li{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px dashed #d6d8dc}
.checklist .box{width:24px;height:24px;border-radius:4px;border:2px solid var(--steel-3);display:grid;place-items:center;color:#fff}
.checklist li.done .box{background:var(--ok);border-color:var(--ok)}.checklist li.done .t{color:var(--fade);text-decoration:line-through}
.convo{max-width:760px}
.msg{margin:0 0 14px;display:grid;gap:3px}.msg .who{font:600 .72rem var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--fade)}
.msg .body{padding:11px 14px;border-radius:8px;background:var(--paper-2);white-space:pre-wrap;overflow-wrap:anywhere;max-width:88%}
.msg.visitor{justify-items:end}.msg.visitor .body{background:var(--ink);color:#fff}
.msg.owner .body{background:#fff;border:1.5px solid var(--ribbon)}
.msg.system .body{background:transparent;color:var(--fade);font:400 .86rem var(--tape);padding:2px 0}
.msg .meta{font-size:.78rem;color:var(--fade)}
.miss{color:var(--ribbon-2);font-weight:600}
.code{font:400 .88rem/1.55 var(--tape);background:var(--ink);color:#e9eaee;border-radius:var(--r);padding:14px 16px;white-space:pre-wrap;word-break:break-all;margin:0 0 12px}
.preview{border:0;width:100%;height:600px;border-radius:8px;box-shadow:0 10px 30px rgba(22,23,26,.18);background:#fff}
.swatches{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.swatches button{width:34px;height:34px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--steel-3);cursor:pointer}
.chart{display:flex;align-items:flex-end;gap:3px;height:150px;padding:8px 0;border-bottom:1.5px solid var(--ink)}
.chart span{flex:1;background:var(--ink);border-radius:3px 3px 0 0;min-height:2px;position:relative}
.chart span.l{background:var(--ribbon)}
.legend{display:flex;gap:16px;font-size:.85rem;color:var(--fade);margin-top:8px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.usage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 4px}
.usage div{padding:6px 18px 6px 0;border-right:1px dashed #d6d8dc;margin-right:18px}.usage div:last-child{border:0}
.usage b{display:block;font:900 2rem/1.1 var(--dot)}.usage span{color:var(--fade);font-size:.86rem}
.danger{border-color:var(--ribbon)}
.inline{display:inline}
.hstack{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.mobilebar{display:none}

/* responsive */
@media (min-width:1700px){.heroin{grid-template-columns:minmax(0,60fr) minmax(0,40fr)}}
@media (max-width:1080px){
  .heroin{grid-template-columns:1fr}.printer{margin:0 auto}.pitch{padding-top:8px}
  .tickets{grid-template-columns:repeat(3,minmax(0,1fr))}.tickets .tkw:nth-child(n+4){display:none}
  .gets,.how,.sechead,.grid2{grid-template-columns:1fr}
  .prices{grid-template-columns:1fr;max-width:520px}
}
@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .side{position:static;height:auto;padding:12px var(--gut) 0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}
  .side .mark{padding:0;flex:1}
  .side nav{display:flex;overflow-x:auto;gap:4px;width:100%;padding-bottom:10px;scrollbar-width:none}
  .side nav a{white-space:nowrap;padding:9px 12px}.side nav a span.lbl{display:inline}
  .side .meter,.side .botpick{display:none}
  .mainpane{padding:22px var(--gut) 50px}
  .znums{grid-template-columns:repeat(2,minmax(0,1fr))}.znums div:nth-child(2){border-right:0}.znums div:nth-child(-n+2){border-bottom:1.5px dashed #c2c5ca}
  .cols2{grid-template-columns:1fr}
  .usage{grid-template-columns:1fr}.usage div{border:0;margin:0}
}
@media (max-width:640px){
  body{font-size:16px}
  .links a:not(.btn){display:none}
  .topin{min-height:64px}.mark{font-size:1.02rem;white-space:nowrap}
  .tryrow{flex-direction:column}.tryrow .btn{width:100%}
  .roll{width:94%;padding:30px 16px 0}
  .tickets{grid-template-columns:repeat(2,minmax(0,1fr));margin:-18px 0 0}.tickets .tkw:nth-child(n+3){display:none}
  .footin{grid-template-columns:1fr}
  .codeline{flex-direction:column;padding:12px}.codeline .btn{width:100%}
  table.data thead{display:none}table.data tr{display:block;border-bottom:1px solid #e3e5e9;padding:8px 0}table.data td{display:block;border:0;padding:3px 0}
  .list li{flex-wrap:wrap}
  .lede{font-size:1.06rem}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Round printer dots. Must come last: the `font` shorthand resets font-variation-settings. */
h1,h2,.dotface,.mark,.mark span,.pp,.pname,.zrep,.znums b,.usage b,.total,.rhead,.ticket .tk,.lt .new,.faq summary::after,.stamp{font-variation-settings:'ROND' 100}
/* Fatten the printer dots until they nearly touch (impact-printer weight). */
h1,h2,.znums b,.pp,.usage b,.lt .new,.total{-webkit-text-stroke:.045em currentColor;paint-order:stroke fill}
.dotface,.pname,.rhead,.ticket .tk{-webkit-text-stroke:.03em currentColor}
.panel h2,.steelband h2,.pp small,.authbox h1 small{-webkit-text-stroke:0}
