:root{--ink:#1D3B2F;--ink2:#2E5444;--paper:#F4F6F1;--card:#FFFFFF;--tomato:#9B2F6E;--tomato-d:#7A2156;--mustard:#F2C14E;--text:#1B2420;--muted:#55615A;--line:#D5DBD2;--tint:#E8EEE6;
--serif:"Avenir Next Condensed","Arial Narrow","Roboto Condensed","Helvetica Neue",Arial,sans-serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--num:ui-monospace,"SF Mono","Cascadia Mono","Roboto Mono",Menlo,Consolas,monospace}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font:400 1.0625rem/1.6 var(--sans)}
a{color:var(--ink2);text-underline-offset:.18em}
a:hover{color:var(--tomato-d)}
h1,h2,h3{font-family:var(--serif);color:var(--ink);line-height:1.08;font-weight:800;letter-spacing:-.015em}
h1{font-size:clamp(2rem,4.6vw,3.4rem);margin:.2em 0 .4em}
h2{font-size:1.5rem}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:8px;background:#fff;padding:8px;z-index:9}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px}
.eyebrow{font:600 .8rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--tomato-d);margin:0}
.lede{font-size:1.2rem;color:var(--muted);max-width:44em}
.small{font-size:.9rem;color:var(--muted)}
.btns{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:1.4em 0}
.btn{display:inline-block;background:var(--ink);color:#fff;border:2px solid var(--ink);border-radius:3px;padding:.7em 1.4em;font:600 1rem/1 var(--sans);text-decoration:none;cursor:pointer}
.btn:hover{background:var(--tomato-d);border-color:var(--tomato-d);color:#fff}
.btn--quiet{background:transparent;color:var(--ink)}
.btn--quiet:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--mustard);outline-offset:2px}
/* top */
.top{background:var(--paper);border-bottom:1px solid var(--line)}
.top__in{max-width:1160px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);margin:0}
.logo__mark{width:34px;height:34px;color:var(--ink)}
.logo__word{font:700 1.35rem/1 var(--serif);letter-spacing:-.01em}
.top__nav{display:flex;gap:6px 22px;flex-wrap:wrap;margin-left:auto}
.top__nav a{color:var(--text);text-decoration:none;font-weight:500;padding:6px 0;border-bottom:2px solid transparent}
.top__nav a[aria-current=page],.top__nav a:hover{border-bottom-color:var(--tomato);color:var(--ink)}
.notice{margin:0;background:var(--ink);color:#F4EEDF;font-size:.88rem;padding:8px 24px;text-align:center}
.notice a{color:var(--mustard)}
/* hero */
.hero{padding:56px 0 64px;background:linear-gradient(180deg,var(--paper) 0%,var(--tint) 100%)}
.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.ticket{margin:0;background:var(--card);border-radius:6px;box-shadow:0 1px 0 var(--line),0 24px 48px -24px rgba(29,59,47,.35);padding:22px 22px 0;position:relative;transform:rotate(1.2deg)}
.ticket::after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:10px;background:radial-gradient(circle at 8px 0,transparent 7px,var(--card) 7.5px) 0 0/16px 10px repeat-x}
.ticket__head{display:flex;justify-content:space-between;gap:12px;font:600 .82rem/1.2 var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px dashed var(--line);padding-bottom:10px}
.ticket__t{width:100%;border-collapse:collapse;font-size:.95rem;margin:8px 0}
.ticket__t th{text-align:left;font:600 .75rem/1 var(--sans);color:var(--muted);padding:8px 4px}
.ticket__t td{padding:7px 4px;border-top:1px solid var(--tint)}
.ticket__t td:not(:first-child),.ticket__t th:not(:first-child){text-align:right;font-family:var(--num)}
.ticket__big{border-top:2px solid var(--ink);margin:6px -22px 0;padding:16px 22px 20px;background:var(--ink);color:#F4EEDF;border-radius:0 0 6px 6px}
.ticket__big p{margin:0}
.ticket__n{font:700 3rem/1 var(--num);color:var(--mustard);margin-right:8px;vertical-align:-.2em}
.ticket__sub{font-size:.9rem;opacity:.85;margin-top:6px!important}
/* v1.0.4 hero (brand review 10/14): tally-mark band (was a market awning, too close to ghbulldogs.net), centred stacked headline, wide worked-example strip below */
.hero--stall{padding:0 0 56px;background:var(--paper)}
.tallyband{height:44px;background:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='44' viewBox='0 0 72 44'%3E%3Cg stroke-linecap='round' stroke-width='3' fill='none'%3E%3Cpath stroke='%231D3B2F' d='M14 9v26M23 9v26M32 9v26M41 9v26'/%3E%3Cpath stroke='%239B2F6E' d='M8 31L47 12'/%3E%3C/g%3E%3C/svg%3E") 12px 0/72px 44px repeat-x,var(--paper);border-bottom:3px solid var(--mustard)}
.hero__stack{text-align:center;padding-top:72px;max-width:900px;margin:0 auto}
.hero__stack h1{font-size:clamp(2.4rem,6.4vw,4.6rem);text-transform:uppercase;letter-spacing:.005em;margin:.15em 0 .3em}
.hero__stack h1 em{font-style:normal;background:linear-gradient(transparent 62%,var(--mustard) 62%);padding:0 .08em}
.hero__stack .lede{margin:0 auto}
.hero__stack .btns{justify-content:center}
.tag{display:inline-block;background:var(--tomato);color:#fff;font:700 .8rem/1.5 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:7px 12px;border-radius:2px}
.strip{margin:44px auto 0;display:grid;grid-template-columns:1.5fr 1fr;background:var(--card);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink)}
.strip__t{padding:20px 24px}
.strip .ticket__t{margin:0}
.strip__big{background:var(--ink);color:#F4F6F1;padding:28px;display:flex;flex-direction:column;justify-content:center}
.strip__big p{margin:0}
.strip__k{font:700 .78rem/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mustard)}
.strip__n{font:800 4.4rem/1 var(--num);color:var(--mustard);margin:.15em 0!important}
/* v1.0.3 feature rows: ledger lines, label left, no numbering */
.ledger{margin:28px 0 0;border-top:2px solid var(--ink)}
.ledger__row{display:grid;grid-template-columns:14em 1fr 12em;gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--line)}
.ledger__row dt{font:800 1.5rem/1.1 var(--serif);color:var(--ink);text-transform:uppercase}
.ledger__row dd{margin:0;color:var(--muted)}
.ledger__row .ledger__who{font:600 .82rem/1.3 var(--sans);color:var(--tomato-d);text-align:right}
/* sections */
.sec{padding:56px 0}
.sec--rule{border-top:1px solid var(--line)}
.sec--tint{background:var(--tint)}
.h-sec{font-size:clamp(1.5rem,3vw,2.1rem);max-width:22em}
.h-sub{font-size:1.2rem}
.steps{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;counter-reset:s}
.steps li{border-top:3px solid var(--ink);padding-top:16px}
.steps__n{font:700 .9rem/1 var(--num);color:var(--tomato-d)}
.steps h3{margin:.4em 0 .3em;font-size:1.3rem}
.steps p{margin:0;color:var(--muted)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-top:32px}
.pricebox{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:24px}
.pricebox__k{font:600 .8rem/1 var(--sans);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0}
.pricebox__p{font:700 2.6rem/1.1 var(--serif);color:var(--ink);margin:.2em 0}
.pricebox__p span{font-size:1rem;color:var(--muted);font-family:var(--sans)}
.pricebox__free,.plan__free{display:inline-block;background:var(--mustard);color:var(--ink);font-weight:700;border-radius:4px;padding:2px 10px}
/* pricing */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:32px 0}
.plan{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:26px}
.plan--main{border:2px solid var(--ink);box-shadow:0 18px 36px -24px rgba(29,59,47,.5)}
.plan h2{margin:0;font-size:1.3rem}
.plan__p{font:700 2.4rem/1.1 var(--serif);color:var(--ink);margin:.3em 0 0}
.plan__p span{font:500 1rem var(--sans);color:var(--muted)}
.plan__alt{color:var(--muted);font-size:.92rem;margin:.2em 0 0}
.plan ul{padding-left:1.1em}
.prose h2{margin-top:1.6em}
/* form */
.errors{border-left:4px solid var(--tomato);background:#FDECE6;padding:12px 18px;border-radius:4px;margin:20px 0}
.sheetform{margin-top:24px}
.day{border:0;padding:0;margin:0 0 28px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:16px}
.day legend{font:700 1.2rem var(--serif);color:var(--ink);margin-bottom:10px}
.f span{display:block;font-size:.85rem;font-weight:600;color:var(--muted);margin-bottom:4px}
input{width:100%;font:inherit;font-size:1rem;padding:.55em .7em;border:1px solid #BFB6A2;border-radius:6px;background:#fff;color:var(--text)}
.items{border-top:2px solid var(--ink)}
.items__head,.items__row{display:grid;grid-template-columns:2.4fr 1fr 1fr .8fr;gap:10px}
.items__head{font:600 .8rem/1 var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:12px 0 8px}
.items__row{padding:5px 0;border-bottom:1px dashed var(--line)}
.items__row input[inputmode]{font-family:var(--num);text-align:right}
/* sheet */
.kpis{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px;margin:24px 0}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.kpi--lead{background:var(--ink);color:#F4EEDF;border-color:var(--ink)}
.kpi__k{margin:0;font:600 .78rem/1 var(--sans);text-transform:uppercase;letter-spacing:.12em;opacity:.8}
.kpi__v{margin:.25em 0 .1em;font:700 2.2rem/1.1 var(--num);color:var(--ink)}
.kpi--lead .kpi__v{color:var(--mustard)}
.kpi__v span{font:500 1rem var(--sans)}
.kpi__s{margin:0;font-size:.9rem}
.tablewrap{overflow-x:auto;margin:8px 0 24px}
.grid{width:100%;border-collapse:collapse;background:var(--card);font-size:.95rem}
.grid th,.grid td{padding:10px 12px;border-bottom:1px solid var(--tint);text-align:right;white-space:nowrap}
.grid th[scope=row],.grid thead th:first-child{text-align:left;white-space:normal}
.grid thead th{font:600 .75rem/1.2 var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--tint)}
.grid td{font-family:var(--num)}
.grid small{color:var(--muted)}
.is-loss th,.is-loss td{background:#FDECE6}
.flag{color:var(--tomato-d);font:700 .78rem var(--sans);text-transform:uppercase}
.bars{list-style:none;padding:0;margin:0}
.bars li{display:grid;grid-template-columns:6em 1fr 6.5em;gap:10px;align-items:center;padding:6px 0}
.bars__k{font-size:.9rem;color:var(--muted)}
.bars__t{background:var(--tint);height:14px;border-radius:3px;overflow:hidden}
.bars__b{display:block;height:100%;background:var(--ink2)}
.bars__b.is-neg{background:var(--tomato)}
.bars__v{font-family:var(--num);text-align:right}
.float{list-style:none;padding:0;margin:0}
.float li{padding:8px 0;border-bottom:1px dashed var(--line)}
.float span{display:block;color:var(--muted);font-size:.9rem}
/* print pages */
.printbar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}
.pcard{max-width:760px;margin:0 auto 32px;background:#fff;border:3px solid var(--ink);padding:32px 40px}
.pcard__title{font-size:2.4rem;text-align:center;margin:0 0 16px}
.pcard__list{width:100%;border-collapse:collapse;font-size:1.8rem}
.pcard__list th{text-align:left;font:600 1.8rem/1.3 var(--serif);padding:10px 0;border-bottom:2px dotted var(--line)}
.pcard__list td{text-align:right;font:700 2rem var(--num);color:var(--ink);border-bottom:2px dotted var(--line)}
.pcard--big{text-align:center;page-break-after:always;break-after:page}
.pcard__name{font:600 2.4rem/1.2 var(--serif);margin:0}
.pcard__price{font:700 6rem/1.1 var(--num);color:var(--ink);margin:.1em 0 0}
.tally{max-width:1100px;margin:0 auto 32px;padding:0 24px}
.tally__title{font-size:1.6rem}
.tally__t{width:100%;border-collapse:collapse;background:#fff}
.tally__t th,.tally__t td{border:1px solid #9C9483;padding:8px;vertical-align:top;text-align:left}
.tally__boxes{line-height:0}
.box{display:inline-block;width:14px;height:14px;border:1.5px solid #333;margin:0 3px 3px 0}
.tally__blank{min-width:5.5em}
/* footer */
.foot{background:var(--ink);color:#E6E0D0;margin-top:40px}
.foot a{color:#F4EEDF}
.foot__in{max-width:1160px;margin:0 auto;padding:40px 24px 24px;display:grid;grid-template-columns:1.4fr 1fr;gap:40px}
.foot .logo{color:#F4EEDF}.foot .logo__mark{color:#F4EEDF}
.foot__cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.foot__cols h2{font:600 .78rem/1 var(--sans);text-transform:uppercase;letter-spacing:.14em;color:var(--mustard);margin:0 0 10px}
.foot__cols a{display:block;padding:4px 0;text-decoration:none}
.foot__base{max-width:1160px;margin:0 auto;padding:16px 24px 32px;border-top:1px solid rgba(255,255,255,.15);font-size:.85rem}
.foot__powered{margin:8px 0 0}
@media (max-width:860px){
 .hero__grid,.split,.foot__in{grid-template-columns:1fr;gap:32px}
 .steps,.plans,.kpis{grid-template-columns:1fr}
 .day{grid-template-columns:1fr 1fr}.day .f--wide{grid-column:1/-1}
 .ticket{transform:none}
 .strip{grid-template-columns:1fr;box-shadow:5px 5px 0 var(--ink)}
 .ledger__row{grid-template-columns:1fr;gap:6px}.ledger__row .ledger__who{text-align:left}
 .hero__stack{padding-top:44px}
 .top__nav{margin-left:0;width:100%}
}
@media (max-width:560px){
 .wrap,.top__in{padding-left:16px;padding-right:16px}
 .items__head{display:none}
 .items__row{grid-template-columns:1fr 1fr 1fr;padding:10px 0}
 .items__row label:first-child{grid-column:1/-1}
 .day{grid-template-columns:1fr}
 .pcard{padding:20px}.pcard__list,.pcard__list th{font-size:1.25rem}.pcard__list td{font-size:1.35rem}.pcard__price{font-size:3.6rem}
 .bars li{grid-template-columns:5em 1fr 5.5em}
}
@page{margin:12mm}
@media print{
 .top,.foot,.printbar,.notice,.skip{display:none!important}
 body{background:#fff}
 .pcard{border-width:2px;margin:0 auto}
 .tally{padding:0}
}
.bars__b.w0{width:0%}
.bars__b.w5{width:5%}
.bars__b.w10{width:10%}
.bars__b.w15{width:15%}
.bars__b.w20{width:20%}
.bars__b.w25{width:25%}
.bars__b.w30{width:30%}
.bars__b.w35{width:35%}
.bars__b.w40{width:40%}
.bars__b.w45{width:45%}
.bars__b.w50{width:50%}
.bars__b.w55{width:55%}
.bars__b.w60{width:60%}
.bars__b.w65{width:65%}
.bars__b.w70{width:70%}
.bars__b.w75{width:75%}
.bars__b.w80{width:80%}
.bars__b.w85{width:85%}
.bars__b.w90{width:90%}
.bars__b.w95{width:95%}
.bars__b.w100{width:100%}
.tally__t{min-width:0}@media (max-width:560px){.tally{padding:0 16px}.tally__t th,.tally__t td{padding:6px 4px;font-size:.9rem}.tally__blank{min-width:3.5em}}
@media (max-width:560px){.items__row input[inputmode]{text-align:left}}

/* v1.0.4 nav: short Guide label on phones; nav keeps to one line under the logo */
.nav-short{display:none}
@media (max-width:560px){.nav-long{display:none}.nav-short{display:inline}.top__in{gap:6px 16px}.top__nav{margin-left:0;width:100%;flex-wrap:nowrap;gap:20px;overflow-x:auto}.top__nav a{white-space:nowrap}}

/* v1.1.0: AdEngine banner (adengine.us). One labelled slot between the main content and the footer, on home, the guide,
   pricing and about only (the controllers opt in). The label and the reserved height are on the <ins>; the footer's own
   40px top margin gives the space below, so when tag.js (or ae-size.js) hides a slot it cannot fill, the page closes up
   exactly as before. 110px = 16px label + 4px gap + 90px banner; 270px on phones (300x250). display stays here and is
   never !important: tag.js hides a slot with style.display='none'. */
.ae-slot{display:flow-root;padding:0 24px}
.ae-slot ins.adengine{display:block;max-width:728px;min-height:110px;margin:16px auto 0;text-align:center;text-decoration:none}
.ae-slot ins.adengine::before{content:"Advertisement";display:block;margin-bottom:4px;font:600 11px/16px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ae-slot ins.adengine a{display:inline-block;vertical-align:top}
@media (max-width:767px){.ae-slot ins.adengine{max-width:300px;min-height:270px;margin-top:8px}}
.ae-slot:has(> ins.adengine[style*="none"]){display:none}
@media print{.ae-slot{display:none}}
